MGAMA - būsenų tvirtinimo principai

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)

Būsenų tvirtinimo veikimo principai:

  • Dokumentų būsenos gali būti tvirtinamos iš Rivile GAMA programos arba iš MGAMA portalo.
  • Vartotojai, kurie tvirtins dokumentus per MGAMA portalą, aprašomi Rivile GAMA vartotojų sąraše, uždedant "v"- "MGAMA vartotojas“. Plačiau apie tai aprašyta MGAMA vartotojai.
  • Būsenų aprašyme, priklausomai iš kokios sistemos jos bus tvirtinamos, nurodoma "Naudojama programa“: "GAMA", "MGAMA“ arba „GAMA ir MGAMA“.
  • Būsenų aprašyme nurodoma "SQL procedūra“ tvirtinimo formos suformavimui. Standartiniame MGAMA variante yra paruošti aukščiau esančioje lentelėje išvardinti SQL procedūrų šablonai.
  • Jeigu užduotis būsenos tvirtinimui visada suformuojama iš Rivile GAMA programos, tai tvirtinimo formos suformavimui gali būti naudojama ne tik SQL procedūra, bet ir Fox-inė programa.
  • "SQL procedūra“ nebus vykdoma, jeigu būsenos aprašymo lauke "Naudojama programa“ parenkama "GAMA", t.y. jeigu būseną galima tvirtinti tik iš Rivile GAMA programos.
  • Būsenos aprašyme nurodoma ar, patvirtinus būseną, iš MGAMA bus išsiunčiamas elektroninis laiškas. Jei taip, tada lauke "Šablonas" parenkamas laiško šablonas. Standartiniame MGAMA variante yra 4 šablonai: "Tvirtinimas", "Tvirtinimas su nuoroda", "Informavimas", "Informavimas su nuoroda".
  • Šablonai "Tvirtinimas" ir "Tvirtinimas su nuoroda" skirti informavimui apie tvirtinimui atsiųstus naujus dokumentus. Skiriasi tik tuo, kad antruoju atveju laiške yra įdėta tiesioginė nuoroda į tvirtinimui atsiųstą dokumentą:

mgamat_13

  • Šablonai "Informavimas" ir "Informavimas su nuoroda" skirti informavimui apie pasikeitusią dokumento būseną. Skiriasi tik tuo, kad antruoju atveju laiške yra įdėta tiesioginė nuoroda į dokumentą:

mgamat_14

  • Būsenų aprašyme suteikiami leidimai vartotojams, kurie turi jas patvirtinti. Uždedamas "v" -"Formuoti tvirtinančius", kad susiformuotų būsenos patvirtinimo operacijos.
  • Jeigu būsenos bus tvirtinamos tik iš MGAMA portalo, tai vartotojų leidimų aprašyti nereikia.
  • Priklausomai nuo būsenos aprašyme nurodytos SQL procedūros ar funkcijos, būsenos patvirtinimo operacijoje užsipildo trys aprašymo laukai ir pastabų laukas. Pastabų laukas užpildomas XML struktūros informacija, pagal kurią parodomi duomenys MGAMA aplikacijoje.
    Pavyzdžiui, personalo sąraše atsistojus ant pateikto atostogų prašymo ir dukart pelyte paspaudus ant būsenos lauko, parodoma būsenos patvirtinimo operacija, kurią pakoregavus matomi aprašymų ir pastabų laukai:

mgamat_18

Kiekviena būsenos patvirtinimo operacija užpildoma XML informacija, skirta atvaizdavimui MGAMA aplikacijoje.

mgamat_17

  • 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>

mgamat_20

  • MGAMA portale prisegtus PDF failus dabar galima ne tik atsisiųsti, bet ir peržiūrėti.

mgamat_21

Sąlygos, kurios reikalingos, kad būsenų tvirtinimai būtų rodomi MGAMA portale:

  • Būsenos aprašymo lauke "Naudojama programa“ turi būti parinkta "MGAMA“ arba "GAMA ir MGAMA“.
  • Turi būti užpildytas bent vienas iš trijų būsenos patvirtinimo operacijos aprašymo laukų.

mgamat_19

  • Visada matoma tik tam vartotojui priklausanti būsenos tvirtinimo operacija.
  • Matomos būsenų patvirtinimo operacijos, kurių požymis yra "Nauja“, "Patvirtinta“ arba "Atšaukta“. Operacijos su požymiu "Anuliuota“ nėra rodomos.

Tvirtinimo operacijos suformavimo taisyklės

Kaip būsenos patvirtinimo operacijoje užpildyti aprašymo ir pastabų laukai atvaizduojami MGAMA aplikacijoje?

Informacija paimama iš tvirtinimo operacijų:

mgamat_02

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:

mgamat_04

MGAMA aplikacijoje atvaizduojamas XML :

mgamat_06

Pavyzdžiui:

mgamat_08

ir

mgamat_09

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.

Šabloninės procedūros

RGI_MGAMA_PERS_AT - Personalo atostogų prašymų tvirtinimas

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.

RGI_MGAMA_PERS_KOM - Komandiruočių įsakymų tvirtinimas

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.

PERS_DOC(_thisform, lcWordSabl, llDocToPDF) - Komandiruočių įsakymų formavimas

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.

RGI_MGAMA_PERS_TV - Personalo dokumentų tvirtinimas

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ą.

RGI_MGAMA_DVS_TV - DVS dokumentų tvirtinimas

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:

mgamat_12

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 '~':

mgamat_22

Š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.

RGI_MGAMA_PIRK_TV - Pirkimo dokumentų 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.

RGI_MGAMA_PERS_PRI - Priėmimo operacijos tvirtinimas

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.

VD_TVIRT - Vidinės apskaitos dokumentų tvirtinimas

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.

Klientų ("custom") procedūros

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)

MGAMA_CUSTOM_PIRK - Pirkimo dokumentų tvirtinimas, atsižvelgiant į dokumento sumą

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.

PIRK_BUS_CUSTOM - Būsenos parinkimas

pirk_bus_custom.zip

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)