Izveštaj treba da omogući analizu razlike knjigovodstvene vrednosti skladišta vođenog po metodu srednje nabavne cene u odnosu ekvivalentno stanje ako bi se magacin vodio po FIFO metodu.
Balans zvanično ne podržava rad po FIFO metodu pa se radi isključivo o simulaciji.
Realizacija izveštaja neće se oslanjati na detekciju svake promene u sistemu i dodeljivanje FIFO zapisa, već će biti iskorišćen inverzan pristup. Suština se sastoji u zapažanju da prema FIFO-u preostala količina robe na lageru mora da je zaprimljena po poslednjem ulazu. Ukoliko je ima više od toga, znači da deo pripada pretposlednjem i tako dok se zaliha ne izravna sa nulom.
Algoritam se sastoji od sledećih koraka:
Priroda posla je takva da ne može biti realizovana u jednoj SQL proceduri u okviru Jet-a (moglo bi na standardnim SQL serverima). Osnovu algoritma čini petlja za raspoređivanje preostale količine po lager listi na spisak nabavki.
Posao će biti poveren BLMrdSys biblioteci. Sistem će činiti izveštaj Lager na dan X - po FIFO obračunu koji će u okviru svog mrd-a zahevati novu sistemsku funkciju @LFF.
Komanda BLMrdSys biblioteke ima sledeća dejstva:
Tabela sadrži rezultat obračuna @LFF procedure. Ona je podskup tabele TmpKorSimpCho u kojoj se evidentira tok procesa obračuna kako bi ostali korisnici mogli da preduzmu neophodne korake (sačekati da se tekući obračun završi ili prekinuti tekući obračun i započeti sopstveni).
Polje | Vrsta | Vrednost | Opis |
---|---|---|---|
JobID | Long | ||
Funkcija | Long | 1001 | Indikator vrste obračuna koji se obrađuje u slogovima TmpKorSimpCalc tabele. Vrednosti su registrovane u KontneGrupe > KontneGrupeSas tabelama pod KGrID=1195 (Privremeni zapisi obračuna). Zapisi su dostupni i preko viewa FN_TempCalc. |
IDFld | Long | Skladista.SklID | Identifikacioni broj skladišta koje se obračunava. Za sada je predviđeno da se obračun uvek vrši za sve artikle na odabranom magacinu. Po potrebi moguće je dodavanje dodatnih filtera (KatID, PodKatID). |
AddID | Long | 0-100 | Procenat završenosti posla. |
Datum1 | Date | Datum i vreme pokretanja procesa. | |
Datum2 | Date | Datum i vreme poslednjeg osvežavanja statusa AddID. | |
Datum3 | Date | Datum i vreme završetka procesa. | |
Datum4 | Date | Datum i vreme sa kojim je izvršen presek stanja (datum preseka lagera). |
Algoritam:
Polje | Vrsta | Vrednost | Opis |
---|---|---|---|
TmpsccID | Long, PK | AUTOINCREMENT | Jedinstveni primarni ključ sloga. |
TmpsmpID | Long, FK | UniBroj.UsrFn (blbrUNIFUN) | Refernca ka tabeli TmpKorSimpCho. |
DocID | Long | Ulaz.UlID | Identifikator dokumenta (UlID) ulazne kalkulacije koja je predmet obračuna. |
SasID | Long | SasUlaz.SasUlID | Identifikator pozicije u sastavu ulazne kalkulacije koja je predmet obračuna. |
DTStamp | Double | Vremenski pečat transakcije (kako bi se ispravno sortiralo u opadajućem poretku). | |
ElID | Long | SasUlaz.ElID | Identifikator artikla koji se obrađuje. |
KolCalc | Double | Količina koja se sa lager liste “raspoređuje” na konkretan slog. Sve što ostane sa NULL (neraspoređeno) se briše |