Index: FLOWORD6.mac.rou =================================================================== diff -u -r3941 -r5102 --- FLOWORD6.mac.rou (.../FLOWORD6.mac.rou) (revision 3941) +++ FLOWORD6.mac.rou (.../FLOWORD6.mac.rou) (revision 5102) @@ -148,26 +148,31 @@ ; Versmelten van orderlijnen binnen een OLUNr groep tot een lijn MergeOLUNrs(ORDNr,ToOLUNr) New KLNr,Rec,FromOLUNr,ToOLNr,FromOLNr,ToPRNr,FromPRNr,ToPrijs,FromPrijs,ToLeverdag,FromLeverdag,ToTOENr,FromTOENr - Set KLNr=$P(^KO1(ORDNr,"F"),D) - Set ToOLNr=^ORD("IU",ORDNr,ToOLUNr) - Set Rec=^KOD(KLNr,"F",ORDNr,ToOLNr),ToPRNr=$P(Rec,D,2),ToPrijs=$P(Rec,D,6),ToLeverdag=$P(Rec,D,25),ToTOENr=$P(Rec,D,27) - Set FromOLUNr=ToOLUNr\10*10 - For FromOLUNr=FromOLUNr:1:(FromOLUNr+9) { - Continue:(FromOLUNr=ToOLUNr) - Set FromOLNr=$G(^ORD("IU",ORDNr,FromOLUNr)) - Continue:'FromOLNr - Set Rec=^KOD(KLNr,"F",ORDNr,FromOLNr),FromPRNr=$P(Rec,D,2),FromPrijs=$P(Rec,D,6),FromLeverdag=$P(Rec,D,25),FromTOENr=$P(Rec,D,27) - If FromPRNr=ToPRNr,FromPrijs=ToPrijs,FromLeverdag=ToLeverdag,FromTOENr=ToTOENr Do MergeLijn(ORDNr,FromOLNr,ToOLNr) + If '$D(^ORDW("IO",ORDNr,ToOLUNr)) { + Set KLNr=$P(^KO1(ORDNr,"F"),D) + Set ToOLNr=^ORD("IU",ORDNr,ToOLUNr) + Set Rec=^KOD(KLNr,"F",ORDNr,ToOLNr),ToPRNr=$P(Rec,D,2),ToPrijs=$P(Rec,D,6),ToLeverdag=$P(Rec,D,25),ToTOENr=$P(Rec,D,27) + Set FromOLUNr=ToOLUNr\10*10 + For FromOLUNr=FromOLUNr:1:(FromOLUNr+9) { + Continue:(FromOLUNr=ToOLUNr) + Set FromOLNr=$G(^ORD("IU",ORDNr,FromOLUNr)) + Continue:'FromOLNr + Continue:$D(^ORDW("IO",ORDNr,FromOLUNr)) ; Deze lijn is verzonden naar het WMS + Set Rec=^KOD(KLNr,"F",ORDNr,FromOLNr),FromPRNr=$P(Rec,D,2),FromPrijs=$P(Rec,D,6),FromLeverdag=$P(Rec,D,25),FromTOENr=$P(Rec,D,27) + If FromPRNr=ToPRNr,FromPrijs=ToPrijs,FromLeverdag=ToLeverdag,FromTOENr=ToTOENr Do MergeLijn(ORDNr,FromOLNr,ToOLNr) + } } Quit ; ; Versmelten van twee orderlijnen tot een lijn MergeLijn(ORDNr,FromOLNr,ToOLNr) - New KLNr,Rec,FromPRNr,ToPRNr,FromAantal,ToAantal,FromPrijs,ToPrijs,FromLeverdag,ToLeverdag,FromTOENr,ToTOENr + New KLNr,Rec,FromPRNr,ToPRNr,FromAantal,ToAantal,FromPrijs,ToPrijs,FromLeverdag,ToLeverdag,FromTOENr,ToTOENr,FromOLUNr,ToOLUNr Set KLNr=$P(^KO1(ORDNr,"F"),D) + Set FromOLUNr=$$GeefOrderLijnCode^FLOWORD(KLNr,ORDNr,FromOLNr) Set Rec=^KOD(KLNr,"F",ORDNr,FromOLNr),FromPRNr=$P(Rec,D,2),FromAantal=$P(Rec,D,3),FromPrijs=$P(Rec,D,6),FromLeverdag=$P(Rec,D,25),FromTOENr=$P(Rec,D,27) + Set ToOLUNr=$$GeefOrderLijnCode^FLOWORD(KLNr,ORDNr,ToOLNr) Set Rec=^KOD(KLNr,"F",ORDNr,ToOLNr),ToPRNr=$P(Rec,D,2),ToAantal=$P(Rec,D,3),ToPrijs=$P(Rec,D,6),ToLeverdag=$P(Rec,D,25),ToTOENr=$P(Rec,D,27) - If FromOLNr'=ToOLNr,FromPRNr=ToPRNr,FromPrijs=ToPrijs,FromLeverdag=ToLeverdag,FromTOENr=ToTOENr { ; Zelfde product, zelfde verkoopprijs, zelfde leverdag maar niet met zichzelf + If '$D(^ORDW("IO",ORDNr,FromOLUNr)),'$D(^ORDW("IO",ORDNr,ToOLUNr)),FromOLNr'=ToOLNr,FromPRNr=ToPRNr,FromPrijs=ToPrijs,FromLeverdag=ToLeverdag,FromTOENr=ToTOENr { ; Zelfde product, zelfde verkoopprijs, zelfde leverdag maar niet met zichzelf en geen van beide in het WMS Do MODAANT(KLNr,ORDNr,ToOLNr,(FromAantal+ToAantal)) Do DELLINE^FLOWORD3(ORDNr,FromOLNr) } @@ -185,4 +190,6 @@ . Set ORDNr="" . For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Set ^KO1(ORDNr,"F")=KLNr_D Quit - ; \ No newline at end of file + ; + +