Aprašant būsenas naudojamos įvairios procedūros. Toliau pateikiami detalesni jų paaiškinimai:
Pavadinimas | Aprašymas |
---|---|
RGI_MGAMA_PERS_AT | Personalo atostogų prašymų tvirtinimas |
RGI_MGAMA_PERS_KOMAND | Komandiruočių prašymų 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 |
---|---|
RGI_MGAMA_PIRK_TV_CUSTOM | Pirkimo dokumentų tvirtinimas, atsižvelgiant į dokumento sumą |
PIRK_BUS_CUSTOM | Būsenos parinkimas (Fox-inė programa) |
RGI_MGAMA_CREATE_ATOSTOG_PRASYMAS_CUSTOM | Perima valdymą teikiant atostogų prašymą: tikrinama ar nurodytas pavaduojantis asmuo, ir atostogų tipas |
RGI_MGAMA_GET_PERS_KAL_INFO_CUSTOM | Kalendoriaus įvykio detalizacija: rodant personalo operacijos informaciją, papildomai rodomas vadovo vardas, pavardė, prisegti dokumentai, tvirtinimo informacija |
RGI_MGAMA_GET_PERS_KAL_CUSTOM_PRIES | Procedūra prieš kalendoriaus standartinių duomenų suformavimą: visų darbuotojų informacijos rodymas kalendoriuje |
RGI_MGAMA_GET_PERS_KAL_CUSTOM_PO | Procedūra po kalendoriaus standartinių duomenų suformavimo: kalendoriuje rodoma mažiau informacijos, nerodomas padalinys ir pareigos |
RGI_MGAMA_GET_PERS_KAL_CUSTOM_PO | Procedūra po kalendoriaus standartinių duomenų suformavimo: kalendoriuje rodoma informacija iš DVS operacijų (Nuotolinis darbas). |
MGAMA_CUSTOM_PARD | XML formavimo procedūra: pardavimo rezervavimo tvirtinimo procesas |
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@inf | parametras nustato kas bus informuojamas apie būsenos pasikeitimą: 1 - informuoti užsakovą (atostogų operacijai priskirtą personalo kodą) , 2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis |
@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 prašymą pateikusiam darbuotojui | @atsaukti=1 |
@istorija | prie tvirtinimo operacijos rodyti istoriją: 1 - rodyti (pagal nutylėjimą), 0 - nerodyti |
@istorija=1 |
@at_fil | filtravimo sąlyga formuojant tuo pačiu 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 |
@vad_pap | nurodžius šį parametrą tvirtinimą atlieka papildomas vadovas | Papildomo vadovo įvedimui sąraše "Etatai padalinyje" sukuriamas papildomas laukas. Šiame parametre nurodomas to papildomo lauko numeris. Pvz., @vad_pap=1 |
@vad_pap_b | nurodoma į kurią būseną peršokti, kai papildomas vadovas nėra nurodytas. Nenurodžius šio parametro, bus peršokama į sekančią būseną. |
Pvz., @vad_pap_b=3 |
@auto_b | nurodoma į kurią būseną peršokti, kai prašymą pateikia tas pats žmogus, kuris yra ir tvirtintojas | Pvz., @auto_b=14 |
@data_op | nurodžius šį parametrą, po patvirtinimo bus pakeista operacijos data 0-nekeičiame, 1-būsenos tvirtinimo diena, 2-periodo pradžia. |
@data_op=2 |
@auto_tv | parametre nurodomas būsenos kodas, į kurią bus automatiškai peršokama, jei operacijos tvirtinimą atlieka asmuo, kuris kartą jau patvirtino operaciją | @auto_tv=5 |
@vart_sar | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@vart_sar='MG_K42_OD_TV' |
@inf_sar | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@inf_sar='MG_K42_OD_IN' |
@pad_pap | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. Šiame parametre nurodomas to papildomo lauko numeris. |
@pad_pap=12 |
@bukle | atmetimo atveju galima pakeisti operacijos būklę į "Anuliuota", kurios nėra rodomos kalendoriuje | @bukle=1 |
@inf_vart | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI' |
Papildomo vadovo įvedimui sąraše "Etatai padalinyje" sukuriamas papildomas laukas.
Servisas ->Personalas -> Etatai padalinyje
Procedūros naudojimo pavyzdžiai aprašyti:
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 |
@atsaukti | leisti atšaukti būseną pačiam prašymą pateikusiam darbuotojui | @atsaukti=1 |
@inf | parametras nustato kas bus informuojamas apie būsenos pasikeitimą: 1 - informuoti užsakovą (komandiruočių operacijai priskirtą personalo kodą) , 2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis |
@inf=1 |
@istorija | prie tvirtinimo operacijos rodyti istoriją: 1 - rodyti (pagal nutylėjimą), 0 - nerodyti |
@istorija=1 |
@data_op | nurodžius šį parametrą, po patvirtinimo bus pakeista operacijos data 0-nekeičiame, 1-būsenos tvirtinimo diena, 2-periodo pradžia. |
@data_op=2 |
@auto_tv | parametre nurodomas būsenos kodas, į kurią bus automatiškai peršokama, jei operacijos tvirtinimą atlieka asmuo, kuris kartą jau patvirtino operaciją | @auto_tv=5 |
@pad_pap | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. Šiame parametre nurodomas to papildomo lauko numeris. |
@pad_pap=12 |
@auto_b | nurodoma į kurią būseną peršokti, kai prašymą pateikia tas pats žmogus, kuris yra ir tvirtintojas | Pvz., @auto_b=14 |
@vart_sar | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@vart_sar='MG_K42_OD_TV' |
@inf_sar | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@inf_sar='MG_K42_OD_IN' |
@bukle | atmetimo atveju galima pakeisti operacijos būklę į "Anuliuota", kurios nėra rodomos kalendoriuje | @bukle=1 |
@inf_vart | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI' |
Procedūros naudojimo pavyzdys aprašytas:
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 Komadiruočių įsakymų formavimas ir 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 | prie tvirtinimo operacijos rodyti istoriją: 1 - rodyti (pagal nutylėjimą), 0 - nerodyti |
@istorija=1 |
@inf | parametras nustato kas bus informuojamas apie būsenos pasikeitimą: 1 - informuoti užsakovą (operacijai priskirtą personalo kodą) , 2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis |
@inf=1 |
@auto_tv | parametre nurodomas būsenos kodas, į kurią bus automatiškai peršokama, jei operacijos tvirtinimą atlieka asmuo, kuris kartą jau patvirtino operaciją | @auto_tv=5 |
@pad_pap | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. Šiame parametre nurodomas to papildomo lauko numeris. |
@pad_pap=12 |
@auto_b | nurodoma į kurią būseną peršokti, kai prašymą pateikia tas pats žmogus, kuris yra ir tvirtintojas | Pvz., @auto_b=14 |
@vart_sar | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@vart_sar='MG_K42_OD_TV' |
@inf_sar | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@inf_sar='MG_K42_OD_IN' |
@bukle | atmetimo atveju galima pakeisti operacijos būklę į "Anuliuota", kurios nėra rodomos kalendoriuje | @bukle=1 |
@inf_vart | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI' |
Procedūra gali būti naudojama bet kokių personalo operacijų tvirtinimui.
Procedūros naudojimo pavyzdys aprašytas:
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 (naudoti nerekomenduojame) | @rusis=1 |
@visi | leidimai visiems sistemos vartotojams - tvirtinimo operacijos suformuojamos visiems SQL vartotojams | @visi=1 |
@istorija | prie tvirtinimo operacijos rodyti istoriją: 1 - rodyti , 0 - nerodyti (pagal nutylėjimą) |
@istorija=0 |
@aktyvi | operacijos tvirtinimas niekada nesibaigs, t.y. bus sukuriama tvirtinimo operacija neegzistuojančiam vartotojui sutartiniu žymėjimu ~. | @aktyvi=1 |
@inf | parametras nustato kas bus informuojamas apie būsenos pasikeitimą: 1 - informuoti operacijos savininką , 2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis |
@inf=1 |
@atsaukti | leisti atšaukti būseną pačiam prašymą pateikusiam darbuotojui | @atsaukti=1 |
@vad | papildomai suformuoti būsenos tvirtinimą etato padalinyje aprašytam vadovui | @vad=1 |
@vad_pap | nurodžius šį parametrą tvirtinimą atlieka papildomas vadovas | Šiame parametre nurodomas etato padalinyje esančio papildomo lauko numeris, kuriame yra nurodytas papildomas vadovas. Pvz., @vad_pap=5 |
@vad_pap_b | nurodoma, į kurią būseną peršokti, kai papildomas vadovas nėra nurodytas. Nenurodžius šio parametro bus peršokama į sekančią būseną. |
Pvz., @vad_pap_b=3 |
@pad_pap | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. Šiame parametre nurodomas to papildomo lauko numeris. |
@pad_pap=12 |
@forma | Pagal nutylėjimą parametro reikšmė lygi 1. Tvirtinimui užpildytos formos laukų informacija pateikiama išvardinant laukus su parinktomis reikšmėmis. Jeigu reikšmė lygi 0, sisteminių formų atveju tvirtinime informacija rodoma aprašymo lauke. | @forma=1 |
@auto_tv | parametre nurodomas būsenos kodas, į kurią bus automatiškai peršokama, jei operacijos tvirtinimą atlieka asmuo, kuris kartą jau patvirtino operaciją | @auto_tv=5 |
@bukle | nurodžius šį parametrą, po tvirtinimo bus pakeista DVS operacijos būklė: 1- Aktyvi, 2- Archyvuota, 3- Anuliuota |
@bukle=1 |
@action_modul | nurodžius šį parametrą, po patvirtinimo bus sukuriama atitinkama operacija. Galimos reikšmės: - nurodžius @action_modul='--' , atliekamas veiksmas, kuris aprašytas pačioje formoje, - nurodžius @action_modul='6A', bus suformuota personalo operacija. - nurodžius @action_modul='4A', bus pakoreguota personalo kortelė. Parametras naudojamas tik per MGAMA Dokumentus vykdomose DVS operacijose. |
@action_modul='--' |
@auto_b | nurodoma į kurią būseną peršokti, kai prašymą pateikia tas pats žmogus, kuris yra ir tvirtintojas | Pvz., @auto_b=14 |
@vart_sar | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@vart_sar='MG_K42_OD_TV' |
@inf_sar | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@inf_sar='MG_K42_OD_IN' |
@inf_vart | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI' |
@inf_pers | apie pasikeitusią būseną informuojamas vartotojas, atitinkantis DVS operacijoje nurodytą personalo kodą | @inf_pers=1 |
@vart_pers | patvirtinti turi vartotojas, atitinkantis DVS operacijoje nurodytą personalo kodą | @vart_pers=1 |
@auto_galioja | nurodomas terminas dienomis, kada reikia automatiškai tvirtinti būseną atsižvelgiant į galiojimo terminą (dienų skaičius iki galiojimo pabaigos) | @auto_galioja=30 |
@pers_pgr_b | būsenoje, kurioje nurodytas šis parametras, gali būti tik viena aktyvi operacija pagal personalo kodą ir DVS rūšį. Parametre nurodoma būsena į kurią pakeisti visas kitas aktyvias operacijas. | @pers_pgr_b=98 |
Procedūros naudojimo pavyzdžiai aprašyti:
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@inf | parametras nustato kas bus informuojamas apie būsenos pasikeitimą: 1 - informuoti operacijos savininką (vartotoją, kuris sukūrė operaciją) , 2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis |
@inf=1 |
@istorija | prie tvirtinimo operacijos rodyti istoriją: 1 - rodyti (pagal nutylėjimą), 0 - nerodyti |
@istorija=1 |
@pad_pap | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. Šiame parametre nurodomas to papildomo lauko numeris. |
@pad_pap=12 |
@suPvm | nurodo ar tvirtinimo informacijoje rodoma suma yra su PVM, ar be PVM | @suPvm=1 |
@det | nurodo ar tvirtinimui pateikiama detali informacija ar tik bendra dokumento suma | @det = 1 |
@dok1 | nurodo ar tvirtinimo informacijoje rodomas prie pirkimo prisegtas dokumentas (Rivile GAMA mygtukas "Dokumentas"). | @dok1= 1 |
@dok2 | nurodo ar tvirtinimo informacijoje rodomi prie pirkimo prisegti dokumentai (Rivile GAMA mygtukas "Dokumentai"). | @dok2= 1 |
@men | Tvirtina menedžeris nurodžius 1 – bus imamas vartotojas, kuriam vartotojo kortelėje priskirtas menedžerio kodas |
@men= 1 |
@apr_nr | Nurodo kelintas aprašymo laukas naudojamas tvirtinimo metu įrašyto komentaro išsaugojimui. 0- bus pildomas eilės tvarka sekantis ne tuščias. Nenurodžius - nepildomas. |
@apr_nr= 3 |
@auto_tv | parametre nurodomas būsenos kodas, į kurią bus automatiškai peršokama, jei operacijos tvirtinimą atlieka asmuo, kuris kartą jau patvirtino operaciją | @auto_tv=5 |
@vart_sar | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@vart_sar='MG_K42_OD_TV' |
@inf_sar | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@inf_sar='MG_K42_OD_IN' |
@inf_vart | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI' |
Menedžerio priskyrimas vartotojo kortelėje:
Procedūros naudojimo pavyzdžiai aprašyti:
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@pastaba_lauke | galima nurodyti į kokį personalo kortelės lauką įrašyti tvirtinimo metu nurodytą pastabą. | @pastaba_lauke='' |
@auto_tv | parametre nurodomas būsenos kodas, į kurią bus automatiškai peršokama, jei operacijos tvirtinimą atlieka asmuo, kuris kartą jau patvirtino operaciją | @auto_tv=5 |
@pad_pap | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. Šiame parametre nurodomas to papildomo lauko numeris. |
@pad_pap=12 |
@vart_sar | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@vart_sar='MG_K42_OD_TV' |
@inf_sar | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai. Sąrašai sudaromi funkcija mgama_vart_forma(). |
@inf_sar='MG_K42_OD_IN' |
@bukle | atmetimo atveju galima pakeisti operacijos būklę į "Anuliuota", kurios nėra rodomos kalendoriuje | @bukle=1 |
Procedūros naudojimo pavyzdys aprašytas Priėmimo į darbą procesas.
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 MGAMA - Vidinės apskaitos dokumentų tvirtinimas.
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), 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.RGI_MGAMA_PIRK_TV_CUSTOM
@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 apie būsenos pasikeitimą (1-užsakovą,2-visus dalyvavusius tvirtinime)
@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
@istorija numeric(1,0)=1, -- rodyti tvirtinimo istoriją kiekvienoje tvirtinimo operacijoje
@det numeric(1,0) = 0, -- detalizuoti pirkimo dokumentą
@pad_pap numeric(4,0) = 0, -- tvirtina padalinio vadovas, kuris nurodomas padalinio aprašymo akinukuose
@suPvm numeric(1,0) = 0, -- sumos su PVM
@dok1 numeric(1,0) = null, -- Dokumentas. Pagal nutylėjimą rodoma, nebent yra padalinio vadovas. Galima nurodyti griežtai: 0 - nerodyti, 1 - rodyti
@dok2 numeric(1,0) = null, -- Dokumentai. Pagal nutylėjimą rodoma, nebent yra padalinio vadovas. Galima nurodyti griežtai: 0 - nerodyti, 1 - rodyti
@apr_nr numeric(1,0) = null, -- Kelintas aprašymo laukas naudojamas (0-bus pildomas eilės tvarka sekantis ne tuščias). Nenurodžius - nepildomas
@auto_tv numeric(4,0)=null -- į kokią būseną peršokti, kai jau asmuo buvo patvirtinęs operaciją
AS
BEGIN
-- 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,
@men=@men,
@istorija=@istorija,
@det=@det,
@pad_pap=@pad_pap,
@suPvm=@suPvm,
@dok1=@dok1,
@dok2=@dok2,
@apr_nr=@apr_nr,
@auto_tv=@auto_tv
return @ret
END
Parametrai:
Parametras | Reikšmė | Naudojimas |
---|---|---|
@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 |
@op_tip@inf | parametras nustato kas bus informuojamas apie būsenos pasikeitimą: 1 - informuoti operacijos savininką (vartotoją, kuris sukūrė operaciją) , 2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis |
@inf=1 |
@istorija | prie tvirtinimo operacijos rodyti istoriją: 1 - rodyti (pagal nutylėjimą), 0 - nerodyti |
@istorija=1 |
@pad_pap | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. Šiame parametre nurodomas to papildomo lauko numeris. |
@pad_pap=12 |
@suPvm | nurodo ar tvirtinimo informacijoje rodoma suma yra su PVM, ar be PVM | @suPvm=1 |
@det | nurodo ar tvirtinimui pateikiama detali informacija ar tik bendra dokumento suma | @det = 1 |
@dok1 | nurodo ar tvirtinimo informacijoje rodomas prie pirkimo prisegtas dokumentas (Rivile GAMA mygtukas "Dokumentas"). | @dok1= 1 |
@dok2 | nurodo ar tvirtinimo informacijoje rodomi prie pirkimo prisegti dokumentai (Rivile GAMA mygtukas "Dokumentai"). | @dok2= 1 |
@men | Tvirtina menedžeris nurodžius 1 – bus imamas vartotojas, kuriam vartotojo kortelėje priskirtas menedžerio kodas |
@men= 1 |
@apr_nr | Nurodo kelintas aprašymo laukas naudojamas tvirtinimo metu įrašyto komentaro išsaugojimui. 0- bus pildomas eilės tvarka sekantis ne tuščias. Nenurodžius - nepildomas. |
@apr_nr= 3 |
@auto_tv | parametre nurodomas būsenos kodas, į kurią bus automatiškai peršokama, jei operacijos tvirtinimą atlieka asmuo, kuris kartą jau patvirtino operaciją | @auto_tv=5 |
Menedžerio priskyrimas vartotojo kortelėje:
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) |
Procedūroje pateikiamas pavyzdys kaip aprašyti papildomus tikrinimus, kurie veiktų pateikiant atostogų prašymą.
Pavyzdžiui:
CREATE PROCEDURE dbo.RGI_MGAMA_CREATE_ATOSTOG_PRASYMAS_CUSTOM
AS
BEGIN
-----------------------------------------------
-------------- Standartinė dalis: -------------
declare @user char(12) -- vartotojas prašantis atostogų
, @begDate datetime -- atostogų pradžia
, @endDate datetime -- atostogų pabaiga
, @atostTipas char(12) -- atostogų tipo kodas
, @pastabos varchar(500) -- nurodytos pastabos
, @pavaduojantis varchar(120) -- pavaduojantis asmuo
, @kodas_6a_f char(12) -- priėmimo operacijos kodas
IF 1=0 -- Parametrų kursorius (jis ateina iš pagrindinės procedūros RGI_MGAMA_CREATE_ATOSTOG_PRASYMAS)
CREATE TABLE #RGI_MGAMA_CREATE_ATOSTOG_PRASYMAS_CUSTOM (
[user] char(12)
, begDate datetime
, endDate datetime
, atostTipas char(12)
, pastabos varchar(500)
, pavaduojantis varchar(120)
, kodas_6a_f char(12))
-- Išsisaugome reikšmes į kintamuosius
select top 1 @user=[user], @begDate=begDate, @endDate=endDate, @atostTipas=atostTipas, @pastabos=pastabos, @pavaduojantis=pavaduojantis, @kodas_6a_f=kodas_6a_f from #RGI_MGAMA_CREATE_ATOSTOG_PRASYMAS_CUSTOM order by [user] asc
if 1=0 -- Klaidų pranešimai
CREATE TABLE #A12345 (
TAG VARCHAR(50) NOT NULL DEFAULT ' ',
Err_Code INT NOT NULL DEFAULT 0,
err_proc int not null default 2,
expr1 varchar(50) null default null,
expr2 varchar(250) null default null,
expr3 varchar(250) null default null)
-----------------------------------------------
------------ Papildomi tikrinimai: ------------
-- Privalomas pavaduojantis asmuo
if isnull(@pavaduojantis,'')=''
begin
insert into #A12345(tag, err_code, expr2, expr3)
values ('@pavaduojantis', 0, 'Nenurodytas pavaduojantis asmuo','Responsible person not defined')
return 0
end
-- Kai atostogų tipas KASMET_AVANS - leisti pateikti prašymą ne anksčiau nei 5 dienos iki atostogų pradžios
if @atostTipas='KASMET_AVANS' and datediff(day,getdate(),@begDate)<5
begin
insert into #A12345(tag, err_code, expr2, expr3)
values ('@atostTipas', 0, 'Pasirinkto atostogų tipo prašymą teikti galima, kai iki atostogų pradžios likę daugiau kaip 5 dienos','Vacation can be requested at least 5 days in advance by this vacation type')
return 0
end
return 0
END
Procedūroje pateikiamas pavyzdys kaip kalendoriuje atsistojus ant atitinkamo laikotarpio parodyti su juo susijusią papildomą informaciją.
Pavyzdžiui:
CREATE PROCEDURE dbo.RGI_MGAMA_GET_PERS_KAL_INFO_CUSTOM
@user char(12) = null, -- Vartotojas
@id varchar(50) = null, -- Informacijos rodymo id
@lang char(2) = null -- Interfeiso kalba
AS
BEGIN
-----------------------------------------------
-------------- Standartinė dalis: -------------
declare @zx char(1), @modul char(2), @op char(12)
select @zx='', @modul=isnull(upper(left(@id,2)),' '), @op=isnull(upper(right(left(@id,14),12)),'')
-- Rezultato kursorius
if dbo.f_is_table('#RGI_MGAMA_GET_PERS_KAL_INFO') = 0
select cast(null as int) as eil,
cast(null as varchar(150)) as [key],
cast(null as varchar(150)) as [value],
cast(null as varchar(20)) as [type],
cast(null as varchar(20)) as ,
cast(null as varchar(20)) as [group],
cast(null as varchar(100)) as [id],
cast(null as XML) as [data]
into #RGI_MGAMA_GET_PERS_KAL_INFO where 1=0
-----------------------------------------------
------------ Papildomi informacija: -----------
-- Rodant personalo operacijos informaciją - papildomai parodyti vadovo vardą
if @modul='6A'
begin
insert into #RGI_MGAMA_GET_PERS_KAL_INFO ([group], eil, [key], [value], [type])
select 'schema' as [group],
3 as eil,
'Vadovas' as [key],
rtrim(rtrim(K14_VARDAS)+' '+rtrim(K14_PAV)) as [value],
'inline' as [type]
from K16_OPH
inner join K12_ETP on K12_KODAS_IS=K16_KODAS_IS and K12_KODAS_0A=K16_KODAS_0A and K12_KODAS_5A=K16_KODAS_5A
inner join K14_ASM on K14_KODAS_4A=K12_KODAS_4A
where K16_KODAS_6A=@op
end
-- Rodyti tik prie personalo operacijos prisegtus dokumentus
if @modul='6A'
begin
insert into #RGI_MGAMA_GET_PERS_KAL_INFO ([group], [id], [value], [type])
select 'file' as [group], 'K00'+K00_KODAS_D3 as [Id], rtrim(case when K00_PAV = '' then (case when @lang='en' then 'Document' else 'Dokumentas' end)+'-'+K00_KODAS_D3 else K00_PAV end) + case when K00_PLET = '/' then '' else rtrim(K00_PLET) end failas, [type] = 'file'
from dbo.K00_DOKF where K00_MODUL = @modul and K00_MODUL_NR = @op and K00_TIPAS in (1,4)
union all
select 'file' as [group], 'B00'+B00_KODAS_IM as [Id], failas = rtrim(B00_PAV) + case when B00_OP_NR = '/' then '' else rtrim(rtrim(B00_OP_NR)) end, [type] = 'file'
from dbo.B00_IMP inner join dbo.I39_IMPO on I39_MODUL = B00_MODUL and I39_MODUL_NR = @op and I39_TIPAS = 3
where B00_MODUL = @modul and I39_KODAS_IM = B00_KODAS_IM and B00_OP_NR <> '/' and B00_PDF is not null
end
-- Rodyti personalo operacijos tvirtinimo informaciją
if @modul='6A'
begin
insert into #RGI_MGAMA_GET_PERS_KAL_INFO ([group], [key], [value])
select 'config' as [group], 'SHOW_HISTORY' as [key], 'true' as [value]
end
return 0
END
Standartiškai kalendoriuje rodoma paties darbuotojo ir darbuotojų, kuriems jis yra tiesioginis vadovas, informacija. Galima praplėsti tokias galimybes.
Pavyzdžiui, aprašoma, kad vartotojų grupei ADMINISTR rodytų visų darbuotojų informaciją (aktyvių priėmimo sutarčių).
CREATE PROCEDURE dbo.RGI_MGAMA_GET_PERS_KAL_CUSTOM_PRIES
@user char(12)=null, -- vartotojo kodas, kuris žiūri duomenis
@from datetime=null, -- duomenų pateikimo data (nuo)
@to datetime=null, -- duomenų pateikimo data (iki)
@lang char(2)=null, -- kalba
@response_type integer=1 -- 1 - traukiami duomenys, 5 - traukiamos filtravimo sąlygos
AS
BEGIN
-----------------------------------------------
-------------- Standartinė dalis: -------------
declare @zx char(1)
select @zx = ''
-- Kursorius, kuriame suformuojama, kurių vartotojų informacija rodoma
if dbo.f_is_table('#RGI_MGAMA_GET_PERS_KAL_users') = 0
select @user as kodas_rs,
convert(char(12),null+@zx) as kodas_6a_f,
convert(char(12),null+@zx) as kodas_6a_s,
convert(char(12),null+@zx) as kodas_is,
convert(char(12),null+@zx) as kodas_4a,
convert(char(36),null+@zx) as kodas_k12,
convert(varchar(250),null+@zx) as title,
convert(varchar(250),null+@zx) as apr1,
convert(varchar(250),null+@zx) as apr2,
convert(varchar(250),null+@zx) as apr3
into #RGI_MGAMA_GET_PERS_KAL_users
-----------------------------------------------
------------ Papildomi informacija: -----------
-- grupei ADMINISTR rodyti visų darbuotojų informaciją (aktyvių priėmimo sutarčių)
if exists(select * from R05_USER where R05_KODAS_RS=@user and R05_KODAS_RS_G='ADMINISTR')
insert into #RGI_MGAMA_GET_PERS_KAL_users ([kodas_4a])
select K12_KODAS_4A
from K16_OPH
inner join K12_ETP on K12_KODAS_IS=K16_KODAS_IS and K12_KODAS_0A=K16_KODAS_0A and K12_KODAS_5A=K16_KODAS_5A
where K12_KODAS_4A not in (select [kodas_4a] from #RGI_MGAMA_GET_PERS_KAL_users where [kodas_4a] is not null)
and K16_TIPAS in (1,2) /* Priėmimas į etatą ir perkėlimas */
and K16_UZ_POZ = 0 /* Aktyvus */
and K16_PERKELTA=2
group by K12_KODAS_4A
return 0
END
Standartiškai kalendoriuje rodomas darbuotojo vardas, pavardė, pareigos ir padalinio pavadinimas. Galima rodyti mažiau informacijos, pavyzdžiui, nerodyti padalinio ir pareigų.
CREATE PROCEDURE dbo.RGI_MGAMA_GET_PERS_KAL_CUSTOM_PO
@user char(12)=null, -- vartotojo kodas, kuris žiūri duomenis
@from datetime=null, -- duomenų pateikimo data (nuo)
@to datetime=null, -- duomenų pateikimo data (iki)
@lang char(2)=null, -- kalba
@response_type integer=1 -- 1 - traukiami duomenys, 5 - traukiamos filtravimo sąlygos
AS
BEGIN
-----------------------------------------------
-------------- Standartinė dalis: -------------
declare @zx char(1)
select @zx = ''
-- Kursorius, kuriame suformuojama, kurių vartotojų informacija rodoma
if dbo.f_is_table('#RGI_MGAMA_GET_PERS_KAL_users') = 0
select @user as kodas_rs,
convert(char(12),null+@zx) as kodas_6a_f,
convert(char(12),null+@zx) as kodas_6a_s,
convert(char(12),null+@zx) as kodas_is,
convert(char(12),null+@zx) as kodas_4a,
convert(char(36),null+@zx) as kodas_k12,
convert(varchar(250),null+@zx) as title,
convert(varchar(250),null+@zx) as apr1,
convert(varchar(250),null+@zx) as apr2,
convert(varchar(250),null+@zx) as apr3
into #RGI_MGAMA_GET_PERS_KAL_users
-- Rezultato kursorius (events)
if dbo.f_is_table('#RGI_MGAMA_GET_PERS_KAL') = 0
select
cast(null as int) as [group_id],
cast(null+@zx as char(12)) as [kodas_6a_f],
cast(null+@zx as char(12)) as [kodas_rs],
cast(null as int) as [order],
cast(null as varchar(250)) as [title],
cast(null as varchar(250)) as [title_m],
cast(null as varchar(10)) as startDate,
cast(null as varchar(10)) as endDate,
cast(null as numeric(3,0)) as color,
cast(null as numeric(1,0)) as mask,
cast(null as varchar(250)) as link,
cast(null+@zx as char(20)) as [tipas]
into #RGI_MGAMA_GET_PERS_KAL where 1=0
-- Filtravimo sąlygos iš interfeiso
if dbo.f_is_table('#tmp_params_tipas') = 0
select cast(@zx as char(14)) as kodas into #tmp_params_tipas where 1=0 -- Tipai
if dbo.f_is_table('#tmp_params_kodas_is') = 0
select cast(@zx as char(12)) as kodas into #tmp_params_kodas_is where 1=0
if dbo.f_is_table('#tmp_params_kodas_4a') = 0
select cast(@zx as char(12)) as kodas into #tmp_params_kodas_4a where 1=0
if dbo.f_is_table('#tmp_params_kodas_k12') = 0
select cast(@zx as char(36)) as kodas into #tmp_params_kodas_k12 where 1=0
-- Informacija skirta filtravimo sąlygoms
if dbo.f_is_table('#tmp_filters_tipas') = 0
select cast(@zx as char(14)) as k, cast(@zx as varchar(150)) as p, 1 as t, 0 as f into #tmp_filters_tipas where 1=0
if dbo.f_is_table('#tmp_filters_kodas_is') = 0
select n07_kodas_is as k, rtrim(n07_pav) as p, 1 as t, 0 as f into #tmp_filters_kodas_is from N07_IMON where 1=0
if dbo.f_is_table('#tmp_filters_kodas_4a') = 0
select k14_kodas_4a as k, rtrim(rtrim(k14_vardas)+' '+rtrim(k14_pav)) as p, 1 as t, 0 as f into #tmp_filters_kodas_4a from K14_ASM where 1=0
if dbo.f_is_table('#tmp_filters_kodas_k12') = 0
select cast(@zx as char(36)) as k, cast(@zx as varchar(150)) as p, 1 as t, 0 as f into #tmp_filters_kodas_k12 where 1=0
-----------------------------------------------
------------ Papildomi informacija: -----------
-- Išvalome aprašymus prie žmogaus (padalinys ir pareigos)
update #RGI_MGAMA_GET_PERS_KAL_users set apr1=null, apr2=null, apr3=null
return 0
END
Kalendoriuje papildomai parodomas laikotarpis "Nuotolinis darbas" ir jo informacija.
CREATE PROCEDURE dbo.RGI_MGAMA_GET_PERS_KAL_CUSTOM_PO
@user char(12) = null,
@from datetime = null,
@to datetime = null,
@lang char(2) = null,
@response_type int = 1
AS
BEGIN
-----------------------------------------------
-------------- Standartinė dalis: -------------
declare @zx char(1), @zn char(1)
select @zx = '', @zn = null
-- Kursorius, kuriame suformuojama, kurių vartotojų informacija rodoma
if dbo.f_is_table('#RGI_MGAMA_GET_PERS_KAL_users') = 0
select @user as kodas_rs,
convert(char(12),@zn) as kodas_6a_f,
convert(char(12),@zn) as kodas_6a_s,
convert(char(12),@zn) as kodas_is,
convert(char(12),@zn) as kodas_4a,
convert(char(36),@zn) as kodas_k12,
convert(varchar(250),@zn) as title,
convert(varchar(250),@zn) as apr1,
convert(varchar(250),@zn) as apr2,
convert(varchar(250),@zn) as apr3
into #RGI_MGAMA_GET_PERS_KAL_users
-- Rezultato kursorius (events)
if dbo.f_is_table('#RGI_MGAMA_GET_PERS_KAL') = 0
select
cast(null as int) as [group_id],
cast(@zn as char(12)) as [kodas_6a_f],
cast(@zn as char(12)) as [kodas_rs],
cast(null as int) as [order],
cast(@zn as varchar(250)) as [title],
cast(@zn as varchar(250)) as [title_m],
cast(@zn as varchar(10)) as startDate,
cast(@zn as varchar(10)) as endDate,
cast(null as numeric(3,0)) as color,
cast(null as numeric(1,0)) as mask,
cast(@zn as varchar(250)) as link,
cast(@zn as char(20)) as [tipas]
into #RGI_MGAMA_GET_PERS_KAL where 1=0
-- Filtravimo sąlygos iš interfeiso
if dbo.f_is_table('#tmp_params_tipas') = 0
select cast(@zx as char(14)) as kodas into #tmp_params_tipas where 1=0 -- Tipai
if dbo.f_is_table('#tmp_params_kodas_is') = 0
select cast(@zx as char(12)) as kodas into #tmp_params_kodas_is where 1=0
if dbo.f_is_table('#tmp_params_kodas_4a') = 0
select cast(@zx as char(12)) as kodas into #tmp_params_kodas_4a where 1=0
if dbo.f_is_table('#tmp_params_kodas_k12') = 0
select cast(@zx as char(36)) as kodas into #tmp_params_kodas_k12 where 1=0
-- Informacija skirta filtravimo sąlygoms
if dbo.f_is_table('#tmp_filters_tipas') = 0
select cast(@zx as char(14)) as k, cast(@zx as varchar(150)) as p, 1 as t, 0 as f into #tmp_filters_tipas where 1=0
if dbo.f_is_table('#tmp_filters_kodas_is') = 0
select n07_kodas_is as k, rtrim(n07_pav) as p, 1 as t, 0 as f into #tmp_filters_kodas_is from N07_IMON where 1=0
if dbo.f_is_table('#tmp_filters_kodas_4a') = 0
select k14_kodas_4a as k, rtrim(rtrim(k14_vardas)+' '+rtrim(k14_pav)) as p, 1 as t, 0 as f into #tmp_filters_kodas_4a from K14_ASM where 1=0
if dbo.f_is_table('#tmp_filters_kodas_k12') = 0
select cast(@zx as char(36)) as k, cast(@zx as varchar(150)) as p, 1 as t, 0 as f into #tmp_filters_kodas_k12 where 1=0
-----------------------------------------------
------------ Papildoma informacija: -----------
-- Informacija iš DVS operacijų (Nuotolinis darbas)
declare @kodas_rd char(12)
select @kodas_rd='MGAMA_SS_F02'
insert into #RGI_MGAMA_GET_PERS_KAL ([kodas_6a_f],[kodas_rs],[order],[title],[title_m],[startDate],[endDate],,[mask],[link],[tipas])
SELECT [kodas_6a_f],
[kodas_rs],
30 as [order],
'Nuotolinis darbas' as [title],
'Nuotoliu' as [title_m],
LEFT(K42_APRASYMAS3,10) as startDate,
RIGHT(rtrim(K42_APRASYMAS3),10) as endDate,
8 as color,
case when L19_PAV='Patvirtinta' then 0 else 1 end as mask,
'OD'+K42_KODAS_OD as link,
'OD'+rtrim(K42_KODAS_RD) as tipas
from K42_OD
inner join L19_BUS on K42_BUSENA=L19_BUSENA and L19_MODUL='OD' and L19_TIPAS=K42_TIPAS
inner join #RGI_MGAMA_GET_PERS_KAL_users on kodas_rs=K42_KODAS_RS
where K42_KODAS_RD=@kodas_rd and K42_BUKLE=1
and K42_APRASYMAS3 like '20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] - 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
and convert(datetime,LEFT(K42_APRASYMAS3,10),120)<@to and convert(datetime,RIGHT(rtrim(K42_APRASYMAS3),10),120)>@from
-- Grąžiname filtravimo sąlygas
if @response_type=5
begin
insert into #tmp_filters_tipas (k,p,t,f) select 'OD'+@kodas_rd as k, 'Nuotolinis darbas' as pav, 1 as t, 0 as f
return 0
end
return 0
END
Procedūros naudojimo pavyzdys aprašytas: Pardavimo rezervavimo tvirtinimo procesas.
CREATE PROCEDURE dbo.MGAMA_CUSTOM_PARD
@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, U-atidarytas tvirtinimui
@kodas_be char(12) = null, -- esamos būsenos kodas
@pastaba varchar(150) = null -- atšaukimo priežastis
AS
BEGIN
if @veiksmas not in ('I','U')
return 0
-- Išsisaugome rezultatą į kursorių
select * into #tmp_pard from I06_PARH where I06_KODAS_PO=@op
-- Sugeneruojame XML
declare @xml varchar(max)
select @xml=(
SELECT *
FROM (
select 1 as eil, 'Klientas' as [key], rtrim(I06_PAV) as [value], 'inline' as [type] from #tmp_pard
UNION ALL
select 2 as eil, 'Dokumento Nr.' as [key], rtrim(I06_DOK_NR) as [value], 'inline' as [type] from #tmp_pard
UNION ALL
select 3 as eil, 'Dokumento data' as [key], CONVERT(varchar,I06_DOK_DATA,(102)) as [value], 'inline' as [type] from #tmp_pard
UNION ALL
select 4 as eil, 'Suma be PVM' as [key], rtrim(str(I06_SUMA,12,2))+'€' as [value], 'inline' as [type] from #tmp_pard
UNION ALL
select 5 as eil, 'Suma su PVM' as [key], rtrim(str(I06_SUMA+I06_SUMA_PVM,12,2))+'€' as [value], 'inline' as [type] from #tmp_pard
UNION ALL
select 6 as eil, 'Pastabos' as [key], rtrim(I06_PASTABOS) as [value], 'block' as [type] from #tmp_pard where isnull(I06_PASTABOS,'') <> ''
) as [schema]
ORDER BY eil
FOR XML auto, elements
)
-- Atnaujiname tvirtinimo operacijas
update dbo.L21_BUSP
set
L21_APRASYMAS1=rtrim(I06_PAV),
L21_APRASYMAS2='Pardavimo rezervas',
L21_APRASYMAS3=rtrim(I06_DOK_NR)+' '+rtrim(str(I06_SUMA,12,2))+'€',
L21_XML=@xml
from #tmp_pard
where L21_KODAS_BE=@kodas_be and L21_MODUL=@modul and L21_KODAS=@op and L21_PERKELTA=1 and (@veiksmas='I' OR L21_KODAS_RS=@user)
return 0
END