DCOBON ;AFDRUKKEN ORGALUXBON [ 05/15/2003 11:06 AM ] ; ; Het afdrukken van een Orgalixbon kan met volgende oproep --> Do PRINT^DCOBON(BONNr) ; VERWERK(FromNr,Sessie) New BONNr Do INIT Set BONNr=$S(FromNr:FromNr-1,1:FromNr) For Set BONNr=$O(^HULP($J,"P",Sessie,BONNr)) Quit:BONNr="" Do PRINT(BONNr,$S(Sessie="X":"K",1:Sessie),1) Quit ; FN(Number,Fraction,Format) Quit $$FN^DCALG(Number,Fraction,$G(Format)) ; PASTEB(R,AddBlank) New NewPage Set NewPage="Do FOOTER^"_$ZN_",TITEL^"_$ZN_",HEADER^"_$ZN Do PASTEB^DCALG(R,NewPage,$G(AddBlank)) Quit ; BLOCK(R) Do BLOCK^DCALG(R) Quit ; CACHE(R) Do CACHE^DCALG(R) Quit ; PASTE(Page,Line,Text,BPos,EPos,Attr) Do PASTE^DCALG(Page,Line,Text,BPos,EPos,Attr) Quit ; ; Afdruk body BODY New B,R,I,BCount,ORDNr,MSortKey,KSortKey,MPRNr,KPRNr,TORDNr,TMPRNr,TMAantal,KortTxt Set BCount=0,ORDNr="" For Set (ORDNr,TORDNr)=$O(^HULP($J,"G",ORDNr)) Quit:ORDNr="" Do .Set MSortKey="" .For Set MSortKey=$O(^HULP($J,"G",ORDNr,MSortKey)) Quit:MSortKey="" Quit:$E(MSortKey)="~" Do ..Set R=$G(^HULP($J,"G",ORDNr,MSortKey)) ..Do:$L(R) ...Set MPRNr=$P(R,D),MAantal=$P(R,D,2),R=^KPR(MPRNr,0),KortTxt=$P(R,D) ...Set R=^KPR(MPRNr,2),IDNr=$P(R,D,25) ...Set R=$S(TORDNr:$$EXTNUM^vhDTyp(TORDNr,0,".",0),1:"")_"`3\"_KortTxt_"`13``B\" ...Set R=R_IDNr_"`43``B\"_$$FN(MAantal,0)_"`59\" ...Do BLOCK(R) ...Set TORDNr="" ..Set KSortKey="" ..For Set KSortKey=$O(^HULP($J,"G",ORDNr,MSortKey,KSortKey)) Quit:KSortKey="" Do ...Set R=^HULP($J,"G",ORDNr,MSortKey,KSortKey) ...Set MPRNr=$P(R,D),MAantal=$P(R,D,2),KPRNr=$P(R,D,3),KAantal=$P(R,D,4),R=^KPR(KPRNr,0),KortTxt=" "_$P(R,D) ...Set R=^KPR(KPRNr,2),IDNr=$P(R,D,25) ...Set R=$S(TORDNr:$$EXTNUM^vhDTyp(TORDNr,0,".",0),1:"")_"`3\"_KortTxt_"`13\"_IDNr_"`45\" ...Set:KAantal'=1 R=R_$$FN(KAantal,0,".")_"x`63\" ...Set R=R_$$FN(MAantal*KAantal,0,".")_"``73\" ...Do BLOCK(R) ...Set TORDNr="" ..Do PASTEB(L("G","B"),1) .Do:$E(MSortKey)="~" ..Set:$TR(C(PCount,LCount),"| ","")="" C(PCount,LCount)=L("G","S") ..Set MSortKey=$O(^HULP($J,"G",ORDNr,MSortKey),-1) ..For Set MSortKey=$O(^HULP($J,"G",ORDNr,MSortKey)) Quit:MSortKey="" Do ...Set KSortKey="" ...For Set KSortKey=$O(^HULP($J,"G",ORDNr,MSortKey,KSortKey)) Quit:KSortKey="" Do ....Set R=^HULP($J,"G",ORDNr,MSortKey,KSortKey) ....Set MPRNr=$P(R,D),MAantal=$P(R,D,2),KPRNr=$P(R,D,3),KAantal=$P(R,D,4),R=^KPR(KPRNr,0),KortTxt=$P(R,D) ....Set R=^KPR(KPRNr,2),IDNr=$P(R,D,25) ....Set R=$S(TORDNr:$$EXTNUM^vhDTyp(TORDNr,0,".",0),1:"")_"`3\"_KortTxt_"`13\" ....Set R=R_IDNr_"`43\"_$$FN(MAantal*KAantal,0,".")_"``59\" ....Do BLOCK(R) ....Set TORDNr="" ..Do PASTEB(L("G","B"),1) If $TR(C(PCount,LCount),"| ","")="" Kill C(PCount,LCount) Set LCount=LCount-1 Quit ; ; Afdruk hoofding HEADER New T Do CACHE(L("G","F")) Do CACHE(L("G","B")) Set T=$$TXT("OrdNr") Do PASTE(PCount,LCount,T,4,"","") Set T=$$TXT("Art") Do PASTE(PCount,LCount,T,13,"","") Set T=$$TXT("Ident") Do PASTE(PCount,LCount,T,43,"","") Set T=$$TXT("InSet") Do PASTE(PCount,LCount,T,"",64,"") Set T=$$TXT("Totaal") Do PASTE(PCount,LCount,T,"",73,"") Do CACHE(L("G","S")) Quit ; ; Afdruk titel (volgende blazijden) TITEL New BonDat,KlantInd,R,T,Blank,Titel,Allign,Beloofd New Aanspr,Naam,Woonpl,Land,LevAdr Do PPRINT Set PCount=PCount+1,(LCount,LevAdr)=0 Set R=^KUL(KLNr,"F",BONNr,1),BonDat=$TR($P(R,D,2),".","-") Set Beloofd=$S($L($P(R,D,16)):$S($P(R,D,23)="N":"N",1:"B"),1:"") Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0) If +$G(^KUL(KLNr,"F",BONNr,3)) Set R=^KUL(KLNr,"F",BONNr,3),LevAdr=1 Set Naam=$P(R,D,2),Aanspr=$P(R,D,4),Woonpl=$P(R,D,7) Set Land=$$LAND^vhRtn1($P(R,D,8)) For Blank=1:1:6 Do CACHE("") Set:'LevAdr T=$$FIRMANM^DCALG("K",KLNr) Set:LevAdr T=$$FIRMANM^DCALG(,,Naam,Aanspr,Land) Do PASTE(PCount,Blank-1,T,40,"","") Do PASTE(PCount,Blank,Woonpl,40,"","") Set Titel=$$TXT("OrgBon"),Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)>Allign Allign=$L(T) Do PASTE(PCount,Blank,T,2,"","") Do PASTE(PCount,Blank,BonDat,Allign+4,"","") Set T=Titel_$J("",Allign-$L(Titel)+2)_$TR($FN(BONNr,","),",",".") Set:$L(Beloofd) T=T_" "_Beloofd Do PASTE(PCount,Blank-1,T,2,"","B") If PCount>1 Do .Set T=$$TXT("Vervg")_" ("_(PCount-1)_")" .Do PASTE(PCount,Blank,T,"",79,"") Quit ; ; Afdruk titel (eerste blad) FTITEL New BonDat,KlantInd,R,T,Blank,Titel,Allign,Beloofd New Aanspr,Naam,Straat,PostNr,Woonpl,Land,LevAdr,Telefoon Set PCount=PCount+1,(LCount,LevAdr)=0 Set R=^KUL(KLNr,"F",BONNr,1),BonDat=$TR($P(R,D,2),".","-") Set Beloofd=$S($L($P(R,D,16)):$S($P(R,D,23)="N":"N",1:"B"),1:"") Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0) Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),Telefoon=$P(R,D,13) If +$G(^KUL(KLNr,"F",BONNr,3)) Set R=^KUL(KLNr,"F",BONNr,3),LevAdr=1 Set Naam=$P(R,D,2),Aanspr=$P(R,D,4) Set Straat=$P(R,D,5),PostNr=$P(R,D,6),Woonpl=$P(R,D,7) Set Land=$$LAND^vhRtn1($P(R,D,8)) For Blank=1:1:7 Do CACHE("") Do PASTE(PCount,Blank-3,Telefoon,48,"","") Set T=$$TXT("TelNr") Do PASTE(PCount,Blank-3,T,40,"","") Set:'LevAdr T=$$FIRMANM^DCALG("K",KLNr) Set:LevAdr T=$$FIRMANM^DCALG(,,Naam,Aanspr,Land) Do PASTE(PCount,Blank-2,T,40,"","") Do PASTE(PCount,Blank-1,Straat,40,"","") Do PASTE(PCount,Blank,PostNr_" "_Woonpl,40,"","") Set Titel=$$TXT("OrgBon"),Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)>Allign Allign=$L(T) Do PASTE(PCount,Blank,T,2,"","") Do PASTE(PCount,Blank,BonDat,Allign+4,"","") Set T=Titel_$J("",Allign-$L(Titel)+2)_$TR($FN(BONNr,","),",",".") Set:$L(Beloofd) T=T_" "_Beloofd Do PASTE(PCount,Blank-2,T,2,"","B") Quit ; ; Afdruk afsluiting (eerste bladzijden) FOOTER Set C(PCount,LCount)=C(PCount,LCount)_P("D",0) For I=LCount+1:1:MaxLines-1 Do CACHE(L("G","B")) Do CACHE(L("G","L")) Set T=" "_$$TXT("Vervt")_" " Do PASTE(PCount,LCount,T,"",78,"") Set C(PCount,LCount)=P("D",1)_C(PCount,LCount) Quit ; ; Afdruk afsluiting (laatste blad) LFOOTER New R,Beloofd Do CACHE(L("G","L")) Set Beloofd=$P(^KUL(KLNr,"F",BONNr,1),D,16) If $L(Beloofd) Do .Set R=$C(27)_"[@"_$C(4)_$C(0)_$C(0)_$C(0)_$C(18)_$C(2)_$C(27)_":" .Set R=R_$$TXT("Beloofd")_" "_Beloofd .Set R=R_$C(18)_$C(27)_"[@"_$C(4)_$C(0)_$C(0)_$C(0)_$C(17)_$C(1) .Do CACHE(""),CACHE(""),PASTE(PCount,LCount,R,2,"","B") Quit ; ; Produktlijnen filteren FETCHPR New B,R,OLNr,PRNr,Aantal,ORDNr Kill ^HULP($J,"G") Set OLNr=100,ORDNr="" For Set OLNr=$O(^KUL(KLNr,"F",BONNr,OLNr)) Quit:'OLNr Do .Set R=^KUL(KLNr,"F",BONNr,OLNr) .If $P(R,D,17)="KF5" Set ORDNr=$P($P(R,D,5)," - ") Quit .Set PRNr=$P(R,D,2) .Quit:'PRNr .Set Aantal=$P(R,D,3) Quit:'Aantal .Do:ORDNr BOOM(PRNr,ORDNr,OLNr,Aantal) Quit ; ; Ragnschikken volgens boom BOOM(MPRNr,ORDNr,OLNr,MAantal) New R,KPRNr,MSortKey,KSortKey,KAantal,OrgVerp Set MSortKey=$$SORTKEY^PRODUKT(MPRNr) Set ^HULP($J,"G",ORDNr,MSortKey_$J(OLNr,5))=MPRNr_D_MAantal,KPRNr="" For Set KPRNr=$O(^PRLINK("D",MPRNr,KPRNr)) Quit:KPRNr="" Do .Quit:$$IsVerpakking^PRODUKT2(KPRNr) ; Verpakking niet opgenomen in de lijst .Set R=^PRLINK("D",MPRNr,KPRNr),KAantal=$P(R,D),OrgVerp=$P(R,D,2) .Set KSortKey=$$SORTKEY^PRODUKT(KPRNr) .Set ^HULP($J,"G",ORDNr,MSortKey_$J(OLNr,5),KSortKey)=MPRNr_D_MAantal_D_KPRNr_D_KAantal .Set:OrgVerp="O" ^HULP($J,"G",ORDNr,"~"_MSortKey_$J(OLNr,5),KSortKey)=MPRNr_D_MAantal_D_KPRNr_D_1 .Set KSortKey=$$SORTKEY^PRODUKT(KPRNr) Quit ; ; Afdrukken van een bladzijde PPRINT Do PPRINT^DCPRINT(PCount) Kill C(PCount) Quit ; ; Opbouwen local C en afdrukken van de faktuur PRINT(BONNr,Sessie,Init) New KLNr,KlantInd,Taal,VPerfo New C,PCount,LCount If '$G(Init) Do INIT Set PCount=0 Set R=^KU1(BONNr,"F"),KLNr=$P(R,D) Set Taal="N" Do FETCHPR Quit:'$D(^HULP($J,"G")) Do FTITEL,HEADER,BODY,LFOOTER,PPRINT Kill ^HULP($J,"G") Quit ; ; Initialisatie INIT If '$D(L) Do LINIT^DCINIT("G") If '$D(P) Do PINIT^DCINIT If '$D(PageLen)!'$D(V) Do FINIT^DCINIT("G") Write P("D",1) Quit ; ; Ophalen taalafhankelijke tekst TXT(Ref,Piece) If '$D(Piece) Set Piece=2 Quit $P($P($T(@("T"_Ref)),U,Piece),D,$F("NFDE",Taal)-1) ; TOrgBon ;ORGALUXBON\ORGALUXBON\ORGALUXBON\ORGALUXBON\ TDate ;Datum\Date\Datum\Date TTelNr ;Tel.nr.\No.Tel.\Tel.nr.\Tel.nbr TVervg ;vervolg\suite\fortsetzung\continue TVervt ;vervolgt\à suivre\fortgesetzt\t.b.continued TOrdNr ;Order\Ordre\Auftr\Order TArt ;Artikel\Article\Artikel\Article TIdent ;Identnummer\No identif\Identnummer\Identnummer TInSet ;In set\In set\In set\In set TBeloofd ;Beloofd voor\Beloofd voor\Beloofd voor\Beloofd voor TTotaal ;Totaal\Totaal\Totaal\Totaal