Ar galima MSCAN matyti pardavimo dokumento sumą ir prekių kainas?
Tokia galimybė yra, tačiau su tam tikromis sąlygomis.
Norint matyti prekių kainas, atitinkamai aprašomas parametras MSCAN_DSAR.
Pavyzdžiui, norint detalioje eilutėje matyti prekės pavadinimą, matavimo vienetą ir kainą:
trim(productName)+' , '+unitCode+', kaina: '+cast(isnull(i07_kaina_su,0) as char(10))+' Eur'
Prekės kaina MSCAN aplikacijoje bus rodoma tik tuo atveju, jei ji matoma Rivile GAMA programoje atitinkamoje detalioje eilutėje.
Nuskenavus prekę, kurios nebuvo pirminiame dokumente, Rivile GAMA dokumente ji atsiras tik tada, jei įjungtas parametras MSCAN_ITRAUK. Tokiu atveju jos kaina parodoma.
Jeigu prekė nėra įtraukiama į Rivile GAMA dokumentą, jos kaina bus lygi 0.
Jeigu dokumentai vedami tik Rivile GAMA programoje, neleidžiant įterpti detalių eilučių per MSCAN, užtenka aprašyti parametrą MSCAN_HSAR, kad parodytų įvesto dokumento sumą:
Pavyzdžiui, prie dokumento informacijos norint matyti operacijos numerį ir dokumento sumą:
operationCode+ ', suma: '+CAST(i06_suma+i06_suma_pvm as char(12))+' Eur'
Jeigu dokumentai kuriami per MSCAN aplikaciją arba leidžiama į dokumentus pridėti papildomas eilutes, tokio aprašymo nepakanka. Tokiu atveju galima sukurti SQL funkciją, kuri pagal reikiamą logiką apskaičiuotų dokumento sumą.
Jeigu prekės eilutė į dokumentą įtraukiama per MSCAN aplikaciją, jos kiekis Rivile GAMA dokumente būna lygus 0. Kiekis iškoreguojamas tik operacijos užbaigimo metu.
Pavyzdyje pateikta funkcija, kuri pardavimo dokumento sumą skaičiuoja pagal tokį algoritmą:
CREATE OR ALTER FUNCTION [dbo].[RGI_MSCAN_HSAR_DOKSUMA] (@kodas_op char(12),@modulis char(2))
RETURNS varchar(20)
as
BEGIN
declare @suma numeric(12,2)
if @modulis = 'RO'
begin
SELECT @suma = isnull((SELECT SUM(ROUND(((CASE WHEN i07_alt_kiekis = 0 THEN quantityApp ELSE i07_alt_kiekis END)/I07_ALT_FRAK)*i07_kaina_su,2))
FROM
(SELECT I07_EIL_NR, I07_ALT_KIEKIS, I07_ALT_FRAK, I07_KAINA_SU, quantityApp from I07_PARD
LEFT JOIN RGI_MSCAN_D ON operationCode = I07_KODAS_PO AND rowNumber = I07_EIL_NR AND module = 'RO'
where I07_KODAS_PO = @kodas_op) as i07), 0)
RETURN CAST(@suma as varchar(12)) + ' Eur'
end
RETURN ''
END
Tokia SQL funkcija toliau gali būti naudojama aprašant parametrą MSCAN_HSAR.
Pavyzdžiui, prie dokumento informacijos norint matyti operacijos numerį ir dokumento sumą:
operationCode+ ', suma: '+dbo.RGI_MSCAN_HSAR_DOKSUMA(operationCode, 'RO')