DCFOP ;AFDRUKKEN DOKUMENTEN VIA FOP [ 11/29/2003 1:55 PM ] ; FACTUUR(FromNr,Sessie,SortKey,FopPrint) New I,R,FANr,FaktProf,KLNr,KlKey,lbFacturen,Exemplaren,Groepering Set SortKey=$G(SortKey,"K"),FopPrint=$G(FopPrint,"KyoceraFS4000") Kill ^HULP($J,"SORT") Do:SortKey="P" ; Gerangschikt per factuur (de specialekes komen achteraan gegroepeerd. Factuurclausle, rembours, wissel...) . Set FANr=$S(FromNr:FromNr-1,1:FromNr) . For Set FANr=$O(^HULP($J,"P",Sessie,FANr)) Quit:FANr="" Do . . Set FaktProf=^HULP($J,"P",Sessie,FANr) . . Set Groepering=$$Groepering(FaktProf,FANr) . . Set ^HULP($J,"SORT",Sessie,$S(Groepering?.N:0,1:Groepering),FANr)=FaktProf . Set Groepering="" . For Set Groepering=$O(^HULP($J,"SORT",Sessie,Groepering)) Quit:Groepering="" Do . . Set FANr="" . . For Set FANr=$O(^HULP($J,"SORT",Sessie,Groepering,FANr)) Quit:FANr="" Do . . . Set FaktProf=^HULP($J,"SORT",Sessie,Groepering,FANr) . . . Set R=@("^KFA"_$S(FaktProf="P":"P",1:"")_"(""F"",FANr,0,0)"),KLNr=$P(R,D) . . . Set lbFacturen=$LB($LB(FANr,$S(FaktProf="F":"",1:FaktProf),$$Exemplaren(KLNr,Sessie))) . . . Do PrintFact(lbFacturen,Sessie,FopPrint) Do:SortKey="L" ; Gerangschikt per land per factuur (de specialekes komen achteraan gegroepeerd. Factuurclausle, rembours, wissel...) . Set FANr=$S(FromNr:FromNr-1,1:FromNr) . For Set FANr=$O(^HULP($J,"P",Sessie,FANr)) Quit:FANr="" Do . . Set FaktProf=^HULP($J,"P",Sessie,FANr) . . Set Groepering=$$Groepering(FaktProf,FANr) . . Set ^HULP($J,"SORT",Sessie,Groepering,FANr)=FaktProf . Set Groepering="" . For Set Groepering=$O(^HULP($J,"SORT",Sessie,Groepering)) Quit:Groepering="" Do . . Set FANr="" . . For Set FANr=$O(^HULP($J,"SORT",Sessie,Groepering,FANr)) Quit:FANr="" Do . . . Set FaktProf=^HULP($J,"SORT",Sessie,Groepering,FANr) . . . Set R=@("^KFA"_$S(FaktProf="P":"P",1:"")_"(""F"",FANr,0,0)"),KLNr=$P(R,D) . . . Set lbFacturen=$LB($LB(FANr,$S(FaktProf="F":"",1:FaktProf),$$Exemplaren(KLNr,Sessie))) . . . Do PrintFact(lbFacturen,Sessie,FopPrint) Do:SortKey="K" ; Gerangschikt per land per klant (de specialekes komen achteraan gegroepeerd. Factuurclausle, rembours, wissel...) . Set FANr=$S(FromNr:FromNr-1,1:FromNr) . For Set FANr=$O(^HULP($J,"P",Sessie,FANr)) Quit:FANr="" Do . . Set FaktProf=^HULP($J,"P",Sessie,FANr),R=@("^KFA"_$S(FaktProf="P":"P",1:"")_"(""F"",FANr,0,0)"),KLNr=$P(R,D) . . Set Groepering=$$Groepering(FaktProf,FANr) . . Set KlKey=^KK1(KLNr),^HULP($J,"SORT",Sessie,Groepering,KlKey,FANr)=FaktProf . Set Groepering="" . For Set Groepering=$O(^HULP($J,"SORT",Sessie,Groepering)) Quit:Groepering="" Do . . Set KlKey="" . . For Set KlKey=$O(^HULP($J,"SORT",Sessie,Groepering,KlKey)) Quit:KlKey="" Do . . . Set KLNr=$P(KlKey," ",2),Exemplaren=$$Exemplaren(KLNr,Sessie),(lbFacturen,FANr)="" . . . For Set FANr=$O(^HULP($J,"SORT",Sessie,Groepering,KlKey,FANr)) Quit:FANr="" Do . . . . Set FaktProf=^HULP($J,"SORT",Sessie,Groepering,KlKey,FANr) . . . . Set $LI(lbFacturen,$LL(lbFacturen)+1)=$LB(FANr,$S(FaktProf="F":"",1:FaktProf),Exemplaren) . . . Do PrintFact(lbFacturen,Sessie,FopPrint) Kill ^HULP($J,"SORT") Quit ; PROFORMA(FromNr,Sessie,SortKey,FopPrint) Set SortKey=$G(SortKey,"K"),FopPrint=$G(FopPrint,"KyoceraFS4000") Do FACTUUR(FromNr,Sessie,SortKey,FopPrint) Quit ; OneFACT(FANr,Sessie,FopPrint) New KLNr,lbFacturen Set Sessie=$G(Sessie,"K"),FopPrint=$G(FopPrint,"KyoceraFS4000") Set KLNr=$P(^KFA("F",FANr,0,0),D) Set lbFacturen=$LB($LB(FANr,"",$$Exemplaren(KLNr,Sessie))) Do PrintFact(lbFacturen,Sessie,FopPrint) Quit ; OnePROF(FANr,Sessie,FopPrint) New KLNr,lbFacturen Set Sessie=$G(Sessie,"K"),FopPrint=$G(FopPrint,"KyoceraFS4000") Set KLNr=$P(^KFAP("F",FANr,0,0),D) Set lbFacturen=$LB($LB(FANr,"P",$$Exemplaren(KLNr,Sessie))) Do PrintFact(lbFacturen,Sessie,FopPrint) Quit ; ; Afdruk en printlog facturen PrintFact(lbFacturen,Sessie,FopPrint) New I,R,FANr,FaktProf,Verwerkt,FilePath Do:$LL(lbFacturen) . Set FopPrint=$G(FopPrint,"KyoceraFS4000") . For I=1:1:$LL(lbFacturen) Do . . Set R=$LI(lbFacturen,I),FANr=$LI(R),FaktProf=$LI(R,2) . . Set FilePath=##Class(BL.Flow.Factuur.Doc).ArchiveFullPathUser(FANr,FaktProf) . . Quit:FilePath="" . . Set Verwerkt=##class(BL.Flow.Factuur.Doc).PrintPDF(FilePath,FopPrint,) . . Quit:'Verwerkt . . Do PRINT^LOG($S(FaktProf="P":"PROF",1:"FAKT"),FANr,"P",,$S(Sessie="C":"Copie",1:"")) Quit ; Exemplaren(KLNr,Sessie) New I,R,Exemplaren,ExtraCopies Set Sessie=$G(Sessie,"K"),Exemplaren=Sessie Do:Sessie="K" . Set Exemplaren="O",R=^KKL(^KK1(KLNr),1),ExtraCopies=+$P(R,D,2) . If ExtraCopies For I=1:1:ExtraCopies Set Exemplaren=Exemplaren_"\C" . Set:##Class(BL.Derde.Klant.Relaties).ExtraFactuur(KLNr) Exemplaren=Exemplaren_"\A" Quit Exemplaren ; ; Nazicht of een proforma moet afgedrukt worden CheckPrintProforma(PROFNr) New Rec,PrintProforma,BONNr,BLNr,PRNr Set PrintProforma=1,BONNr="U" For Set BONNr=$O(^KFAP("F",PROFNr,BONNr)) Quit:$E(BONNr)'="U" Do Quit:'PrintProforma . Set Rec=^KFAP("F",PROFNr,BONNr,1),PrintProforma=$P(Rec,D,29)'["F" . Quit:'PrintProforma . Set BLNr=100 . For Set BLNr=$O(^KFAP("F",PROFNr,BONNr,BLNr)) Quit:'BLNr Do Quit:'PrintProforma . . Set Rec=^KFAP("F",PROFNr,BONNr,BLNr),PRNr=$P(Rec,D,2) Set:PRNr PrintProforma=$P(Rec,D,14)'["F" Quit PrintProforma ; ; Bepalen van de regio "INTERN" voor afdruk ; Indien result = leeg dan via landcode anders INTERN Groepering(FaktProf,FANr,CopieCode) New D,R,Groepering,KLNr,KlKey,FactClaus,BTWNr,BetVW,Rembours,VooruitBet,LidVan Set D="\" Set R=@("^KFA"_$S(FaktProf="P":"P",1:"")_"(""F"",FANr,0,0)"),KLNr=$P(R,D) Set KlKey=^KK1(KLNr),R=^KKL(KlKey,0),Groepering="" ;default leeg If CopieCode="A" Do Quit Groepering ; Kopieaan bv CEMIK . Set LidVan=$LI($$GetLidVan^KF21B(KLNr)) . Quit:'LidVan . If '##Class(BL.Derde.Klant.Relaties).ExtraFactuur(KLNr) Set Groepering=LidVan . Else Set Groepering="+"_$P(^KKL(^KK1(LidVan),0),D,2) Set FactClaus=$P(R,D,12),BTWNr=$P(R,D,16),BetVW=$P(R,D,18) If FactClaus="M" Set Groepering="MANUEEL VERZENDEN" ; Manuele verzending Else If $$DocumentVerzendenNaar(KLNr) Set Groepering="MANUEEL VERZENDEN" ; Verzendadres dus manuele verzending Else If "F"[FaktProf Do . If FactClaus Set Groepering="FACTUURCLAUSULE" Quit . If BTWNr["00000" Set Groepering="BTWNR" Quit . If "\\G\GEEN\IN AANVRAAG\"[(D_$$UPCASE^vhRtn1(BTWNr)_D) Set Groepering="BTWNR" Quit . If $E($Reverse(BetVW),1,2)="W-" Set Groepering="WISSEL" Quit ; Betaling via wissel . Set R=^KKL(KlKey,3),Rembours=$P(R,D),VooruitBet=$P(R,D,2) . If Rembours Set Groepering="REMBOURS" Quit . If VooruitBet Set Groepering="VOORUITBETALING" Quit Quit Groepering ; ; Moet het document naar een adrer adres verzonden worden ; Inien Detail, geef dan de adresgegevens DocumentVerzendenNaar(KLNr,Detail,Prefix) New R,DocumentVerzendenNaar,KlKey,Adres,Naam,Toenaam,Aanspreking,Straat,Postcode,Woonplaats,Land,Taal Set Prefix=$G(Prefix) Set KlKey=^KK1(KLNr),Adres="L",DocumentVerzendenNaar="" For Set Adres=$O(^KKL(KlKey,Adres)) Quit:$E(Adres)'="L" Do Quit:$L(DocumentVerzendenNaar) . Set R=^KKL(KlKey,Adres) . Quit:$P(R,D,12)'="F" . If '$G(Detail) Set DocumentVerzendenNaar=1 Quit ; Zonder detail . If $P(R,D,19) Do . . New KLNr,KlKey . . Set KLNr=$P(R,D,19),KlKey=^KK1(KLNr) . . Set R=^KKL(KlKey,0) . Set Naam=$P(R,D,2),Toenaam=$P(R,D,3),Aanspreking=$P(R,D,4),Straat=$P(R,D,5),Postcode=$P(R,D,6),Woonplaats=$P(R,D,7),Land=$P(R,D,8),Taal=$P(R,D,9) . Set:Taal="" Taal="N" . Set:($E(Postcode,1,2)="NL")&&(Land=1019) Land=1147 ; Nederlandse postcode maar land is belgie -> land aanpassen naar nederland . Set DocumentVerzendenNaar=Aanspreking . Set:$L(DocumentVerzendenNaar) DocumentVerzendenNaar=DocumentVerzendenNaar_" " . Set DocumentVerzendenNaar=Prefix_DocumentVerzendenNaar_Naam . Set:$L(Toenaam) DocumentVerzendenNaar=DocumentVerzendenNaar_", "_Toenaam . Set:$L(Straat) DocumentVerzendenNaar=DocumentVerzendenNaar_", "_Straat . Set:$L(Postcode) DocumentVerzendenNaar=DocumentVerzendenNaar_", "_Postcode . Set:$L(Woonplaats) DocumentVerzendenNaar=DocumentVerzendenNaar_", "_Woonplaats . Set:$L(Land) DocumentVerzendenNaar=DocumentVerzendenNaar_", "_$$LAND^vhRtn1(Land,2,Taal) Quit DocumentVerzendenNaar ;