Prod.Product 1 %RegisteredObject 0 D ##Class(BL.Derde.Rendab.Fetch).Test() 1 FACNr d ##class(BL.Derde.Rendab.Fetch).%New().Process(60320) BeginMaand:%Date Maand is bevat steeds de eerste van een maand oKlant:Derde.Klant.Klant,Maand:%Date Maand is bevat steeds de eerste van een maand oKlant:Derde.Klant.Klant,Maand:%Date BeginMaand Do . Set FACNr="" . For Set FACNr=$O(^KFA1("F",KLNr,Dat,FACNr)) Quit:FACNr="" Do . . Do ..ProcessFactuur(oKlant,Maand,FACNr,.MemOrder) ]]> De factuur wordt opgedeeld per order verwerkt. Hierbij worden op drie nivo verschillen gemaakt : - ProdGrp : de kosten zijn afhakelijk per productgroep - RechtZetting : er wordt onderscheid gemaakt over - een standaard levering - een rechtzetting (nalevering of terugname) waar de oorzaak bij de klant ligt - een rechtzetting (nalevering of terugname) waar bij Van Hoecke ligt - Levering of terugname 0 Do ; levering . . . . Set ProdGrp=$$PRODGRP^PRODUKT(PRNr,1) . . . . Set:ProdGrp="" ProdGrp="REST" ; Default . . . . Set CacheOrdProdGrp(ORDNr)=$G(CacheOrdProdGrp(ORDNr))+1 . . . . Set CacheOrdProdGrp(ORDNr,ProdGrp)=$G(CacheOrdProdGrp(ORDNr,ProdGrp))+1 . . . . Set CacheLev=$G(CacheLev)+1 . . . . Set CacheLev(LNr)=$LB(PRNr,Qty,$P(LRec,"\",14)="Z",ORDNr) . . . Else If Qty<0 Do ; terugname . . . . Set CacheTN=$G(CacheTN)+1 . . . . Set CacheTN(LNr)=$LB(PRNr,-Qty,$P(LRec,"\",14)="Z",ORDNr) . . Set:RechtZetBon'[RechtZet RechtZetBon=RechtZetBon_$S(RechtZetBon="":"",1:";")_RechtZet . . Set:RechtZetFac'[RechtZet RechtZetFac=RechtZetFac_$S(RechtZetFac="":"",1:";")_RechtZet . . If $D(CacheOrdProdGrp) Do ; Verwerken levering . . Do ..ProcessOrdProdGrp(oKlant,Maand,.RechtZetOrd,RechtZetBon,FACNr,BONNr,.CacheOrdProdGrp,.MemOrder) ; orderverwerking levering . . Do ..ProcessPickLev(oKlant,Maand,.RechtZetOrd,RechtZetBon,FACNr,BONNr,.CacheLev) ; magazijn picking en consolidatie . . Do ..ProcessConsolLev(oKlant,Maand,.RechtZetOrd,RechtZetBon,VerzendW,FACNr,BONNr,.CacheLev) ; magazijn picking en consolidatie . . If $D(TempTN) ; Verwerk Terugname . . Do ..ProcessOrdTN(oKlant,Maand,.RechtZetOrd,RechtZetBon,FACNr,BONNr,.CacheTN) ; orderverwerking terugname . . Do ..ProcessPickTN(oKlant,Maand,.RechtZetOrd,RechtZetBon,FACNr,BONNr,.CacheTN) ; magazijn picking en consolidatie Do ..AddKost(oKlant,Maand,$LB("FAC","*","FAC"),RechtZetFac,,$LB(1),$LB(FACNr)) ]]> ORDERVERWERKING - LEVERING ORDERVERWERKING - TERUGNAME PICKING - LEVERING PICKING - TERUGNAME Bepaald aan de hand van SOFTV^EWORDSW het logische magazijn PRNr,Qty,KLNr 0 Bepaalt hoe het aantal van een product moet gepickt worden $LB(Aantal pallets, Aantal Verpakkingen, Stuks Telling) PRNr,Qty 0 PalletAantal Set NbrPallet=Qty\PalletAantal,Qty=Qty#PalletAantal Set NbrVerpak="" For I=1:1:$LL(lbVerpak) Quit:Qty<1 Do:Qty'<$LI(lbVerpak,I) . Set NbrVerpak=NbrVerpak+(Qty\$LI(lbVerpak,I)),Qty=Qty#$LI(lbVerpak,I) . ;Write I,"=",Qty Set NbrStuks=''Qty Quit $LB(NbrPallet,NbrVerpak,NbrStuks) ]]> CONSOLIDATIE - LEVERING 0 Maand is bevat steeds de eerste van een maand De ordernrs worden opgehaald vóór die maand om dubbeltelling (backorders) op orderniveau te vermijden BeginMaand Do . W -Dat,$zd(Dat) . For Set FACNr=$O(^KFA1(KLNr,Dat,FACNr)) Quit:FACNr="" Do . . Set BONNr="U" . . For Set BONNr=$O(^KFA("F",FACNr,BONNr)) Quit:BONNr="" Do . . . Set LNr=99 . . . For Set LNr=$O(^KFA("F",FACNr,BONNr,LNr)) Quit:LNr="" Do . . . . Set LRec=^KFA("F",FACNr,BONNr,LNr) . . . . Set $P(LRec,"\",17)="KF5" ; Order hoofding . . . . Set ORDNr=$P($P(LRec,"\",5)," -") . . . . Set MemOrder(ORDNr)="" ]]> oKlant,Maand,lbGrp,RechtZetting,lbKey,lbTelling,lbID ",^Derde.Rendab.KostD ]]> oKlant,Maand,lbGrp,RechtZetting,lbKey,lbTelling,lbID oKost d ##class(BL.Derde.Rendab.Fetch).DeleteAll() 1 RechtZetting DocType,FACNr,BONNr,ORDNr Haalt de lijst op van klachten waarbij de leveringsbon zorgt voor de Behandeling DocType= "P"= Proforma, "F" = Factuur DocType,FACNr,BONNr,ORDNr,KLNr lbKlacht:%List