FLOWBON3 ;Bon [ 05/21/2003 11:54 AM ] #include BL.Derde.KlantSpecifiek ; CheckOpTransp default op 1 DELLINE(BONNr,OLNr,Extern,ProfNr,CheckOpTransp) New %TC,R,KLNr,PRNr,PR,Date,Munt,Pariteit,Aantal,Netto,Kom,ProfOLNr,StockUpd,IsEuro,BLUNr,OrdDat,ORDNr Set Extern=$G(Extern),ProfNr=$G(ProfNr),CheckOpTransp=$G(CheckOpTransp,1) Set KLNr=$P(^KU1(BONNr,"F"),D) Do .Set R=^KUL(KLNr,"F",BONNr,OLNr),(PRNr,PR)=$P(R,D,2),BLUNr=$P(R,D,15) .If $P(R,D,17)="KF5" Set ORDNr=$P($P(R,D,5)," - ") Do:ORDNr ..If $P($G(^KO1(ORDNr,"F")),D)=KLNr,'$D(^KOD(KLNr,"F",ORDNr)) Kill ^KO1(ORDNr,"F") ..Do DelOrd^KLACHT4(ORDNr) .If PRNr,'$$ISOVP^ORGALUX(PRNr),CheckOpTransp,$$OPTRANSP^FLOWBON(KLNr,BONNr,OLNr,1) Quit .Set StockUpd=$P(R,D,14)'["S" Set:StockUpd StockUpd=$P(R,D,14)'["Z" .For Do ADD^vhLock("^KUL(KLNr,""F"",BONNr,OLNr)") Quit:%TC Do LDISP^vhLock("^KUL(KLNr,""F"",BONNr,OLNr)","Bon "_BONNr) .If PRNr,'StockUpd .Else If PRNr,$$OPSLMAN^PRODUKT2(PRNr)!$$ISOVP^ORGALUX(PRNr) Do ..Set Aantal=-$P(R,D,3),Netto=-$P(R,D,10),VerwTyp=$P(R,D,14),Kom=$P($P(R,D,28),";")="KOM" ..Set R=^KUL(KLNr,"F",BONNr,1),Date=$P(R,D,2),Munt=$P(R,D,18) Set:Munt="" Munt=$$FADEF^vhRtn1() ..Set Date=$$CONVDATE^vhLib.DataTypes(Date,"DK","DSN") ..Set Pariteit=$$MUNT^vhRtn1(Munt,,12),Netto=Netto*Pariteit ..If Aantal'>0 Do ...Set IsEuro=$$ISEURO^vhRtn1() ...For Do ADD^vhLock("^KPR(PRNr)") Quit:%TC Do LDISP^vhLock("^KPR(PRNr)","Produkt "_$P(^KPR(PRNr,0),D)) ...Set R=Date_2_D_$S(VerwTyp["S":0,VerwTyp["Z":0,1:Aantal)_D_D_1_D ...Set R=R_$J($S(VerwTyp["S":0,VerwTyp["Z":0,1:Netto),0,$S(IsEuro:4,1:2))_"\0\0\"_BONNr_" STORNO ("_KLNr_")" ...Do ^KPR10 ...Set OrdDat=$P($$ORDGEG^FLOWBON(KLNr,BONNr,OLNr),D,2) Set:$L(OrdDat) OrdDat=$$INTDATE^vhLib.DataTypes(OrdDat) ...Do PUT^PRHIST(PRNr,$S(VerwTyp["S":0,VerwTyp["Z":0,1:-Aantal),"I",,KLNr,BONNr,BLUNr,$$INTDATE^vhLib.DataTypes(Date),,,,,,OrdDat) ...Do REMOVE^vhLock("^KPR(PRNr)") ..Set R=PRNr_D_Date_D_Aantal_D_$J(Netto,1,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen())_D_Kom Do ^Stat.Product.UpdateWeekStatistiek .Else If PRNr,ProfNr,'$$ISOVP^ORGALUX(PRNr) Do ..Set ProfOLNr=^KUL(KLNr,"F",ProfNr,0),^KUL(KLNr,"F",ProfNr,0)=ProfOLNr+1 ..Set ($P(R,D,15),$P(R,D,23))="",^KUL(KLNr,"F",ProfNr,ProfOLNr)=R ..Do BUILDBON(KLNr,ProfNr,ProfOLNr),BUILDKUP(KLNr,ProfNr,ProfOLNr) ..Set $P(R,D,3)=-$P(R,D,3) For I=9,10,16 Set $P(R,D,I)=$J(-$P(R,D,I),0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) ..Set $P(R,D,15)="",ProfOLNr=^KUL(KLNr,"F",ProfNr,0),^KUL(KLNr,"F",ProfNr,0)=ProfOLNr+1 ..Set ^KUL(KLNr,"F",ProfNr,ProfOLNr)=R ..Do BUILDBON(KLNr,ProfNr,ProfOLNr),BUILDKUP(KLNr,ProfNr,ProfOLNr) .Do DELBON(KLNr,BONNr,OLNr),DELKUP(KLNr,BONNr,OLNr) .If BLUNr,PRNr Do ..Do:$$CHKCUST(KLNr) ST2CC(KLNr,BONNr,OLNr) ..Kill ^PRHISTI("B",BONNr,BLUNr),AkpVkpVerlies(BLUNr) .Kill ^KUL(KLNr,"F",BONNr,OLNr) .If '$O(^KUL(KLNr,"F",BONNr,100)) Do ..Set R=^KUL(KLNr,"F",BONNr,1) Do KILL^KFVZW("F",R,BONNr) ..If Extern Kill ^KU1(BONNr,"F"),^KUB(BONNr,"F"),^KU2("F",KLNr,BONNr),^KUL(KLNr,"F",BONNr) ..Do DelBon^KLACHT4(BONNr),DelVRIJGAVE^FLOW2(KLNr,"B",BONNr) .Do REMOVE^vhLock("^KUL(KLNr,""F"",BONNr,OLNr)") Quit ; ; CheckOpTransp default op 1 DELOBJ(BONNr,CheckOpTransp) New %TC,KLNr,OLNr,OpTransp Set CheckOpTransp=$G(CheckOpTransp,1) Set KLNr=$P(^KU1(BONNr,"F"),D),OpTransp=$S(CheckOpTransp:$$OPTRANSP^FLOWBON(KLNr,BONNr,,1),1:0) Do:'OpTransp .Set OLNr=100 .For Do ADD^vhLock("^KUL(KLNr,""F"",BONNr)") Quit:%TC Do LDISP^vhLock("^KUL(KLNr,""F"",BONNr)","Bon "_BONNr) .For Set OLNr=$O(^KUL(KLNr,"F",BONNr,OLNr)) Quit:'OLNr Do DELLINE(BONNr,OLNr) .Kill ^KU1(BONNr,"F"),^KUB(BONNr,"F"),^KU2("F",KLNr,BONNr),^KUL(KLNr,"F",BONNr) .Do DelBon^KLACHT4(BONNr),DelVRIJGAVE^FLOW2(KLNr,"B",BONNr) .Do REMOVE^vhLock("^KUL(KLNr,""F"",BONNr)") Quit ; CHKDEL(BONNr) New R,KLNr,OLNr,LineTyp Set KLNr=$P($G(^KU1(BONNr,"F")),D) Do:KLNr .Set OLNr=100 .For Set OLNr=$O(^KUL(KLNr,"F",BONNr,OLNr)) Quit:'OLNr Do Quit:"\KF11\KF5\"'[(D_LineTyp_D) ..Set R=^KUL(KLNr,"F",BONNr,OLNr),LineTyp=$P($P(R,D,17),"#") .Do:'OLNr DELOBJ(BONNr) Quit ; BUILDBON(KLNr,BONNr,BLNr) Set KLNr=$G(KLNr,0),BONNr=$G(BONNr),BLNr=$G(BLNr) Do BUILDIU(KLNr,BONNr,BLNr) Do BUILDIP(KLNr,BONNr,BLNr) Quit ; BUILDIU(KLNr,BONNr,BLNr) New R,OneCust,OneBon,OneLine,PRNr,BLUNr Set KLNr=$G(KLNr,0),BONNr=$G(BONNr),BLNr=$G(BLNr) Set (OneCust,OneBon,OneLine)=0 Set:KLNr OneCust=1 Set:BONNr OneBon=1 Set:BLNr OneLine=1 For Set:'OneCust KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do Quit:OneCust .Set:'OneBon BONNr=0 .For Set:'OneBon BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do Quit:OneBon ..Set:'OneLine BLNr=100 ..For Set:'OneLine BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:OneLine ...Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2),BLUNr=$P(R,D,15) ...If 'BLUNr Set BLUNr=$$UNIEKLNR^FLOWBON(KLNr,BONNr),$P(R,D,15)=BLUNr,^KUL(KLNr,"F",BONNr,BLNr)=R ...Quit:'PRNr ...Set ^BON("IU",BONNr,BLUNr)=BLNr Quit ; BUILDIP(KLNr,BONNr,BLNr) New R,OneCust,OneBon,OneLine,BLUNr,PRNr Set KLNr=$G(KLNr,0),BONNr=$G(BONNr),BLNr=$G(BLNr) Set (OneCust,OneBon,OneLine)=0 Set:KLNr OneCust=1 Set:BONNr OneBon=1 Set:BLNr OneLine=1 For Set:'OneCust KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do Quit:OneCust .Set:'OneBon BONNr=0 .For Set:'OneBon BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do Quit:OneBon ..Set:'OneLine BLNr=100 ..For Set:'OneLine BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:OneLine ...Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2),BLUNr=$P(R,D,15) ...If 'BLUNr Set BLUNr=$$UNIEKLNR^FLOWBON(KLNr,BONNr),$P(R,D,15)=BLUNr,^KUL(KLNr,"F",BONNr,BLNr)=R ...Quit:'PRNr ...Set ^BON("IP",PRNr,BONNr,BLUNr)=BLNr Quit ; DELBON(KLNr,BONNr,BLNr) Set KLNr=$G(KLNr,0),BONNr=$G(BONNr),BLNr=$G(BLNr) Do DELIU(KLNr,BONNr,BLNr) Do DELIP(KLNr,BONNr,BLNr) Quit ; DELIU(KLNr,BONNr,BLNr) New R,OneCust,OneBon,OneLine,BLUNr Set KLNr=$G(KLNr,0),BONNr=$G(BONNr),BLNr=$G(BLNr) Set (OneCust,OneBon,OneLine)=0 Set:KLNr OneCust=1 Set:BONNr OneBon=1 Set:BLNr OneLine=1 For Set:'OneCust KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do Quit:OneCust .Set:'OneBon BONNr=0 .For Set:'OneBon BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do Quit:OneBon ..Set:'OneLine BLNr=100 ..For Set:'OneLine BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:OneLine ...Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2),BLUNr=$P(R,D,15) ...If 'BLUNr Set BLUNr=$$UNIEKLNR^FLOWBON(KLNr,BONNr),$P(R,D,15)=BLUNr,^KUL(KLNr,"F",BONNr,BLNr)=R ...Quit:'PRNr ...Kill ^BON("IU",BONNr,BLUNr) Quit ; DELIP(KLNr,BONNr,BLNr) New R,OneCust,OneBon,OneLine,BLUNr,PRNr Set KLNr=$G(KLNr,0),BONNr=$G(BONNr),BLNr=$G(BLNr) Set (OneCust,OneBon,OneLine)=0 Set:KLNr OneCust=1 Set:BONNr OneBon=1 Set:BLNr OneLine=1 For Set:'OneCust KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do Quit:OneCust .Set:'OneBon BONNr=0 .For Set:'OneBon BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do Quit:OneBon ..Set:'OneLine BLNr=100 ..For Set:'OneLine BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:OneLine ...Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2),BLUNr=$P(R,D,15) ...If 'BLUNr Set BLUNr=$$UNIEKLNR^FLOWBON(KLNr,BONNr),$P(R,D,15)=BLUNr,^KUL(KLNr,"F",BONNr,BLNr)=R ...Quit:'PRNr ...Kill ^BON("IP",PRNr,BONNr,BLUNr) Quit ; CHECKBON Do .New Check,File .Set Q="K" .Do ^cA604 If '$D(Check) Write !!,"*** WMS bon ***" Set KLNr=0 For Set KLNr=$O(^KUL(KLNr)) Quit:'KLNr Do .Set Klant=KLNr_" "_$P(^KKL(^KK1(KLNr),0),D,2),BONNr="" .For Set BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:'BONNr Do ..Set BLNr=100 ..If '$D(^KUL(KLNr,"F",BONNr,4)) Do ...Set Check=0 ...Do wKLANT^zbcheck ...Write !!,"Teller BLUNr ",$ZR," onbekend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr ..For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do ...Set R=^KUL(KLNr,"F",BONNr,BLNr),ZR=$ZR,PRNr=$P(R,D,2),ULUNr=$P(R,D,15) ...If 'ULUNr Do Quit ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Bonlijn ",ZR," BLUNr onbekend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr,?50,"Lijn = ",BLNr ...Quit:'PRNr ...If '$D(^BON("IU",BONNr,ULUNr)) Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",$ZR," onbekend",!?8,"Bon = ",BONNr,?29,"BLUNr = ",ULUNr,?50,"Lijn = ",BLNr ...If $D(^BON("IU",BONNr,ULUNr)),^BON("IU",BONNr,ULUNr)'=BLNr Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",$ZR," lijnnummer verschillend",!?8,"Bon = ",BONNr,?29,"BLUNr = ",ULUNr,?50,"Lijn ",BLNr," <> ",^BON("IU",BONNr,ULUNr) ...If '$D(^BON("IP",PRNr,BONNr,ULUNr)) Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",$ZR," onbekend",!?8,"Bon = ",BONNr,?29,"BLUNr = ",ULUNr,?50,"Lijn = ",BLNr ...If $D(^BON("IP",PRNr,BONNr,ULUNr)),^BON("IP",PRNr,BONNr,ULUNr)'=BLNr Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",$ZR," lijnnummer verschillend",!?8,"Bon = ",BONNr,?29,"BLUNr = ",ULUNr,?50,"Lijn ",BLNr," <> ",^BON("IP",PRNr,BONNr,ULUNr) Set BONNr="" For Set BONNr=$O(^BON("IU",BONNr)) Quit:'BONNr Do .Set ULUNr="" .For Set ULUNr=$O(^BON("IU",BONNr,ULUNr)) Quit:'ULUNr Do ..Set R=^BON("IU",BONNr,ULUNr),ZR=$ZR,BLNr=$P(R,D) ..Set KLNr=$P($G(^KU1(BONNr,"F")),D) ..If 'KLNr Do Quit ...Set Check=0 ...Write !!,"Index ",ZR," bon onbekend",!,?8,"Bon = ",BONNr ..Set Klant=KLNr_" "_$P(^KKL(^KK1(KLNr),0),D,2) ..If '$D(^KUL(KLNr,"F",BONNr)) Do Quit ...Set Check=0 ...Do wKLANT^zbcheck ...Write !!,"Index ",ZR," bon onbekend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr ..Set R=$G(^KUL(KLNr,"F",BONNr,BLNr)) ..If R="" Do Quit ...Set Check=0 ...Do wKLANT^zbcheck ...Write !!,"Index ",ZR," bonlijn onbekend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr,?50,"Lijn ",BLNr ..If $P(R,D,15)'=ULUNr Do ...Set Check=0 ...Do wKLANT^zbcheck ...Write !!,"Index ",ZR," BLUNr verschillend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr,?50,"BLUNr ",ULUNr," <> ",$P(R,D,15) Set PRNr="" For Set PRNr=$O(^BON("IP",PRNr)) Quit:'PRNr Do .Set BONNr="" .For Set BONNr=$O(^BON("IP",PRNr,BONNr)) Quit:'BONNr Do ..Set ULUNr="" ..For Set ULUNr=$O(^BON("IP",PRNr,BONNr,ULUNr)) Quit:'ULUNr Do ...Set R=^BON("IP",PRNr,BONNr,ULUNr),ZR=$ZR,BLNr=$P(R,D) ...Set KLNr=$P($G(^KU1(BONNr,"F")),D) ...If 'KLNr Do Quit ....Set Check=0 ....Write !!,"Index ",ZR," bon onbekend",!,?8,"Bon = ",BONNr ...Set Klant=KLNr_" "_$P(^KKL(^KK1(KLNr),0),D,2) ...If '$D(^KUL(KLNr,"F",BONNr)) Do Quit ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",ZR," bon onbekend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr ...Set R=$G(^KUL(KLNr,"F",BONNr,BLNr)) ...If R="" Do Quit ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",ZR," bonlijn onbekend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr,?50,"Lijn ",BLNr ...If $P(R,D,2)'=PRNr Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",ZR," product verschillend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr,?50,"Product ",PRNr," <> ",$P(R,D,2) ...If $P(R,D,15)'=ULUNr Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",ZR," BLUNr verschillend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr,?50,"BLUNr ",ULUNr," <> ",$P(R,D,15) Quit ; CHECK(File) New (File) Set File=$G(File,"BP"),Check=1 Do:File["B" CHECKBON Do:File["P" CHECKKUP Quit Check ; BUILDKUP(KLNr,BONNr,BLNr) New R,OneCust,OneBon,OneLine,PRNr Set KLNr=$G(KLNr,0),BONNr=$G(BONNr),BLNr=$G(BLNr) Set (OneCust,OneBon,OneLine)=0 Set:KLNr OneCust=1 Set:BONNr OneBon=1 Set:BLNr OneLine=1 For Set:'OneCust KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do Quit:OneCust .Set:'OneBon BONNr=0 .For Set:'OneBon BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do Quit:OneBon ..Set:'OneLine BLNr=100 ..For Set:'OneLine BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:OneLine ...Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2) ...Quit:'PRNr ...Set ^KUP(PRNr,BONNr,BLNr)=KLNr Quit ; DELKUP(KLNr,BONNr,BLNr) New R,OneCust,OneBon,OneLine,PRNr Set KLNr=$G(KLNr,0),BONNr=$G(BONNr),BLNr=$G(BLNr) Set (OneCust,OneBon,OneLine)=0 Set:KLNr OneCust=1 Set:BONNr OneBon=1 Set:BLNr OneLine=1 For Set:'OneCust KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do Quit:OneCust .Set:'OneBon BONNr=0 .For Set:'OneBon BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do Quit:OneBon ..Set:'OneLine BLNr=100 ..For Set:'OneLine BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:OneLine ...Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2) ...Quit:'PRNr ...Kill ^KUP(PRNr,BONNr,BLNr) Quit ; CHECKKUP Do .New Check,File .Set Q="K" .Do ^cA604 Write !!,"*** ^KUP ***" Set KLNr=0 For Set KLNr=$O(^KUL(KLNr)) Quit:'KLNr Do .Set Klant=KLNr_" "_$P(^KKL(^KK1(KLNr),0),D,2),BONNr="" .For Set BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:'BONNr Do ..Set BLNr=100 ..For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do ...Set R=^KUL(KLNr,"F",BONNr,BLNr),ZR=$ZR,PRNr=$P(R,D,2) ...Quit:'PRNr ...If '$D(^KUP(PRNr,BONNr,BLNr)) Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",$ZR," onbekend",!,?8,"Klant = ",KLNr ...If $D(^KUP(PRNr,BONNr,BLNr)),^KUP(PRNr,BONNr,BLNr)'=KLNr Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",$ZR," klant verschillend",!,?8,"Bon = ",BONNr,?29,"Klant ",KLNr," <> ",^KUP(PRNr,BONNr,BLNr) Set PRNr="" For Set PRNr=$O(^KUP(PRNr)) Quit:'PRNr Do .Set BONNr="" .For Set BONNr=$O(^KUP(PRNr,BONNr)) Quit:'BONNr Do ..Set BLNr="" ..For Set BLNr=$O(^KUP(PRNr,BONNr,BLNr)) Quit:'BLNr Do ...Set R=^KUP(PRNr,BONNr,BLNr),ZR=$ZR ...Set KLNr=$P($G(^KU1(BONNr,"F")),D) ...If 'KLNr Do Quit ....Set Check=0 ....Write !!,"Index ",ZR," bon onbekend",!,?8,"Bon = ",BONNr ...Set Klant=KLNr_" "_$P(^KKL(^KK1(KLNr),0),D,2) ...If '$D(^KUL(KLNr,"F",BONNr)) Do Quit ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",ZR," bon onbekend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr ...Set R=$G(^KUL(KLNr,"F",BONNr,BLNr)) ...If R="" Do Quit ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",ZR," bonlijn onbekend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr,?50,"Lijn ",BLNr ...If $P(R,D,2)'=PRNr Do ....Set Check=0 ....Do wKLANT^zbcheck ....Write !!,"Index ",ZR," product verschillend",!,?8,"Klant = ",KLNr,?29,"Bon = ",BONNr,?50,"Product ",PRNr," <> ",$P(R,D,2) Quit ; EXTERN(BONNr) New Locals,UR Set (Locals("ULNr"),UR)=BONNr,Locals("Extern")=1 Do DO^vhPROGRAM("ExternVerwerkUitlevering^Flow.VerwerkDoc","","",$G(NoMod)) Quit ; ST2CC(KLNr,BONNr,BLNr) New R,PRNr,BLUNr,HistNr,HistRec,SubRec,MagPallet Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2),BLUNr=$P(R,D,15) If $$CHKCUST(KLNr),PRNr,BLUNr,$D(^PRHISTI("B",BONNr,BLUNr,PRNr)) Do . Set PRNr="" . For Set PRNr=$O(^PRHISTI("B",BONNr,BLUNr,PRNr)) Quit:PRNr="" Do . . Set HistNr=^PRHISTI("B",BONNr,BLUNr,PRNr),HistRec=$G(^PRHIST(PRNr,HistNr)) . . If "#U#R#"[("#"_$P(HistRec,D,4)_"#"),$P(HistRec,D,6)=KLNr,$P(HistRec,D,7)=BONNr,$P(HistRec,D,8)=BLUNr Do . . . Quit:$P(HistRec,D,10) ; Factuurnummer is ingevuld . . . Set SubRec=$G(^PRHIST(PRNr,HistNr,1)),MagPallet=$P(SubRec,D) . . . Set $P(HistRec,D,4)="X",$P(HistRec,D,6,8)="\\",$P(HistRec,D,11)="C/C"_$S($L(MagPallet):" "_MagPallet,1:"") . . . Set ^PRHIST(PRNr,HistNr)=HistRec Quit ; BON2CC(KLNr,BONNr) New BonRec,PRNr Set:'$G(KLNr) KLNr=$P(^KU1(BONNr,"F"),D) Set BLNr=100 If $$CHKCUST(KLNr) For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do . Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2) . Do:PRNr ST2CC(KLNr,BONNr,BLNr) ; CHKCUST(KLNr) Quit (KLNr=$$$KlantBVanHoecke)||(KLNr=$$$KlantAtlasHolding) ; ; Lijnnummer via uniek lijnnummer BLNR(BONNr,BLUNr) Quit ^BON("IU",BONNr,BLUNr) ; VerwijderGefactureerdeBon(BONNr) New Node,Rec,KLNr,BLNr,ORDNr If BONNr,$D(^KU1(BONNr,"F")) Do . Set KLNr=$P(^KU1(BONNr,"F"),D),Node=$$NODE^FLOWBON(BONNr,"FGMT") . Quit:Node="F" ; Bon is nog niet gefactureerd, enkel indien "G", "M" of "T" . For Lock +^KUL(KLNr,Node,BONNr):2 Quit:$T Hang 1 . Set Rec=$G(^KUL(KLNr,Node,BONNr,1)) . If $D(^ORDW("D",BONNr)) Do . . If Node'="F",$D(^KUL(KLNr,"F",BONNr)) Quit . . New KLNr,ORDNr . . Set KLNr=$P(^ORDW("D",BONNr),D) . . Kill ^ORDW("IK",KLNr,BONNr) . . Set ORDNr="" . . For Set ORDNr=$O(^ORDW("D",BONNr,"D",ORDNr)) Quit:ORDNr="" Kill ^ORDW("IO",ORDNr) . . Kill ^ORDW("D",BONNr) . Do KILL^KFVZW(Node,Rec,BONNr) . Set BLNr=100 . For Set BLNr=$O(^KUL(KLNr,Node,BONNr,BLNr)) Quit:'BLNr Do . . Set Rec=^KUL(KLNr,Node,BONNr,BLNr) . . Quit:$P(Rec,D,17)'="KF5" ; Geen verwijzing naar een order . . Set ORDNr=$P($P(Rec,D,5)," - ") . . If ORDNr Do OpkuisKO1(KLNr,BONNr,ORDNr) . Kill ^KUL(KLNr,Node,BONNr),^KU1(BONNr) . Lock -^KUL(KLNr,Node,BONNr) Quit OpkuisKO1(KLNr,BONNr,ORDNr) New ORDKLNr Kill ^KO1(ORDNr,"F",BONNr) ; mag altijd weg If $D(^KO1(ORDNr,"F"))=1 Do ; er bestaan GEEN links naar andere bons . Set ORDKLNr=$P(^KO1(ORDNr,"F"),"\") ; ORD("IU" index kan niet gebruikt worden, omdat een order geen productlijnen moet hebben . If '$D(^KOD(ORDKLNr,"F",ORDNr)) Do ; Het ordernr is niet ingebruik . . Kill ^KO1(ORDNr) ; Opkuis van laatste bon If $P($G(^KO1(ORDNr,"F")),"\",2)=BONNr Do . Set $P(^K01(ORDNr,"F"),"\",2)="" Quit