#include BL.Derde.LevSpecifiek DCPRINT ;AFDRUKKEN DOKUMENTEN [ 11/29/2003 1:55 PM ] ; ;Document - T=toelevering, P=prijslijst, A=offerte, O=order ; L=leveringsbon, M=magazijnbon, R=remboursbon, V=proforma ; F=faktuur, H=herinnering, X=Afh ABX, x=Afh ABX (nieuw) ; G=Orgaluxbon, S=samenvatting leveringsbons, K=klacht ; C=CMR, D=Consolidatie leveringsbons, d=Consolidatie Orgalux ; E=Expediteur (transportaanvraag) ; TBX=Tandembox ; ; 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;BATCH") Set PrintPgm="VERWERK^DCFAKT",Keys="ABKPSVTX-?" 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="AFHBLPSVWX-?" 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 ..; Spooretiketten niet meer nodig. 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 ..; Expediteuretiketten niet meer nodig. If $D(^HULP($J,"EXTRAS","E")) Do ^KFEXE ..; Overzicht Bon "Bon bijvoegen" niet meer nodig. 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="T" Do BATCH^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 .If R="T" Do BATCH^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(^RES("KLANT","PI","VERZENDWIJZE","D")) Quit "" Set R="K\22\3\"_$P($T(T7),U,2)_"\"""_$P($T(T7),U,3)_"""\2\\""-""[K!$D(^RES(""KLANT"",""PI"",""VERZENDWIJZE"",""D"",K))" Do R0^cA100 If $L(K) Set R=K Goto VZW2 Set VerzWijz="",Count=0 For Set VerzWijz=$O(^RES("KLANT","PI","VERZENDWIJZE","D",VerzWijz)) Quit:VerzWijz="" Do .Set R=^RES("KLANT","PI","VERZENDWIJZE","D",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 I,Sessie,SessieNr,@DOCNr,Paper,FromNr,Param,lbBONNrs,sc If $O(^HULP($J,"T",""))="" Set R="-" Quit If Document="L" Do Quit . New BONNr . Do INIT^vhPRINTER("S","","FOP") . Quit:'$D(Print) . If $G(Print("FOPNAME"))="" Do ; Afdruk op default printer (magazijn) . . Set (lbBONNrs,BONNr)="" . . For Set BONNr=$O(^HULP($J,"T",BONNr)) Quit:BONNr="" Set $LI(lbBONNrs,$LL(lbBONNrs)+1)=BONNr . . Do BON^DCPRINT2(lbBONNrs) . Else Do . . Set BONNr="" . . For Set BONNr=$O(^HULP($J,"T",BONNr)) Quit:BONNr="" Do PrintBON^FaxMail(BONNr,Print("FOPNAME")) . Do CLOSE^vhPRINTER If Document="T" Do Quit . New TOENr,LEVNr . Do ChkPrinter(.Print) . Set TOENr="" . For Set TOENr=$O(^HULP($J,"T",TOENr)) Quit:TOENr="" Do . . Set LEVNr=$P(^KTO1(TOENr),D) . . Set LevIndex=^KL1(LEVNr) . . Set Taal=$Piece(^KLE(LevIndex,0),"\",9) . . S xPrint=^HULP($J,"T",TOENr),Sessie=$P(xPrint,D),Adres=$P(xPrint,D,2) . . If Sessie="P" Do . . . Quit:'$D(Print) . . . Do PrintTOE^FaxMail(TOENr,Print("FOPNAME"),0,.sc) . . . If +sc Set $P(xPrint,D,3)=1 . . Else If Sessie="F" Do . . . If Adres="" Set Adres=$$ZoekFaxNr^LEVER(LEVNr) . . . Do TOELEV^FaxMail2(TOENr,"Z","F",D_Adres,1) . . . Set $P(xPrint,D,3)=1 . . Else If Sessie="M" Do . . . If Adres="" Set Adres=$$ZoekMailAdres^LEVER(LEVNr) . . . Set From=$$USERNAME^vhUSER(,"@1") . . . Set Subject=$Select(Taal="N":"Levering",Taal="F":"Commande","D":"Lieferung",1:"Order")_" "_TOENr . . . Set sc=##class(BL.Flow.Toelevering.Doc).RenderAndMailDoc(TOENr,Adres,Subject," ","Order"_TOENr_".PDF",From) . . . Set $P(xPrint,D,3)=1 . . Set ^HULP($J,"T",TOENr)=xPrint . . If LEVNr=$$$LevBlum,$D(^BLBeri("Z",TOENr)) Set BLBeri=1 . Do CLOSE^vhPRINTER . Set Sessie=^HULP($J,"T") Do SELSESS("T",Sessie) . Do CleanKTOB(Document) . 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 If Document="A" Do Quit . New OFFNr . Do INIT^vhPRINTER("S","","FOP") . Quit:'$D(Print) . Set OFFNr="" . For Set OFFNr=$O(^HULP($J,"T",OFFNr)) Quit:OFFNr="" Do PrintOFF^FaxMail(OFFNr,Print("FOPNAME")) . Do CLOSE^vhPRINTER . Set Sessie=^HULP($J,"T") Do SELSESS("T",Sessie) . New @DOCNr . Set R="" . For Set R=$O(^HULP($J,"P",Sessie,R)) Quit:R="" Set @DOCNr@(R)="" . Do ToegangVHisie^FLOWOFF(.@DOCNr) . Do CLEAN 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 I=$I Set:I["|PRN|" I=$P(I,"|PRN|",2) Set I=$$UPTRIMAN^vhRtn1(I) 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 If Document="F" Set K="E" Else 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 Do SBATCH(Document) Quit .If Document="A" Do ..New @DOCNr ..Set R="" ..For Set R=$O(^HULP($J,"P",Sessie,R)) Quit:R="" Set @DOCNr@(R)="" ..Do ToegangVHisie^FLOWOFF(.@DOCNr) .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("TPAOLMFVDEX",Document)),D,2) Set:Paper="" Paper="L;B;S" Do INIT^vhPRINTER(Paper) Goto PRT4:'$D(Print),PRT3 ; ; Afdrukken van een document met printerkeuze PRINTONE(Document,DOCNr) New TempDOCNr Set TempDOCNr=DOCNr Set ^HULP($J,"T",DOCNr)="" Set:Document="L" DOCNr="ULNr" Do PRINT^DCPRINT Kill ^HULP($J,"T",TempDOCNr) Quit ; ; 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 ;bakje leegmaken CleanKTOB(Document) N DOCNr,R Set DOCNr="" For Set DOCNr=$O(^HULP($J,Document,DOCNr)) Quit:DOCNr="" Do . Set R=^HULP($J,Document,DOCNr) . If $P(R,D,3)=1,$D(^KTOB(DOCNr)) Do . . ;S ^PVE("KTOB",DOCNr)=^KTOB(DOCNr) . . K ^KTOB(DOCNr) Quit ; ChkPrinter(Print) ; Controleert of er printopdrachten in het bakje staan ; Als dat zo is, dan wordt het keuzescherm van de printers getoond Set TOENr="",OK=0 For Set TOENr=$O(^HULP($J,"T",TOENr)) Quit:TOENr=""!OK Do . S xPrint=^HULP($J,"T",TOENr),Sessie=$P(xPrint,D) . If Sessie="P" Do . . Do INIT^vhPRINTER("S","","FOP") . . Quit:'$D(Print) . . Set OK=1 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 ; ; Automatisch afdrukken op een printer of fax of mail zonder verdere vragen, ; behalve voor fax de vraag naar voorblad AUTO(Document,DocNum,Device,To,DefData) New AutoFax,Data Set Device=$$UPTRIMAN^vhRtn1(Device) If Device'="MAIL" Do . Set AutoFax=Device="FAX" Set:'AutoFax To="" . Set:$L($P(To,D)) (Data("Verantw"),DefData("Verantw"))=$P(To,D) . Set:$L($P(To,D,2)) (Data("Fax"),DefData("Fax"))=$P(To,D,2) . Do EXTERN(Document,DocNum,Device,$S(Document="F":"K",Document="V":"K",1:""),AutoFax,.Data,.DefData) Else Do EXTERN(Document,.DocNum,Device,$S(Document="F":"K",Document="V":"K",1:""),"",,.DefData) Quit ; ; Extern EXTERN(Document,DocNum,AutoDev,AskSess,Fax,Data,DefData) New L,P,R,VH,BtwVoet,Sessie,%Fax,%FaxNr,%J,Param,Bewaar,PageLen,AdresPos,SelPrint,KLNr,KlNaam,SelFax,FakSoort ;If "\T\A\O\L\F\V\"[(D_Document_D),"\3\17\1007\1009\"[(D_$G(QU(1))_D) Do EXTERN^FaxMail2(Document,.DocNum,.AutoDev,.Data) Quit If "\T\A\O\L\F\V\"[(D_Document_D) Do EXTERN^FaxMail2(Document,.DocNum,.AutoDev,.Data,.DefData) Quit If Document="L" Do Quit:FakSoort="" ; Kan en mag een bon afgedrukt worden? .Set FakSoort=$$NODE^FLOWBON(DocNum) .If '$D(^KU1(DocNum,"F")) Set FakSoort=$$^vhTXTPOP("DCPRINT","BONONBEKEND","",DocNum) Quit .Quit:FakSoort="F" .Set KLNr=$P(^KU1(DocNum,"F"),D),KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) .Set:'$$^vhTXTPOP("DCPRINT","BONGEFACTUREERD","",DocNum,KlNaam) FakSoort="" 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)) Set SelFax=Fax,KLNr=$G(Data("KLNr")) If KLNr,SelFax Set R=^KKL(^KK1(KLNr),1),SelFax='$P(R,D,26) If SelPrint Do Quit:'$D(Print) .Set Paper=$P($P($T(T0)_$P($T(T1),U,2,99),U,$F("TPAOLMFVDEX",Document)),D,2) Set:Paper="" Paper="L;B;S" .Set R="" .If $D(Data("Fax")),$$TRIMN^vhRtn1(Data("Fax"))="" Set R="F" .Set:$G(Data("ORDBEV")) R("MPC")="" .If 0'[AutoDev Do ..Set R("AUTOSEL")=AutoDev ..Do INIT^vhPRINTER(,,,.R) .Else Do INIT^vhPRINTER(Paper,"",$S($G(Data("ORDBEV")):"F",$G(Data("TextId"))="Z":"F",1:$S("\A\T\O\L\F\V\E\"[(D_Document_D)&SelFax:"F",1:"")_"P"),.R) .Kill:'$D(Print) ^HULP(%J,"T") .If AutoDev="FAX" Set:$G(Print("LEN"))=99999 Print("LEN")=67 Set:$G(Print("MAXLIJN"))=99999 Print("MAXLIJN")=67 .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)) Quit:$E(Sessie)="I" ...Kill:$$OFFICIAL(Document,DocNum,.Print) ^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)) Quit:$E(Sessie)="I" ...Kill:$$OFFICIAL(Document,DocNum,.Print) ^KFBP("F",DocNum) ..Set Sessie=$E(Sessie,2,9) .If 'AskSess Set ^KFX($J,DocNum)="" If Document="L" Do PRINT^DCBON(DocNum,Sessie,"",Fax,,,FakSoort) If Document="O" Do . New ORDNr . Set ORDNr=DocNum . Do PRINT^DCORD(ORDNr,Sessie,"",Fax) . Set ORDNr="" . For Set ORDNr=$O(DocNum(ORDNr)) Quit:ORDNr="" Do:$G(%FaxNr) NEWPAGE^vhFAX(%FaxNr) Do PRINT^DCORD(ORDNr,Sessie,"",Fax) If Document="A" Do PRINT^DCOFF(DocNum,Sessie,"",Fax) If Document="T" Do PRINT^DCTOE(DocNum,Sessie,"",Fax) If Document="E" Do PRINT^DCTRANSP(DocNum,"",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 ; ; DocNum doorgegeven als .Local (Local(DocNum)="") BULK(Document,DocNum,AutoDev,Sessie,BulkGroep) New L,P,R,VH,BtwVoet,%J,Param,Bewaar,PageLen,AdresPos,SelPrint,KLNr ;,DOCNr Set AutoDev=$G(AutoDev),Sessie=$G(Sessie,"K") Set:Document="F" Bakje="^KFB" Set:Document="V" Bakje="^KFBP" Set:Document="L" Bakje="^KUB" Set:Document="O" Bakje="^KOB" Set:Document="A" Bakje="^KOFKLB" Set:Document="T" Bakje="^KTOB" For Quit:$$LOCK^DCINIT() Set:Document="F" Bakje="^KFB(""F"",@DOCNr)",DOCNr="FANr" Set:Document="V" Bakje="^KFBP(""F"",@DOCNr)",DOCNr="FANr" Set:Document="L" Bakje="^KUB(@DOCNr,""F"")",DOCNr="ULNr" Set:Document="O" Bakje="^KOB(@DOCNr,""F"")",DOCNr="ORDNr" Set:Document="A" Bakje="^KOFKLB(@DOCNr,""F"")",DOCNr="OFFNr" Set:Document="T" Bakje="^KTOB(@DOCNr)",DOCNr="TOENr" Kill ^HULP($J,"k"),^HULP($J,"i"),^HULP($J,"c"),^HULP($J,"x") Kill ^HULP($J,"P"),^HULP($J,"T"),^HULP($J,"EXTRAS") Set SelPrint=$S('AutoDev:1,$D(Print):0,1:1) If SelPrint Do Quit:'$D(Print) .Set Paper=$P($P($T(T0)_$P($T(T1),U,2,99),U,$F("TPAOLMFVDEX",Document)),D,2) Set:Paper="" Paper="L;B;S" .If 0'[AutoDev Do ..Set R("AUTOSEL")=AutoDev ..Do INIT^vhPRINTER(,,,.R) .Else Do INIT^vhPRINTER(Paper) Set DocNum="" For Set DocNum=$O(DocNum(DocNum)) Quit:DocNum="" Do . Set R=DocNum(DocNum) . Do:R="" . . Set:Document="V" R="P" . . If Document="F",$D(^KFAP("F",DocNum)) Set R="P" . If Document="F",'$D(^KFB("F",DocNum)),'$D(^KFBP("F",DocNum)) Quit ; Reeds afgedrukt via andere weg . Set ^HULP($J,"T",DocNum)=Sessie_D_R,^HULP($J,"P",Sessie,DocNum)=R If Document="F" Do VERWERK^DCFAKT("",Sessie) If Document="L" Do VERWERK^DCBON("",Sessie) If Document="O" Do VERWERK^DCORD("",Sessie) If Document="A" Do VERWERK^DCOFF("",Sessie) If Document="T" Do VERWERK^DCTOE("",Sessie) Do SBATCH(Document,,$G(BulkGroep)),CLEAN Kill ^HULP($J,"k"),^HULP($J,"i"),^HULP($J,"c"),^HULP($J,"x") Kill ^HULP($J,"P"),^HULP($J,"T"),^HULP($J,"EXTRAS") If SelPrint Do CLOSE^vhPRINTER Quit ; OFFICIAL(Document,DocNum,Print) New R,Official,NextPr,KLNr,KlNaam Set (NextPr,Official)=0 For Set NextPr=$O(^DATA(0,"SYS.CP",NextPr)) Quit:NextPr="" Do Quit:Official .Set R=^DATA(0,"SYS.CP",NextPr,0) .Quit:$P(R,D,3)'=Print("DEV") .Set Official=$E($P(R,D,2),1,7)="Faktuur" Do:Official .Do CLOSE^vhPRINTER .If Document="F" Set R=^KFA("F",DocNum,0,0) .Else Set R=^KFAP("F",DocNum,0,0) .Set KLNr=$P(R,D),R=^KKL(^KK1(KLNr),0),KlNaam=$P(R,D,2) .Set Official=$$^vhTXTPOP("DCPRINT","EXTERNOFFAKT","",$$EXTNUM^vhDTyp(DocNum,0,".",0),KLNr,KlNaam) Quit Official ; ; Fax FAX(Document,DocNum,Data) New UserId,TextId,Text,Titel Set TextId=$G(Data("TextId")) Set:TextId="" 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=$S(TextId="Z":$$DEVUSER^vhUSER($$IO^cQ5),1:$$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 bladzijde PPRINT(PCount) New R,LCount,Length If '$D(DataRef) New DataRef Set DataRef="C" 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(@DataRef@(PCount,LCount)) Quit:LCount="" Do .Set R=@DataRef@(PCount,LCount) .If $G(%Fax),$G(%FaxNr) Do Quit ..If Document'="E" Do ...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 Do .....If $L(R,$C(137))=2,$L(R,$C(134))=2,$L(R,$C(133))=2 Set $P(R,$C(134))=$P(R,$C(134))_$J("",8) ; Scheidingslijn in factuurafsluiting .....Else 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) ..Else Do STORE^vhFAX(%FaxNr,R,4) .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,AdresPos,V Quit ; SBATCH(Document,Days,BatchRef) New Batch,PrevNr,NextNr,Date,Time,DelDate Set Days=$G(Days,15) If Document'="F",Document'="H" Else Do ; Facturen of herinneringen .Set DelDate=$$CALCDATE^vhDTyp(,"A",-Days) .For Set DelDate=$O(^PRINTB(Document,DelDate),-1) Quit:DelDate="" Kill ^PRINTB(Document,DelDate) .Quit:Document="H" ; Herinneringen enkel ^PRINTB opkuisen .Set (Batch,PrevNr,NextNr)="",Date=$P($H,","),Time=$P($H,",",2) .For Set NextNr=$O(^HULP($J,"T",NextNr)) Quit:NextNr="" Do ..Do:NextNr-PrevNr>1 ...If PrevNr Set:$P(Batch,",",$L(Batch,","))'=PrevNr Batch=Batch_"-"_PrevNr Set Batch=Batch_"," ...Set Batch=Batch_NextNr ..Set PrevNr=NextNr .Do:PrevNr ..Set:$P(Batch,",",$L(Batch,","))'=PrevNr Batch=Batch_"-"_PrevNr ..Set ^PRINTB(Document,Date,Time)=Date_D_Time_D_Sessie_D_$G(io)_D_$G(QU)_D_Batch_D_$G(BatchRef) Quit ; T0 ;TOELEVERINGEN;PRIJSLIJSTEN;OFFERTES;ORDERS;LEVERINGBONS;MAGAZIJNBONS;FAKTUREN;PROFORMA FAKTUREN; T1 ;SPOORDOKUMENTEN\SD;TRANSPORTAANVRAAG;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