Index: PV.mac.rou =================================================================== diff -u -r66203 -r69293 --- PV.mac.rou (.../PV.mac.rou) (revision 66203) +++ PV.mac.rou (.../PV.mac.rou) (revision 69293) @@ -3,73 +3,252 @@ #include BL.Derde.KlantSpecifiek #include BL.Derde.LevSpecifiek q -ControleORDW - ;Set Device=$$OPEN^vhDEV(,"ORDW.txt","W","T") + +p(PRNr,Aantal) + New R,InStock,PraStock,WVTekort,LevTerm,BufferW,WeekDat,WVStock,WVRes,GemWVK + Set R=$O(^KPR(PRNr,"J")),WVTekort="" + Set LevTerm=6,BufferW=$P(^KPR(PRNr,1),D,17) + If $E(R)="J" { + Set R=^KPR(PRNr,R),LevTerm=$P(R,D,7) + Set WeekDat=(LevTerm+BufferW)*7+$H + Set WVStock=$$CV2MAG^MRP(PRNr,$P($G(^PRSTOCK("D",PRNr)),D,5)) Set:WVStock<0 WVStock=0 + Set WVRes=$$CV2MAG^MRP(PRNr,$P($$VerkoopKinderen^PRODUKT4(PRNr,WeekDat),"\",2)) + Set WVTekort=$S(WVStockPraStock) + w InStock + ;If InStock { ; Product in voorraad, controle op gemiddelde weekverkoop + ; Set R=^KPR(PRNr,1),GemWVK=$P(R,D,23) + ; Set GemWVK=GemWVK+$P(GemWVK,"#",2) + ; Set:GemWVK InStock=(PraStock>(GemWVK+Aantal)) + ;} + Quit $G(InStock,1) +RCP + Set PRNr="" + Set Cnt=0 + Set RCPNr="" + For Set RCPNr=$O(^RCP("D",RCPNr)) Quit:RCPNr="" Do + . + . Set Rec=^RCP("D",RCPNr) + . Quit:$P(Rec,"\",20)="I" + . Set $P(^RCP("D",RCPNr),"\",20)="I" + . ;Do RCPNR^EWTOE(RCPNr) + . ;r k + . Set Rec=^RCP("D",RCPNr) + . Write RCPNr," ",$P(Rec,"\",20),! + q + +VerzendW + Set PRNr="" + Set Cnt=0 + Set VerzendW="" + Set Device=$$OPEN^vhDEV(,"Verzendw.txt","W","T") + USe Device + Write "VerzendW DueOut Beloofd Productie P1 P2 P3",! + For Set VerzendW=$O(^RES("KLANT","PI","VERZENDWIJZE","D",VerzendW)) Quit:VerzendW="" Do + . Set Rec=^RES("KLANT","PI","VERZENDWIJZE","D",VerzendW) + . Write VerzendW,*9,$$$ExcelTime($p(Rec,"`",4)),*9,$$$ExcelTime($p(Rec,"`",13)),*9,$$$ExcelTime($p(Rec,"`",16)),*9,$TR(Rec,"`",$c(9)),! + Do CLOSE^vhDEV(Device) + q + + + +KostenplaatsGebruik + Set PRNr="" + Set Cnt=0 + Kill Cache + ;Set Device=$$OPEN^vhDEV(,"KostenplaatsGebruik Detail.txt","W","T") ;Use Device - ;Write "CONSNr Datum Status KLNr ORDNR",! + For Set PRNr=$O(^KSTPR(PRNr)) Quit:PRNr="" Do ;Quit:Cnt=100 + . Quit:'$d(^KPR(PRNr)) + . Quit:'$D(^PRBS("BS",PRNr)) + . Set Aantal=$$PROD^STAT(PRNr,0,"2021.08 ","2022.02 ",1) + . Quit:Aantal<1 + . Set Cnt=Cnt+1 + . Set BSKey="" + . For Set BSKey=$o(^PRBS("BS",PRNr,BSKey)) Quit:BSKey="" Do + . . Set BSRec=^PRBS("BS",PRNr,BSKey) + . . Quit:$P(BSRec,"\",3)'="T" + . . Set AantalBS=$P(BSRec,"\",2) + . . Set KostenPl=$P(BSRec,"\",9) + . . Quit:KostenPl="" + . . Set Tijd=$P(BSRec,"\",7) + . . Set Tijd2=$P(BSRec,"\",8) + . . Set ProdGrp=$$PRODGRP^PRODUKT(PRNr) + . . Set lb=$G(Cache(ProdGrp_";"_KostenPl)) + . . Set $LI(lb,1)=$LG(lb,1)+1 + . . Set $LI(lb,2)=$LG(lb,2)+(AantalBS*Aantal*Tijd) + . . Set $LI(lb,3)=$LG(lb,3)+(AantalBS*Aantal*Tijd2) + . . Set Cache(ProdGrp_";"_KostenPl)=lb + . . ;Write PRNr,*9,$$PRODGRP^PRODUKT(PRNr),*9, KostenPl,*9,Aantal,*9,$$$ExcelNum(AantalBS*Aantal*Tijd),! + ;Do CLOSE^vhDEV(Device) + + Set Device=$$OPEN^vhDEV(,"KostenplaatsGebruik.txt","W","T") + Use Device + Write "ProdGrp KostenPl #Keer #Tijd",! + Set KostenPl="" + For Set KostenPl=$o(Cache(KostenPl)) Quit:KostenPl="" Do + . Set lb=$G(Cache(KostenPl)) + . Write $P(KostenPl,";"),*9,$P(KostenPl,";",2),*9,$$$ExcelNum($LI(lb,1)),*9,$$$ExcelNum($LI(lb,2)),! ;,*9,$LI(lb,3),! + Do CLOSE^vhDEV(Device) + Quit + + + + +ControleORDW + Set Device=0 ;$$OPEN^vhDEV(,"ORDW HLX.txt","W","T") + Use Device + Write "KLNr CONSNr VerzendW Datum Mag",! Set CONSNr=0 For Set CONSNr=$O(^ORDW("D",CONSNr)) Quit:CONSNr="" Do .Set Rec=^ORDW("D",CONSNr) - .Quit:$P(Rec,"\",5)'=66066 - . W CONSNr," ",Rec,! - . Set $P(Rec,"\",5)=66058 - . Set Datum=$p(Rec,"\",3) - . Set $P(Datum,",")=66057 - . Set $P(Rec,"\",3)=Datum - . ;Set Datum=$p(Rec,"\",19) - . ;Set $P(Datum,",")=66057 - . ;Set $P(Rec,"\",19)=Datum - . ;Set ^ORDW("D",CONSNr)=Rec - . W " ",Rec,! - ;Do CLOSE^vhDEV(Device) + .Quit:$P(Rec,"\",20)'="" + .Set VerzendW=$P(Rec,"\",2) + .Quit:VerzendW'?1"OD".E + .Set Datum=$P(Rec,"\",3) + .Quit:$P(Datum,",")'=66261 + .W $P(Rec,"\",1),*9,CONSNr,*9,VerzendW,*9,$$$ExcelDat(Datum),*9,Rec,! + .Set $P(Datum,",")=66253 + .Set $p(Rec,"\",3)=Datum + .W *9,Rec,! + . r K + .Set ^ORDW("D",CONSNr)=Rec + Do CLOSE^vhDEV(Device) Quit +VHLOGKL + Set Device=$$OPEN^vhDEV(,"VHLOG Voorraad klein"_$zd($H,8)_".txt","W","T") + Use Device + Write "Klassificatie Leverancier IdentNr BlumID Korttekst ABC StockNietStock Opslagzone Grootverpakking Kleinverpakking PalletAantal Gewicht Gemiddeldevoorraad Voorraad" + Write " #L Out #L TransferNP #L TransferP #L In #L Out GVP #L Out KVP #L Out Pal sep" + Write " #StuksG #StuksK #StuksTNP #StuksTP sep" + Write " SubMag Onderdeel Herbestelafr",! + Set PRNr=0 + Set cnt=0 + Set blOBJT=##class(OBJTimpl.PM.OBJTIdentLookupService).%New() + Set TransProd=##class(AX.Uitgaand.MAG.impl.ExportProductie).%New() + For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do ;quit:cnt=100 + . Quit:$$$PRGet($$$LeveranciersNr)=$$$LevHalux&&('$$$PRGet($$$StockType)) + . Quit:$$$PRGet($$$LinkType)="S" ; stock overkinderen + . Quit:$$$PRGet($$$LinkType)["HH" ; Halux + . ;Quit:$$$PRGet($$$LeveranciersNr)'=5005 + . Quit:$D(^PRBS("BS",PRNr))&&('$$$PRGet($$$StockType)) ; heeft kinderen of componenten + . Write $$$PRGet($$$Groep),*9,$$$PRGet($$$LeveranciersNr),*9,blOBJT.GeefOBJTIdentNr($$$PRGet($$$IdentNummer)),*9,$$GetBlumID^BLPROD(PRNr),*9,$$$PRGet($$$KortTekst),*9,$P($$$PRGet($$$ABCKlassificatie),"#") + . Write *9,$S('$$$PRGet($$$StockType):"Niet",1:"Stock"),*9,$$$PRGet($$$OpslagZone),*9,$$$PRGet($$$GrootVerpakking),*9,$$$PRGet($$$KleinVerpakking),*9,$$$PRGet($$$PalletQty),*9,$$$ExcelNum($$$PRGet($$$Gewicht)) + . Write *9,$P($$$PRGet($$$Rotatie),"#",2),*9,$$$PRGet($$$Voorraad) + . Do HISTVHLOGKL(PRNr,.AantalU,.AantalI,.AantalUK,.AantalUG,.StuksK,.StuksG,.AantalP,.AantalTNP,.AantalTP,.StuksTNP,.StuksTP) + . Write *9,$$$ExcelNum(AantalU),*9,$$$ExcelNum(AantalTNP),*9,$$$ExcelNum(AantalTP),*9,$$$ExcelNum(AantalI),*9,$$$ExcelNum(AantalUG),*9,$$$ExcelNum(AantalUK),*9,$$$ExcelNum(AantalP),*9,"S" + . Write *9,$$$ExcelNum(StuksG),*9,$$$ExcelNum(StuksK),*9,$$$ExcelNum(StuksTNP),*9,$$$ExcelNum(StuksTP),*9,"S" + . Write *9,$$$PRGet($$$WerkvloerSubMag),*9,$S($$$PRGet($$$WerkvloerSubMag)'="":$P(TransProd.ConversieSubMag(PRNr),"`"),1:"") + . Write *9,$$$PRGet($$$WerkvloerHerbestelAfronding),*9,*9,$$$ExcelNum(AantalTP),*9,$$$ExcelNum(StuksTP),*9,$$$PRGet($$$GrootVerpakking) + . Write *9,$$$ExcelNum(Lijn1),*9,$$$ExcelNum(Lijn10),*9,$$$ExcelNum(Lijn25),*9,$$$ExcelNum(Lijn50),*9,$$$ExcelNum(Lijn100) + . ;Do:($$$PRGet($$$LeveranciersNr)=5005)&&(AantalT>10) HISTINCOMING(PRNr) + . Write ! + . set cnt=cnt+1 + Do CLOSE^vhDEV(Device) + Quit + +HISTVHLOGKL(PRNr,AantalU,AantalI,AantalUK,AantalUG,StuksK,StuksG,AantalP,AantalTNP,AantalTP,StuksTNP,StuksTP) + ;Begin,Einde : $H formaat + ;Actie : Zie RES(PRHIST,PI,BEPERK) + ;Magazijn : M = Magazijn, W = Werkvloer, K = Stock over kind, Z = Zonderstock + ;Cumul, Aantal oproep via .Local (byRef) + Set Key="" + Set Pal=$$$PRGet($$$PalletQty) + Set GVP=$$$PRGet($$$GrootVerpakking) + Set GVP=$$$PRGet($$$GrootVerpakking) + Set:'GVP GVP=$$$PRGet($$$NormaleVerpakking) + Set:'GVP GVP=$$$PRGet($$$KleinVerpakking) + Set:'GVP GVP=1 + Set (AantalI,AantalU,AantalUK,AantalUG,StuksK,StuksG,AantalP,AantalTNP,AantalTP,StuksTP,StuksTNP)="" + Set (Lijn1,Lijn10,Lijn25,Lijn50,Lijn100)=0 + For Set Key=$O(^PRHIST(PRNr,Key)) Quit:Key="" Do + . Set Rec=^PRHIST(PRNr,Key) + . Quit:+$P(Rec,"\")<($H-180) + . Quit:$P(Rec,"\",5)'="M" + . Set Qty=-$P(Rec,"\",2) + . Set QtyP=$S((Pal>0):Qty\Pal*Pal,1:0) + . Set QtyNP=Qty-QtyP + . Set:$P(Rec,"\",4)="I" AantalI=AantalI+1 + . Set:$P(Rec,"\",4)="T" AantalTNP=AantalTNP+$S(QtyNP>0:1,1:0),AantalTP=AantalTP+$S(QtyP>0:QtyP/Pal,1:0),StuksTNP=StuksTNP+QtyNP,StuksTP=StuksTP+QtyP + . Set:$P(Rec,"\",4)="U" AantalU=AantalU+1 + . Set:($P(Rec,"\",4)="U")&&((QtyGVP)&&(GVP'=1) AantalUG=AantalUG+1,StuksG=StuksG+Qty-$S((Pal>0):Qty\Pal*Pal,1:0) ; zonder volle paletten + . Set:Pal>0&&($P(Rec,"\",4)="U") AantalP=AantalP+(Qty\Pal) + . IF $P(Rec,"\",4)'?1(1"U",1"T") + . Else If Qty>100 Set Lijn100=Lijn100+1 + . Else If Qty>50 Set Lijn50=Lijn50+1 + . Else If Qty>25 Set Lijn25=Lijn25+1 + . Else If Qty>10 Set Lijn10=Lijn10+1 + . Else Set Lijn1=Lijn1+1 + Quit + + VHLOG - Set Device=$$OPEN^vhDEV(,"VHLOG Voorraad.txt","W","T") + Set Device=$$OPEN^vhDEV(,"VHLOG Voorraad"_$zd($H,8)_".txt","W","T") Use Device - Write "Klassificatie Leverancier IdentNr BlumID Korttekst ABC StockNietStock Opslagzone Grootverpakking Kleinverpakking PalletAantal Gemiddeldevoorraad Voorraad #L Out #L Transfer #L In #L OutGVP #L Out KVP #StuksG #StuksK #StuksT SubMag Onderdeel",! + Write "Klassificatie Leverancier IdentNr BlumID Korttekst ABC StockNietStock Opslagzone Grootverpakking Kleinverpakking PalletAantal Gewicht Gemiddeldevoorraad Voorraad" + Write " #L Out #L TransferNP #L TransferP #L In #L Out GVP #L Out KVP #L Out Pal sep" + Write " #StuksG #StuksK #StuksTNP #StuksTP sep" + Write " SubMag Onderdeel Herbestelafr",! Set PRNr=0 Set cnt=0 + Set blOBJT=##class(OBJTimpl.PM.OBJTIdentLookupService).%New() Set TransProd=##class(AX.Uitgaand.MAG.impl.ExportProductie).%New() For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do ;quit:cnt=100 - . Quit:$$$PRGet($$$LeveranciersNr)=$$$LevHalux + . Quit:$$$PRGet($$$LeveranciersNr)=$$$LevHalux&&('$$$PRGet($$$StockType)) . Quit:$$$PRGet($$$LinkType)="S" ; stock overkinderen . Quit:$$$PRGet($$$LinkType)["HH" ; Halux - . Quit:$$$PRGet($$$LeveranciersNr)'=5005 - . Quit:$D(^PRBS("BS",PRNr)) ; heeft kinderen of componenten - . Write $$$PRGet($$$Groep),*9,$$$PRGet($$$LeveranciersNr),*9,$$$PRGet($$$IdentNummer),*9,$$GetBlumID^BLPROD(PRNr),*9,$$$PRGet($$$KortTekst),*9,$P($$$PRGet($$$ABCKlassificatie),"#") - . Write *9,$S('$$$PRGet($$$StockType):"Niet",1:"Stock"),*9,$$$PRGet($$$OpslagZone),*9,$$$PRGet($$$GrootVerpakking),*9,$$$PRGet($$$KleinVerpakking),*9,$$$PRGet($$$PalletQty) - . WRite *9,$P($$$PRGet($$$Rotatie),"#",2),*9,$$$PRGet($$$Voorraad) - . Do HISTVHLOG(PRNr,.AantalU,.AantalT,.AantalI,.AantalUK,.AantalUG,.StuksK,.StuksG,.StuksT) - . Write *9,$$$ExcelNum(AantalU),*9,$$$ExcelNum(AantalT),*9,$$$ExcelNum(AantalI),*9,$$$ExcelNum(AantalUG),*9,$$$ExcelNum(AantalUK),*9,$$$ExcelNum(StuksG),*9,$$$ExcelNum(StuksK),*9,$$$ExcelNum(StuksT) + . ;Quit:$$$PRGet($$$LeveranciersNr)'=5005 + . Quit:$D(^PRBS("BS",PRNr))&&('$$$PRGet($$$StockType)) ; heeft kinderen of componenten + . Write $$$PRGet($$$Groep),*9,$$$PRGet($$$LeveranciersNr),*9,blOBJT.GeefOBJTIdentNr($$$PRGet($$$IdentNummer)),*9,$$GetBlumID^BLPROD(PRNr),*9,$$$PRGet($$$KortTekst),*9,$P($$$PRGet($$$ABCKlassificatie),"#") + . Write *9,$S('$$$PRGet($$$StockType):"Niet",1:"Stock"),*9,$$$PRGet($$$OpslagZone),*9,$$$PRGet($$$GrootVerpakking),*9,$$$PRGet($$$KleinVerpakking),*9,$$$PRGet($$$PalletQty),*9,$$$ExcelNum($$$PRGet($$$Gewicht)) + . Write *9,$P($$$PRGet($$$Rotatie),"#",2),*9,$$$PRGet($$$Voorraad) + . Do HISTVHLOG(PRNr,.AantalU,.AantalI,.AantalUK,.AantalUG,.StuksK,.StuksG,.AantalP,.AantalTNP,.AantalTP,.StuksTNP,.StuksTP) + . Write *9,$$$ExcelNum(AantalU),*9,$$$ExcelNum(AantalTNP),*9,$$$ExcelNum(AantalTP),*9,$$$ExcelNum(AantalI),*9,$$$ExcelNum(AantalUG),*9,$$$ExcelNum(AantalUK),*9,$$$ExcelNum(AantalP),*9,"S" + . Write *9,$$$ExcelNum(StuksG),*9,$$$ExcelNum(StuksK),*9,$$$ExcelNum(StuksTNP),*9,$$$ExcelNum(StuksTP),*9,"S" . Write *9,$$$PRGet($$$WerkvloerSubMag),*9,$S($$$PRGet($$$WerkvloerSubMag)'="":$P(TransProd.ConversieSubMag(PRNr),"`"),1:"") - . Do:($$$PRGet($$$LeveranciersNr)=5005)&&(AantalT>10) HISTINCOMING(PRNr) + .WRite *9,$$$PRGet($$$WerkvloerHerbestelAfronding),*9,*9,$$$ExcelNum(AantalTP),*9,$$$ExcelNum(StuksTP) + . ;Do:($$$PRGet($$$LeveranciersNr)=5005)&&(AantalT>10) HISTINCOMING(PRNr) . Write ! . set cnt=cnt+1 Do CLOSE^vhDEV(Device) Quit -HISTVHLOG(PRNr,AantalU,AantalT,AantalI,AantalUK,AantalUG,StuksK,StuksG,StuksT) +HISTVHLOG(PRNr,AantalU,AantalI,AantalUK,AantalUG,StuksK,StuksG,AantalP,AantalTNP,AantalTP,StuksTNP,StuksTP) ;Begin,Einde : $H formaat ;Actie : Zie RES(PRHIST,PI,BEPERK) ;Magazijn : M = Magazijn, W = Werkvloer, K = Stock over kind, Z = Zonderstock ;Cumul, Aantal oproep via .Local (byRef) Set Key="" + Set Pal=$$$PRGet($$$PalletQty) Set GVP=$$$PRGet($$$GrootVerpakking) + Set GVP=$$$PRGet($$$GrootVerpakking) Set:'GVP GVP=$$$PRGet($$$NormaleVerpakking) Set:'GVP GVP=$$$PRGet($$$KleinVerpakking) Set:'GVP GVP=1 - Set (AantalI,AantalT,AantalU,AantalUK,AantalUG,StuksK,StuksG,StuksT)="" + Set (AantalI,AantalU,AantalUK,AantalUG,StuksK,StuksG,AantalP,AantalTNP,AantalTP,StuksTP,StuksTNP)="" For Set Key=$O(^PRHIST(PRNr,Key)) Quit:Key="" Do . Set Rec=^PRHIST(PRNr,Key) - . Quit:+$P(Rec,"\")<($H-365) + . Quit:+$P(Rec,"\")<($H-180) . Quit:$P(Rec,"\",5)'="M" . Set Qty=-$P(Rec,"\",2) + . Set QtyP=$S((Pal>0):Qty\Pal*Pal,1:0) + . Set QtyNP=Qty-QtyP . Set:$P(Rec,"\",4)="I" AantalI=AantalI+1 - . Set:$P(Rec,"\",4)="T" AantalT=AantalT+1,StuksT=StuksT+(Qty) + . Set:$P(Rec,"\",4)="T" AantalTNP=AantalTNP+$S(QtyNP>0:1,1:0),AantalTP=AantalTP+$S(QtyP>0:QtyP/Pal,1:0),StuksTNP=StuksTNP+QtyNP,StuksTP=StuksTP+QtyP . Set:$P(Rec,"\",4)="U" AantalU=AantalU+1 - . Set:($P(Rec,"\",4)="U")&&((Qty#GVP)||(GVP=1)) AantalUK=AantalUK+1, StuksK=StuksK+(Qty#GVP) - . Set:($P(Rec,"\",4)="U")&&(Qty>GVP)&&(GVP'=1) AantalUG=AantalUG+1,StuksG=StuksG+Qty-(Qty#GVP) + . Set:($P(Rec,"\",4)="U")&&((Qty#GVP)||(GVP=1)) AantalUK=AantalUK+1, StuksK=StuksK+$S(GVP=1:Qty,1:Qty#GVP) + . Set:($P(Rec,"\",4)="U")&&(Qty>GVP)&&(GVP'=1) AantalUG=AantalUG+1,StuksG=StuksG+Qty-(Qty#GVP)-$S((Pal>0):Qty\Pal*Pal,1:0) ; zonder volle paletten + . Set:Pal>0&&($P(Rec,"\",4)="U") AantalP=AantalP+(Qty\Pal) Quit