Index: FLOWORD7.mac.rou =================================================================== diff -u -r51451 -r54795 --- FLOWORD7.mac.rou (.../FLOWORD7.mac.rou) (revision 51451) +++ FLOWORD7.mac.rou (.../FLOWORD7.mac.rou) (revision 54795) @@ -327,18 +327,18 @@ ; ; Controle voorraad van de bouwstenen bij het sluiten van een order BSControl(ORDNr) - New R,KLNr,OLNr,OLUNr,PRNr,Aantal,Control,StockUpd,InventTransId + New R,KLNr,OLNr,OLUNr,PRNr,Aantal,Control,StockUpd,InventTransId,ConfigId,MaatwerkGenerischItemId Set KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=100 Quit:KLNr=$$$KlantHalux ; Niet voor Halux For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do - . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2),OLUNr=$P(R,D,15),InventTransId=$P(R,D,55) + . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2),OLUNr=$P(R,D,15),InventTransId=$P(R,D,55),ConfigId=$P(R,D,56),MaatwerkGenerischItemId=$P(R,D,57) . Quit:((InventTransId'="")&&($$OrderLijnIsGeblokkeerd(InventTransId))) . Quit:($P(R,"\",28)'="") . Quit:'PRNr . Set StockUpd=$P(R,D,14)'["S" Set:StockUpd StockUpd=$P(R,D,14)'["Z" . Quit:'StockUpd . Set Aantal=$P(R,D,3) - . Do FetchBSControl(PRNr,Aantal,.Control,ORDNr,OLUNr) + . Do FetchBSControl(PRNr,Aantal,.Control,ORDNr,OLUNr,,InventTransId,ConfigId,MaatwerkGenerischItemId) Do:$D(Control) . Do CalcBSControl(.Control) . Quit:'$D(Control("L")) @@ -348,7 +348,7 @@ Quit ; Ophalen en cumuleren van de bouwstenen -FetchBSControl(PRNr,Aantal,Control,ORDNr,OLUNr,InclVerpak) +FetchBSControl(PRNr,Aantal,Control,ORDNr,OLUNr,InclVerpak,InventTransId,ConfigId,MaatwerkGenerischItemId) New R,BSKey,BSPRNr,BSAantal,IsStock,BSType,Dimensie,CumulAantal,LEVNr Set InclVerpak=$G(InclVerpak),BSKey="" For Set BSKey=$O(^PRBS("BS",PRNr,BSKey)) Quit:BSKey="" Do @@ -371,6 +371,7 @@ . . Else Set CumulAantal=$$TELMAGST^MRP(BSPRNr,Aantal*BSAantal,,$P(Dimensie,D),$P(Dimensie,D,2)) ; Bouwsteen met dimensie . . Set $P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D)=$P($G(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr)),D)+CumulAantal . . Set $P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D,2)=$P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D,2)+1 + . . Set $P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D,3)=InventTransId_D_ConfigId_D_MaatwerkGenerischItemId . . Set $P(R,D)=$P(R,D)+CumulAantal . . Set $P(R,D,2)=BSType . . If BSType="K" Set:$P(R,D,3)<$P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D,2) $P(R,D,3)=$P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D,2) ; Een op een ralatie? @@ -426,7 +427,7 @@ ; Automatisch behandelen van de problemen. BewerkAxBSControl(Control) - New I,R,List,Input,CType,BSPRNr,BSAantal,Stock,Reservatie,BestHoev,LevTerm,LEVNr,GrVerp,EenOpEenRel,PRNr,ORDNr,OLUNr + New I,R,List,Input,CType,BSPRNr,BSAantal,Stock,Reservatie,BestHoev,LevTerm,LEVNr,GrVerp,EenOpEenRel,PRNr,ORDNr,OLUNr,InventTransId,ConfigId,MaatwerkGenerischItemId For I=1:1 Set R=$G(Control("L",I)) Quit:R="" Do . Set CType=$P(R,D,2),BSPRNr=$P(R,D,3),BSAantal=$P(R,D,4),Stock=$P(R,D,6),Reservatie=$P(R,D,7),BestHoev=$P(R,D,8),LevTerm=$P(R,D,9),LEVNr=$P(R,D,10),GrVerp=$P(R,D,11) . If CType="NS" Do @@ -440,7 +441,10 @@ . . . . . . Set OLUNr="" . . . . . . For Set OLUNr=$O(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr)) Quit:OLUNr="" Do . . . . . . . Set BSAantal=$P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D) - . . . . . . . Set Control("T",LEVNr,$O(Control("T",LEVNr,""),-1)+1)=BSPRNr_D_BSAantal_D_$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(,"W",LevTerm),"DW")_D_ORDNr_D_OLUNr + . . . . . . . Set InventTransId=$P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D,3) + . . . . . . . Set ConfigId=$P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D,4) + . . . . . . . Set MaatwerkGenerischItemId=$P(Control("NS",BSPRNr,PRNr,ORDNr,OLUNr),D,5) + . . . . . . . Set Control("T",LEVNr,$O(Control("T",LEVNr,""),-1)+1)=BSPRNr_D_BSAantal_D_$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(,"W",LevTerm),"DW")_D_ORDNr_D_OLUNr_D_InventTransId_D_ConfigId_D_MaatwerkGenerischItemId . . . . Else Do . . . . . If BSAantal'>BestHoev Set BSAantal=BestHoev ; Controle op min bestelhoev en grootverpakking . . . . . Else If BSAantal'>GrVerp Set BSAantal=GrVerp