DCORD ;AFDRUKKEN ORDERS [ 11/17/2003 9:35 AM ] ; ; Het afdrukken van een order kan met volgende oproep ; --> Do PRINT^DCORD(BONNr,,,,SelPrint) ; SelPrint = 0 of '$D (geen printerkeuze, printer reeds gedefinieerd) ; = ? (met printerkeuze) ; = Printer (met automatische printerselectie) ; Printervolgnummer in ^cLOG(boot,"CP" of printerdevice of printernaam ; ; Het afdrukken van een order kan met volgende oproep --> Do PRINT^DCORD(ORDNr) ; VERWERK(FromNr,Sessie) New ORDNr Do INIT Set ORDNr=$S(FromNr:FromNr-1,1:FromNr) For Set ORDNr=$O(^HULP($J,"P",Sessie,ORDNr)) Quit:ORDNr="" Do PRINT(ORDNr,$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,BCount,OLNr,Paste,OrdRef,PRNr,OrgalRef,GloRef,EdiNummer,VHisieVwCust Set R=^KOD(KLNr,"F",ORDNr,1),OrdRef=$P(R,D,3) Set VHisieVwCust=$P(R,D,9),OrgalRef=$P(R,D,19),EdiNummer=$P(R,D,40) If $L(EdiNummer) Do .Set:$L(OrgalRef) OrgalRef=OrgalRef_"/" Set OrgalRef=OrgalRef_EdiNummer .Set:$L(VHisieVwCust) OrgalRef=OrgalRef_"/"_VHisieVwCust If IsOrgal Do .Do CACHE(L("B","B")) .Set T=$$TXT("Orgal") .Do PASTE(PCount,LCount,T,3,"","B") If $L(OrdRef) Do .Do CACHE(L("B","B")) .Set T=$$TXT("KlRef")_": "_OrdRef .Do PASTE(PCount,LCount,T,3,"","U") .Quit:$L(OrgalRef) .Do CACHE(L("B","B")) Do:$L(OrgalRef) .Do CACHE(L("B","B")) .Do PASTE(PCount,LCount,$S(IsOrgal:"",1:"Comm: ")_OrgalRef,3,"","") .Do CACHE(L("B","B")) Set GloRef="^KOD(KLNr,""F"",ORDNr)" Xecute:$L($T(@("SORT"_KLNr))) "Set GloRef=$$SORT"_KLNr_"(KLNr,ORDNr)" Set BCount=0 Set OLNr=100 For Set OLNr=$O(@GloRef@(OLNr)) Quit:OLNr="" Do .Set R=@GloRef@(OLNr),PRNr=$P(R,D,2) .Set Paste=$$ORDER^DCDETAIL(ORDNr,$S(OLNr:OLNr,1:$P(OLNr,"~",3))) .If Paste Do PASTEB(L("B","B"),1) If $D(B) Do PASTEB(L("B","B"),1) Kill ^HULP($J,"SORT","O",ORDNr) Quit ; ; Afdruk leveringsadres LEVADR New Aanspr,Naam,Toenaam,Straat,PostNr,Woonpl,Land Set Naam=$P(R,D,2),Toenaam=$P(R,D,3),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)) Set T=$$TXT("LevAdr") Set R=$$FIRMANM^DCALG("K",,Naam,Aanspr,Land) Set R=T_"`3``U\:`"_($L(T)+3)_D_R_"`"_($L(T)+5) Do BLOCK(R) If $L(Toenaam) Set R=Toenaam_"`"_($L(T)+5) Do BLOCK(R) Set R=Straat_"`"_($L(T)+5) Do BLOCK(R) Set R=PostNr_" "_Woonpl_"`"_($L(T)+5) Do BLOCK(R) If Land'="BE" Set R=$$LAND^vhRtn1(Land,2,Taal)_"`"_($L(T)+5) Do BLOCK(R) Do BLOCK("") Quit ; ; Afdruk hoofding HEADER New T If $D(VPerfoT) New VPerfo Set VPerfo=VPerfoT Do CACHE(L("B","F")) Do CACHE(L("B","B")) Set T=$$TXT("Art") Do PASTE(PCount,LCount,T,3,"","") Set T=$$TXT("Aant") Do PASTE(PCount,LCount,T,"",56,"") Set T=$$TXT("Prijs")_" "_OrdMunt Do PASTE(PCount,LCount,T,"",69,"") Set T=$$TXT("LevWk") Do PASTE(PCount,LCount,T,"",77,"") If NetBrutP Do .Do CACHE(L("B","B")) .Set T=$$TXT("Kort") .Do PASTE(PCount,LCount,T,"",69,"") If $D(L("B","S")) Do CACHE(L("B","S")) Quit ; ; Afdruk titel (volgende blazijden) TITEL New OrdDat,KlantInd,R,T,Blank,Titel,Allign,VPerfo New Aanspr,Naam,Woonpl Do PPRINT Set PCount=PCount+1,LCount=0 If $G(%Fax),$G(%FaxNr) Set LCount=$$FLINES^vhFAX("LOGO_ORD") Set R=^KOD(KLNr,"F",ORDNr,1),OrdDat=$TR($P(R,D,2),".","-") Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0) Set Naam=$P(R,D,2),Aanspr=$P(R,D,4),Woonpl=$P(R,D,7) For Blank=1:1:6 Do CACHE("") Set T=$$FIRMANM^DCALG("K",KLNr) Do PASTE(PCount,Blank-1,T,40,"","") Do PASTE(PCount,Blank,Woonpl,40,"","") Set Titel=$$TXT($S(OrdTyp="M":"Monst",OrdTyp="P":"Prof",1:"Order")) Set Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)>Allign Allign=$L(T) Do PASTE(PCount,Blank,T,2,"","") Do PASTE(PCount,Blank,OrdDat,Allign+4,"","") Set T=Titel_$J("",Allign-$L(Titel)+2)_$TR($FN(ORDNr,","),",",".") If $G(%Fax),$G(%FaxNr) Set T=" "_T_" " Do PASTE(PCount,Blank-1,T,2-$G(%Fax),"","B") If PCount>1 Do .Set T=$$TXT("Vervg")_" ("_(PCount-1)_")" .Do PASTE(PCount,Blank,T,"",79,"") Quit ; ; Afdruk titel (eerste blad) FTITEL New OrdDat,KlantInd,R,T,Blank,Titel,Allign,Rembours,VPerfo New Aanspr,Naam,Toenaam,Straat,PostNr,Woonpl,Land,BtwNr Set PCount=PCount+1,LCount=0 If $G(%Fax),$G(%FaxNr) Set LCount=$$FLINES^vhFAX("LOGO_ORD") Set R=^KOD(KLNr,"F",ORDNr,1),OrdDat=$TR($P(R,D,2),".","-") Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),BtwNr=$$BTWNR^DCALG($P(R,D,16)) Set Naam=$P(R,D,2),Toenaam=$P(R,D,3),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)) Set R=^KKL(KlantInd,3),Rembours=$P(R,D) Do VHPB^DCALG(PCount,.Blank) If Rembours Set T=$$TXT("Remb") Do PASTE(PCount,1,T,36,"","B") If $L(BtwNr) Do .Do PASTE(PCount,AdresPos-5,BtwNr,48,"","") .Set T=$$TXT("Btw") .Do PASTE(PCount,AdresPos-5,T,40,"","") Set T=$$FIRMANM^DCALG("K",KLNr) If KLNr=8545,$L(T),$L(Toenaam) Set R=T,T=Toenaam,Toenaam=R Do PASTE(PCount,AdresPos,T,40,"","") If '$L(Toenaam) Do .Do PASTE(PCount,AdresPos+1,Straat,40,"","") .Do PASTE(PCount,AdresPos+3,PostNr_" "_Woonpl,40,"","") .If Land'="BE" Do PASTE(PCount,AdresPos+4,$$LAND^vhRtn1(Land,2,Taal),40,"","") If $L(Toenaam) Do .Do PASTE(PCount,AdresPos+1,Toenaam,40,"","") .Do PASTE(PCount,AdresPos+2,Straat,40,"","") .Do PASTE(PCount,AdresPos+4,PostNr_" "_Woonpl,40,"","") .If Land'="BE" Do PASTE(PCount,AdresPos+5,$$LAND^vhRtn1(Land,2,Taal),40,"","") Set Titel=$$TXT($S(OrdTyp="M":"Monst",OrdTyp="P":"Prof",1:"Order")) Set Allign=$L(Titel) Set T=$$TXT("Date") Set:$L(T)>Allign Allign=$L(T) Do PASTE(PCount,Blank-1,T,2,"","") Do PASTE(PCount,Blank-1,OrdDat,Allign+4,"","") Set T=Titel_$J("",Allign-$L(Titel)+2)_$TR($FN(ORDNr,","),",",".") If $G(%Fax),$G(%FaxNr) Set T=" "_T_" " Do PASTE(PCount,Blank-3,T,2-$G(%Fax),"","B") If OrdTyp="M"!(OrdTyp="P") Set T=$$TXT("Order") Do PASTE(PCount,Blank-4,T,2,"","B") Do VHPD^DCALG(PCount,.Blank,.VH) Quit ; ; Afdruk afsluiting (eerste bladzijden) FOOTER Set @DataRef@(PCount,LCount)=@DataRef@(PCount,LCount)_P("D",0) For I=LCount+1:1:MaxLines-1 Do CACHE(L("B","B")) Do CACHE(L("B","L")) Set T=" "_$$TXT("Vervt")_" " Do PASTE(PCount,LCount,T,"",79,"") Set @DataRef@(PCount,LCount)=P("D",1)_@DataRef@(PCount,LCount) Quit ; ; Afdruk afsluiting (laatste blad) LFOOTER Do CACHE(L("A","L")) Quit ; ; Afdruk van de voorwaarden VOORW New B,I,R,R1,T,BCount,Land,%KontKrt,TKontKrt,BetVw,Rembours,VoorBet,LeverVw,LTemp,VPerfoT Set VPerfoT=VPerfo New VPerfo Set BCount=0 Set R=^KOD(KLNr,"F",ORDNr,1),LeverVw=$P(R,D,21) Set R=^KOD(KLNr,"F",ORDNr,3) If $P(R,D) Do LEVADR Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),Land=$$LAND^vhRtn1($P(R,D,8)),%KontKrt=$P(R,D,17),BetVw=$P(R,D,18) Set R=^KKL(KlantInd,2),TKontKrt=$P(R,D,2) Set R=^KKL(KlantInd,3),Rembours=$P(R,D),VoorBet=$P(R,D,2) Set:LeverVw="" LeverVw=$P(R,D,3) Set R=$$LEVVW^KLANT(LeverVw,Taal) ; Leveringsvoorwaarde If $L(R) Do .Set T=$$TXT("LevVw") .Set R=T_"`3``U\:`"_($L(T)+3)_D_R .For I=1:1:$L(R,"#") Set $P(R,"#",I)=$P(R,"#",I)_"`"_($L(T)+5) .For I=1:1:$L(R,"#") Do BLOCK($P(R,"#",I)) .Do BLOCK("") Set T=$$TXT("BetVw") ; Betalingsvoorwaarde Set R=$$BETVW^KLANT(BetVw,%KontKrt,TKontKrt,Rembours,VoorBet,Taal) Set R=T_"`3``U\:`"_($L(T)+3)_D_R For I=1:1:$L(R,"#") Set $P(R,"#",I)=$P(R,"#",I)_"`"_($L(T)+5) For I=1:1:$L(R,"#") Do BLOCK($P(R,"#",I)) Do BLOCK("") If 0,Land="NL" Do ; Deze voorwaarde is niet meer nodig afgedrukt . Do BLOCK($P($T(TVwNl1),U,2)),BLOCK($P($T(TVwNl2),U,2)),BLOCK("") ; Export Do MEMO^DCALG("O") If B(BCount)="" Kill B(BCount) Set BCount=BCount-1 Set LTemp=L("B","S") If P("Type")="CA"!(P("Type")="BL")!(P("Type")="TK") Kill L("B","S") If LCount+BCount+2>MaxLines Do FOOTER,TITEL,HEADER Set L("B","S")=LTemp Set @DataRef@(PCount,LCount)=@DataRef@(PCount,LCount)_P("D",0) If P("Type")'="CA",P("Type")'="BL",P("Type")'="TK" For I=LCount+1:1:MaxLines-2-BCount Do CACHE(L("B","B")) Set R=L("V","F") Do CACHE(R) Set @DataRef@(PCount,LCount)=P("D",1)_@DataRef@(PCount,LCount) Do PASTEB(L("V","B")) Quit ; ; Afdruk van de voorwaarden - via proxy objects - Added by WimV on 12/05/2005 VOORWPROXY(KLNr,ORDNr,Cache,Taal) ; Cache als .local doorgeven --> wordt opgevuld met teksten #define KLRec(%i) ^KKL(KLID,%i) New KLID,Rec,R,i,Land,FactKLNr New LeverVw,BetVw,PctKontKrt,TKontKrt,Rembours,VoorBet,IsConsument,ToonGeenBtwOmschrijving Set KLID=^KK1(KLNr) Set:($G(Taal)="") Taal=$P(^KKL(KLID,0),"\",9) Set:(Taal="") Taal="N" Set Land=$$LAND^vhRtn1($P(^KKL(KLID,0),"\",8)) Set Rec=$G(^KOD(KLNr,"F",ORDNr,1)),FactKLNr=$P(Rec,"\",6) ; Leveringsvoorwaarde Set LeverVw=$P(Rec,"\",21) Set:(LeverVw="") LeverVw=$P($$$KLRec(3),"\",3) Set R=$$LEVVW^KLANT(LeverVw,Taal) For i=1:1:$L(R,"#") Set Cache("LEVERINGSVOORWAARDE",i)=$P(R,"#",i) ; Betalingsvoorwaarde Set:(KLNr'=FactKLNr)&&(FactKLNr'="") KLID=^KK1(FactKLNr) Set PctKontKrt=$P($$$KLRec(0),"\",17), BetVw=$P($$$KLRec(0),"\",18) Set TKontKrt=$P($$$KLRec(2),"\",2) Set Rembours=$P($$$KLRec(3),"\",1), VoorBet=$P($$$KLRec(3),"\",2) Set R=$$BETVW^KLANT(BetVw,PctKontKrt,TKontKrt,Rembours,VoorBet,Taal) For i=1:1:$L(R,"#") Set Cache("BETALINGSVOORWAARDE",i)=$P(R,"#",i) ; Memo Set IsConsument=$P($$$KLRec(1),"\",11)="Consument" #dim ToonGeenBtwOmschrijving As %Boolean = 1 Do MEMOPROXY^DCALG("O",Taal,.Cache) Quit ; ; Afdrukken van een bladzijde PPRINT Do PPRINT^DCPRINT(PCount) Kill @DataRef@(PCount) Quit ; ; Opbouwen local C en afdrukken van het order PRINT(ORDNr,Sessie,Init,MetFax,SelPrint) New KLNr,KlantInd,Taal,NetBrutP,OrdTyp New C,PCount,LCount,IsOrgal,DataRef Set SelPrint=$G(SelPrint),DataRef="^HULP($J,""PRINT"",""ORDER"")" If 0'[SelPrint Do SELPRINT^DCPRINT(SelPrint) Quit:'$D(Print) If '$G(Init) Do INIT Kill @DataRef Set PCount=0 Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D) Set R=^KOD(KLNr,"F",ORDNr,1),OrdMunt=$$MUNT^vhRtn1($P(R,D,18),1) Set OrdTyp=$P(R,D,25),NetBrutP=$P(R,D,27) Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),Taal=$P(R,D,9) If Taal="" Set Taal="N" Set IsOrgal=$$ISORGAL^FLOW("O",ORDNr) Do PRINT^LOG("OD",ORDNr,$S($G(MetFax):"F",1:"P")) Do FTITEL,HEADER,BODY,VOORW,LFOOTER,PPRINT Set:$G(MetFax) Data("Pages")=$G(Data("Pages"))+PCount If 0'[SelPrint Do CLOSE^vhPRINTER Kill ^KOB(ORDNr,"F") Kill @DataRef Quit ; ; Initialisatie INIT If '$D(VH) Do VH^DCINIT If '$D(P) Do PINIT^DCINIT If '$D(L) Do LINIT^DCINIT("O") If '$D(PageLen)!'$D(V) Do FINIT^DCINIT("O") 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) ; SORT23112(KLNr,ORDNr) quit $$SORT1239(KLNr,ORDNr) SORT1239(KLNr,ORDNr) New R,OLNr,KlOLNr,TempKlOL,GroepCnt,SortKey,TextBlock Kill ^HULP($J,"SORT","O",ORDNr) Set OLNr=100,GroepCnt=$A("A"),TextBlock="" For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr) .Set KlOLNr=$P(R,D,35) .Do:KlOLNr="" ..If $P($P(R,D,17),"#")="KF11" Set:TextBlock="" TextBlock=$P($P(R,D,18),";") ..Else If $P($P(R,D,17),"#")="KF1925" Set KlOLNr=$G(TempKlOL) .Set $P(KlOLNr,".")=$J($P(KlOLNr,"."),3) .Set SortKey=$C(GroepCnt)_"~"_KlOLNr_"~"_OLNr,^HULP($J,"SORT","O",ORDNr,SortKey)=R .Set TempKlOL=KlOLNr .If $P($P(R,D,17),"#")="KF11",TextBlock'=$P($P(R,D,18),";") Set GroepCnt=GroepCnt+1 Quit "^HULP($J,""SORT"",""O"",ORDNr)" ; TOrder ;ORDERBEVESTIGING\CONFIRMATION DE COMMANDE\AUFTRAGSBESTAETIGUNG\CONFIRMATION OF ORDER TMonst ;MONSTER\ECHANTILLON\MUSTER\MONSTER TProf ;PROFORMA\PROFORMA\PROFORMA\PROFORMA TContr ;Afname van contract\Prise du contrat\Afname van contract\Afname van contract TDate ;Datum\Date\Datum\Date TBtw ;BTW nr.\No. TVA\BTW nr.\VAT nbr TVervg ;vervolg\suite\fortsetzung\continue TVervt ;vervolgt\à suivre\fortgesetzt\t.b.continued TArt ;Artikel\Article\Artikel\Article TAant ;Aantal\Quant.\Menge\Quant. TPrijs ;E.Prijs\Prix U\E.Preis\U.Price TLevWk ;Week\Sem.\Woche\Week TKort ;Korting\Remise\Rabat\Discount TTotal ;Netto bedrag\Montant net\Netto Betrag\Amount net TVwNl1 ;Verkopen en leveringen in Nederland volgens BELUNED-condities, gedeponeerd TVwNl2 ;bij de Kamer van Koophandel en Fabrieken te 's Gravenhage onder nummer 1287. TLevAdr ;Leveringsadres\Adresse de livraison\Lieferungsadresse\Leveringsadres TLevVw ;Leveringsvoorwaarde\Conditions de livraison\Lieferbedingung\Betalingsvoorwaarde TBetVw ;Betalingsvoorwaarde\Conditions de paiement\Zahlungsbedingung\Betalingsvoorwaarde TKlRef ;Uw ref\Votre ref\Ihre ref\Uw ref TProjRef ;Ref\Ref\Ref\Ref TRemb ;REMBOURS\REMBOURSEMENT\RUCKZAHLUNG\REIMBURSEMENT TOrgal ;ORGALUX\ORGALUX\ORGALUX\ORGALUX