DCOFF ;AFDRUKKEN OFFERTES [ 01/16/2001 3:28 PM ] ; ; Het afdrukken van een offerte kan met volgende oproep --> Do PRINT^DCOFF(OFFNr) ; VERWERK(FromNr,Sessie) New OFFNr,OldTyp Set OFFNr=$S(FromNr:FromNr-1,1:FromNr) For Set OFFNr=$O(^HULP($J,"P",Sessie,OFFNr)) Quit:OFFNr="" Do PRINT(OFFNr,$S(Sessie="X":"K",1:Sessie)) Quit ; ; Opbouwen local C en afdrukken van de offerte PRINT(OFFNr,Sessie,Init,MetFax) New KLNr,KlantInd,Taal,NetBrutP,IsTypDet,OffMunt,OffTyp,MaxWeek New C,PCount,LCount,Prefs,Totals Set PCount=0 Set R=^KOFKL1(OFFNr,"F"),KLNr=$P(R,D) Set R=^KOFKL(KLNr,"F",OFFNr,1),IsTypDet=$P(R,D,9),OffMunt=$P(R,D,18),OffTyp=$P(R,D,25) Set:OffMunt'="MTL" OffMunt=$$MUNT^vhRtn1(OffMunt,1) Set Prefs("OrdBev")=$P(R,D,10),Prefs("NLQ")=$P(R,D,11),Prefs("Totals")=$P(R,D,12)+$P(R,D,13) Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0) If +$G(^KOFKL(KLNr,"F",OFFNr,3)) Set R=^KOFKL(KLNr,"F",OFFNr,3) Set Taal=$P(R,D,9) If Taal="" Set Taal="N" Set R=^KOFKL(KLNr,"F",OFFNr,1),NetBrutP=$P(R,D,27) Kill L Do INIT,PRINT^LOG("OFF",OFFNr,$S($G(MetFax):"F",1:"P")) If Prefs("NLQ") Write P("Q",1) If 'IsTypDet Do ^DCOFFP If IsTypDet Do ^DCOFFD Write P("Q",0) Set:$G(MetFax) Data("Pages")=$G(Data("Pages"))+PCount Quit ; ; Initialisatie INIT If '$D(VH) Do VH^DCINIT If '$D(P) Do PINIT^DCINIT If '$D(L) Do LINIT^DCINIT("A") If '$D(PageLen)!'$D(V) Do FINIT^DCINIT("A") Write P("D",1) Quit ; ; Offerte volgens boom BOOM New HoofdGr,Groep,SubGroep,PRNr,Niveau Set Niveau=$S($D(I7):4,$D(I6):3,$D(I5):2,1:1) Set HoofdGr=I4,Groep="" If Niveau>1 Set Groep=I5 For Set:Niveau<2 Groep=$O(^KPH(HoofdGr,Groep)) Quit:Groep="" Do Quit:Niveau>1 .Set SubGroep="" If Niveau>2 Set SubGroep=I6 .For Set:Niveau<3 SubGroep=$O(^KPH(HoofdGr,Groep,SubGroep)) Quit:SubGroep="" Do Quit:Niveau>2 ..If Niveau>3 Set PRNr=I7 Do PRODOFFP^DCPROD(PRNr) Quit ..Set KortTxtC="" ..For Set KortTxtC=$O(^KPH(HoofdGr,Groep,SubGroep," ",KortTxtC)) Quit:KortTxtC="" Do ...Set PRNr=^KPH(HoofdGr,Groep,SubGroep," ",KortTxtC) ...Do PRODOFFP^DCPROD(PRNr) Quit ; ; Offerte utilidataselektie UTILIDAT(UtilNr) New PRNr,Next,TSubGrp Set Next="" For Set Next=$O(^KLIH(UtilNr,Next)) Quit:Next="" Set PRNr=^KLIH(UtilNr,Next) Do PRODOFFP^DCPROD(PRNr) Quit ; ; Offerte produktselektie PRODSEL(R) New E,BHg,EHg,BGr,EGr,BSg,ESg,BPRNr,EPRNr,BKt,EKt New HoofdGr,Groep,SubGroep,PRNr,Niveau Set BHg=$P(R,D,3),EHg=$P(R,D,4),BGr=$P(R,D,5),EGr=$P(R,D,6) Set BSg=$P(R,D,7),ESg=$P(R,D,8),BPRNr=$P(R,D,9),EPRNr=$P(R,D,10) Set BKt=BPRNr If BPRNr Set BKt=$$COMPR^PRODUKT(BPRNr) Set EKt=EPRNr If EPRNr Set EKt=$$COMPR^PRODUKT(EPRNr) Set R=$P(R,D),R=^KSL1("PR",R),E=^KSL("PR",R,0),E=100 For Set E=$O(^KSL("PR",R,E)) Quit:E="" Set E(E)=^KSL("PR",R,E) Do .If BHg=0,EHg="ZZZZZ" Set Niveau=0 Quit .If BGr=0,EGr="ZZZZZ" Set Niveau=1 Quit .If BSg=0,ESg="ZZZZZ" Set Niveau=2 Quit .If BPRNr=0,EPRNr="ZZZZZ" Set Niveau=3 Quit .Set Niveau=4 Set HoofdGr="" If Niveau>0 Set HoofdGr=BHg For Set:Niveau<1 HoofdGr=$O(^KPH(HoofdGr)) Quit:HoofdGr=""!(HoofdGr]EHg) Do Quit:Niveau>0 .Set Groep="" If Niveau>1 Set Groep=BGr .For Set:Niveau<2 Groep=$O(^KPH(HoofdGr,Groep)) Quit:Groep=""!(Groep]EGr) Do Quit:Niveau>1 ..Set SubGroep="" If Niveau>2 Set SubGroep=BSg ..For Set:Niveau<3 SubGroep=$O(^KPH(HoofdGr,Groep,SubGroep)) Quit:SubGroep=""!(SubGroep]ESg) Do Quit:Niveau>2 ...Set KortTxtC="" If Niveau>3 Set KortTxtC=$O(^KPH(HoofdGr,Groep,SubGroep," ",EKt),-1) ...For Set KortTxtC=$O(^KPH(HoofdGr,Groep,SubGroep," ",KortTxtC)) Quit:KortTxtC=""!(KortTxtC]EKt) Do ....Set PRNr=^KPH(HoofdGr,Groep,SubGroep," ",KortTxtC) ....If $$PRODUKT^PRINT(PRNr,"E") Do PRODOFFP^DCPROD(PRNr) Quit