Index: PVSTM.mac.rou =================================================================== diff -u -r62525 -r69293 --- PVSTM.mac.rou (.../PVSTM.mac.rou) (revision 62525) +++ PVSTM.mac.rou (.../PVSTM.mac.rou) (revision 69293) @@ -27,7 +27,6 @@ Do CLOSE^vhDEV(Device) Quit - PVSTM ; Order timings [ 11/08/2003 8:42 PM ] ; Overzicht contracten per klant en leverancier @@ -207,6 +206,7 @@ Quit ValiPakHist(Jaar) ;Stockrotatie New I,Cumul,TLNr,Rec + Set blOBJT=##class(OBJTimpl.PM.OBJTIdentLookupService).%New() Set BeginDat=$$INTDATE^vhLib.DataTypes("01/01/"_Jaar) Set EndDat=$$INTDATE^vhLib.DataTypes("31/12/"_Jaar) Set BeginWk=Jaar_".00 " @@ -216,7 +216,7 @@ Set Dev=0 Set Dev=$$OPEN^vhDEV(,"VALIPAK Alle via HIST "_Jaar_".txt","W","T") Quit:'$L(Dev) Use Dev - Write $TR("PRNr;KortTekst;Stock;Klas;GenTyp;SubGenTyp;LevNr;LevNm;CiffPPL;Gewicht;AantalBslTot;AantalBslBE;AantalMwTot;AantalMwBE;AantalMwXX;AantalBslXX;BLBrut;BLNet;RecuPack",";",$c(9)),! + Write $TR("PRNr;KortTekst;OBJT IdentNr;ProdGrp;Stock;Klas;GenTyp;SubGenTyp;LevNr;LevNm;CiffPPL;Gewicht;AantalBslTot;AantalBslBE;AantalMwTot;AantalMwBE;AantalMwXX;AantalBslXX;BLBrut;BLNet;RecuPack",";",$c(9)),! Set PRNr=0 For Set PRNr=$O(^PRHIST(PRNr)) Quit:PRNr="" Do . Set VolgNr=0 @@ -229,6 +229,8 @@ . . If ($P(Rec,"\",4)="H")&&($P(Rec,"\",5)="W") Do . . . Set AantalMwTot=AantalMwTot-$P(Rec,"\",2) . . . Set KLNr=$P(Rec,"\",6) + . . . If 'KLNr,$P(Rec,"\",15) Do + . . . . Set KLNr=$O(^KSTPR($P(Rec,"\",15),0)) . . . If KLNr,$D(^KK1(KLNr)),'$D(LandCache(KLNr)) Do . . . . Set LandCache(KLNr)=($$LAND^vhRtn1(KLNr,"K",1,1)="BE") . . . If KLNr&&$D(^KK1(KLNr)) Do @@ -238,6 +240,8 @@ . . If ($P(Rec,"\",4)="U")&&($P(Rec,"\",5)="M") Do . . . Set AantalBslTot=AantalBslTot-$P(Rec,"\",2) . . . Set KLNr=$P(Rec,"\",6) + . . . If 'KLNr,$P(Rec,"\",15) Do + . . . . Set KLNr=$O(^KSTPR($P(Rec,"\",15),0)) . . . If KLNr,$D(^KK1(KLNr)),'$D(LandCache(KLNr)) Do . . . . Set LandCache(KLNr)=($$LAND^vhRtn1(KLNr,"K",1,1)="BE") . . . If KLNr&&$D(^KK1(KLNr)) Do @@ -251,17 +255,18 @@ . Set CiffPPL=$P(^KPR(PRNr,LevNr),D,23) . Set RecuPackPRNr=$P(^KPR(PRNr,LevNr),D,32) . Set RecuPackProd=$S(RecuPackPRNr:$P($G(^KPR(RecuPackPRNr,0),"***"_RecuPackPRNr_"***"),"\",1),1:"") - . If ($P(GenTyp,"\")="TBX") Do - . . Set Verpak=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"VERPAK")) - . . Set:(Verpak="B")||(Verpak="A") RecuPackProd="VHOSS" + . If $P(GenTyp,"\")?1(1"TBX",1"LBX",1"MVX") Do + . . Set Kenmerken=##class(AXimpl.PM.Kenmerk.Kenmerken).%OpenId(PRNr) + . . Set:$isobject(Kenmerken)&&($zcvt(Kenmerken.VerpakkingType,"U")="VHOSS") RecuPackProd="VHOSS" + . . ;Set:(Verpak="B")||(Verpak="A") RecuPackProd="VHOSS" . Set Gewicht=$P(^KPR(PRNr,1),D,13) . Set LevNr=$E(LevNr,2,99) . Set LevNm=$P(^KLE(^KL1(LevNr),0),D,2) . Set BLRec="" . If LevNr=5005 Do . . Set BLID="0"_$TR($E($P(^KPR(PRNr,2),D,25),2,99),".","") . . Set BLRec=$G(^BLProd("D",BLID)) - . Write PRNr,$C(9),$P(^KPR(PRNr,0),D,1),$C(9),$P(^KPR(PRNr,1),D,20),$C(9),Klas,$C(9),$P(GenTyp,"\"),$C(9),$P(GenTyp,"\",2),$C(9),LevNr,$C(9),LevNm,$C(9),$TR(CiffPPL,".",","),$C(9),$TR(Gewicht,".",",") + . Write PRNr,$C(9),$P(^KPR(PRNr,0),D,1),$C(9),blOBJT.GeefOBJTIdentNr($$$PRGet($$$IdentNummer)),$C(9),$$PRODGRP^PRODUKT(PRNr),$C(9),$P(^KPR(PRNr,1),D,20),$C(9),Klas,$C(9),$P(GenTyp,"\"),$C(9),$P(GenTyp,"\",2),$C(9),LevNr,$C(9),LevNm,$C(9),$TR(CiffPPL,".",","),$C(9),$TR(Gewicht,".",",") . Write $C(9),$TR(+$J(AantalBslTot,0,2),".",","),$C(9),$TR(+$J(AantalBslBE,0,2),".",","),$C(9),$TR(+$J(AantalMwTot,0,2),".",","),$C(9),$TR(+$J(AantalMwBE,0,2),".",","),$C(9),$TR(+$J(AantalBslXX,0,2),".",","),$C(9),$TR(+$J(AantalMwXX,0,2),".",","),$C(9),$TR($P(BLRec,D,9),".",","),$C(9),$TR($P(BLRec,D,26),".",","),*9,RecuPackProd,! Do CLOSE^vhDEV(Dev) Quit @@ -300,9 +305,10 @@ . Set CiffPPL=$P(^KPR(PRNr,LevNr),D,23) . Set RecuPackPRNr=$P(^KPR(PRNr,LevNr),D,32) . Set RecuPackProd=$S(RecuPackPRNr:$P($G(^KPR(RecuPackPRNr,0),"***"_RecuPackPRNr_"***"),"\",1),1:"") - . If ($P(GenTyp,"\")="TBX") Do - . . Set Verpak=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"VERPAK")) - . . Set:(Verpak="B")||(Verpak="A") RecuPackProd="VHOSS" + . If $P(GenTyp,"\")?1(1"TBX",1"LBX") Do + . . Set Kenmerken=##class(AXimpl.PM.Kenmerk.Kenmerken).%OpenId(PRNr) + . . Set:$isobject(Kenmerken)&&($zcvt(Kenmerken.VerpakkingType,"U")="VHOSS") RecuPackProd="VHOSS" + . . ;Set:(Verpak="B")||(Verpak="A") RecuPackProd="VHOSS" . Set Gewicht=$P(^KPR(PRNr,1),D,13) . Set LevNr=$E(LevNr,2,99) . Set LevNm=$P(^KLE(^KL1(LevNr),0),D,2) 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 Index: BL/MB/UGLYPicking/LocationsHal7.cls.xml =================================================================== diff -u --- BL/MB/UGLYPicking/LocationsHal7.cls.xml (revision 0) +++ BL/MB/UGLYPicking/LocationsHal7.cls.xml (revision 69293) @@ -0,0 +1,534 @@ + + + + +Verwijderen en opbouw van de magazijnlocaties. +Locations, Channel en TransLoc tabel worden bewerkt + +Vertrekken van de nieuwe locatie codering worden de locations, channels en transloc opgebouwd. + +1 +%RegisteredObject + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + +%String + + + + + +Hoeveel X subnivo er zijn +%Integer + + + + +Richting van het X subnivo (A, B, C, ...) of (..., C, B, A) +%Integer + + + + +Als het de bovenste locatie is dan wordt het etiket vertikaal gezet +Indien dit niet gewenst is dan moet NoTopDetection op true gezet worden +%Boolean + + + + +Verwijderen zonder controle ofdat er een pallet op staat +%Integer + + + + +Al dan niet creatie van de locaties +%Integer + + + + +Al dan niet afdrukken van de labels +%Integer + + + +%String + + + + +%String + + + + +%String + + + + +BL.Sys.LabelPrinter + + + + +Instantiatie kan in meerdere modes: +CreateMag : Creatie van de location, channel en transloc tabellen + indien CreateMag=2 dan worden de locations verwijderd ook al zijn ze gekoppeld aan een een pallet + indien CreateMag=1 dan worden de locations alleen verwijderd als ze niet gekoppeld zijn + indien createMag=0 dan worden de locations enkel getoond op het scherm, en gebeurt er geen wijziging in de databank. +CreateLabel : Creatie van de labels (boolean: 0=false; 1=true). +1 +CreateMag,CreateLabel + + + + + +Initialisatie van Buiding en Magazijn(hal) +WMSMag,TransBuilding,TransHal + + + + + +Initialisatie van de gang +Dient uitgevoerd bij elke nieuwe gang +WMSGang,TransGang,VakGroteX,DirX,WMSLocYStart + + + + + + + + + + + + + + + + + + + + +TransXVan,TransXTot,VakVan,VakTot,TransYVan,TransYTot +",LocM," ",LocG," ",LocX," ",LocY,! + . . . Quit:'LocM + . . . If ..CreateMag Do ; geen creatie van gangen + . . . . &sql(Update EWMS.Locations set state=6 where loc_m=:LocM and loc_g=:LocG and loc_x=:LocX and loc_y=:LocY) + . . . . Write SQLCODE +]]> + + + + +Creatie van de locaties beperkt tot de ingestelde building, magazijn en gang. +@Param WMSLocXVan Dit is de LocX voor vak A; ook als je bvb nu vak D wilt toevoegen! + Let op: Als bvb pas vanaf vak D in een bepaalde LocG-waarde zit, dan is de eerste LocX in die "gang" degene voor vak "D", + maar moet WMSLocXVan de waarde krijgen die vak A zou krijgen als vak A ook in deze "gang" zou gezeten hebben. + Let op: WMSLocX+VakAantal mag niet boven 69 of 70 gaan. Zoniet zal het EWMS niet werken bij volgende herstart! +@Param VakAantal is eigenlijk de "Tot" voor de horizontale "geletterde" vakken: als je vak E (=5) wilt toevoegen, moet je hier 5 invullen. +@Param WMSLocYVan Dit is de LocY voor verticale vak 1; ook als je bvb nu vak 6 wilt toevoegen! +@Param TransYVan Dit is de Y-waarde in de "transloc" van het eerste nieuw toe te voegen verticale vak. +@Param LimVakAlfa Dit is het vaknummer dat nu mag toegevoegd worden. Indien afwezig wordt van A tot ... toegevoegd (te kiezen via VakAantal). +WMSLocXVan,TransXVan,TransXTot,VakAantal,WMSLocYVan,TransYVan,TransYTot,LimVakAlfa +7 + . For Vak=$S(..DirX>0:1,1:VakAantal):..DirX:$S(..DirX>0:VakAantal,1:1) Do + . . Set LocXa=$C($A("A")-1+Vak) + . . Set ..WMSLocX=..WMSLocX+1 + . . For TransY=TransYVan:1:TransYTot Do + . . . Set LocTrans=##class(EWMS.TransLoc).Concat(..TransBuilding,..TransHal,..TransGang ,TransX,LocXa,TransY) + . . . Set WMSLocY=WMSLocYVan-1+TransY + . . . ;Write "Createloc: ",LimVakAlfa," ",LocXa," ",LimVakAlfa'=LocXa + . . . Quit:$L($G(LimVakAlfa))&&(LimVakAlfa'=LocXa) + . . . Write ..WMSMag,*9,..WMSGang,*9,..WMSLocX,*9,WMSLocY,*9,LocTrans,! + . . . ;Write "Createloc: ",..WMSMag," ",..WMSGang," ",..WMSLocX," ",WMSLocY,"<->",LocTrans,! + . . . Set sc=..CreateLoc(..WMSMag,..WMSGang,..WMSLocX,WMSLocY,LocTrans) + . . . Write:$$$ISERR(sc) "error Createloc:",$$ParseStatus^vhLib(sc) + . . . Do ..CreateLabel(LocTrans) +]]> + + + + +Ganse gang wordt weggehaald +door probleemm met nested embedded SQL worden de te verwijderen locaties eerst in een array opgeslagen en pas daarna verwijderd +Forced + + + + + +Verwijderen van de locaties opgeslagen in een array +door probleemm met nested embedded SQL worden de te verwijderen locaties eerst in een array opgeslagen en pas daarna verwijderd + +1 + + + + + +Verwijderen van een locatie, channel en transloc. +Indien Forced=true dan worden ook niet lege locaties verwijderd +LocM,LocG,LocX,LocY,Forced +1 + + + + + + + + +LocM,LocG,LocX,LocY,LocTrans +1 + MaxLocX) || (LocY > MaxLocY)) + { + w "Locatie ("_LocX_","_LocY_") valt buiten het geldige bereik:" + If (LocX > MaxLocX) { w " x-positie is groter dan "_MaxLocX } + If (LocY > MaxLocY) { w " y-positie is groter dan "_MaxLocY } + w ! + Quit $$$OK + } + + Set sc=##class(EWMS.Channel).Create(LocM,LocG,LocX,LocY) + Quit:$$$ISERR(sc) sc + Set sc=##class(EWMS.Locations).CreateEmpty(LocM,LocG,LocX,LocY) + Quit:$$$ISERR(sc) sc + Set sc=##class(EWMS.TransLoc).Create(LocM,LocG,LocX,LocY,LocTrans,$G(IsPickbaar,0)) + Quit sc +]]> + + + +TransXVan,TransXTot +TransXTot + . Write "reprint ",LocTrans,! + . Set arReprint(LocTrans)="" + + Set LocTrans="" + For Set LocTrans=$O(arReprint(LocTrans)) Quit:LocTrans="" Do + . Do ..CreateLabel(LocTrans) + &sql(CLOSE Reprint) +]]> + + + + +Creatie van een locatie, channel en transloc +LocTrans + + + + + + + + + +d ##class(BL.MB.UGLYPicking.Locations).%New().DeleteMag3Gang8Tot8() + + + + + +d ##class(BL.MB.UGLYPicking.Locations).%New().DeleteMag2en3() + + + + +LocID,LocG,LocX,LocY + + + + + +w ##class(BL.MB.UGLYPicking.Locations).%New().Move2Ugly("00079938","01D01A01") +LocID,LocTrans + + + + + +