---
title: "MGAMA - procedūros"
url: "https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas"
updated: "2026-05-12"
parent: "https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas.md"
---

# MGAMA - procedūros

Aprašant būsenas naudojamos įvairios procedūros. Toliau pateikiami detalesni jų paaiškinimai:

- [Šabloninės procedūros ir Fox-inės programos](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#%C5%A1ablonin%C4%97s-proced%C5%ABros).
- [Klientų ("custom") procedūros ir Fox-inės programos](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#klient%C5%B3-custom-proced%C5%ABros).



## Šabloninės procedūros



| Pavadinimas                                                  | Aprašymas                                                  |
| ------------------------------------------------------------ | ---------------------------------------------------------- |
| [RGI_MGAMA_PERS_AT](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_pers_at-personalo-atostog%C5%B3-pra%C5%A1ym%C5%B3-tvirtinimas) | Personalo atostogų prašymų tvirtinimas                     |
| [RGI_MGAMA_PERS_KOMAND](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_pers_komand-komandiruo%C4%8Di%C5%B3-pra%C5%A1ym%C5%B3-tvirtinimas) | Komandiruočių prašymų tvirtinimas                          |
| [PERS_DOC](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#pers_doc-_thisform-lcwordsabl-lldoctopdf-komandiruo%C4%8Di%C5%B3-%C4%AFsakym%C5%B3-f) | Komandiruočių įsakymų formavimas (Fox-inė programa)        |
| [RGI_MGAMA_PERS_TV](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_pers_tv-personalo-dokument%C5%B3-tvirtinimas) | Personalo dokumentų tvirtinimas                            |
| [RGI_MGAMA_DVS_TV](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_dvs_tv-dvs-dokument%C5%B3-tvirtinimas) | DVS dokumentų tvirtinimas                                  |
| [RGI_MGAMA_PIRK_TV](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_pirk_tv-pirkimo-dokument%C5%B3-tvirtinimas) | Pirkimo dokumentų tvirtinimas                              |
| [RGI_MGAMA_PERS_PRI](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_pers_pri-pri%C4%97mimo-operacijos-tvirtinimas) | Priėmimo operacijos tvirtinimas                            |
| [RGI_MGAMA_ATSARGOS_TV](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_atsargos_tv-atsargų-dokumentų-tvirtinimas) | Atsargų dokumentų tvirtinimas                              |
| [RGI_MGAMA_VIDINIAI_TV](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_vidiniai_tv-vidinių-dokumentų-tvirtinimas) | Vidinių dokumentų tvirtinimas                              |
| [RGI_MGAMA_ILGT_TV](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_ilgt_tv-ilgalaikio-turto-operacijų-tvirtinimas) | Ilgalaikio turto operacijų tvirtinimas                     |
| [VD_TVIRT](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#vd_tvirt-vidin%C4%97s-apskaitos-dokument%C5%B3-tvirtinimas) | Vidinės apskaitos dokumentų tvirtinimas (Fox-inė programa) |



#### RGI_MGAMA_PERS_AT - Personalo atostogų prašymų tvirtinimas 

Parametrai:

| Parametras    | Reikšmė                                                      | Naudojimas                                                   |
| ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| @inf          | parametras nustato kas bus informuojamas apie būsenos pasikeitimą:<br/>1 - informuoti užsakovą (atostogų operacijai priskirtą personalo kodą) ,<br/>2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis,<br/>8 - informuoti visus dalyvavusius atostogų tvirtinime (tvirtinant atostogų atšaukimą ar pratęsimą),<br/>9 - informuoti nurodytą pavaduojantį asmenį | @inf=1                                                       |
| @vad          | papildomai suformuoti būsenos tvirtinimą etato padalinyje aprašytam vadovui | @vad=1                                                       |
| @rusis        | tvirtinant būseną pakeisti personalo operacijos rūšį: <br/>1-dokumentas, 2-prašymas | @rusis=1                                                     |
| @atsaukti     | leisti atšaukti būseną pačiam prašymą pateikusiam darbuotojui;<br/>nurodžius reikšmę **2** ir vartotojui pačiam atšaukus operaciją, bus sukuriama atšaukimo operacija, o ne koreguojama esama atostogų operacija. | @atsaukti=1                                                  |
| @istorija     | prie tvirtinimo operacijos rodyti istoriją:<br/>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<br />`@at_fil='kodas_0a=K16_KODAS_0A'`  -- Tik užimantys tą patį etato kodą<br />`@at_fil='kodas_5a=K16_KODAS_5A' ` -- Tik tiems kam atitinka specialybė<br />`@at_fil='vadovas=K12_KODAS_4A'`  -- Tik tiems, kam nurodytas tas pats tiesioginis vadovas<br />`@at_fil='1=0'`  -- Visai neformuoti kartu atostogaujančių asmenų sąrašo<br />`@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<br/>`@at_fil='vadovas_pap=K12_VADOVAS_PAP'` -- Tas pats papildomas vadovas<br/>`@at_fil='vadovas_pap=K12_KODAS_4A or vadovas_pap=k12_vadovas_pap'` -- Papildomas vadovas kitiems yra papildomas arba pagrindinis |
| @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.<br/>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<br/>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.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_K16_6A_PP'                                     |
| @inf_sar      | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_K16_6A_IF'                                      |
| @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. <br/>Š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'                                          |
| @tpm_ne_at    | nurodomi atostogų tipai, kurių netraukiame į sąrašą “tuo pat metu atostogauja” | @tpm_ne_at='VAIK,14'                                         |
| @vart_owner   | tvirtina prašyme nurodytas asmuo                             | @vart_owner=1                                                |
| @pavad        | tvirtina pavaduojantis asmuo                                 | @pavad=1                                                     |
| @atsaukti_men | per kiek mėnesių nuo atostogų pabaigos galima atšaukti atostogas (-1 - praėjęs mėnuo, 0 - esamas mėnuo, 1 - sekantis mėnuo) | @atsaukti_men=0                                              |
| @rusis_a      | galima nurodyti į kurią rūšį pakeisti esamą operacijos rūšį, kai operacija atšaukiama: <br/>1-dokumentas, 2-prašymas | @rusis_a=2                                                   |
| @reset        | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                                                     |

Papildomo vadovo įvedimui sąraše "Etatai padalinyje" sukuriamas papildomas laukas.

> **Patarimas:** Servisas ->Personalas -> Etatai padalinyje

![mgamat_23](https://gidas.rivile.lt/user/pages/010.internetiniai_moduliai/04.mgama/03.MGAMA_diegimas/09.MGAMA_tvirtinimas/mgamat_23.png)

Procedūros naudojimo pavyzdžiai aprašyti:

-  [MGAMA - atostogų prašymų teikimas ir tvirtinimas.](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_atostogos.md)
- [Kaip aprašyti atostogų prašymų tvirtinimo būsenas, kai darbuotojo tiesioginis vadovas yra jis pats?](https://gidas.rivile.lt/internetiniai_moduliai/mgama/duk/duk_005.md)
- [Atostogų prašymų tvirtinimas, kai tvirtina paeiliui du vadovai.](https://gidas.rivile.lt/internetiniai_moduliai/mgama/duk/duk_006.md)





#### RGI_MGAMA_PERS_KOMAND - Komandiruočių prašymų 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ūšį:<br/>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ą:<br/>1 - informuoti užsakovą (komandiruočių operacijai priskirtą personalo kodą) ,<br/>2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis | @inf=1                                                       |
| @istorija  | prie tvirtinimo operacijos rodyti istoriją:<br/>1 - rodyti (pagal nutylėjimą), 0 - nerodyti | @istorija=1                                                  |
| @data_op   | nurodžius šį parametrą, po patvirtinimo bus pakeista operacijos data<br/>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. <br/>Š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.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_K16_6A_PP'                                     |
| @inf_sar   | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_K16_6A_IF'                                      |
| @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'                                          |
| @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 | parametre nurodoma, į kurią būseną peršokti, kai papildomas vadovas nėra nurodytas | Pvz., @vad_pap_b=3                                           |
| @reset     | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                                                     |

Procedūros naudojimo pavyzdys aprašytas:

- [MGAMA - komandiruočių prašymų teikimas ir tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_komandiruotes.md).
- [Komadiruočių įsakymų formavimas ir tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_sprendimai/mgama_custom_komandiruotes.md).

#### 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 [Komadiruočių įsakymų formavimas ir tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_sprendimai/mgama_custom_komandiruotes.md).



#### 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ūšį:<br/>1-dokumentas, 2-prašymas | @rusis=1                 |
| @istorija  | prie tvirtinimo operacijos rodyti istoriją:<br/>1 - rodyti (pagal nutylėjimą), 0 - nerodyti | @istorija=1              |
| @inf       | parametras nustato kas bus informuojamas apie būsenos pasikeitimą:<br/>1 - informuoti užsakovą (operacijai priskirtą personalo kodą) ,<br/>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. <br/>Š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.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_K16_6A_PP' |
| @inf_sar   | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_K16_6A_IF'  |
| @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'      |
| @reset     | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                 |

> **Informacija:** 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ą](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_sprendimai/mgama_custom_padeka.md).
- [Nuobaudos patvirtinimo procesas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_sprendimai/mgama_custom_nuobauda.md).



#### 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 (**naudoti nerekomenduojame**) | @rusis=1                                                     |
| @visi         | leidimai visiems sistemos vartotojams - tvirtinimo operacijos suformuojamos visiems SQL vartotojams | @visi=1                                                      |
| @istorija     | prie tvirtinimo operacijos rodyti istoriją:<br/>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ą:<br/>1 - informuoti operacijos savininką ,<br/>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. <br/>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. <br/>Š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. </br>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ė:<br/>1- Aktyvi, 2- Archyvuota, 3- Anuliuota | @bukle=1                                                     |
| @action_modul | nurodžius šį parametrą, po patvirtinimo bus sukuriama atitinkama operacija. <br/>Galimos reikšmės:<br/>- nurodžius @action_modul='--' , atliekamas veiksmas, kuris aprašytas pačioje formoje,<br/>- nurodžius @action_modul='6A', bus suformuota personalo operacija. <br/>- nurodžius @action_modul='4A', bus pakoreguota personalo kortelė. <br/>**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.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_K42_OD_PP'                                     |
| @inf_sar      | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_K42_OD_IF'                                      |
| @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                                               |
| @reset        | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                                                     |

Procedūros naudojimo pavyzdžiai aprašyti: 

- [MGAMA - Įmonės vidaus tvarkos taisyklių tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_vidaus_taisykles.md),  
- [MGAMA - DVS ataskaitų tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_dvs_atask.md),
- [MGAMA - DVS dokumentų (raštų) tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_dvs.md),
- [MGAMA - Dokumentų vizavimo procesas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_vizavimas.md).



#### RGI_MGAMA_PIRK_TV  - Pirkimo dokumentų tvirtinimas 

Parametrai:

| Parametras  | Reikšmė                                                      | Naudojimas                   |
| ----------- | ------------------------------------------------------------ | ---------------------------- |
| @inf        | parametras nustato kas bus informuojamas apie būsenos pasikeitimą:<br/>1 - informuoti operacijos savininką (vartotoją, kuris sukūrė operaciją) ,<br/>2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis | @inf=1                       |
| @istorija   | prie tvirtinimo operacijos rodyti istoriją:<br/>1 - rodyti (pagal nutylėjimą), 0 - nerodyti | @istorija=1                  |
| @pad_pap    | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. <br/>Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. <br/>Š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:<br/>1 - grąžinamos detalios eilutės pagal prekes,<br/>2 - grąžinamos detalios eilutės su priskirtomis serijomis, objektais bei centrais. | @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<br/>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.<br/>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.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_I06_PO_PP'     |
| @vart_sar_b | parametre nurodoma, į kurią būseną peršokti, kai nėra nė vieno tvirtinančio vartotojo sąraše, sukonfigūruotame per parametrą @vart_sar | Pvz., @vart_sar_b=5          |
| @inf_sar    | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_I06_PO_IF'      |
| @inf_vart   | nurodomas vartotojas ar  vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI'          |
| @suma_min1  | suma, iki kurios bus peršokama į būseną nurodytą parametre @suma_bus1 | @suma_min1=100,@suma_bus1=60 |
| @suma_min2  | suma, iki kurios bus peršokama į būseną nurodytą parametre @suma_bus2 | @suma_min2=500, suma_bus2=59 |
| @reset      | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                     |

**Menedžerio priskyrimas vartotojo kortelėje:**

![mgamavid_04](https://gidas.rivile.lt/user/pages/010.internetiniai_moduliai/04.mgama/03.MGAMA_diegimas/09.MGAMA_tvirtinimas/mgamavid_04.png)



Procedūros naudojimo pavyzdžiai aprašyti:

- [MGAMA - Pirkimo dokumentų tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_pirkimai.md),
- [Pirkimo dokumentų tvirtinimo procesas, atsižvelgiant į dokumento sumą](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_sprendimai/mgama_custom_pirkimai_s.md),
- [MGAMA - Dokumentų vizavimo procesas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_vizavimas.md),
- [Pirkimo dokumentų tvirtinimo proceso išskirstymas padalinių vadovams](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_sprendimai/mgama_custom_pirkimai_padal.md).

#### RGI_MGAMA_PERS_PRI  - Priėmimo operacijos tvirtinimas 

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. <br/>Š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.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_K16_6A_PP' |
| @inf_sar       | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_K16_6A_IF'  |
| @bukle         | atmetimo atveju galima pakeisti operacijos būklę į "Anuliuota", kurios nėra rodomos kalendoriuje | @bukle=1                 |
| @reset         | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                 |

Procedūros naudojimo pavyzdys aprašytas [Priėmimo į darbą procesas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_priemimas.md).

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. <br/>Galimi variantai: K14_KODAS_RS, K14_E_MAIL, K16_APRASYMAS1, K16_APRASYMAS2, ... ,K16_APRASYMAS6, K16_PASTABOS.



#### RGI_MGAMA_ATSARGOS_TV  - Atsargų dokumentų tvirtinimas 

Parametrai:

| Parametras  | Reikšmė                                                      | Naudojimas               |
| :---------- | ------------------------------------------------------------ | ------------------------ |
| @inf        | parametras nustato kas bus informuojamas apie būsenos pasikeitimą:<br/>1 - informuoti operacijos savininką (vartotoją, kuris sukūrė operaciją) ,<br/>2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis | @inf=1                   |
| @istorija   | prie tvirtinimo operacijos rodyti istoriją:<br/>1 - rodyti (pagal nutylėjimą), 0 - nerodyti | @istorija=1              |
| @pad_pap    | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai.<br/>Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"),  kuriame iš vartotojų sąrašo parenkamas padalinio vadovas.<br/>Šiame parametre nurodomas to papildomo lauko numeris. | @pad_pap=12              |
| @dok1       | nurodo ar tvirtinimo informacijoje rodomas prie operacijos  prisegtas dokumentas (Rivile GAMA mygtukas "**Dokumentas**"). | @dok1= 1                 |
| @dok2       | nurodo ar tvirtinimo informacijoje rodomi prie operacijos  prisegti dokumentai (Rivile GAMA mygtukas "**Dokumentai**"). | @dok2= 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               |
| @auto_b     | nurodoma į kurią būseną peršokti, kai prašymą pateikia tas pats žmogus, kuris yra ir tvirtintojas | @auto_b=14               |
| @vart_sar   | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_I11_IN_PP' |
| @vart_sar_b | parametre nurodoma, į kurią būseną peršokti, kai nėra nė vieno tvirtinančio vartotojo sąraše, sukonfigūruotame per parametrą @vart_sar | Pvz., @vart_sar_b=5      |
| @inf_sar    | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_I11_IN_IF'  |
| @inf_vart   | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI'      |
| @atsaukti   | leisti atšaukti būseną pačiam prašymą pateikusiam darbuotojui | @atsaukti=1              |
| @reset      | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                 |

Procedūros naudojimo pavyzdžiai aprašyti:

- [MGAMA - Atsargų dokumentų tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_atsargos.md),
- [MGAMA - Dokumentų vizavimo procesas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_vizavimas.md).

#### RGI_MGAMA_VIDINIAI_TV  - Vidinių dokumentų tvirtinimas 

Parametrai:

| Parametras      | Reikšmė                                                      | Naudojimas               |
| :-------------- | ------------------------------------------------------------ | ------------------------ |
| @inf            | parametras nustato kas bus informuojamas apie būsenos pasikeitimą:<br/>1 - informuoti operacijos savininką (vartotoją, kuris sukūrė operaciją) ,<br/>2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis | @inf=1                   |
| @istorija       | prie tvirtinimo operacijos rodyti istoriją:<br/>1 - rodyti (pagal nutylėjimą), 0 - nerodyti | @istorija=1              |
| @pad_pap        | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai.<br/>Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"),  kuriame iš vartotojų sąrašo parenkamas padalinio vadovas.<br/>Šiame parametre nurodomas to papildomo lauko numeris. | @pad_pap=12              |
| @dok1           | nurodo ar tvirtinimo informacijoje rodomas prie operacijos  prisegtas dokumentas (Rivile GAMA mygtukas "**Dokumentas**"). | @dok1= 1                 |
| @dok2           | nurodo ar tvirtinimo informacijoje rodomi prie operacijos  prisegti dokumentai (Rivile GAMA mygtukas "**Dokumentai**"). | @dok2= 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               |
| @auto_b         | nurodoma į kurią būseną peršokti, kai prašymą pateikia tas pats žmogus, kuris yra ir tvirtintojas | @auto_b=14               |
| @vart_sar       | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_I09_VD_PP' |
| @vart_sar_b     | parametre nurodoma, į kurią būseną peršokti, kai nėra nė vieno tvirtinančio vartotojo sąraše, sukonfigūruotame per parametrą @vart_sar | Pvz., @vart_sar_b=5      |
| @inf_sar        | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_I09_VD_IF'  |
| @inf_vart       | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI'      |
| @atsaukti       | leisti atšaukti būseną pačiam prašymą pateikusiam darbuotojui | @atsaukti=1              |
| @mscan_paruosta | parametre nurodoma, į kurią būseną peršokti, kai baigiamas MSCAN atrinkimas. | @mscan_paruosta=12       |
| @sumos_rod      | nurodžius šį parametrą, tvirtinimo informacijoje nebus rodomos operacijų sumos | @sumos_rod=0             |
| @reset          | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                 |



#### RGI_MGAMA_ILGT_TV  - Ilgalaikio turto operacijų tvirtinimas 

Parametrai:

| Parametras  | Reikšmė                                                      | Naudojimas               |
| :---------- | ------------------------------------------------------------ | ------------------------ |
| @inf        | parametras nustato kas bus informuojamas apie būsenos pasikeitimą:<br/>1 - informuoti operacijos savininką (vartotoją, kuris sukūrė operaciją) ,<br/>2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis | @inf=1                   |
| @istorija   | prie tvirtinimo operacijos rodyti istoriją:<br/>1 - rodyti (pagal nutylėjimą), 0 - nerodyti | @istorija=1              |
| @dok1       | nurodo ar tvirtinimo informacijoje rodomas prie operacijos  prisegtas dokumentas (Rivile GAMA mygtukas "**Dokumentas**"). | @dok1= 1                 |
| @dok2       | nurodo ar tvirtinimo informacijoje rodomi prie operacijos  prisegti dokumentai (Rivile GAMA mygtukas "**Dokumentai**"). | @dok2= 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               |
| @auto_b     | nurodoma į kurią būseną peršokti, kai prašymą pateikia tas pats žmogus, kuris yra ir tvirtintojas | @auto_b=14               |
| @vart_sar   | nurodžius parametrą, tvirtinimą atlieka vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @vart_sar='MG_I11_IN_PP' |
| @vart_sar_b | parametre nurodoma, į kurią būseną peršokti, kai nėra nė vieno tvirtinančio vartotojo sąraše, sukonfigūruotame per parametrą @vart_sar | Pvz., @vart_sar_b=5      |
| @inf_sar    | nurodžius parametrą, apie pasikeitusią būseną bus informuoti vartotojai iš nurodyto sąrašo priskirti tvirtinamai operacijai.<br/>Sąrašai sudaromi funkcija [mgama_vart_forma()](https://gidas.rivile.lt/sistemos_programavimas/funkcijos/integraciju_funkcijos/41_mgama_vart_forma.md). | @inf_sar='MG_I11_IN_IF'  |
| @inf_vart   | nurodomas vartotojas ar vartotojų grupė, kuriuos reikia informuoti apie pasikeitusią būseną | @inf_vart='VADOVAI'      |
| @atsaukti   | leisti atšaukti būseną pačiam prašymą pateikusiam darbuotojui | @atsaukti=1              |
| @reset      | nurodžius šį parametrą, bus išvaloma tvirtinimų istorija, kai operacija atšaukiama, ir pradedamas naujas tvirtinimo ciklas<br/>(1 - išvalo viską, palieka tik atmetimo atšaukimą, <br/>2 - išvalo viską,<br/>3 - išvalo viską, palieka pirmos būsenos tvirtinimą) | @reset=3                 |

#### 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 [MGAMA - Vidinės apskaitos dokumentų tvirtinimas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_vidiniai.md).



## Klientų ("custom") procedūros



| Pavadinimas                                                  | Aprašymas                                                    |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| [RGI_MGAMA_PIRK_TV_CUSTOM](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_pirk_tv_custom-pirkimo-dokument%C5%B3-tvirtinimas-atsi%C5%BEvelg) | Pirkimo dokumentų tvirtinimas, atsižvelgiant į dokumento sumą |
| [PIRK_BUS_CUSTOM](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#pirk_bus_custom-b%C5%ABsenos-parinkimas) | Būsenos parinkimas (Fox-inė programa)                        |
| [RGI_MGAMA_CREATE_ATOSTOG_PRASYMAS_CUSTOM](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_create_atostog_prasymas_custom-perima-valdym%C4%85-teikiant) | Perima valdymą teikiant atostogų prašymą: tikrinama ar nurodytas pavaduojantis asmuo, ir atostogų tipas |
| [RGI_MGAMA_GET_PERS_KAL_INFO_CUSTOM](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_get_pers_kal_info_custom-kalendoriaus-%C4%AFvykio-detalizac) | Kalendoriaus įvykio detalizacija: rodant personalo operacijos informaciją, papildomai rodomas vadovo vardas, pavardė, prisegti dokumentai, tvirtinimo informacija |
| [RGI_MGAMA_GET_PERS_KAL_CUSTOM_PRIES](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_get_pers_kal_custom_pries-proced%C5%ABra-prie%C5%A1-kalendoriaus) | Procedūra prieš kalendoriaus standartinių duomenų suformavimą: visų darbuotojų informacijos rodymas kalendoriuje |
| [RGI_MGAMA_GET_PERS_KAL_CUSTOM_PO](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_get_pers_kal_custom_po-informacijos-apie-nuotolinį-dar) | Procedūra po kalendoriaus standartinių duomenų suformavimo: kalendoriuje rodoma mažiau informacijos, nerodomas padalinys ir pareigos |
| [RGI_MGAMA_GET_PERS_KAL_CUSTOM_PO](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_get_pers_kal_custom_po-informacijos-apie-nuotolinį-dar) | Procedūra po kalendoriaus standartinių duomenų suformavimo: kalendoriuje rodoma informacija iš DVS operacijų (Nuotolinis darbas). |
| [MGAMA_CUSTOM_PARD](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#mgama_custom_pard-xml-formavimo-proced%C5%ABra) | XML formavimo procedūra: pardavimo rezervavimo tvirtinimo procesas |
| [RGI_MGAMA_CREATE_KOMAND_PRASYMAS_CUSTOM](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_create_komand_prasymas_custom-perima-valdym%C4%85-teikiant) | Perima valdymą teikiant komandiruočių prašymą: tikrinama, ar nurodyta komandiruočių vieta ir tikslas. |



> **Dėmesio:** 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**:<br/>I – INIT, <br/>P – patvirtinimas, <br/>A – atmetimas, <br/>O – metodas po būsenos patvirtinimo, <br/>U – kai atidaroma tvirtinimo operacijos forma MGAMA sistemoje, <br/>T – kviečiama atnaujinant leidimus. |
| @kodas_be char(12)    | **esamos būsenos kodas** (pvz.: 000000000001)                |
| @pastaba varchar(150) | **atšaukimo priežastis** (pvz.: Komentaras)                  |



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

> **Informacija:** 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](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_diegimas/mgama_tvirtinimas.md#rgi_mgama_pirk_tv-pirkimo-dokument%C5%B3-tvirtinimas).

```
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ą:<br/>1 - informuoti operacijos savininką (vartotoją, kuris sukūrė operaciją) ,<br/>2 - informuoti visus operacijose tvirtinime dalyvavusius asmenis | @inf=1        |
| @istorija   | prie tvirtinimo operacijos rodyti istoriją:<br/>1 - rodyti (pagal nutylėjimą), 0 - nerodyti | @istorija=1   |
| @pad_pap    | nurodžius parametrą, tvirtinimą atlieka padalinių vadovai. <br/>Padalinių sąraše sukuriamas papildomas laukas (per "akinukus"), kuriame iš vartotojų sąrašo parenkamas padalinio vadovas. <br/>Š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<br/>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.<br/>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:**

![mgamavid_04](https://gidas.rivile.lt/user/pages/010.internetiniai_moduliai/04.mgama/03.MGAMA_diegimas/09.MGAMA_tvirtinimas/mgamavid_04.png)



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)).<br/> 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](https://gidas.rivile.lt/user/pages/010.internetiniai_moduliai/04.mgama/03.MGAMA_diegimas/09.MGAMA_tvirtinimas/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) |

#### RGI_MGAMA_CREATE_ATOSTOG_PRASYMAS_CUSTOM  - Perima valdymą teikiant atostogų prašymą

> **Informacija:** Procedūroje pateikiamas pavyzdys kaip aprašyti papildomus tikrinimus, kurie veiktų pateikiant atostogų prašymą. 

Pavyzdžiui:

-  tikrinama ar nurodytas pavaduojantis asmuo, 
- tikrinamas atostogų tipas (pvz., negalima rinktis atostogų tipo, kuriame nurodyta, kad atostoginiai išmokami prieš 3 dienas iki atostogų pradžios, jeigu realiai ki atostogų pradžios belikę mažiau nei 5 dienos).

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



#### RGI_MGAMA_GET_PERS_KAL_INFO_CUSTOM  - Kalendoriaus įvykio detalizacija

> **Informacija:** Procedūroje pateikiamas pavyzdys kaip kalendoriuje atsistojus ant atitinkamo laikotarpio parodyti su juo susijusią papildomą  informaciją. 

Pavyzdžiui:

- rodant personalo operacijos informaciją - papildomai parodyti vadovo vardą,
- rodyti tik prie personalo operacijos prisegtus dokumentus,
- rodyti personalo operacijos tvirtinimo informaciją.

```
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 color,
			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
```



#### RGI_MGAMA_GET_PERS_KAL_CUSTOM_PRIES  - Procedūra prieš kalendoriaus standartinių duomenų suformavimo

> **Informacija:** 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
```

#### RGI_MGAMA_GET_PERS_KAL_CUSTOM_PO  - Procedūra po kalendoriaus standartinių duomenų suformavimo

> **Informacija:** 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
```



#### RGI_MGAMA_GET_PERS_KAL_CUSTOM_PO  - informacijos apie nuotolinį darbą rodymas kalendoriuje 

> **Informacija:** 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],color,[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
```



![mgamat_24](https://gidas.rivile.lt/user/pages/010.internetiniai_moduliai/04.mgama/03.MGAMA_diegimas/09.MGAMA_tvirtinimas/mgamat_24.png)





![mgamat_25](https://gidas.rivile.lt/user/pages/010.internetiniai_moduliai/04.mgama/03.MGAMA_diegimas/09.MGAMA_tvirtinimas/mgamat_25.png)



#### MGAMA_CUSTOM_PARD  - XML formavimo procedūra

Procedūros naudojimo pavyzdys aprašytas: [Pardavimo rezervavimo tvirtinimo procesas](https://gidas.rivile.lt/internetiniai_moduliai/mgama/mgama_sprendimai/mgama_custom_pardavimai.md).

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



#### RGI_MGAMA_CREATE_KOMAND_PRASYMAS_CUSTOM  - Perima valdymą teikiant komandiruočių prašymą

```
CREATE PROCEDURE dbo.RGI_MGAMA_CREATE_KOMAND_PRASYMAS_CUSTOM
AS
BEGIN

declare  @user char(12)
		,@begDate datetime
		,@endDate datetime
		,@komandTipas char(12)
		,@vietosKodas char(12)
		,@vietosPavadinimas char(100)
		,@komandTikslas char(100)
		,@pastabos varchar(500)
		,@kodas_6a_f char(12)

IF 1=0
	CREATE TABLE #RGI_MGAMA_CREATE_KOMAND_PRASYMAS_CUSTOM (
		[user] char(12)
		, begDate datetime
		, endDate datetime
		, komandTipas char(12)
		, vietosKodas char(12)
		, vietosPavadinimas char(100)
		, komandTikslas char(100)
		, pastabos varchar(500)
		, kodas_6a_f char(12))

select @user=[user], @begDate=begDate, @endDate=endDate, @komandTikslas=komandTikslas, @vietosKodas=vietosKodas, @vietosPavadinimas=vietosPavadinimas, @komandTikslas=komandTikslas, @pastabos=pastabos, @kodas_6a_f=kodas_6a_f from #RGI_MGAMA_CREATE_KOMAND_PRASYMAS_CUSTOM

if 1=0
	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:

--declare @param_mgama_kom_ct varchar(100)
--select @param_mgama_kom_ct=dbo.RGI_uf_param_96('MGAMA_KOM_CT','6A',@user,1)
--if @param_mgama_kom_ct='.T.' 
	begin

		if isnull(@vietosKodas,'')='' 
			begin
				insert into #A12345(tag, err_code, expr2, expr3)
				values ('@vietosKodas', 552331, 'Nenurodyta komandiruočių vieta','Business trip destination was not provided')
				select * from #A12345
				drop table #A12345
				return 0
			end

		if isnull(@komandTikslas,'')='' 
			begin
				insert into #A12345(tag, err_code, expr2, expr3)
				values ('@komandTikslas', 552332, 'Nenurodytas komandiruočių tikslas','Purpose of business trip was not provided')
				select * from #A12345
				drop table #A12345
				return 0
			end
	end

return 0

END
```
