Palaikomi moduliai: pirkimai, pardavimai, vidiniai judėjimai, kaupikliai, inventorizacija, gamyba
Šiam sprendimui realizuoti naudojamos fomulės
Servisas -> Kortelės -> Formulės
Sukuriama nauja formulė, kurioje aprašoma papildoma tikrinimo logika.

Formulės pavyzdys - atostogų prašymo dienos kontrolė, kuri neleidžia prašyti atostogų, likus mažiau nei 5 dienoms iki nurodytų atostogų pradžios:
if @veiksmas = 'I'
begin
declare @pranesimas1 varchar(250)
declare @pranesimas2 varchar(250)
declare @pranesimas3 varchar(250)
declare @modul_pav varchar(50)
declare @op_tipas_pav varchar(150)
declare @dok_klientas char(12)
declare @dok_nr varchar(20)
declare @dok_date datetime
declare @op_nr varchar(20)
if @modul = 'PO'
begin
select @modul_pav = 'Pirkimo op.'
select
@op_nr = I06_KODAS_PO,
@dok_nr = I06_DOK_NR,
@dok_date = I06_DOK_DATA,
@dok_klientas = I06_PAV
from dbo.I06_PARH where I06_KODAS_PO = @op and I06_OP_TIP < 50
end
else if @modul = 'RO'
begin
select @modul_pav = 'Pardavimo op.'
select
@op_nr = I06_KODAS_PO,
@dok_nr = I06_DOK_NR,
@dok_date = I06_DOK_DATA,
@dok_klientas = I06_PAV
from dbo.I06_PARH where I06_KODAS_PO = @op and I06_OP_TIP > 50
end
else if @modul = 'VD'
begin
select @modul_pav = 'Vidiniu op.'
select
@op_nr = I09_KODAS_VD,
@dok_nr = I09_DOK_NR,
@dok_date = I09_IS_DATA,
@dok_klientas = ''
from dbo.I09_VIH where I09_KODAS_VD = @op
end
else if @modul = 'KP'
begin
select @modul_pav = 'Kaupikliu op.'
select
@op_nr = I51_KODAS_KP,
@dok_nr = '',
@dok_date = '1900-01-01',
@dok_klientas = ''
from dbo.I51_KPH where I51_KODAS_KP = @op
end
else if @modul = 'IV'
begin
select @modul_pav = 'Inventorizacijos op.'
select
@op_nr = I47_KODAS_IF,
@dok_nr = I45_DOK_NR,
@dok_date = '1900-01-01',
@dok_klientas = ''
from dbo.I47_IVFH left join I45_IVDH on I45_KODAS_IV = I47_KODAS_IV where I47_KODAS_IF = @op -- dok_nr????
end
else if @modul = 'KA'
begin
select @modul_pav = 'Gamybos op.'
select
@op_nr = I15_KODAS_KA,
@dok_nr = I15_DOK_NR,
@dok_date = I15_UZS_DATA,
@dok_klientas = N08_PAV
from dbo.I15_KALH left join dbo.N08_KLIJ on N08_KODAS_KS = I15_KODAS_KS where I15_KODAS_KA = @op
end
else
begin
exec dbo.RGI_KLAIDA 'MODULIS', 'Laiškas neišsiustas - netinkamas modulis'
return
end
select @op_tipas_pav = rtrim(@modul_pav + ' dokumento nr. - ' + case when isnull(@dok_nr, '') = '' then @op else rtrim(@dok_nr) end + case when isnull(@dok_klientas, '') <> '' then ' | Klientas - ' + @dok_klientas else '' end )
select @pranesimas1 = rtrim(rtrim(R05_VARDAS) + ' ' + rtrim(R05_PAV)) from dbo.R05_USER where R05_KODAS_RS = @user
select @pranesimas2 = @op_tipas_pav
select @pranesimas3 = case when @dok_date <> '19000101' then convert(char(10),@dok_date,102) else '' end
exec dbo.RGI_MGAMA_BUSENA_LEISTI @modul=@modul, @op=@op, @user=@user, @veiksmas=@veiksmas, @kodas_be=@kodas_be, @vart=@user, @email_poz = 1, @email_sabl = 4, @rewrite = 1, @apr1 = @pranesimas1, @apr2 = @pranesimas2, @apr3 = @pranesimas3
end
Aprašius formulę, reikia atitinkamai pakoreguoti operacijos tvirtinimo būseną:
Pvz. Servisas -> Pardavimai -> Pardavimo operacijos:


Norint pritaikyti aprašytą formulę, reikia naudoti tvirtinimo operacijų perėmimo procedūrą, nurodant formulės kodą kaip parametrą. Pvz.:
RGI_MGAMA_BUSENA_FORMULE @kodas_fr='MS_EMAIL'
Rezultatas:
