dcprint ;AFDRUKKEN DOKUMENTEN [ 11/29/2003 1:16 PM ] ; ;Document - T=toelevering, P=prijslijst, A=offerte, O=order, L=leveringsbon, M=magazijnbon, R=remboursbon, V=proforma, F=faktuur, H=herinnering ; ; Drukken fakturen FAKTUUR Set Document="F",Bakje="^KFB" Do TITEL^DCINIT Quit:'$$LOCK^DCINIT() Set Bakje=Bakje_"(""F"",@DOCNr)",DOCNr="FANr" Do INIT^DCINIT("FAKPRINT","BAKJE;VERZWIJZ;KLANT;SELECTED;SESSIE;VANTOT") Set PrintPgm="VERWERK^DCFAKT",Keys="ABKPSVX-?" Set FP=403 Write @F,"SESSIE :" Do KEYS Quit ; ; Drukken proforma fakturen PROFORMA Set Document="V",Bakje="^KFBP" Do TITEL^DCINIT Quit:'$$LOCK^DCINIT() Set Bakje=Bakje_"(""F"",@DOCNr)",DOCNr="FANr" Do INIT^DCINIT("FAKPRINT","BAKJE;VERZWIJZ;KLANT;SELECTED;SESSIE;VANTOT") Set PrintPgm="VERWERK^DCFAKTP",Keys="ABKPSVX-?" Set FP=403 Write @F,"SESSIE :" Do KEYS Quit ; ; Drukken magazijnbons MAGBON Set Document="M" Write *7 Quit ; ; Drukken leveringsbons BON Set Document="L",Bakje="^KUB" Do TITEL^DCINIT Quit:'$$LOCK^DCINIT() Set Bakje=Bakje_"(@DOCNr,""F"")",DOCNr="ULNr" Do INIT^DCINIT("BONPRINT","BAKJE;VERZWIJZ;KLANT;SELECTED;SESSIE;VANTOT") Set PrintPgm="VERWERK^DCBON",Keys="ABKPSVZ-?" Do KEYS Quit ; ; Drukken orders ORDER Set Document="O",Bakje="^KOB" Do TITEL^DCINIT Quit:'$$LOCK^DCINIT() Set Bakje=Bakje_"(@DOCNr,""F"")",DOCNr="ORDNr" Do INIT^DCINIT("ORDPRINT","BAKJE;KLANT;SELECTED;SESSIE;VANTOT",1) Set PrintPgm="VERWERK^DCORD",Keys="ABKPSV-?" Do KEYS Quit ; ; Drukken offertes OFFERTE Set Document="A",Bakje="^KOFKLB" Do TITEL^DCINIT Quit:'$$LOCK^DCINIT() Set Bakje=Bakje_"(@DOCNr,""F"")",DOCNr="OFFNr" Do INIT^DCINIT("OFFPRINT","BAKJE;KLANT;SELECTED;SESSIE;VANTOT",1) Set PrintPgm="VERWERK^DCOFF",Keys="ABKPSV-?" Do KEYS Quit ; ; Drukken prijslijsten PRIJSLST Set Document="P" Write *7 Quit ; ; Drukken toeleveringen TOELEV Set Document="T",Bakje="^KTOB" Do TITEL^DCINIT Quit:'$$LOCK^DCINIT() Set Bakje=Bakje_"(@DOCNr)",DOCNr="TOENr" Do INIT^DCINIT("TOEPRINT","BAKJE;LEVER;SELECTED;SESSIE;VANTOT") Set PrintPgm="VERWERK^DCTOE",Keys="AFHBLPSV-?" Do KEYS Quit ; ; Inputcontrol KEYS New GoRef KEY1 Kill DL Do SA Set FP=400+$P(FPKlLev,D) Write @F,@F1 Do COMMAND KEY2 If R="-" Goto KEY3 If R="HELP" Do HELP(R),REFRESH If R="HELP"!(R="?") Set R="" Do HELP("?"),REFRESH If R="P" Do Goto KEY3:'$D(R),KEY1:R="-"!(R=","),KEY3 .Do PRINT .If Document="F"!(Document="V") Do ..If $D(^HULP($J,"EXTRAS","S")) Do ...Kill ^HULP($J,"k"),^HULP($J,"i"),^HULP($J,"c"),^HULP($J,"x") ...Set (Document,^HULP($J,"T"))="D",PrintPgm="VERWERK^DCSPO" ...Do CUMUL^DCSPO,ABX^DCSPO,CLEAN^DCSPO ...IF '$D(^HULP($J,"EXTRAS","S")) Kill R Quit ...Set (Document,^HULP($J,"T"))="E",PrintPgm="VERWERK^DCSPO" ...Do PRINT ...If $D(^abx) Do ....Set Document="X",PrintPgm="VERWERK^DCABX" ....Do PRINT ...Kill R ..If $D(^HULP($J,"EXTRAS","E")) Do ^KFEXE ..If $D(^HULP($J,"EXTRAS","B")) Do ^KFBON If Document'="T" Do Goto @GoRef .If R="A" Do SESSIE^DCSELUIT Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="B" Do BAKJE^DCSELUIT Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="K" Do KLANT^DCSELUIT Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="S" Do SELECTED^DCSELUIT Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="V" Do VANTOT^DCSELUIT Set GoRef=$S('$D(R):"KEY1",1:"KEY2") Quit .If R="X" Do VERZWIJZ^DCSELUIT("EX") Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="Z" Do Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit ..Set R=$$VERZWIJZ() If $L(R)<2 Quit ..Do VERZWIJZ^DCSELUIT(R) .Set GoRef="KEY1" If Document="T" Do Goto @GoRef .If "\A\F\H\"[(D_R_D) Do SESSIE^DCSELINK(R) Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="B" Do BAKJE^DCSELINK Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="K" Do KLANT^DCSELINK Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="L" Do LEVER^DCSELINK Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="S" Do SELECTED^DCSELINK Set GoRef=$S(R="-":"KEY1",1:"KEY2") Quit .If R="V" Do VANTOT^DCSELINK Set GoRef=$S('$D(R):"KEY1",1:"KEY2") Quit .Set GoRef="KEY1" Goto KEY1 KEY3 Kill ^HULP($J) Quit ; COMMAND New I,IK Set FP=2203 Write @F,@F1,"SELECTEER : ." Write !?2,$E(Keys) For I=2:1:$L(Keys) If "-?"'[$E(Keys,I) Write ",",$E(Keys,I) CMD1 Do CVL^PROC Set IK(1)=R Do IK^PROC1 If R'="HELP",R'="COM",Keys'[R Goto CMD1 Set FP=2203 Write @F,@F1 Quit ; ; Opvragen verzendingswijze VERZWIJZ() New DL,LD,VerzWijz,Count If '$D(^KBA(155)) Quit "" Set R="K\22\3\"_$P($T(T7),U,2)_"\"""_$P($T(T7),U,3)_"""\2\\""-""[K!$D(^KBA(155,K_"" ""))" Do R0^cA100 If $L(K) Set R=K Goto VZW2 Set VerzWijz="",Count=0 For Set VerzWijz=$O(^KBA(155,VerzWijz)) Quit:VerzWijz="" Do .Set R=^KBA(155,VerzWijz,"N"),R=$TR(VerzWijz," ","")_D_R .Set Count=Count+1,VerzWijz(Count)=R Set DL(1)="LD",LD(1)="VerzWijz",LD(2)="1;C;L;2;; | \2;C;L;70",LD(3)=20,LD(6)=1,LD(8)="Vw | Omschrijving" Do WL^PROC VZW1 Do SL^PROC If R="ENTER" Set R=$P(VerzWijz(LD(6)),D) Goto VZW2 If R'="-",R'="HELP",R'="COM",Keys'[R Goto VZW1 VZW2 Set FP=1901 Write @F,@F1 Quit $S(R="-":"",1:R) ; ; Wissen van de schermaanduiding SA Set FP=255 Write @F,@FMTB,$J("",25),@FMTb Quit ; ; Het afdrukken starten en goedkeuren PRINT New Sessie,SessieNr,@DOCNr,Paper,FromNr,Param If $O(^HULP($J,"T",""))="" Set R="-" Quit Kill DL Do SA Set FP=400+$P(FPKlLev,D) Write @F,@F1 Set Paper=$$DOCUMENT(Document),FP=1903 Write @F,Paper Set Paper=$P($P($T(T0)_$P($T(T1),U,2,99),U,$F("TPAOLMFVDEX",Document)),D,2) Set:Paper="" Paper="L;B;S" Do INIT^vhPRINTER(Paper) If '$D(Print) Set R="-" Quit If Document="F"!(Document="V") Do EXTRAS Set FromNr="",Sessie=^HULP($J,"T") Do SELSESS("T",Sessie) PRT3 Kill BAKJE,VERZWIJZ,KLANT,LEVER,SELECTED,SESSIE,VANTOT If $D(F) Xecute F70 Write @F80 Do PINIT^DCINIT Write P("D",1) Set Param="(FromNr,Sessie)" Set:Document="X" Param="" Do @(PrintPgm_Param) Set FP=$P(^cLOG(boot,"DEV",$$DEV^vhPRINTER($I,1)),D,11) Set:'FP FP=66 Write @F32 Write P("D",0) Do CLOSE^vhPRINTER Quit:Document="X" If $G(ExtraS)'="","kicx"[ExtraS Kill ^HULP($J,ExtraS) PRT4 Set Paper=$$DOCUMENT(Document) Set FP=400+$P(FPKlLev,D) Write @F,@F1 Set R="K\22\3\"_Paper_$P($T(T4),U,2)_"\COM1^"_$ZN_"\6\\$L(K)" Do R0^cA100 If $L(K)>1,K'?.N Goto PRT4 If K="E" Do:"KI"[Sessie Quit .If Document="T" Do ..Set BLBeri=$G(BLBeri) Quit:'BLBeri ..Set R="K\22\3\"_$P($T(T8),U,2)_"\"""_$P($T(T9),U,2)_"""\1\\""N""[K" ..Do R0^cA100 Set BLBeri=$L(K) .Do CLEAN Set FromNr="" Goto PRT5:K="H" If "DE"[Sessie Set FromNr=K Goto PRT5 Set ExtraS=$C($A(K)+32) If $D(^HULP($J,ExtraS)) Do Goto PRT5 .If "KI"[Sessie Do CLEAN .Set Sessie=K,SessieNr=$F("KIX",K),FP=412 Write @F,$P("Copie\\Klant\Intern\Expediteur",D,SessieNr+1),@F2 .Do SELSESS(ExtraS,K) Goto PRT4:'$D(^HULP($J,"T",K)) Set FromNr=K PRT5 Set Paper=$P($P($T(T0)_$P($T(T1),U,2,99),U,$F("TPAOLMFVDE",Document)),D,2) Set:Paper="" Paper="L;B;S" Do INIT^vhPRINTER(Paper) Goto PRT4:'$D(Print),PRT3 ; ; Selekteer een bepaalde sessie voor afdruk SELSESS(Type,Sessie) New R Kill ^HULP($J,"P") Set @DOCNr="" For Set @DOCNr=$O(^HULP($J,Type,@DOCNr)) Quit:@DOCNr="" Do .If $P(^HULP($J,Type,@DOCNr),D)=Sessie Set R=$P(^HULP($J,Type,@DOCNr),D,2),^HULP($J,"P",Sessie,@DOCNr)=R Quit ; ; Opkuisen van het bakje CLEAN New @DOCNr,SessieNr Set @DOCNr="",SessieNr=$F("KI",Sessie) For Set @DOCNr=$O(^HULP($J,"P",Sessie,@DOCNr)) Quit:@DOCNr="" Do .If Document'="F",Document'="V" Do Quit ..Kill @Bakje ..If Document="T",BLBeri Kill ^BLBeri("Z",@DOCNr) .Quit:'$D(@Bakje) .If Document'="F",Document'="V" Kill @Bakje Quit .Set R=@Bakje,$P(R,D,SessieNr)=1 .If Document="F"!(Document="V") Set $P(R,D,3)=1 .If $P(R,D,2),$P(R,D,3) Kill @Bakje .Else Set @Bakje=R If Document="F" Do .New Document,Bakje .Set Document="V",Bakje="^KFBP(""F"",@DOCNr)" .Do CLEAN Quit ; ; mogelijke extra sessies (fakturen) EXTRAS New Sessie,@DOCNr,BonInd,VerzWijz,Proforma Set @DOCNr="" Set Sessie=^HULP($J,"T") Quit:Sessie="C" For Set @DOCNr=$O(^HULP($J,"T",@DOCNr)) Quit:@DOCNr="" Do .Quit:$P(^HULP($J,"T",@DOCNr),D)'=Sessie .Set Proforma=$P(^HULP($J,"T",@DOCNr),D,2) .Set ^HULP($J,"c",@DOCNr)="C"_D_Proforma .Quit:'$D(@Bakje) .Set R=@Bakje .;If Sessie="K",'$P(R,D,3) Set ^HULP($J,"i",@DOCNr)="I"_D_Proforma .If Sessie="I",'$P(R,D,2) Set ^HULP($J,"k",@DOCNr)="K"_D_Proforma .Set BonInd="U",VerzWijz="" .If Document="F" Do ..For Set BonInd=$O(^KFA("F",@DOCNr,BonInd)) Quit:BonInd=""!(VerzWijz="EX") Do ...Set R=^KFA("F",@DOCNr,BonInd,1),VerzWijz=$E($P($P(R,D,7),"#"),1,2) .If Document="V" Do ..For Set BonInd=$O(^KFAP("F",@DOCNr,BonInd)) Quit:BonInd=""!(VerzWijz="EX") Do ...Set R=^KFAP("F",@DOCNr,BonInd,1),VerzWijz=$E($P($P(R,D,7),"#"),1,2) .If $E(VerzWijz,1,2)="EX" Set ^HULP($J,"x",@DOCNr)="X"_D_Proforma If Document="F" Do .New Document,Bakje .Set Document="V",Bakje="^KFBP(""F"",@DOCNr)" .Do EXTRAS Quit ; ; kommentaarlijnen COM1 New V Set V=2 Write !?V,$P($T(T5),U,2),!?V If $D(^HULP($J,"k")) Write $P($T(T6),U,2) Set V=20 If $D(^HULP($J,"i")) Write $P($T(T6),U,3) Set V=20 Write ?V If $D(^HULP($J,"c")) Write $P($T(T6),U,4) Set V=$S(V=2:20,1:42) Write ?V If $D(^HULP($J,"x")) Write $P($T(T6),U,5) Quit ; ; Extern EXTERN(Document,DocNum,AutoDev,AskSess,Fax,Data) New L,P,VH,BtwVoet,Sessie,%Fax,%FaxNr,%J,Param,Bewaar,PageLen,SelPrint,Optie Set %J=$$%J^vhRtn1() Kill ^HULP(%J,"T") Set AutoDev=$G(AutoDev),AskSess=$G(AskSess),Fax=$G(Fax) Set SelPrint=$S('AutoDev:1,$D(Print):0,1:1) If 'AskSess Set Sessie=$S(AskSess'="":AskSess,Document="F"!(Document="V"):"KI",1:"K"),AskSess=(0[AskSess) Else Do Quit:Sessie="-" .If Document="F" Do ..Set Sessie=$S('$P($G(^KFB("F",DocNum)),D,2):"K",1:"")_$S('$P($G(^KFB("F",DocNum)),D,3):"I",1:"") ..If '$D(^KFB("F",DocNum)) Set Sessie=Sessie_"C" ..If $L(Sessie)>1 Do ASKSESS^DCSELECT(Sessie) .If Document="V" Do ..Set Sessie=$S('$P($G(^KFBP("F",DocNum)),D,2):"K",1:"")_$S('$P($G(^KFBP("F",DocNum)),D,3):"I",1:"") ..If '$D(^KFBP("F",DocNum)) Set Sessie=Sessie_"C" ..If $L(Sessie)>1 Do ASKSESS^DCSELECT(Sessie) If Fax Set Fax=$$FAX(Document,DocNum,.Data) Quit:Fax="" Do SAVE^DCFAX(.Data,$G(Bewaar)) If SelPrint Do Quit:'$D(Print) .Set Paper=$P($P($T(T0)_$P($T(T1),U,2,99),U,$F("TPAOLMFVDE",Document)),D,2) Set:Paper="" Paper="L;B;S" .Set R="" If $D(Data("Fax")),Data("Fax")="" Set R="F" .Set:$G(Data("ORDBEV")) R("MPC")="" .If 0'[AutoDev Do ..Set Optie("AUTOSEL")=AutoDev ..Do INIT^vhPRINTER(,,,.Optie) .Else Do INIT^vhPRINTER(Paper,"",$S($G(Data("ORDBEV")):"F",1:$S("\A\T\O\L\F\V\"[(D_Document_D)&Fax:"F",1:"")_"P"),.R) .Kill:'$D(Print) ^HULP(%J,"T") .If $D(Data("Fax")),Data("Fax")="" Set Data("Fax")=$G(Print("FAX","NR")) If Fax Set Data("Pages")="" If Document="F" Do .For Quit:Sessie="" Do ..Do PRINT^DCFAKT(DocNum,$E(Sessie),"",Fax) ..If AskSess Do ...Quit:'$D(^KFB("F",DocNum)) ...If $E(Sessie)="K" Set $P(^KFB("F",DocNum),D,2)=1 ...If $E(Sessie)="I" Set $P(^KFB("F",DocNum),D,3)=1 ...If $P(^KFB("F",DocNum),D,2),$P(^KFB("F",DocNum),D,3) Kill ^KFB("F",DocNum) ..Set Sessie=$E(Sessie,2,9) .If 'AskSess Set ^KFX($J,DocNum)="" If Document="V" Do .For Quit:Sessie="" Do ..Do PRINT^DCFAKTP(DocNum,$E(Sessie),"",Fax) ..If AskSess Do ...Quit:'$D(^KFBP("F",DocNum)) ...If $E(Sessie)="K" Set $P(^KFBP("F",DocNum),D,2)=1 ...If $E(Sessie)="I" Set $P(^KFBP("F",DocNum),D,3)=1 ...If $P(^KFBP("F",DocNum),D,2),$P(^KFBP("F",DocNum),D,3) Kill ^KFBP("F",DocNum) ..Set Sessie=$E(Sessie,2,9) .If 'AskSess Set ^KFX($J,DocNum)="" If Document="L" Do PRINT^DCBON(DocNum,Sessie,"",Fax) If Document="O" Do PRINT^DCORD(DocNum,Sessie,"",Fax) If Document="A" Do PRINT^DCOFF(DocNum,Sessie,"",Fax) If Document="T" Do PRINT^DCTOE(DocNum,Sessie,"",Fax) If Fax Do .If $G(%Fax),$G(%FaxNr) Set %FaxNr(%FaxNr)="" Do INIT^vhFAX .Do PRINT^DCFAX(.Data) .If $G(%Fax),$G(%FaxNr) .Else Write # Kill ^HULP(%J,"T") If SelPrint Do CLOSE^vhPRINTER Quit ; ; Fax FAX(Document,DocNum,Data) New UserId,TextId,Text,Titel Set TextId=$$TSELECT^DCFAX($G(Data("ORDBEV"))) Quit:0[TextId TextId If TextId="^" Set UserId=^DEVSAVE($I,"FAX",0,"VanUser") Else Do .If $G(Data("ORDBEV")) Set UserId=$$DEVUSER^vhUSER($I) If $L(UserId),$L(UserId,";")=1 Quit .Set Titel="Fax met """ .If TextId'="?" Set Titel=Titel_$P(^POP("DCFAX","D",TextId),D,2) .Else Set Titel=Titel_"Vrije tekst" .Set Titel="Fax met """_$S(TextId="?":"Vrije tekst",1:$P(^POP("DCFAX","D",TextId),D,2)) .Set Titel=Titel_""" verzonden door" .Set UserId=$$USELECT^DCFAX("FAX",Titel) Quit:UserId="" "" If TextId'["?",TextId'="^" Do SINIT^DCFAX If TextId["?"!(TextId="^") Do STORE^vhTERMINA(),EDIT^vhScherm("DCFAX"),REFRESH^vhTERMINA() Quit $$TEKST^DCFAX() ; REFRESH Set FP=sRT*100+1 Write @F,@F1 Do RESET^vhScherm Quit ; DOCUMENT(Document) Quit $P($P($T(T0)_$P($T(T1),U,2,99),U,$F("TPAOLMFVDEX",Document)),D) ; HELP(Key) New FL,DL,HLP Set R="" Set HLP(1)=$P(";PROF;FAKT;MAG;UITL;ORD;OFF;PRL;TOEL",";",$F("VFMLOAPT",Document))_"PRINT" Do POP^MN(HLP(1)) If R'="HELP" Do REFRESH Quit Set HLP(3)=7 Do HLP^HELP Do ADD^vhScherm(5,24) Quit ; ; Afdrukken document DPRINT() New PCount For PCount=1:1 Quit:'$D(C(PCount)) Do PPRINT(PCount) Quit ; ; Afdrukken van een blabzijde PPRINT(PCount) New R,LCount,Length If $G(%Fax),$G(%FaxNr) Do .Do @$S(PCount=1:"FONT^vhFAX(%FaxNr,""D"")",1:"NEWPAGE^vhFAX(%FaxNr)") .If Document="A" Do LOGO^vhFAX(%FaxNr,"LOGO_ORD") .If Document="O" Do LOGO^vhFAX(%FaxNr,"LOGO_ORD") .If Document="L" Do LOGO^vhFAX(%FaxNr,"LOGO_ORD") Else Write:'$D(Print("LADE")) ! Set LCount="" For Set LCount=$O(C(PCount,LCount)) Quit:LCount="" Do .Set R=C(PCount,LCount) .If $G(%Fax),$G(%FaxNr) Do Quit ..Set Length=$P("\81\81\81\81\81\81\81\81\81\",D,$F("TPAOMLVFH",Document)) ..If $A($E(R,2))=136 Set $E(R,2)=$TR($J("",9)," ",$C(136)) ..If $A($E(R))=137 Do ...If R[P("B",1) Set Length=Length+($L(R,P("B",1))-1*10) ...If R[P("U",1) Set Length=Length+($L(R,P("U",1))-1*10) ...If $L(R)=Length Set $P(R,$C(137),2)=$P(R,$C(137),2)_$J("",8) ...Else Set $P(R,$C(137),2)=$P(R,$C(137),2)_$J("",Length+8-$L(R)) ..Do STORE^vhFAX(%FaxNr,R) .If $G(Prefs("NLQ")) Write P("Q",1) .Write !?V,R If $G(%Fax),$G(%FaxNr) Else Write # Quit ; SELPRINT(SelPrint) New Optie Set:SelPrint'="?" Optie("AUTOSEL")=SelPrint Do INIT^vhPRINTER(,,,.Optie) Kill VH,L,P,BtwVoet,PageLen,V Quit ; T0 ;TOELEVERINGEN;PRIJSLIJSTEN;OFFERTES;ORDERS;LEVERINGBONS;MAGAZIJNBONS;FAKTUREN;PROFORMA FAKTUREN; T1 ;SPOORDOKUMENTEN\SD;SPOORETIKETTEN\SE;AFHALINGSLIJST ABX T2 ;AFDRUKKEN T4 ; GOED AFGEDRUKT T5 ;E[] = einde(ok) H[] = hernemen xxxxxx[] = hernemen vanaf nummer xxxxxx T6 ;K[] = klant;I[] = intern;C[] = copie;X[] = expediteur T7 ;VERZENDINGSWIJZE;[] = overzicht T8 ;MOETEN DE TOELEVERINGEN OPGENOMEN BLIJVEN VOOR ELEKTRONISCH VERSTUREN T9 ;N[] = neen [] = ja