Aprašant būsenas turi būti laikomasi tam tikrų taisyklių. Toliau pateikiami detalesni jų paaiškinimai:
Pavadinimas | Aprašymas |
---|---|
RGI_MGAMA_PERS_AT | Personalo atostogų prašymų tvirtinimas |
RGI_MGAMA_PERS_KOM | Komandiruočių įsakymų tvirtinimas |
PERS_DOC | Komandiruočių įsakymų formavimas (Fox-inė programa) |
RGI_MGAMA_PERS_TV | Personalo dokumentų tvirtinimas |
RGI_MGAMA_DVS_TV | DVS dokumentų tvirtinimas |
RGI_MGAMA_PIRK_TV | Pirkimo dokumentų tvirtinimas |
RGI_MGAMA_PERS_PRI | Priėmimo operacijos tvirtinimas |
VD_TVIRT | Vidinės apskaitos dokumentų tvirtinimas (Fox-inė programa) |
Pavadinimas | Aprašymas |
---|---|
MGAMA_CUSTOM_PIRK | Pirkimo dokumentų tvirtinimas, atsižvelgiant į dokumento sumą |
PIRK_BUS_CUSTOM | Būsenos parinkimas (Fox-inė programa) |
Kiekviena būsenos patvirtinimo operacija užpildoma XML informacija, skirta atvaizdavimui MGAMA aplikacijoje.
Sprendžiant įvairius uždavinius, būsenos patvirtinimo operacijų pastabų lauke galima tiesiog įvesti tekstinę XML struktūros informaciją, arba paleisti SQL procedūrą, arba Fox-inę programą (nurodžius būsenos aprašyme, užprogramavus klavišą, importo metu ir pan.)
Kaip būsenos patvirtinimo operacijoje užpildyti aprašymo ir pastabų laukai atvaizduojami MGAMA aplikacijoje aprašyta Tvirtinimo operacijos suformavimo taisyklės.
Fox-inės programos pavyzdys, kuri suformuoja ir užpildo būsenos patvirtinimo operacijos laukus pateiktas VD_TVIRT.
Jeigu būsenos aprašyme pažymėta, kad ji gali būti atšaukiama, tai MGAMA formoje bus rodomi du mygtukai: „Patvirtinti“ ir „Atmesti“, priešingu atveju rodomas tik vienas mygtukas „Susipažinau“.
Prie operacijos prisegtas "Dokumentas" arba "Dokumentai" yra matomi užduočių tvirtinimo informacijoje. Rodoma tik internetinė nuoroda arba duomenų bazėje saugomas failas.
MGAMA tvirtinimo operacijoje galima nerodyti prie operacijos prisegto dokumento. Formuojant tvirtinimo operacijos XML, suformuojamas papildomas tag'as (atskirai Dokumentai B00 ir Dokumentas K00):
<config><key>SHOW_DOKUMENTAS</key><value>false</value></config>
<config><key>SHOW_DOKUMENTAI</key><value>false</value></config>
Tvirtinimo operacijose galima rodyti tvirtinimo eigą ir istoriją. Formuojant tvirtinimo operacijos XML, nurodoma:
<config><key>SHOW_HISTORY</key><value>true</value></config>
Standartiškai, atostogų prašymo tvirtinimo operacijose tvirtinimo eiga ir istorija yra rodomi.
Tvirtinimo operacijoje galima pakeisti pagrindinio tvirtinimo mygtuko pavadinimą, pavyzdžiui į "Pasirašyta". Formuojant tvirtinimo operacijos XML, nurodoma:
<config><key>BUTTON_OK_TITLE</key><value>Pasirašyta</value></config>
Tvirtinimo operacijose galima įkelti internetinę nuorodą, pvz.:
<schema><type>link</type><key>Internetinis puslapis</key><value>https://rivile.lt </value><title>UAB Rivile</title></schema>
Sąlygos, kurios reikalingos, kad būsenų tvirtinimai būtų rodomi MGAMA portale:
Kaip būsenos patvirtinimo operacijoje užpildyti aprašymo ir pastabų laukai atvaizduojami MGAMA aplikacijoje?
Informacija paimama iš tvirtinimo operacijų:
MGAMA formos detalizacijai suformuotas XML:
<schema>
<type>inline</type>
<key>Pavadinimas 1</key>
<value>Reikšmė 1</value>
</schema>
<schema>
<type>inline</type>
<key/>
<value>Reikšmė 2</value>
<color>red</color>
</schema>
<schema>
<type>inline</type>
<key>Pavadinimas 3</key>
</schema>
<schema>
<type>block</type>
<key>Komentaras</key>
<value>Reikšmė 3</value>
</schema>
<schema>
<type>space</type>
</schema>
<schema>
<type>list</type>
<key>Sąrašas</key>
<data>
<schema>
<type>inline</type>
<key>Data</key>
<value>2024.02.29</value>
<color>RGB(0,160,0)</color>
</schema>
<schema>
<type>inline</type>
<key>Suma</key>
<value>123.00€</value>
</schema>
</data>
</schema>
MGAMA tvirtinimų sąraše rodomi šie aprašymo laukai:
MGAMA aplikacijoje atvaizduojamas XML :
Pavyzdžiui:
ir
Prie operacijos prisegti dokumentai (Rivile GAMA programoje "Dokumentas“ ir "Dokumentai“) automatiškai matomi visose tvirtinimo formose.
Formoje mygtukai "Atmesti“ ir "Patvirtinti“ arba tik vienas jų, "Susipažinau“ rodomas remiantis būsenos aprašymu.
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@inf | informuoti užsakovą (atostogų operacijai priskirtą personalo kodą) apie būsenos pasikeitimą | @inf=1 |
@vad | papildomai suformuoti būsenos tvirtinimą etato padalinyje aprašytam vadovui | @vad=1 |
@rusis | tvirtinant būseną pakeisti personalo operacijos rūšį (1-dokumentas, 2-prašymas) |
@rusis=1 |
@atsaukti | leisti atšaukti būseną pačiam darbuotojui, pateikusiam prašymą | @atsaukti=1 |
@istorija | rodyti istoriją prie tvirtinimo operacijos (1 - rodyti (pagal nutylėjimą), 0 - nerodyti) |
@istorija=1 |
@at_fil | filtravimo sąlyga formuojant tuo pat metu atostogaujančius asmenis | @at_fil='kodas_is=K16_KODAS_IS' -- Tik dirbantys tame pačiame padalinyje @at_fil='kodas_0a=K16_KODAS_0A' -- Tik užimantys tą patį etato kodą @at_fil='kodas_5a=K16_KODAS_5A' -- Tik tiems kam atitinka specialybė @at_fil='vadovas=K12_KODAS_4A' -- Tik tiems, kam nurodytas tas pats tiesioginis vadovas @at_fil='1=0' -- Visai neformuoti kartu atostogaujančių asmenų sąrašo @at_fil='kodas_is=K16_KODAS_IS and kodas_0a=K16_KODAS_0A and kodas_5a=K16_KODAS_5A' -- Tik dirbantys tame pačiame etate, specialybėje ir padalinyje |
Procedūros naudojimo pavyzdys aprašytas Personalo operacijų (tipas "Atostogos" būsenų aprašymas.
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@vart | formuoti tvirtinimą darbuotojui | @vart=1 |
@vad | formuoti tvirtinimą vadovui, priskirtam pagal operacijos etatą padalinyje | @vad=1 |
@rusis | tvirtinant būseną pakeisti personalo operacijos rūšį (1-dokumentas, 2-prašymas) | @rusis=1 |
@istorija | rodyti istoriją prie tvirtinimo operacijos (1 - rodyti (pagal nutylėjimą), 0 - nerodyti) |
@istorija=1 |
Procedūros naudojimo pavyzdys aprašytas Personalo operacijų (tipas "Kita") būsenų aprašymas.
Fox-inė programa, skirta PDF dokumentų formavimui pagal pateiktą Word šabloną
Parametrai:
Parametras | Reikšmė |
---|---|
thisform | perdavus vykdoma SQL procedūra (privaloma) |
lcWordSabl | Word šablono failo vardas |
llDocToPDF | Ar konvertuoti DOCX į PDF? (pagal nutylėjimą paliekamas originalus Word dokumentas) |
Programos naudojimo pavyzdys aprašytas Personalo operacijų (tipas "Kita") būsenų aprašymas.
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@vart | formuoti tvirtinimą darbuotojui | @vart=1 |
@vad | formuoti tvirtinimą vadovui, priskirtam pagal operacijos etatą padalinyje | @vad=1 |
@rusis | tvirtinant būseną pakeisti personalo operacijos rūšį (1-dokumentas, 2-prašymas) | @rusis=1 |
@istorija | rodyti istoriją prie tvirtinimo operacijos (1 - rodyti (pagal nutylėjimą), 0 - nerodyti) |
@istorija=1 |
Procedūra gali būti naudojama bet kokių personalo operacijų tvirtinimui.
Procedūros naudojimo pavyzdys aprašytas Darbuotojo ir jo tiesioginio vadovo informavimas apie padėką.
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@vart | leidimas savininkui - tvirtinimo operacija suformuojama operacijoje nurodytam vartotojui | @vart=1 |
@rusis | leidimai iš rūšies aprašymo - tvirtinimo operacijos suformuojamos visiems vartotojams, turintiems teisę dirbti su tos rūšies dokumentais | @rusis=1 |
@visi | leidimai visiems sistemos vartotojams - tvirtinimo operacijos suformuojamos visiems SQL vartotojams | @visi=1 |
@istorija | rodyti istoriją prie tvirtinimo operacijos (1 - rodyti, 0 - nerodyti (pagal nutylėjimą)) |
@istorija=1 |
@aktyvi | operacijos tvirtinimas niekada nesibaigs, t.y. bus sukuriama tvirtinimo operacija neegzistuojančiam vartotojui sutartiniu žymėjimu ~. | @aktyvi=1 |
Pastaba: Tvirtinimo teisės sumuojamos – tvirtinti gali visi kam suteiktas leidimas prie būsenos ir tiems kam leidžiama pasiekti DVS rūšį. Tokiu principu galima administruoti prieigas tik pagal DVS rūšį arba tam tikrus dokumentus susipažinimui nusiųsti visiems SQL vartotojams.
Pavyzdžiui, iš DVS operacijų siunčiant atlyginimo lapelius, vartotojas turėtų būti nurodomas vartotojo lauke , o būsenos aprašyme nustatomas parametras @vart=1:
Norint tam tikrus dokumentus susipažinimui nusiųsti visiems SQL vartotojams, naudojamas parametras @visi=1.
Procedūros naudojimo pavyzdžiai aprašyti:
Parametras @aktyvi=1 naudojamas norint, kad tvirtinimo operacija niekada nesibaigtų.
Jeigu aprašytas šis parametras, pirmą kartą patvirtinus būseną, susiformuoja būsenų tvirtinimo operacija vartotojui '~':
Ši būsenos tvirtinimo operacija visada lieka neperkelta, todėl ir DVS operacijos būsena visada lieka "Tvirtina".
Tvirtinimo operacija vartotojui '~' gali būti suformuojama ir naudojant formules DVS rūšių aprašyme. Toks pavyzdys pateiktas MGAMA - įmonės vidaus tvarkos taisyklių tvirtinimas.
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@inf | informuoti užsakovą (vartotoją, kuris sukūrė operaciją) apie būsenos pasikeitimą | @inf=1 |
@istorija | rodyti istoriją prie tvirtinimo operacijos (1 - rodyti (pagal nutylėjimą), 0 - nerodyti) |
@istorija=1 |
Procedūros naudojimo pavyzdys aprašytas Pirkimo operacijų (tipas "Važtaraštis") būsenų aprašymas.
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@pastaba_lauke | galima nurodyti į kokį lauką įrašyti tvirtinimo metu nurodytą pastabą. | @pastaba_lauke='' |
Procedūros naudojimo pavyzdys aprašytas Personalo operacijų (tipas "Priėmimas į etatą") būsenų aprašymas būsenai "Informacija IT administratoriui".
Pavyzdyje IT administratorius pastabų lauke įrašo naujam darbuotojui sukurtą el. pašto adresą, ir būsenos tvirtinimo metu šis adresas išsaugomas personalo kortelėje lauke "El. paštas":
RGI_MGAMA_PERS_PRI @pastaba_lauke='K14_E_MAIL'
Parametre nurodžius kitą personalo kortelės lauką, pastaboje įrašyta reikšmė bus išsaugoma tame nurodytame lauke. Galimi variantai: K14_KODAS_RS, K14_E_MAIL, K16_APRASYMAS1, K16_APRASYMAS2, ... ,K16_APRASYMAS6, K16_PASTABOS.
Pateikiamas Fox-inės programos pavyzdys, kurią galima naudoti, jeigu ji iškviečiama tik iš Rivile GAMA programos. Iš MGAMA aplikacijos gali būti vykdomos tik SQL procedūros.
LPARAMETERS _thisform
IF m.BUSENOS_MODULIS#"VD"
RETURN .T.
ENDIF
IF m.BUSENOS_PROGRAMA#"I"
RETURN .T.
ENDIF
PRIVATE pcModul, pcKodas_op, pcKodas_be, pcXml, pcApr1, pcApr2, pcApr3
m.pcModul=m.BUSENOS_MODULIS
m.pcKodas_op=m.BUSENOS_OP_NR
*m.pcKodas_be=m.BUSENOS_KODAS_SENAS
m.pcKodas_be=m.BUSENOS_KODAS_NAUJAS
=f_select("SELECT * FROM dbo.I09_VIH inner join dbo.I10_VID on i09_kodas_vd=i10_kodas_vd where I09_KODAS_VD=?m.pcKodas_op order by i10_eil_nr","I09_tmp")
m.pcApr1=RTRIM(I09_tmp.I09_KODAS_IS2)+" "+ALLTRIM(I09_tmp.I09_A_EIL1)
m.pcApr2="Vidinis "+GETWORDNUM("važtaraštis,užsakymas,pasiūlymas",I09_tmp.I09_TIPAS,",")
m.pcApr3=DTOC(TTOD(I09_tmp.I09_IS_DATA))
m.pcXml=;
"<schema><type>inline</type><key>Padalinys siuntėjas</key><value>"+xml_encode(RTRIM(I09_tmp.I09_KODAS_IS1)+" "+ALLTRIM(I09_tmp.I09_EIL1))+"</value></schema>"+CHR(13)+CHR(10)+;
"<schema><type>inline</type><key>Padalinys gavėjas</key><value>"+xml_encode(RTRIM(I09_tmp.I09_KODAS_IS2)+" "+ALLTRIM(I09_tmp.I09_A_EIL1))+"</value></schema>"+CHR(13)+CHR(10)+;
"<schema><type>inline</type><key>Dokumento data</key><value>"+xml_encode(DTOC(TTOD(I09_tmp.I09_IS_DATA)))+"</value></schema>"+CHR(13)+CHR(10)+;
"<schema><type>inline</type><key>Dokumento Nr.</key><value>"+xml_encode(RTRIM(I09_tmp.I09_DOK_NR))+"</value></schema>"+CHR(13)+CHR(10)+;
"<schema><type>block</type><key>Pastabos</key><value>"+xml_encode(RTRIM(I09_tmp.I09_PAV))+"</value></schema>"+CHR(13)+CHR(10)+;
"<schema><type>space</type></schema>"+CHR(13)+CHR(10)+;
"<schema><type>list</type><key>Produktai</key><data>"+CHR(13)+CHR(10)
SELECT I09_tmp
GO TOP
SCAN
m.pcXml=m.pcXml+"<schema><type>inline</type><key>"+xml_encode(ALLTRIM(I09_tmp.i10_pav))+"</key><value>"+xml_encode(alltrim(say_lik(I09_tmp.i10_kiekis1,I09_tmp.i10_frakcija1))+" ("+alltrim(I09_tmp.i10_kodas_us1)+")")+"</value></schema>"+CHR(13)+CHR(10)
ENDSCAN
m.pcXml=m.pcXml+"</data></schema>"+CHR(13)+CHR(10)
USE IN I09_tmp
=f_select("update dbo.L21_BUSP set L21_APRASYMAS1=?m.pcApr1,L21_APRASYMAS2=?m.pcApr2,L21_APRASYMAS3=?m.pcApr3,L21_XML=?m.pcXml where L21_KODAS_BE=?m.pcKodas_be and L21_KODAS=?m.pcKodas_op and L21_MODUL=?m.pcModul and L21_PERKELTA=1")
RETURN .T.
Funkcijos naudojimo pavyzdys aprašytas Vidinės apskaitos operacijų (tipas "Užsakymas") būsenų aprašymas.
Visose klientų ("custom") procedūrose yra privalomi šie parametrai:
Parametras | Reikšmė |
---|---|
@modul char(2) | operacijos modulis (pvz.: PO) |
@op char(12) | operacijos numeris (pvz.: 000000000123) |
@user char(12) | GAMA vartotojo kodas (pvz.: MASTER) |
@veiksmas char(1) | veiksmas: I – INIT, P – patvirtinimas, A – atmetimas, O – metodas po būsenos patvirtinimo, U – kai atidaroma tvirtinimo operacijos forma MGAMA sistemoje, T – kviečiama atnaujinant leidimus. |
@kodas_be char(12) | esamos būsenos kodas (pvz.: 000000000001) |
@pastaba varchar(150) | atšaukimo priežastis (pvz.: Komentaras) |
Esminis pavyzdžio ypatumas – iki tam tikros sumo dokumentas patvirtinamas automatiškai, iki kitos, didesnės sumos, tvirtina padalinio vadovas (menedžeris - jo kodas sutampa su vartotojo kodu), o viršijus tą suma dar turi patvirtinti įmonės vadovas.
Visas kitas funkcionalumas analogiškas procedūrai RGI_MGAMA_PIRK_TV.
Procedūros naudojimo pavyzdys aprašytas: Pirkimo dokumentų tvirtinimo procesas, atsižvelgiantis į dokumento sumą.
CREATE PROCEDURE dbo.MGAMA_CUSTOM_PIRK
@modul char(2) = null, -- operacijos modulis
@op char(12) = null, -- operacijos numeris
@user char(12) = null, -- vartotojo kodas
@veiksmas char(1) = null, -- veiksmas: P-patvirtinti, A-atmesti, I-init
@kodas_be char(12) = null, -- esamos būsenos kodas
@pastaba varchar(150) = null, -- atšaukimo priežastis
@inf numeric(1,0)=0, -- informuoti užsakovą
@men numeric(1,0)=0, -- tvirtina menedžeris
@op_tip numeric(2,0)=null, -- operacijos tipas, kuriam galioja tvirtinimas
@suma_min numeric(12,2)=null, -- minimali suma, nuo kurios automatiškai patvirtinti
@busena numeric(3,0)=null -- minimalios sumos tvirtinimo būsena
AS
BEGIN
-- Tvirtinimo operacijų papildymas turi suveikti tik INIT procedūros atveju
if @veiksmas='I'
begin
-- Sąrašas vartotojų kurie turės tvirtinti --
select i06_kodas_ms as kodas_rs into #mgama_busena_leisti from dbo.I06_PARH where i06_kodas_po=@op
-- Sukuriame tvirtinimo operacijas --
exec dbo.RGI_MGAMA_BUSENA_LEISTI @modul=@modul, @op=@op, @user=@user, @kodas_be=@kodas_be, @tmp_lent=1, @rewrite=0
end
-- Patikriname sumą ir jei reikia peršokame į kitą būseną
if @veiksmas='P' and @suma_min is not null and @busena is not null and exists(select * from I06_PARH where I06_KODAS_PO=@op and I06_SUMA<@suma_min and I06_OP_TIP=isnull(@op_tip,I06_OP_TIP))
begin
select @busena as busena into #tmp_MGAMA_CUSTOM_PIRK_TV
execute('update #RGI_MGAMA_BUSENA set BUSENOS_NAUJA=busena from #tmp_MGAMA_CUSTOM_PIRK_TV')
end
-- Suformuojame standartines tvirtinimo operacijas ir užpildome turiniu (aprašymai ir XML) --
declare @ret int
exec @ret=dbo.RGI_MGAMA_PIRK_TV @modul=@modul, @op=@op, @user=@user, @veiksmas=@veiksmas, @kodas_be=@kodas_be, @pastaba=@pastaba, @inf=@inf
return @ret
END
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@inf | informuoti užsakovą (vartotoją, kuris sukūrė operaciją) apie būsenos pasikeitimą | @inf=1 |
@istorija | rodyti istoriją prie tvirtinimo operacijos (1 - rodyti (pagal nutylėjimą), 0 - nerodyti) |
@istorija=1 |
@men | formuoti būsenos tvirtinimo operaciją menedžeriui, kurio kodas sutampa su vartotoju kodu | @men=1 |
@op_tip | operacijos tipas, kurį tikrinti. Nebūtina perduoti, jei tai nėra pati pirmoji būsena | @op_tip=1 |
@suma_min | minimali suma, iki kurios automatiškai patvirtinti | @suma_min=200 |
@busena | minimalios sumos tvirtinimo būsena | @busena=27 |
Naudojama MGAMA vidinė SQL procedūra RGI_MGAMA_BUSENA_LEISTI. Jos parametrai:
Parametras | Reikšmė |
---|---|
@modul char(2) = null | operacijos modulis |
@op char(12) = null | operacijos numeris |
@user char(12) = null | vartotojo kodas |
@veiksmas char(1) = 'I' | veiksmas. Tinka tik I-init |
@kodas_be char(12) = null | esamos būsenos kodas |
@pastaba varchar(150) = null | atšaukimo priežastis |
@vart char(12) = null | konkretus vienas vartotojo kodas, kuriam suteikiamas leidimas |
@tmp_lent numeric(1,0) = 0 | ar vartotojų sąrašas pateiktas lentelėje #mgama_busena_leisti (kodas_rs char(12)). 0 – nurodomas @vart parametas, 1 – naudojama temp lentelė |
@rewrite numeric(1,0) = 0 | 1 - perrašyti visus būsenos vartotojus, 0 - papildyti vartotojus naujais |
@apr1 varchar(250) = null | tvirtinimo operacijos aprašymo 1 laukas |
@apr2 varchar(250) = null | tvirtinimo operacijos aprašymo 2 laukas |
@apr3 varchar(250) = null | tvirtinimo operacijos aprašymo 3 laukas |
@xml text = '' | tvirtinimo operacijos XML laukas |
@email_poz numeric(1,0) = null | ar siųsti tvirtinimo operaciją email |
@email_sabl numeric(3,0) = null | jei siunčiamas email, tuomet kurį šabloną naudoti (1,2,3,4) |
@perkelta numeric(1,0) = 1 | tvirtinimo operacijos perkėlimo požymis. Galimos reikšmės: 1 – Nauja, 4 - Anuliuota |
Privalomi parametrai paryškinti.
Fox-inė programa, skirta būsenos parinkimui, priklausomai nuo dokumento tipo ir sumos.
LPARAMETERS _thisform, lnSuma, lnBusena, lnBusena2, lnOpTip
IF TYPE("m.lnSuma")#"N" OR TYPE("m.lnBusena")#"N"
RETURN .F.
ENDIF
IF TYPE("lnOpTip")#"N"
m.lnOpTip=Wi06k.i06_op_tip
ENDIF
IF Wi06k.i06_suma<lnSuma AND Wi06k.i06_op_tip=m.lnOpTip
m.BUSENOS_NAUJA=m.lnBusena
ENDIF
IF Wi06k.i06_suma>=lnSuma AND Wi06k.i06_op_tip=m.lnOpTip
m.BUSENOS_NAUJA=m.lnBusena2
ENDIF
RETURN f_busena_sql(_thisform)
Funkcijos parametrai :
Parametras | Reikšmė |
---|---|
_thisform | Thisform (visada) |
lnSuma | Suma, iki kurios dokumentas patvirtinamas automatiškai, t.y. iki kurios reikia peršokti į trečiame parametre nurodytą būseną |
lnBusena | Būsena, į kurią reikia peršokti, jei dokumento suma mažesnė už antrame parametre nurodytą reikšmę |
lnBusena2 | Būsena, į kurią reikia peršokti, jei dokumento suma ne mažesnė už antrame parametre nurodytą reikšmę |
lnOpTip | Operacijos tipas, kurį reikia tikrinti (1- pirkimo važtaraštis) |