KLACHT2 ; Klachtenbehandeling [ 11/07/2003 11:20 AM ] ; ; Extern is voor externe dokumenten CONVELEM(Element,Extern,Taal) New R,Type,Waarde,OrdMark,PRNr,IsStock Set Extern=$G(Extern),Taal=$G(Taal,"N"),Type=$P(Element,"#"),Waarde=$P(Element,"#",2),OrdMark="" Do:Type="F" .Set Type=$$TXT^DCALG("Fakt","DCKLACHT") .Set Waarde=$$EXTNUM^vhDTyp(Waarde,0,"-.",0) Do:Type="V" .Set Type=$$TXT^DCALG("Fakt","DCKLACHT") .Set Waarde=$$EXTNUM^vhDTyp(Waarde,0,"-.",0)_"("_$$TXT^DCALG("Prof","DCKLACHT")_")" Do:Type="B" .Set Type=$$TXT^DCALG("Lev","DCKLACHT") .Set Waarde=$$EXTNUM^vhDTyp(Waarde,0,"-.",0) Do:Type="O" .Set Type=$$TXT^DCALG("Ord","DCKLACHT") .Set:'Extern OrdMark=$$ORDMARK(Waarde) .Set Waarde=$$EXTNUM^vhDTyp(Waarde,0,"-.",0) .Set:$L(OrdMark) OrdMark="("_OrdMark_")" If Type="T" Set Type="Toelev.",Waarde=$$EXTNUM^vhDTyp(Waarde,0,"-.",0) If Type="R" Set Type="Receptie",Waarde=$$EXTNUM^vhDTyp(Waarde,0,"-.",0) Do:Type="P" .Set Type="Product",PRNr=Waarde,Waarde=$P($G(^KPR(PRNr,0),$G(^KPRO(PRNr,0))),D) .Set IsStock=$P($G(^KPR(PRNr,1),$G(^KPRO(PRNr,1))),D,20) .Set:IsStock Waarde=Waarde_$J("",26-$L(Waarde))_"*" Do:Type="Q" .Set Type=$$TXT^DCALG("Klacht","DCKLACHT") .Set Waarde=$$ONOM^KLACHT(Waarde,,1) If $L(Type),$L(Waarde) Do .If Extern Set Element=Type_" "_Waarde .Else Set Element=Type_$J("",9-$L(Type))_": "_Waarde .Set:$L(OrdMark) Element=Element_" "_OrdMark Quit Element ; ORDMARK(ORDNr) New R,KLNr,BONNr,FANr,OLNr,BLNr,OrdMark,Proforma,Levering,Terugn,StAanp,Start,Stop Set (OrdMark,Proforma,Levering,Terugn,StAanp)="",(Start,Stop)=0 Set R=$G(^KO1(ORDNr,"F")),KLNr=$P(R,D),BONNr=$P(R,D,2) Do:KLNr .If $D(^KOD(KLNr,"F",ORDNr)) Do ..Set R=^KOD(KLNr,"F",ORDNr,1),OLNr=100 Set:$P(R,D,25)="P" Proforma="P" ..For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:Stop ...Set R=^KOD(KLNr,"F",ORDNr,OLNr) ...Quit:"\KF0\KF1925\"'[(D_$P($P(R,D,17),"#")_D) ...Set:$P(R,D,9)>0 Levering="+" Set:$P(R,D,9)<0 Terugn="-" ...Set:";"_$P(R,D,14)_";"[";S;" StAanp="Z" Set:";"_$P(R,D,14)_";"[";Z;" StAanp="Z" ...If $L(Levering),$L(Terugn),$L(StAanp) Set Stop=1 .Else If BONNr,$P($G(^KU1(BONNr,"F")),D)=KLNr Do ..Set R=^KU1(BONNr,"F"),FANr=$P(R,D,2) ..If $D(^KUL(KLNr,"F",BONNr)) Do ...Set BLNr=100 ...For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:Stop ....Set R=^KUL(KLNr,"F",BONNr,BLNr) ....If $P(R,D,17)="KF5" Do Quit .....If $E($P(R,D,5),1,6)=ORDNr Set Start=1 .....If Start,$E($P(R,D,5),1,6)'=ORDNr Set Stop=1 ....Quit:'Start Quit:"\KF6\KF1925\"'[(D_$P($P(R,D,17),"#")_D) ....Set:$P(R,D,9)>0 Levering="+" Set:$P(R,D,9)<0 Terugn="-" ....Set:";"_$P(R,D,14)_";"[";S;" StAanp="Z" Set:";"_$P(R,D,14)_";"[";Z;" StAanp="Z" ....If $L(Levering),$L(Terugn),$L(StAanp) Set Stop=1 ..Else If FANr Do ...If $D(^KFA("F",FANr)) Do ....Set BONNr="U" ....For Set BONNr=$O(^KFA("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Do Quit:Stop .....Set BLNr=100 .....For Set BLNr=$O(^KFA("F",FANr,BONNr,BLNr)) Quit:'BLNr Do Quit:Stop ......Set R=^KFA("F",FANr,BONNr,BLNr) ......If $P(R,D,17)="KF5" Do Quit .......If $E($P(R,D,5),1,6)=ORDNr Set Start=1 .......If Start,$E($P(R,D,5),1,6)'=ORDNr Set Stop=1 ......Quit:'Start Quit:"\KF6\KF1925\"'[(D_$P($P(R,D,17),"#")_D) ......Set:$P(R,D,9)>0 Levering="+" Set:$P(R,D,9)<0 Terugn="-" ......Set:";"_$P(R,D,14)_";"[";S;" StAanp="Z" Set:";"_$P(R,D,14)_";"[";Z;" StAanp="Z" ......If $L(Levering),$L(Terugn),$L(StAanp) Set Stop=1 ...Else If $D(^KFAP("F",FANr)) Do ....Set BONNr="U" ....For Set BONNr=$O(^KFA("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Do Quit:Stop .....Set BLNr=100 .....For Set BLNr=$O(^KFA("F",FANr,BONNr,BLNr)) Quit:'BLNr Do Quit:Stop ......Set R=^KFA("F",FANr,BONNr,BLNr) ......If $P(R,D,17)="KF5" Do Quit .......If $E($P(R,D,5),1,6)=ORDNr Set Start=1 .......If Start,$E($P(R,D,5),1,6)'=ORDNr Set Stop=1 ......Quit:'Start Quit:"\KF6\KF1925\"'[(D_$P($P(R,D,17),"#")_D) ......Set:$P(R,D,9)>0 Levering="+" Set:$P(R,D,9)<0 Terugn="-" ......Set:";"_$P(R,D,14)_";"[";S;" StAanp="Z" Set:";"_$P(R,D,14)_";"[";Z;" StAanp="Z" ......If $L(Levering),$L(Terugn),$L(StAanp) Set Stop=1 Set OrdMark=Proforma_Levering_Terugn_StAanp Quit OrdMark ; BTRELEM(sFL) New I,R,Input,MenuPos,Cache,Tabel Do STORE^vhTERMINA() Set FP=2201 Write @F,@F1 Set Cache="B" Do INIT^vhLIST("KLACHT","BTRELEM",.Tabel) Set $P(Tabel("SET"),"`",4)="I",$P(Tabel("SET"),"`",5)="IU" Set $P(Tabel("SET"),"`",7)=1 Set R=$P(Tabel("SET"),"`"),$P(R,";",3)=20,$P(Tabel("SET"),"`")=R,Tabel("POS")=R Set Tabel("SELECT")=1 Merge Cache("B")=sFL("B"),Cache("R")=sFL("R") Do WRITE^vhLIST(.Tabel) For Set Input=$$SCROLL^vhLIST(.Tabel) Quit:"\-\ENTER\"[(D_Input_D) Do .If Input="SPEC" Do ..Set MenuPos=Tabel("POS")+Tabel("SELECT")-2_";C;79" ..Do CALLSPEC^vhMenu(MenuPos,"KLACHTRESP","") .Do EXEC^vhMenu("KLACHTRESP",.Input) If '%SC Do .For I=1:1 Quit:'$D(Cache("B",I)) If Cache("B",I)'=$G(sFL("B",I)) Set %SC=1 Quit .Set:$D(sFL("B",I)) %SC=1 Kill sFL("B") Merge sFL("B")=Cache("B") Set $P(sScrnDef($$NAME^vhScherm("BTRELEM")),"`",7,10)=$S($D(sFL("B")):"```",1:"""""`C`L`28") Set sFR=sScrnDef($$NAME^vhScherm("BTRELEM")),$P(sFR,"`",7)="""""" Do REFRESH^vhTERMINA() Quit ; RZTELEM(sFL) New I,R,Input,MenuPos,Cache,Tabel Do STORE^vhTERMINA() Set FP=2201 Write @F,@F1 Set Cache="R" Do INIT^vhLIST("KLACHT","RZTELEM",.Tabel) Set $P(Tabel("SET"),"`",4)="I",$P(Tabel("SET"),"`",5)="IU" Set $P(Tabel("SET"),"`",7)=1 Set R=$P(Tabel("SET"),"`"),$P(R,";",3)=20,$P(Tabel("SET"),"`")=R,Tabel("POS")=R Set Tabel("SELECT")=1 Merge Cache("R")=sFL("R"),Cache("B")=sFL("B") Do WRITE^vhLIST(.Tabel) For Set Input=$$SCROLL^vhLIST(.Tabel) Quit:"\-\ENTER\"[(D_Input_D) Do .If Input="SPEC" Do ..Set MenuPos=Tabel("POS")+Tabel("SELECT")-2_";C;79" ..Do CALLSPEC^vhMenu(MenuPos,"KLACHTRESP","") .Do EXEC^vhMenu("KLACHTRESP",.Input) If '%SC Do .For I=1:1 Quit:'$D(Cache("R",I)) If Cache("R",I)'=$G(sFL("R",I)) Set %SC=1 Quit .Set:$D(sFL("R",I)) %SC=1 Kill sFL("R") Merge sFL("R")=Cache("R") Set $P(sScrnDef($$NAME^vhScherm("RZTELEM")),"`",7,10)=$S($D(sFL("R")):"```",1:"""""`C`L`28") Set sFR=sScrnDef($$NAME^vhScherm("RZTELEM")),$P(sFR,"`",7)="""""" Do REFRESH^vhTERMINA() Quit ; NEWELEM(Insert,Tabel,sFL) New zb,I,Type,FANr,BONNr,ORDNr,TOENr,RCPNr,PRNr,DERDENr,NoSelNr,PopPos,KlachtId Set Insert=$G(Insert) Set PopPos=Tabel("POS")+Tabel("SELECT")-1_";C;79" Set Type=$$PI^vhPOPUP(PopPos,"-BO1","","KLACHT","ELEMENTTYPE") Do:zb'="CANC" .If Type="P" Do Quit:'PRNr ..Do STORE^vhTERMINA() ..For I=1:1 Quit:'$D(Cache("B",I)) Set R=Cache("B",I) Set:$P(R,"#")="P" NoSelNr($P(R,"#",2))="" ..For I=1:1 Quit:'$D(Cache("R",I)) Set R=Cache("R",I) Set:$P(R,"#")="P" NoSelNr($P(R,"#",2))="" ..For Set PRNr=$$SELECT^PRODUKT6() Quit:'PRNr Quit:'$D(NoSelNr(PRNr)) ..Set:PRNr R="P#"_PRNr ..Do REFRESH^vhTERMINA() .If Type="R" Do Quit:'RCPNr ..Do STORE^vhTERMINA() ..For I=1:1 Quit:'$D(Cache("B",I)) Set R=Cache("B",I) Set:$P(R,"#")="R" NoSelNr($P(R,"#",2))="" ..For I=1:1 Quit:'$D(Cache("R",I)) Set R=Cache("R",I) Set:$P(R,"#")="R" NoSelNr($P(R,"#",2))="" ..Set RCPNr=$$SELECT^EWRCP("L",$P(sFL(1),D,2)) Set:RCPNr R="R#"_RCPNr ..Do REFRESH^vhTERMINA() .If Type="T" Do Quit:'TOENr ..Do STORE^vhTERMINA() ..Set DERDENr("L")=$P(sFL(1),D,2) ..For I=1:1 Quit:'$D(Cache("B",I)) Set R=Cache("B",I) Set:$P(R,"#")="T" NoSelNr($P(R,"#",2))="" ..For I=1:1 Quit:'$D(Cache("R",I)) Set R=Cache("R",I) Set:$P(R,"#")="T" NoSelNr($P(R,"#",2))="" ..Set TOENr=$$SELECT^FLOW("KTO","KTO1",1,.NoSelNr,.DERDENr) Set:TOENr R="T#"_TOENr ..Do REFRESH^vhTERMINA() .If Type="O" Do Quit:'ORDNr ..Do STORE^vhTERMINA() ..Set DERDENr("K")=$P(sFL(1),D,2) ..For I=1:1 Quit:'$D(Cache("B",I)) Set R=Cache("B",I) Set:$P(R,"#")="O" NoSelNr($P(R,"#",2))="" ..For I=1:1 Quit:'$D(Cache("R",I)) Set R=Cache("R",I) Set:$P(R,"#")="O" NoSelNr($P(R,"#",2))="" ..Set ORDNr=$$SELECT^FLOW("KOD","KO1",1,.NoSelNr,.DERDENr) Set:ORDNr R="O#"_ORDNr ..Do REFRESH^vhTERMINA() .If Type="L" Do Quit:'BONNr ..Do STORE^vhTERMINA() ..Set DERDENr("K")=$P(sFL(1),D,2) ..For I=1:1 Quit:'$D(Cache("B",I)) Set R=Cache("B",I) Set:$P(R,"#")="B" NoSelNr($P(R,"#",2))="" ..For I=1:1 Quit:'$D(Cache("R",I)) Set R=Cache("R",I) Set:$P(R,"#")="B" NoSelNr($P(R,"#",2))="" ..Set BONNr=$$SELECT^FLOW("KUL","KU1",1,.NoSelNr,.DERDENr) Set:BONNr R="B#"_BONNr ..Do REFRESH^vhTERMINA() .If Type="F" Do Quit:'FANr ..Do STORE^vhTERMINA() ..Set DERDENr("K")=$P(sFL(1),D,2) ..For I=1:1 Quit:'$D(Cache("B",I)) Set R=Cache("B",I) Set:$P(R,"#")="F" NoSelNr($P(R,"#",2))="" ..For I=1:1 Quit:'$D(Cache("R",I)) Set R=Cache("R",I) Set:$P(R,"#")="F" NoSelNr($P(R,"#",2))="" ..Set FANr=$$SELECT^FLOW("KFA","KFA1",1,.NoSelNr,.DERDENr) Set:FANr R="F#"_FANr ..Do REFRESH^vhTERMINA() .If Type="V" Do Quit:'FANr ..Do STORE^vhTERMINA() ..Set DERDENr("K")=$P(sFL(1),D,2) ..For I=1:1 Quit:'$D(Cache("B",I)) Set R=Cache("B",I) Set:$P(R,"#")="V" NoSelNr($P(R,"#",2))="" ..For I=1:1 Quit:'$D(Cache("R",I)) Set R=Cache("R",I) Set:$P(R,"#")="V" NoSelNr($P(R,"#",2))="" ..Set FANr=$$SELECT^FLOW("KFAP","KFAP1",1,.NoSelNr,.DERDENr) Set:FANr R="V#"_FANr ..Do REFRESH^vhTERMINA() .If Type="K" Do Quit:'KlachtId ..Do STORE^vhTERMINA() ..For I=1:1 Quit:'$D(Cache("B",I)) Set R=Cache("B",I) Set:$P(R,"#")="R" NoSelNr($P(R,"#",2))="" ..For I=1:1 Quit:'$D(Cache("R",I)) Set R=Cache("R",I) Set:$P(R,"#")="R" NoSelNr($P(R,"#",2))="" ..For Do Quit:'KlachtId If KlachtId'=sFL("ID"),'$D(NoSelNr(KlachtId)) Quit ...Set KlachtId=$P($$SELECT^KLACHTS($P(sFL(1),D),$P(sFL(1),D,2)),D) ..Set:KlachtId R="Q#"_KlachtId ..Do REFRESH^vhTERMINA() .If Insert="I" Do INSERT^vhLISTE(.Tabel,R,"") Quit .Do NIEUW^vhLISTE(.Tabel,R) Quit ; ; Productgroep PRGROEP(sFL) New I,R,Defaults,Elem,PRNr,PrGroep,Optie Quit:$$GET^vhScherm("GROEP")="DIV" ; Voor DIVERSE geen productgroep ingeven If $G(sDir)=1 Do .Set Defaults=$$GETALG^DEFAULTS("KLACHT","PRGROEP"),PrGroep="" .For Elem=1:1 Quit:'$D(sFL("B",Elem)) Do Quit:PrGroep="?" ..Set R=sFL("B",Elem) ..Quit:$P(R,"#")'="P" ..Set PRNr=$P(R,"#",2),R=$$PRODGRP^PRODUKT(PRNr) ..If PrGroep="" Set PrGroep=R ..Else Set:PrGroep'="R" PrGroep="?" .If PrGroep'="?" For Elem=1:1 Quit:'$D(sFL("R",Elem)) Do Quit:PrGroep="?" ..Set R=sFL("R",Elem) ..Quit:$P(R,"#")'="P" ..Set PRNr=$P(R,"#",2),R=$$PRODGRP^PRODUKT(PRNr) ..If PrGroep="" Set PrGroep=R ..Else Set:PrGroep'=R PrGroep="?" .Set R="" .If $L(PrGroep),PrGroep'="?" Set R=PrGroep ; Default volgens produkt .Else If $P(sFL(1),D,2)=$P(Defaults,"#") Set R=$P($P(Defaults,D),"#",2) ; Leverancier Halux -> HAL .Else If $P(sFL(1),D,5)=$P($P(Defaults,D),"#",2) Set R=$P(sFL(1),D,5) ; Groep HAL -> HAL .Else If $P(sFL(1),D,7)=$P(Defaults,"#") Set R=$P($P(Defaults,D),"#",2) ; Verantwoordelijke Halux -> HAL .Else If $P(sFL(1),D,11)=$P($P(Defaults,D),"#",2) Set R=$P(sFL(1),D,11) ; Groepverantw HAL -> HAL Else Set R="" If $L(R) Do .Do PUT^vhScherm("PRGROEP",R) Else Set R=$$POP^vhScherm(,,"PBKOA1-",,"PRODUKT","PRODUKTGROEP",X) ; Geen defaulting If $G(zb)="CANC",$G(sDir) Set sDir=-1 Quit ; CBPRGRP(Rec) New Include Set Include=1 If $G(sDir)=1,$P(sFL(1),"\",12)="LEV" Do . Set Include=$P(Rec,"`",3)=$P(sFL(1),"\",5) Quit Include ; VERANTW(sFL,Display) New I,R,Type,Groep,RubrPos,VerantW,zb,Derde,Regio,Users,VerantWInt,UserId,UserIni Set Type=$P(sFL(1),D,4),Groep=$P(sFL(1),D,5),VerantW=$P(sFL(1),D,7) If $G(Display) Do .Quit:"DIV"[VerantW .Set VerantW=$$USERNAME^vhUSER(VerantW) Else Do .If $G(sDir)=-1 Set VerantW="CANC" Quit .Set Derde=$P(sFL(1),D,2),RubrPos=$$POS^vhScherm("VERANTW") .If ";VUG;"[(";"_Type_";"),Groep="OV" Do ..Set VerantW=$P(sFL(1),D,7) Set:VerantW="" VerantW=$G(sFL("PAR","VERANTW")) ..Set Users=$$USERID^vhUSER("EIGENKLAS") ; Interne persoon orderingave ..Do:$L(Users,";")>1 ...For I=1:1:$L(Users,";") Set UserIni=$$USERNAME^vhUSER($P(Users,";",I)),Users("I",UserIni)=$P(Users,";",I) ...Set (Users,UserIni)="" ...For Set UserIni=$O(Users("I",UserIni)) Quit:UserIni="" Set Users=Users_";"_Users("I",UserIni) ...Set $E(Users)="" ...Kill Users("I") ..Do:$P(sFL(1),D)="K" ...Set VerantWInt=$$INTVW^KLOPV(Derde) ...Quit:'VerantWInt ...Set Users=";"_Users_";",VerantWInt=";"_VerantWInt_";" ...Set:Users[VerantWInt Users=$P(Users,VerantWInt)_";"_$P(Users,VerantWInt,2) ...Set $E(Users)="",$E(Users,$L(Users))="" ...Set $E(VerantWInt)="",$E(VerantWInt,$L(VerantWInt))="" ...Set Users=VerantWInt_";&S;"_Users ..For I=1:1 Set UserId=$P(Users,";") Quit:UserId="" Do ...Set Users=$P(Users,";",2,999) ...Set Users(I)=UserId Set:UserId Users(I)=Users(I)_"`"_$P(^vhUSER("D",UserId),D,2) ..Set Users(I)="&S",Users(I+1)="DIV`DIV" ..Set VerantW=$$WILD^vhPOPUP($P(RubrPos,D,2),"O1-","Verantwoordelijke",.Users,VerantW,,"") .Else If ";VUG;VPR;OMS;AND;"[(";"_Type_";"),Groep="VK" Do ..Quit:$P(sFL(1),D)'="K" ..Do:VerantW="" ...Set R=^KKL(^KK1(Derde),0),Regio=$P(R,D,20) ...Quit:'Regio ...Set R=^RES("KLANT","PI","REGIO","D",Regio),VerantW=$P(R,"`",15) ..Set VerantW=$$USELECT^vhUSER("","Verantwoordelijke","","VTW;&S;KSBE;&S;KSNL","","","",VerantW,"","1;"_$P(RubrPos,D,2)) .Else Set VerantW="" .Set:$G(zb)="CANC" VerantW=zb Quit VerantW ; VERANTWOPVOLG(UserId) New CB,OpvolgUserId,RubrPos Set CB("A")="D`CBVWOPV^"_$ZN,RubrPos=$$POS^vhScherm("VWBEH") Set OpvolgUserId=$$USELECT^vhUSER("","Verantw behandeling",,,"K",1,,$S(UserId:UserId,1:CUserId),,"1;"_$P(RubrPos,D,2),,,,.CB) Do:OpvolgUserId="?" . Set CB("A")="X`D CBVWOPV^"_$ZN_"(.sY,1)" . Set OpvolgUserId=$$USELECT^vhUSER("","Verantw behandeling",,,"K",1,,$S(UserId:UserId,1:CUserId),,"1;"_$P(RubrPos,D,2),,,,.CB) Quit OpvolgUserId ; CBVWOPV(sY,Andere) New sx,sy,YRec,KRec,UserId,Include merge sx=sX,sy=sY Kill sX,sY Set sY=0 For sy=1:1:sy Do . Set YRec=sy(sy),UserId=$P(YRec,"`"),Include=$G(sx(sy)) . Set:'Include Include=UserId=$G(QU(1)) . Set:'Include KRec=$G(^vhUSER("D",UserId,"K")),Include=$P(KRec,D,2) . Quit:'Include . Set sY=sY+1,sY(sY)=YRec . Set:$G(sx(sy)) sX(sY)=sx(sy) Set sY=sY+1,sY(sY)="&S" If $G(Andere) Do . For sy=1:1:sy Do .. Set YRec=sy(sy),UserId=$P(YRec,"`"),Include=$G(sx(sy)) .. Set:'Include Include=UserId=$G(QU(1)) .. Quit:Include ; Reeds vervat in bovenstaande loop .. Set KRec=$G(^vhUSER("D",UserId,"K")),Include=$P(KRec,D,2)="?" .. Quit:'Include .. Set sY=sY+1,sY(sY)=YRec . If sY(sY)="&S" Kill sY(sY) Set sY=sY-1 Else Set sY=sY+1,sY(sY)="?`Andere" Quit ; ORDDATA(KLNr,ORDNr,OLNr) New zb,I,R,PRNr,Count,Select,Netto,Waarde,Munt Set Select=$G(OLNr) Set R=^KOD(KLNr,"F",ORDNr,1),Munt=$P(R,D,18),Waarde="",Count=0 Set Count=Count+1,R(Count)="&FKlant : "_$P(^KKL(^KK1(KLNr),0),D,2) Set Count=Count+1,R(Count)="&FOrder : "_$$EXTNUM^vhDTyp(ORDNr,0,"-.",0)_" " Set Count=Count+1,R(Count)="&S",OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2),Netto=$P(R,D,9) .Quit:'PRNr .Set Count=Count+1,R(Count)=Count_"`"_$P(^KPR(PRNr,0),D)_"`P#"_PRNr_"`W#"_Netto .Set:OLNr=Select Select=Count If Select="" Do .For I=1:1 Quit:'$D(R(I)) Set:$P(R(I),"`",3)["P#" Select=Select_";"_I .Set $E(Select)="" If Select="AutoSel" Do .Set R="" .For Count=4:1:Count Set R=R_";"_Count .Set $E(R)="" Else Do .If R(Count)="&S" Kill R(Count) Set Count=Count-1 Set:Select="" Select=Count Set:'$D(R(Select)) Select=Count .If $E(R(Count),1,2)="&F" Set zb="CANC" Quit .Set R=$$WILD^vhPOPUP("C;C","-1OM","Incident betreffende",.R,Select) If $G(zb)="CANC" Set R="" Else Do .Do:$L(R) ..For I=$L(R,";"):-1:1 Do ...Set Netto=$P(R($P(R,";",I)),"`",4) ...If $L(Netto) Do ....Set $P(R($P(R,";",I)),"`",3,4)=$P(R($P(R,";",I)),"`",3) ....Set Waarde=Waarde+$P(Netto,"#",2) ...Set $P(R,";",I)=$P(R($P(R,";",I)),"`",3) .Set Waarde=$$MUNT^vhRtn1(Munt,5,Waarde),R="O#"_ORDNr_";W#"_Waarde_$S($L(R):";"_R,1:"") Quit R ; BONDATA(KLNr,BONNr,BLNr) New zb,I,R,PRNr,ORDNr,Count,Select,LineTyp,Netto,Waarde,Munt,TORDNr,Aantal,Prijs Set Select=$G(BLNr) Set R=^KUL(KLNr,"F",BONNr,1),Munt=$P(R,D,18),(ORDNr,TORDNr,Waarde)="",Count=0 Set Count=Count+1,R(Count)="&FKlant : "_$P(^KKL(^KK1(KLNr),0),D,2) Set Count=Count+1,R(Count)="&FBon : "_$$EXTNUM^vhDTyp(BONNr,0,"-.",0) Set Count=Count+1,R(Count)="&S",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) .Set Aantal=$P(R,D,3),Netto=$P(R,D,9),Prijs=$P(R,D,6),LineTyp=$P(R,D,17) .If PRNr Do ..Set R=$P(^KPR(PRNr,0),D),R=R_$J("",25-$L(R))_" |"_$J(TORDNr,8) ..Set Count=Count+1,R=Count_"`"_R_"`O#"_ORDNr_"`P#"_PRNr_"#"_Aantal_"#"_Prijs_"`W#"_Netto ..Set R(Count)=R,TORDNr="" .Else Do Quit ..If LineTyp="KF5" Set ORDNr=$P($P(R,D,5)," - "),TORDNr=$$EXTNUM^vhDTyp(ORDNr,0,"-.",0) ..If Select,Select=BLNr Set Select=$O(^KUL(KLNr,"F",BONNr,BLNr)) .Set:BLNr=Select Select=Count If Select="" Do .For I=1:1 Quit:'$D(R(I)) Set:$P(R(I),"`",4)["P#" Select=Select_";"_I .Set $E(Select)="" Set:'Select Select=4 If R(Count)="&S" Kill R(Count) Set Count=Count-1 Set:'$D(R(Select)) Select=Count If Select<4 Set (R,zb)="" Else Set R=$$WILD^vhPOPUP("C;C","-1OM","Incident betreffende",.R,Select) If zb="CANC" Set R="" Else Do .Do:$L(R) ..For I=1:1:$L(R,";") Do ...Set ORDNr=$P($P(R($P(R,";",I)),"`",3),"#",2) ...Set Netto=$P(R($P(R,";",I)),"`",5) ...If $L(Netto) Do ....Set $P(R($P(R,";",I)),"`",4,5)=$P(R($P(R,";",I)),"`",4) ....Set Waarde=Waarde+$P(Netto,"#",2) ...If ORDNr,'$D(ORDNr(ORDNr)) Set ORDNr(ORDNr)="" ...Else Set $P(R($P(R,";",I)),"`",3,4)=$P(R($P(R,";",I)),"`",4) ..For I=$L(R,";"):-1:1 Set $P(R,";",I)=$TR($P(R($P(R,";",I)),"`",3,4),"`",";") .Set Waarde=$$MUNT^vhRtn1(Munt,5,Waarde),R="B#"_BONNr_";W#"_Waarde_$S($L(R):";"_R,1:"") Quit R ; FAKTDATA(KLNr,FaktTyp,FANr,BONNr,BLNr) New zb,I,R,PRNr,ORDNr,Count,Select,LineTyp,SelBon,SelLine,Netto,Waarde,Munt,TBONNr,TORDNr,Aantal,Prijs,KlMunt Set SelBon=$G(BONNr),SelLine=$G(BLNr),Select="" Set KlMunt=$P(^KKL(^KK1(KLNr),0),D,11) Set:KlMunt="" KlMunt=$$FADEF^vhRtn1() Set R=@("^KFA"_FaktTyp_"(""F"",FANr,0,0)"),Munt=$P(R,D,5),Waarde="",Count=0 Set Count=Count+1,R(Count)="&FKlant : "_$P(^KKL(^KK1(KLNr),0),D,2) Set Count=Count+1,R(Count)="&FFactuur : "_$$EXTNUM^vhDTyp(FANr,0,"-.",0)_$S(FaktTyp="":"",1:" (Proforma)") Set Count=Count+1,R(Count)="&S",BONNr="U",(TBONNr,TORDNr)="" For Set BONNr=$O(@("^KFA"_FaktTyp_"(""F"",FANr,BONNr)")) Quit:$E(BONNr)'="U" Do .Set BLNr=100 .Set TBONNr=$$EXTNUM^vhDTyp($E(BONNr,2,9),0,"-.",0) .For Set BLNr=$O(@("^KFA"_FaktTyp_"(""F"",FANr,BONNr,BLNr)")) Quit:BLNr="" Do ..Set R=@("^KFA"_FaktTyp_"(""F"",FANr,BONNr,BLNr)"),PRNr=$P(R,D,2) ..Set Aantal=$P(R,D,3),Netto=$P(R,D,9),Prijs=$P(R,D,6),LineTyp=$P(R,D,17) ..If KlMunt'="MTL",Munt'=KlMunt Set Prijs=$$MUNT^vhRtn1(Munt,5,Prijs_"#1",,KlMunt) ..If PRNr,$D(^KPR(PRNr)) Do ...Set R=$P(^KPR(PRNr,0),D),R=R_$J("",25-$L(R))_" |"_$J(TBONNr,8)_" |"_$J(TORDNr,8) ...Set Count=Count+1,R=Count_"`"_R_"`B#"_$E(BONNr,2,9)_"`" ...Set:$G(ORDNr) R=R_"O#"_$G(ORDNr) ...Set R=R_"`P#"_PRNr_"#"_Aantal_"#"_Prijs_"`W#"_Netto ...Set R(Count)=R,(TBONNr,TORDNr)="" ..Else Do Quit ...If LineTyp="KF5" Set ORDNr=$P($P(R,D,5)," - "),TORDNr=$$EXTNUM^vhDTyp(ORDNr,0,"-.",0) ...If SelBon,SelBon=$E(BONNr,2,9),SelLine,SelLine=BLNr Set SelLine=$O(@("^KFA"_FaktTyp_"(""F"",FANr,BONNr,BLNr)")) ..Do:'Select ...If SelBon,$E(BONNr,2,9)'=SelBon Quit ...If SelLine,BLNr'=SelLine Quit ...Set Select=Count Set:'Select Select=4 If R(Count)="&S" Kill R(Count) Set Count=Count-1 Set:'$D(R(Select)) Select=Count If Select<4 Set (R,zb)="" Else Set R=$$WILD^vhPOPUP("C;C","-1OM","Incident betreffende",.R,Select) If zb="CANC" Set R="" Else Do .Do:$L(R) ..For I=1:1:$L(R,";") Do ...Set BONNr=$P($P(R($P(R,";",I)),"`",3),"#",2) ...Set ORDNr=$P($P(R($P(R,";",I)),"`",4),"#",2) ...Set Netto=$P(R($P(R,";",I)),"`",6) ...If $L(Netto) Do ....Set $P(R($P(R,";",I)),"`",5,6)=$P(R($P(R,";",I)),"`",5) ....Set Waarde=Waarde+$P(Netto,"#",2) ...If '$D(BONNr(BONNr)) Set BONNr(BONNr)="" ...Else Set $P(R($P(R,";",I)),"`",3,4)=$P(R($P(R,";",I)),"`",4) ...Do:$G(ORDNr) ....If '$D(ORDNr(ORDNr)) Set ORDNr(ORDNr)="" ....Else Set $P(R($P(R,";",I)),"`",3,4)=$P(R($P(R,";",I)),"`",4) ..For I=$L(R,";"):-1:1 Set $P(R,";",I)=$TR($P(R($P(R,";",I)),"`",3,5),"`",";") .Set Waarde=$$MUNT^vhRtn1(Munt,5,Waarde),R=$S(FaktTyp="":"F",1:"V")_"#"_FANr_";W#"_Waarde_$S($L(R):";"_R,1:"") Quit R ;