Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionLast revisionBoth sides next revision | ||
kb:izvestaj_o_stanju_lagera_na_dan_po_fifo [2012/08/04 21:45] – created milano | kb:izvestaj_o_stanju_lagera_na_dan_po_fifo [2012/08/07 10:45] – [Izveštaj o stanju lagera sa presekom na dan po FIFO metodu] milano | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Izveštaj o stanju lagera sa presekom na dan po FIFO metodu ====== | ====== Izveštaj o stanju lagera sa presekom na dan po FIFO metodu ====== | ||
+ | |||
+ | |||
+ | 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: | ||
+ | |||
+ | |||
+ | - Formirati spisak nabavki određenog artikla na određenom magacinu sortiran po datumu prijema **u opadajućem poretku**. | ||
+ | - Obrisati sve stavke koje su nastale nakon dana sa kojim se vrši presek. | ||
+ | - Formirati //lager listu// | ||
+ | - Procesirati stavku po stavku //sa lager liste// | ||
+ | - Obrisati sve stavke iz //spiska nabavki// | ||
+ | - Napraviti izveštaj koji će prikazati rezultujući //spisak nabavki// | ||
+ | |||
+ | ===== Procesni zadatak ===== | ||
+ | |||
+ | |||
+ | 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// | ||
+ | |||
+ | |||
+ | Posao će biti poveren **BLMrdSys** | ||
+ | |||
+ | |||
+ | ==== @LFF ==== | ||
+ | |||
+ | |||
+ | Komanda **BLMrdSys** biblioteke ima sledeća dejstva: | ||
+ | |||
+ | |||
+ | - Upit korisnika za datum preseka stanja na lageru (sem ako se datum preda na drugi način) | ||
+ | - Upit korisnika da odabere magacin koji se obračunava (bez opcije "sva skladišta" | ||
+ | - Priprema tabele **TmpKorSimpCalc ** (u njoj će se čuvati obrađeni podaci) | ||
+ | - brisanje svih zapisa pokrenutih pre više od 2 dana | ||
+ | - provera da li neko već radi istu stvar za isto skladiše i obaveštenje o mogućem usporenju | ||
+ | - Prosleđivanje dobijenog // | ||
+ | |||
+ | |||
+ | ==== Tabele " | ||
+ | |||
+ | |||
+ | 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). | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | === TmpKorSimpCho === | ||
+ | |||
+ | |||
+ | ^Polje ^Vrsta ^Vrednost ^Opis | | ||
+ | |JobID |Long | | | | ||
+ | |Funkcija |Long |1001 |Indikator vrste obračuna koji se obrađuje u slogovima TmpKorSimpCalc tabele. | ||
+ | |IDFld |Long |Skladista.SklID | \\ Identifikacioni broj skladišta koje se obračunava. | ||
+ | |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: | ||
+ | |||
+ | |||
+ | - Korisnik zadaje skladište i datum (opciono i vreme) preseka stanja. | ||
+ | - Provera da li je proces za dati magacin sa takvim parametrom preseka već pokrenut, kao i da li je u logičnim okvirima.\\ | ||
+ | - Pokretanje @LFF procesa izračunavanje dužine trajanja procesa i upis progresa u **AddID ** | ||
+ | - Osvežavati polje **AddID** | ||
+ | |||
+ | |||
+ | === TmpKorSimpCalc === | ||
+ | |||
+ | |||
+ | ^Polje ^Vrsta ^Vrednost ^Opis | | ||
+ | |TmpsccID |Long, PK |UniBroj.UsrFn (blbrUNIFUN) |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 " | ||
+ | |||
+ | |||
+ | \\ | ||