====== Distribucija poručene robe ======
Distribuiraju se **porudžbenice ****prodaje** koje se nalaze u **redu neisporučene robe**. Osnovni parametri za utvrđivanje zaglavlja i sadržaja porudžbenica u redu neisporučene robe su:
- **Order.DocStatus < 256**; Status porudžbenice prodaje nije neaktivan, što znači da ista nije zatvorena.
- **OrderSasZak.ZakOrdKol > 0**; Postoje stavke određene za poručivanje od dobavljača
- **OrderTrack.ResType=2**; Zaključnica je zatvorena u "odloženom" režimu što znači da sva roba (za poručivanje i izdavanje sa skladišta) ide u red neisporučene robe.
- **(OrderSasZak.ZakOrdKol+OrderSasZak.ZakKolSklad) < (OrdersDispSas.DispKol+OrdersDispSas.CancKol)**; Znači da poručena količina još nije distribuirana.
Kombinacijom ovih parametara mogu se dobiti razna stanja u kojima se nalaze porudžbenice prodaje.
====== Važni upiti ======
Upiti za sakupljanje podataka o porudžbinama prodaje koje čekaju ili se mogu završiti. Dele se na:
- Upite koji vraćaju zaglavlja porudžbenica prodaje
- Upite koji vraćaju sadržaj porudžbenica prodaje
===== Upiti zaglavlja porudžbenica prodaje =====
Osnovna namena je analiza spiskova porudžbenica prodaje koje čekaju na završetak.
==== ORD_OrdToOrtOdloz ====
Bazne tabele: **Orders**, **OrderSas**,**OrderSasZak**,**OrdersTrack** \\ Bazni upiit : \\ Izvedeni upiti: [[:kb:distribucija_porucene_robe_main#ord_loadorderheadsodlozw_ord_loadorderheadsodlozw|ORD_LoadOrderHeadsOdlozW]]** \\
** Procedure:
Upit vraća spisak porudžbenica prodaje, samo osnovne podatke iz zaglavlja koje su smeštene u red neisporučene robe ili imaju ne ispunjenih staki označenih "za poručivanje". Uslov je zadat "ili" kombinacijom sledećeih parametara:
- ResType=2
- ZakOrdKol>0
Upit vraća i neaktivne porudžbenice prodaje (ne ispituje status)
==== ORD_DocLinkToRate ====
Bazne tabele: **DocLink** \\ Bazni upiit : \\ Izvedeni upiti: [[:kb:distribucija_porucene_robe_main#ord_loadorderheadsodlozw_ord_loadorderheadsodlozw|ORD_LoadOrderHeadsOdlozW]]**, ORD_LoadOrderHeadsOdlozQ, DOC_RateUgovoriPoruc, KUP_LicaUgovoriLst, ORD_DistribByOrtIDOrdID, \\
** Procedure: msbalans.exe modul //Dokumenti//, procedura //FetchDocHead//.
Upit vraća spisak zaglavlja porudžbenica prodaje vezanih za ugovor o prodaji na rate (najčešće kod sindikalne prodaje).
==== ORD_LoadOrderHeadsOdlozW ====
Bazne tabele: **defDocTip**, **DopOpis**, **Korisnici**, **LongDesc**, **Orders** \\ Bazni upiit : [[:kb:distribucija_porucene_robe_main#ord_doclinktorate|ORD_DocLinkToRate]], [[:kb:distribucija_porucene_robe_main#ord_ordtoortodloz|ORD_OrdToOrtOdloz]]** ** i **ViewNazivEx**. \\ Izvedeni upiti: **ORD_DistribAnalyseByQtt \\ **Procedure:**Direktno u ** IOrderDistribs.OrdersWaiting**, i modulu ** LocDistrib**, ** FAfterDistribEvents**proceduri (ROBOrders). \\ **
Upit vraća spisak **aktivnih** porudžbenica prodaje koje se nalaze u redu neisporučene robe u formatu //ORD_LoadOrderHead// (standardni upit za učitavanje zaglavlja porudžbine IOrder klase).
==== ORD_UndeliveredByZak ====
ZASTARELO. UMESTO OVOG KORISTITI UPIT ORD_NeisporSve
Bazne tabele: **Orders**, **OrderSas, OrderSasZak, OrdersDispSas, OrdersTrack** \\ Bazni upiit : \\ Izvedeni upiti: ORD_DistribAnalyseByQtt, ORD_PrepareForTLC ** \\ **Procedure:** \\ **
Upit vraća stavke Zaključnice prodaje koje nisu u potpunosti isporučene. Objedinjuje porudžbenicu prodaje, zaključnicu i podatke o distribuciji. Uslovi za vraćanje podataka su:
- OZ.ZakOrdKol>SUM(ODS.DispKol+ODS.CancKol); Znači sve što je trebalo da se poruči još nije isporučeno;
- OZ.ZakKolSklad>SUM(ODS.DispKol+ODS.CancKol) AND (T.ResType=2); Znači sve što ide direktno sa skladišta još nije izdato;
Upit sadrži grešku! Odvojeno se testiraju količine za nabavku i za izdavanje sa skladišta a u realnosti postoji mogućnost da ista stavka sadrži količine od obe vrste.
==== ORD_DistribAnalyseByQtt ====
Bazne tabele: **OrderQuoteSas, OrderSasConf, OrderSasUlaz, SkladKol, TmpSerNumPrn** \\ Bazni upiit : [[:kb:distribucija_porucene_robe_main#ord_loadorderheadsodlozw|ORD_LoadOrderHeadsOdlozW]]**, ** ORD_UndeliveredByZak, [[:kb:distribucija_porucene_robe_main#ord_neisporsve|ORD_NeisporSve]] \\
Izvedeni upiti: **ORD_LoadOrderHeadsOdlozQ \\
** Procedure: ** \\ **
Upit vraća spisak **aktivnih ** porudžbenica prodaje koje se nalaze u redu neisporučene robe, a u okviru kojih postoje stavke koje bi se mogle isporučiti sa skladišta određenih u tu svrhu. To znači da se roba koju očekuju kupci pojavila na magacinu.
==== ORD_LoadOrderHeadsOdlozQ ====
Bazne tabele: \\ Bazni upiit : [[:kb:distribucija_porucene_robe_main#ord_loadorderheadsodlozw|ORD_LoadOrderHeadsOdlozW]]**, ** [[:kb:distribucija_porucene_robe_main#ord_neisporsve|ORD_NeisporSve]], [[:kb:distribucija_porucene_robe_main#ord_doclinktorate|ORD_DocLinkToRate]] \\
Izvedeni upiti: ** \\
** Procedure: IOrderDistribs.OrdersResolvable (BLROrders)
Upit vraća **filtriran** spisak aktivnihporudžbenica prodaje koje se nalaze u redu neisporučene robe u formatu //ORD_LoadOrderHead// (standardni upit za učitavanje zaglavlja porudžbine IOrder klase).
**Filter** se odnosi na:
- Odabir "Potvrda prijema" u smislu potrage za porudžbenicama prodaje koje su pristiglom robom obuhvaćene
- Odabir skladišta sa kog se roba otprema, u smislu pregleda porudžbenica prodaje koje se, na osnovu uvida u stanje magacina, mogu isporučiti.
- Ograničenje na celovitost mogućeg izvršenja porudžbenice prodaje. Ovo podrazumeva sakrivanje porudžbenica koje se mogu izvršiti samo parcijalno.
===== Upiti sadržaja porudžbenica prodaje =====
Vraćaju stavke porudžbenica prodaje koje se mogu realizovati ili jednostavno čekaju u redu neisporučene robe.
==== ORD_DispByZak ====
Oslonac: Tabela **OrdersDispSas** \\ Procedure: \\ Izvedeni upiti: [[:kb:distribucija_porucene_robe_main#ord_neisporsve|ORD_NeisporSve]]**, rptOrderSTNeispor**
Upit vrši agregaciju tabele **OrdersDispSas** po polju **IDFld** sumirajući kolone //DispKol // i //CancKol//. Polje **IDFld ** je direktna veza na **OrderSasZak.IDFld** (FOREIGN KEY) pa se na ovaj način dobija trenutno distribuirana količina po svakoj stavci Zaključnice. //DispKol// se odnosi na robu isporučenu kupci, a //CancKol// na robu od koje je kupac odustao.
==== ORD_NeisporSve ====
Oslonac: Upit **ORD_DispByZak**, tabele Orders, OrderSas, OrderSasZak, OrdersTrack i //pogled// **ViewNazivEx** \\ Procedure: \\ Izvedeni upiti: **ORD_NeisporRoba**, **ORD_NeisporProizv, ** [[:kb:distribucija_porucene_robe_main#ord_dispneisporuceno|ORD_DispNeisporuceno]]
Upit vraća spisak nerazrešenih porudženica prodaje zajedno sa stavkama koje su ostale za isporuku. Ne vraćaju se stavke koje su ravzšene (ZakOrdKol+ZakKolSklad)<(DispKol+CancKol) ali ni stavke Zaključnice koje nisu zaključane (DatLocked IS NULL).
Uslovi koji moraju biti ispunjeni:
- DocStatus<256; Porudžbenica prodaje mora biti u aktivnom stanju
- ZakOrdKol>0 OR ResType=2; Mora imati nešto stavljenu u red neisporučene robe, ili makar da je za način razrešenja Zaključnice odabran "[[:kb:porucivanje_main#odlozeno_razresavanje|odloženo]]" metod
- (ZakOrdKol+ZakKolSklad)>(DispKol+CancKol) ; Zaključena količina za isporuku mora biti veća od trenutno realizovane.
- OrderSas.fDone=FALSE; Stavka porudžbine ne sme biti "zatvorena" zbog storna ili nekog drugog razloga.
- DatLocked IS NOT NULL AND DocTip=17; Zaključnica jeste zaključana za dalju obradu, a radi se o porudžbenici prodaje.
==== ORD_DispNeisporuceno ====
Oslonac: Upit **[[:kb:distribucija_porucene_robe_main#ORD_NeisporSve|ORD_NeisporSve]]**, tabela **Elementi** i //pogled// **ViewNazivEx** \\
Procedure: Direktno se ne koristi, derivati se koriste u **IOrderDistribSas.Record2Object** (format zapisa), i **IOrderDistrib.FetchUndeliveredGoods** (BySkl, BySklPrijem) \\
Izvedeni upiti: **ORD_DispNeisporucenoBySkl**, **ORD_DispNeisporucenoBySklPrijem**
Upit je direktan derivat **ORD_NeisporSve** upita kome je pridodata informacija o artiklima vezivanjem na tabelu **Elementi.**
==== ORD_SalesOrdersByZakDisp ====
Bazne tabele: **Orders, OrderSas, OrderSasZak, OrdersDispSas** \\
Bazni upiit : \\
Izvedeni upiti: \\
Procedure: msbalans za potrebe izrade naloga za prenos, odnosno vezivanje porudžbenica prodaje na pomenuti nalog za prenos robe.
Upit vraća spisak **porudžbenica prodaje** koje su obrađene u okviru predate Zaključnice odnosno Distribucione liste (predaje se OrtID).