KLBONOVZ ; Leveringen per klant [ 11/19/2003 3:09 PM ] ; New %J Set %J=$$%J^vhRtn1() For Do Quit:'KLNr Do VERWERK(KLNr,,%J) .Do DISPLAY^vhScherm("KLBONOVZ") .Set KLNr=$$SELECT^KLANT6() Quit ; KLANT(KLNr) Do DISPLAY^vhScherm("KLBONOVZ"),VERWERK(KLNr) Quit ; BON(BONNr) New R,KLNr Set R=^KU1(BONNr,"F"),KLNr=$P(R,D) Do DISPLAY^vhScherm("KLBONOVZ"),VERWERK(KLNr,BONNr) Quit ; VERWERK(KLNr,BONNr,%J) New List,Input,SelAll,Date Set %J=$G(%J,$$%J^vhRtn1()) Do STORE^vhTERMINA() Do DISPLAY^vhScherm("KLBONOVZVW") Do INIT^vhLIST("KLBONOVZ","LIST",.List) Do FETCH(KLNr,$G(BONNr)) Do WRITE^vhLIST(.List) For Set Input=$$SCROLL^vhLIST(.List) Do Quit:"\-\CANC\"[(D_Input_D) .Set R=$G(^HULP(%J,List("SELECT"))),Date=$P(R,D,3) .Set SelAll=$S($L(Date):"Markeer alles van "_Date,1:"") .If Input="COM" Set Input="" Do CALL^vhMenu("KLBONOVZ") .Quit:"\-\CANC\"[(D_Input_D) .Do EXEC^vhMenu("KLBONOVZ",.Input) Do REFRESH^vhTERMINA() Kill ^HULP(%J) Quit ; FETCH(KLNr,DefBONNr) New R,BONNr,Date,DefDate,Select,DefLevAd,LevAdr,Count Kill ^HULP(%J) Set DefBONNr=$G(DefBONNr),DefDate=+$H,(BONNr,DefLevAd)="" Do:DefBONNr .Set R=^KUL(KLNr,"F",DefBONNr,1),DefDate=$P(R,D,2),DefDate=$$INTDATE^vhDTyp(DefDate) .Set R=^KUL(KLNr,"F",DefBONNr,3) .Do:R ..For I=2,5,7 Set $P(R,D,I)=$$INITCAP^vhRtn1($P(R,D,I)) ..Set DefLevAd=$P(R,D,2)_" - "_$P(R,D,7)_" - "_$P(R,D,5) For Set BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do ; Soteren op datum .Set R=^KUL(KLNr,"F",BONNr,1),Date=$P(R,D,2),Date=$$INTDATE^vhDTyp(Date) .Set ^HULP(%J,"S",Date,BONNr)="" Set Date="",Count=0 For Set Date=$O(^HULP(%J,"S",Date),-1) Quit:Date="" Do .Set BONNr="" .For Set BONNr=$O(^HULP(%J,"S",Date,BONNr)) Quit:BONNr="" Do ..Set R=$$FETCHBON(KLNr,BONNr) ..Set Count=Count+1,^HULP(%J,Count)=R Set Select=0 For Count=1:1 Quit:'$D(^HULP(%J,Count)) Do .Set R=^HULP(%J,Count),Date=$P(R,D,3),LevAdr=$P(R,D,7) .Quit:$P(R,D,5) .Quit:$$INTDATE^vhDTyp(Date)'=DefDate .If $L(DefLevAd),LevAdr'=DefLevAd Quit .If 'Select Set Select=Count .Else Quit:'$$CHKMARK(Count) .If $P(R,D,2)=DefBONNr Set Select=Count .Set $P(R,D)=1,^HULP(%J,Count)=R Set:Select List("SELECT")=Select Kill ^HULP(%J,"S") Quit ; FETCHBON(KLNr,BONNr) New R,LevAdr,Rembours,Munt,Date,VerzW,BonTyp,IsTerugN Set R=^KUL(KLNr,"F",BONNr,1),Date=$P(R,D,2),VerzW=$P($P(R,D,7)," "),BonTyp=$P(R,D,25) If "\M\P\"'[(D_BonTyp_D) Set BonTyp="" Else Set BonTyp=$$LOCASE^vhRtn1(BonTyp) Set R=^KUL(KLNr,"F",BONNr,3),LevAdr="" Do:R .For I=2,5,7 Set $P(R,D,I)=$$INITCAP^vhRtn1($P(R,D,I)) .Set LevAdr=$P(R,D,2)_" - "_$P(R,D,7)_" - "_$P(R,D,5) Set R=$$BON^REMBOURS(BONNr),(Rembours,Munt)="" Set:$P(R,D) Rembours=$P(R,D),Munt=$P(R,D,7) Set IsTerugN=$$ISTERUGN^FLOWBON5(BONNr) Set R=D_BONNr_D_Date_D_VerzW_D_Rembours_D_Munt_D_LevAdr_D_BonTyp_D_IsTerugN Quit R ; CHKMARK(Line,ChkVerzW,ChkLevA) New I,R,Ok,LevAdr,VerzW Set R=$G(^HULP(%J,Line)),(VerzW,LevAdr)="",Ok='$P(R,D,5) ; Mag geen rembours zijn Do:Ok .For I=1:1 Quit:'$D(^HULP(%J,I)) Set R=^HULP(%J,I) Quit:$P(R,D) .Set:'$P(R,D) R=$G(^HULP(%J,Line)) .Set VerzW=$P(R,D,4),LevAdr=$P(R,D,7),Ok='$P(R,D,5) ; Mag geen rembours zijn .If Ok,$G(ChkLevA,1) Set R=^HULP(%J,Line),Ok=LevAdr=$P(R,D,7) ; Het leveringsadres moet gelijk zijn .If Ok,$G(ChkVerzW) Set Ok=$E(VerzW,1,2)=$E($P(R,D,4),1,2) ; Indien autoselect moet de verzendwijze gelijk zijn Quit Ok ; MARK New R Set R=^HULP(%J,List("SELECT")),$P(R,D)='$P(R,D),^HULP(%J,List("SELECT"))=R Do LINE^vhLIST(.List,List("SELECT")) Quit ; MARKALL New I,R,Date Set R=^HULP(%J,List("SELECT")),Date=$P(R,D,3) If $$CHKMARK(List("SELECT")) Set $P(R,D)=1,^HULP(%J,List("SELECT"))=R For I=1:1 Quit:'$D(^HULP(%J,I)) Do .Set R=^HULP(%J,I) .Quit:$P(R,D,3)'=Date .Quit:'$$CHKMARK(I,1) .Set $P(R,D)=1,^HULP(%J,I)=R Do WRITE^vhLIST(.List) Quit ; CHKPRINT() New I,R,Marked Set Marked=0 For I=1:1 Quit:'$D(^HULP(%J,I)) Set Marked=$P(^HULP(%J,I),D) Quit:Marked Quit Marked ; PRINT New I,P,R,zb,Print,Lijst,NoConsol,Txt,BONNr,Routine,RefDate,CoNr,VolgNr Set Lijst=$$PI^vhPOPUP("C;C","-1OM","Overzicht","KLBONOVZ","DCTYPE",""),Lijst=$TR(Lijst,";","") If $L(Lijst) Do .If $G(io)=1027,Lijst["X" Set RefDate=$$REFDATE() Quit:'RefDate Set ^HULP(%J,"D")=RefDate .Do SELPRINT^DCPRINT("?") .Do:$D(Print) ..For Quit:Lijst="" Do ...Set Routine=$E(Lijst),$E(Lijst)="",^HULP(%J)="" ...Do:Routine="X" ....New BonNrs,CheckSum ....Set BonNrs="" ....For I=1:1 Set R=$G(^HULP(%J,I)) Quit:R="" Do .....Quit:'$P(R,D) .....Set BONNr=$P(R,D,2) .....Quit:'$$ISORGAL^FLOW("L",BONNr) .....Set $LI(BonNrs,$LL(BonNrs)+1)=BONNr,$P(^HULP(%J,I),D,11)="CO" ....Quit:'$D(BonNrs) ....Set CheckSum=$$CalcCheckSum(BonNrs),R=$G(^KUL(0,"F","FG","CO")),($P(R,D),VolgNr)=$P(R,D)+1,^KUL(0,"F","FG","CO")=R ....Set CoNr=VolgNr_$TR($J(CheckSum,3)," ",0),^HULP(%J,"CO")=CoNr ....For I=1:1 Set R=$G(^HULP(%J,I)) Quit:R="" Do .....Quit:$P(R,D,11)'="CO" .....Set $P(^HULP(%J,I),D,11)="CO"_CoNr ...Xecute "Do PRINT^DC"_Routine_"BON(%J)" ..Do CLOSE^vhPRINTER ..Set NoConsol="" ..If Routine'="S" For I=1:1 Set R=$G(^HULP(%J,I)) Quit:R="" Do ...Quit:'$P(R,D) ...Set BONNr=$P(R,D,2) Set:'$P(R,D,10) NoConsol=NoConsol_";"_BONNr ..Set $E(NoConsol)="" ..Do:$L(NoConsol) ...Set Txt(1)="Volgende leveringen werden niet geconsolideerd:" ...Set R="" ...For I=1:1:$L(NoConsol,";") Do ....Set BONNr=$P(NoConsol,";",I),R=R_"- "_$$EXTNUM^vhDTyp(BONNr,0,".T",0) ....If $L(R)>49 Set $E(R,1,2)="",Txt($O(Txt(""),-1)+1)=R,R="" ...If $L(R) Set $E(R,1,2)="",Txt($O(Txt(""),-1)+1)=R ...Set Txt="Txt",R=$$WILD^vhTXTPOP("C;C","",.Txt) ..Do MarkBulkFact ; Invullen van de bulkreferentie ..Kill ^HULP(%J) ..Set Input="-" Quit ; RPLKL New R Do STORE^vhTERMINA() Set R=$$RAADPL^KLANT(KLNr,"L") Do REFRESH^vhTERMINA() Quit ; REFDATE() New I,R,BONNr,BLNr,RefDate,zb For I=1:1 Set R=$G(^HULP(%J,I)) Quit:R="" Do .Quit:'$P(R,D) .Set BONNr=$P(R,D,2),BLNr=100 .For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do ..Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2) ..Quit:'PRNr ..Set RefDate=$P(R,D,40) Set:'RefDate RefDate=$P(R,D,25) Set:RefDate'?5N RefDate=$$INTDATE^vhDTyp(RefDate,"DW") ..Set:RefDate RefDate(RefDate)="" Set RefDate=$O(RefDate("")) If $O(RefDate(RefDate))="" Else Do .Set RefDate="" .For I=1:1 Set RefDate=$O(RefDate(RefDate)) Quit:RefDate="" Do ..Set RefDate(I)=RefDate_"`"_$$EXTDATE^vhDTyp(RefDate)_" | "_$$EXTDATE^vhDTyp(RefDate,"DC") ..Kill RefDate(RefDate) .Set RefDate=$$WILD^vhPOPUP("C;C","-1O","Referentiedatum",.RefDate) .Set:zb="CANC" RefDate="" Quit RefDate ; ; Berekenen controlegetal van geconsoldeerde leveringen doorgegeven als $LB CalcCheckSum(BonNrs) New CheckSum Set CheckSum=0 For I=1:1:$LL(BonNrs) Set CheckSum=CheckSum+$LI(BonNrs,I) Set CheckSum=CheckSum#997 Quit CheckSum ; ; Invullen van de bulkreferentie (voor facturatie) MarkBulkFact New %TC,I,R,KLNr,BONNr,CoNr,OVZDat Set OVZDat="" For I=1:1 Set R=$G(^HULP(%J,I)) Quit:R="" Do . Set CoNr=$P(R,D,11) . Quit:CoNr="" . Set BONNr=$P(R,D,2),KLNr=$P(^KU1(BONNr,"F"),D) . For Do Quit:%TC . . Do ADD^vhLock("^KUL(KLNr,""F"",BONNr)") . . Do:'%TC LDISP^vhLock("^KUL(KLNr,""F"",BONNr)","Bon "_BONNr) . Set R=^KUL(KLNr,"F",BONNr,1) . Set $P(R,D,38)=CoNr . Set ^KUL(KLNr,"F",BONNr,1)=R . Do REMOVE^vhLock("^KUL(KLNr,""F"",BONNr)") . Set R=$$INTDATE^vhDTyp($P(R,D,2)) Set:R