Recupereerbare verpakking %RegisteredObject $LB(Saldo,TijdStip,$LB(Aantal,AantalViaNietVerpakkingsProd),FullPartial,Moederproduct) %List 1 Vertrekkend van de bon de RecuPak historiek opbouwen 1 FAKNr,BONNr,FactuurDatum,AskVarVerpAantal De "VP" node in vullen in de uitleveringsbon 1 BONNr,AskVarVerpAantal Opbouwen van de produkthistoriek 1 KLNr,PRNr,FAKNr,Gelev,Terug,FactuurDatum,ToeleveringOfBonNr,UniekLijnNr,Opmerking,MoederPRNr Geleverde verpakkingsaantal bereken en toevoegen aan array BONNr,Cumul,AskVarVerpAantal,FAKNr 0 // Terugname . Quit:$$ISORGAL^PRODUKT2(PRNr) // Orgalux product . Set List=..GetQty(PRNr,Qty,,$G(AskVarVerpAantal),BONNr,$G(FAKNr)) . Quit:$LI(List)="" . Set VerpakPRNr=$LI(List),VerpakQty=$LI(List,2) . If VerpakPRNr,$D(CheckVerpak(VerpakPRNr)) Quit:CheckVerpak(VerpakPRNr)'>0 Set CheckVerpak(VerpakPRNr)=CheckVerpak(VerpakPRNr)-VerpakQty . Set Verpak=$G(..Verpak($LI(List,1),BONNr,BLNr)) . // $LB(Aantal geleverd,Aantal statistiek + historiek) . // kan verschillend zijn indien verpakking zelfstandig verkocht . Set $LI(Verpak,3)=$LB($LG($LG(Verpak,3),1)+$LI(List,2),$LG($LG(Verpak,3),2)) ; Sommeren totaal aantal . Set:'$LI(List,4) $LI(Verpak,3)=$LB($LG($LG(Verpak,3),1),$LG($LG(Verpak,3),2)+$LI(List,2)) ; Indien moeder is een beslagproduct dan ook de tweede piece someren . Set $LI(Verpak,4)=$LI(List,3) ; Full of partieel . Set $LI(Verpak,5)=PRNr ; Moederproduct . Set ..Verpak($LI(List,1),BONNr,BLNr)=Verpak ; Controle op tweede recupak, dit door aflopen van de detail verpak local Set PRNr="" For Set PRNr=$O(..Verpak(PRNr)) Quit:PRNr="" Do . Set obj=##class(Prod.ProductPrijs).%OpenId(PRNr,0),VerpakQty=obj.VerpakkingsAantal . Set BONNr="" . For Set BONNr=$O(..Verpak(PRNr,BONNr)) Quit:BONNr="" Do .. Set BLNr="" .. For Set BLNr=$O(..Verpak(PRNr,BONNr,BLNr)) Quit:BLNr="" Do ... Set Qty=$LG($LG(..Verpak(PRNr,BONNr,BLNr),3),2) ; aantal via beslag ... If 'Qty,VerpakQty Quit ... Set List=..GetQty(PRNr,Qty,1,$G(AskVarVerpAantal),BONNr,$G(FAKNr)) ; verwerken als zijnde geen verpakkingsproduct ... Set RecuPRNr=$LG(List,1) ... Quit:RecuPRNr'?4.7N ... Set obj=##class(Prod.ProductPrijs).%OpenId(PRNr,0),RecuVerpakQty=obj.VerpakkingsAantal ... If '$LI(List,2),RecuVerpakQty Quit ... Set Verpak=$G(..Verpak(RecuPRNr,BONNr,BLNr)) ... Set $LI(Verpak,3)=$LB($LG($LG(Verpak,3),1)+$LI(List,2),$LG($LG(Verpak,3),2)+$LI(List,2)) ; $LB van aantal en via beslag ... Set $LI(Verpak,4)=$LG(List,3) ; Full ... Set $LI(Verpak,5)=$LG(..Verpak(PRNr,BONNr,BLNr),5) ; moeder van het moederproduct ... Set ..Verpak(RecuPRNr,BONNr,BLNr)=Verpak ; Indien Cumul someren Do:Cumul . Set PRNr="" . For Set PRNr=$O(..Verpak(PRNr)) Quit:PRNr="" Do .. Set Verpak=$G(..Verpak(PRNr)),BONNr="" .. For Set BONNr=$O(..Verpak(PRNr,BONNr)) Quit:BONNr="" Do ... Set BLNr="" ... For Set BLNr=$O(..Verpak(PRNr,BONNr,BLNr)) Quit:BLNr="" Do .... Set List=..Verpak(PRNr,BONNr,BLNr) .... Set $LI(Verpak,3)=$LB($LG($LG(Verpak,3),1)+$LG($LG(List,3),1),$LG($LG(Verpak,3),2)+$LG($LG(List,3),2)) .... Set:$LG(Verpak,4)="" $LI(Verpak,4)=$LG(List,4) .... Set:$LG(List,4)'="F" $LI(Verpak,4)=$LG(List,4) .... Kill ..Verpak(PRNr,BONNr,BLNr) .. Set ..Verpak(PRNr)=Verpak ]]> Geleverde verpakkingsaantal bereken en toevoegen aan array FAKNr,BONNr,FactuurDatum,AskVarVerpAantal Aflopen van de terugname die nog niet zijn opgenomen in een levering KLNr,BONNr,Markeer:%Boolean 0 and Levering is null and Beweging='I') ;aanvullen SQL met TyPes = ??? &sql(OPEN C1) For &sql(FETCH C1) Quit:(SQLCODE '= 0) Do . Set Verpak=$G(..Verpak(PRNr)) . Set $LI(Verpak,5)=$LG(Verpak,5)+Aantal . Set ..Verpak(PRNr)=Verpak . Do:Markeer ##class(Flow.RecuPak.Historiek).MarkeerTerugName(ID,BONNr) &sql(CLOSE C1) ]]> Bepalen van het RecuPakproduct en het aantal verpakkingen geeft een ListBuild van Product,Aantal en Status (Partieel of Full) 1 PRNr,Aantal,NoCheckRecuPakProd,AskVarVerpAantal,BONNr,FAKNr %List Ophalen van een saldo van een RecuPak product 1 KLNr,PRNr %Integer Ophalen van alle saldos van alle RecuPak producten van een klant KLNr Ophalen van een tijdstip van een RecuPak product 1 KLNr,PRNr %String Opbouw historiek voor het aantal manuele correctie zonder stockupdate 1 KLNr,PRNr,AantalCorrectie,Opmerking Opslaan van de structuur in de VP-node van ^KUL KLNr,BONNr Opbouw historiek voor het aantal correctie teruggegeven Blum of correctie geleverd aan een klant 1 KLNr,PRNr,AantalTerug,Opmerking Opbouw historiek voor het aantal dat teruggenomen werd van een klant of correctie receptie Blum 1 KLNr,PRNr,AantalTerug,Type,DocumentNr,UniekLijnNr,AantalHistStat,Datum,Opmerking,MoederPRNr,ViaDO,BLKLNr,BLFactuurNr,BLFactuurDatum Opbouw historiek voor aantal dat aangeleverd wordt door de leverancier 1 PRNr,Aantal,TOENr,UniekLijnNr,Datum,Opmerking,ViaDO,BLKLNr,BLFactuurNr,BLFactuurDatum Opbouw historiek voor aantal dat geleverd wordt bij de klant 1 KLNr,PRNr,AantalGeleverd,Type,FAKNr,BONNr,BLUNr,AantalHistStat,FactuurDatum,Opmerking,MoederPRNr,ViaDO,BLKLNr,BLFactuurDatum Verwerking DO 1 LEVNr,VervoerRef,PRNr,Aantal,TOENr,UniekLijnNr,DOKLNr,BLKLNr,BLFactuurNr,BLFactuurDatum Verwerking DO via vervoerlijst 1 LEVNr,VervoerRef,PRNr,Aantal,TOENr,UniekLijnNr,BLFactuurNr Verwerking DO via toelevering 1 LEVNr,PRNr,Aantal,TOENr,UniekLijnNr