DCABXVD ;AFDRUKKEN VERVOERDOKUMENT GLS/VRD [ 12/15/2003 10:26 AM ] ; ; Het afdrukken van een vervoerdokument kan met volgende oproep --> Do PRINT^DCABXVD(VervRef) ; 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),"BLOCK^"_$ZN,"CACHE^"_$ZN,"PASTE^"_$ZN) Quit ; BLOCK(R) Do BLOCK^DCALG(R) Quit ; CACHE(R) Set LCount=LCount+1 Set ^HULP(%J,"ABX",PCount,LCount)=$J("",$G(Marge))_R Quit ; PASTE(Page,Line,Text,BPos,EPos,Attr) New T,I,X Set Marge=$G(Marge),T=Text Quit:T="" If Attr'["T" Set Attr=Attr_"T" If Attr["N" Set Attr=$TR(Attr,"NT","") If $L(Attr) For I=1:1:$L(Attr) Do .If $E(Attr,I)="T" Set T=$TR(T,P("T","F"),P("T","T")) Quit .Set T=P($E(Attr,I),1)_T .If $E(Attr,I)'="Q"!'$G(Prefs("NLQ")) Set T=T_P($E(Attr,I),0) If BPos,EPos Set $E(^HULP(%J,"ABX",Page,Line),BPos+Marge,EPos+Marge)=T Quit If BPos Set $E(^HULP(%J,"ABX",Page,Line),BPos+Marge,BPos+Marge+$L(Text)-1)=T Quit Set $E(^HULP(%J,"ABX",Page,Line),EPos+Marge-$L(Text)+1,EPos+Marge)=T Quit ; PASTER(Value,From,To) Do PASTER^DCALG(Value,$G(From),$G(To)) Quit ; BODY New B,R,T,BCount,GroepNr,KLNr,KlantInd,Naam,ToeNaam,Aanspr,Adres,PostNr,Woonpl,Land,Munt,GroepType,KlTaal New Gewicht,Rembours,BarCode,BarCodes,SepLine,BonNr,BonNrs New lbKenAnk,KenAnk,ObjKenAnk Set GroepNr="" For Set GroepNr=$O(^TRANSP("D",VervRef,"D",GroepNr)) Quit:GroepNr="" Do .Set R=^TRANSP("D",VervRef,"D",GroepNr),KLNr=$P(R,D),Rembours=$P(R,D,2),Gewicht=$P(R,D,3) Set:'Gewicht Gewicht=.1 .Set GroepType=$P(R,D,6) Set:GroepType="" GroepType="K" .Set BCount=0 .Kill B .Set AantalVerpakkingen = $$GeefAantalVerpakkingen(VervRef,GroepNr) .Set TotGew = (TotGew + Gewicht) .Set TotCol = (TotCol + AantalVerpakkingen) .Set R=$$LEVADR^TRANSPL(VervRef,GroepNr) .Set Naam=$P(R,D,2),ToeNaam=$P(R,D,3),Aanspr=$P(R,D,4),Adres=$P(R,D,5) .Set PostNr=$P(R,D,6),Woonpl=$P(R,D,7),Land=$$LAND^vhRtn1($P(R,D,8)),KlTaal=$P(R,D,9) Set:KlTaal="" KlTaal="N" .If GroepType="K" Do ..Set Munt=$P(^KKL(^KK1(KLNr),0),D,11) ..Set:Munt="MTL" Munt=$P(^KUL(KLNr,"F",GroepNr,1),D,18) .Else If GroepType="L" Set Munt=$P(^KLE(^KL1(KLNr),0),D,11) .Else Set Munt="EUR" .Set BarCodes = $$GeefBarcodes(VervRef,GroepNr) .Set (BonNr,BonNrs)="" .For Set BonNr=$O(^TRANSP("D",VervRef,"D",GroepNr,"B",BonNr)) Quit:BonNr="" Set:BonNr'=GroepNr BonNrs=BonNrs_D_BonNr .Set $E(BonNrs)="" .Do BLOCK($G(SepLine,L("B","S"))_"`1``C") .Set SepLine=L("B","S") .Set T=$$FIRMANM^DCALG(GroepType,$S(GroepType="D":"",1:KLNr),$S(GroepType="D":Naam,1:""),$S(GroepType="D":Aanspr,1:"")) .If KLNr=8545,$L(T),$L(ToeNaam) Set R=T,T=ToeNaam,ToeNaam=R .Set R=L("B","B") .Do PASTER($$FN(GroepNr,0),"",10),PASTER($E(T,1,25),13) .Do PASTER($$FN(Gewicht,1),"",55) .Do:Rembours PASTER($$FN(Rembours,$$MUNT^vhRtn1(Munt,4)),"",68),PASTER($$MUNT^vhRtn1(Munt,1),69) .Do BARCODES .Do BLOCK(R_"`1``C") .If $L(ToeNaam) Do ..Set R=L("B","B") ..Do BONNRS,PASTER($E(ToeNaam,1,26),13),BARCODES,BLOCK(R_"`1``C") .Set R=L("B","B") .Set LijnInfo = ##class(TECH.StringUtils).AddTrailingSpace(Adres,30)_$$GeefVerpakkingInfo^TRANSPC(VervRef,GroepNr) .Do BONNRS,PASTER(LijnInfo,13) .Do BARCODES,BLOCK(R_"`1``C") .Set R=L("B","B") .Do BONNRS,PASTER($E(PostNr_$S($L(PostNr):" ",1:"")_Woonpl,1,25),13),BARCODES,BLOCK(R_"`1``C") .If Land'="BE" Do ..Set R=L("B","B") ..Do BONNRS,PASTER($$LAND^vhRtn1(Land,2,KlTaal),13),BARCODES,BLOCK(R_"`1``C") .For I=1:1 Quit:BonNrs=""&(BarCodes="") Set R=L("B","B") Do BONNRS:$L(BonNrs),BARCODES:$L(BarCodes),BLOCK(R_"`1``C") .Set lbKenAnk=$S(GroepType="K":##class(BL.Flow.Cons.TransportData).GetKennisAnker(KLNr),1:""),HeeftKenAnk=$LL(lbKenAnk) .Do:HeeftKenAnk ..Set SepLine=L("B","K","L") ..Set BCount=$O(B(""),-1) ..Do BLOCK(L("B","K","F")_"`1``C") ..For Kill KenAnk Set KenAnk=$LI(lbKenAnk) Quit:KenAnk="" Do Quit:'$LL(lbKenAnk) ...Set lbKenAnk=$LI(lbKenAnk,2,99) ...Set ObjKenAnk=##class(Derde.Kennis.Kennis).%OpenId(KenAnk) ...Quit:'$IsObject(ObjKenAnk) ...Set KenAnk(1)=$TR(ObjKenAnk.Msg,$C(13,10)," ") ...Quit:KenAnk(1)="" ...Do GETWRAP^vhBIGEDIT("KenAnk",50,.KenAnk,"G","~","") ...For I=1:1:KenAnk Do ....Set R=L("B","K","B") ....Do PASTER($P(KenAnk(I),"`",5),41) ....Do BLOCK(R_"`1``C") .Do PASTEB("") Quit GeefBarcodes(RitID, LeveringID) New TrackAndTraceIDs,DistributeurDataIDIt,DistributeurDataID #dim Levering As DOM.TRANSP.Levering = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefLevering(RitID,LeveringID) Set TrackAndTraceIDs = ##class(%ListOfDataTypes).%New() Set DistributeurDataIDIt = ##class(TECH.ListIterator).%New(Levering.GeefDistributeurDataIDs()) While DistributeurDataIDIt.HasNext(){ #dim TransportAPI as DOM.TRANSP.TransportAPI = ##class(DOM.DomeinContext).Instance().GeefTransportAPI() #dim DistributeurData As DOM.TRANSP.data.DistributeurData = TransportAPI.GeefDistributeurData(DistributeurDataIDIt.Next()) if DistributeurData.%ClassName(1) = ##class(APPS.TRANSP.GLS.GLSv1.data.VerzendData).%ClassName(1){ If $L(DistributeurData.TrackAndTraceID){ Do TrackAndTraceIDs.Insert(DistributeurData.TrackAndTraceID) }Else{ Do TrackAndTraceIDs.Insert(DistributeurData.UnitID) } } else { // Transsmart Do TrackAndTraceIDs.Insert(DistributeurData.Reference) } } Quit ##class(TECH.ListUtils).ListToPieces(TrackAndTraceIDs,"\") GeefAantalVerpakkingen(RitID, LeveringID) New Levering,Aantal #dim Levering As DOM.TRANSP.Levering = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefLevering(RitID,LeveringID) #dim Aantal As %String = (Levering.GeefAantalEuroPalletten() + Levering.GeefAantalWegwerpPalletten() + Levering.GeefAantalColli() + Levering.GeefAantalHalveEuroPalletten() + Levering.GeefAantalLanggoed() + Levering.GeefAantalBuitenmaatsPalletten()) Quit Aantal ; BONNRS Do PASTER($$FN($P(BonNrs,D),0),"",10) Set BonNrs=$P(BonNrs,D,2,99) Quit ; BARCODES Do PASTER($P(BarCodes,D),75) Set BarCodes=$P(BarCodes,D,2,99) Quit ; ; Adruk titel TITEL New R,T Set PCount=PCount+1,LCount=0 For I=1:1:6+(LogoPap*4) Do CACHE("") Set T=" - "_$$EXTNUM^vhLib.DataTypes(VervRef,0,".",0) Do PASTE(PCount,1+(LogoPap*4),T,21,"","B") Set T=$$TXT("AfhABX") Do PASTE(PCount,1+(LogoPap*4),T,2,"","BU") Do PASTE(PCount,2+(LogoPap*4),VH(1),45,"","B") Do PASTE(PCount,3+(LogoPap*4),VH(2),45,"","B") Do PASTE(PCount,4+(LogoPap*4),VH(3),45,"","B") Set T=$$TXT("Date")_":"_$$EXTDATE^vhLib.DataTypes(Kreatie) Do PASTE(PCount,4+(LogoPap*4),T,2,"","B") Do PASTE(PCount,5+(LogoPap*4),VH(4),45,"","B") Set T=$$TXT("Afzend")_":"_AfzendNr Do PASTE(PCount,5+(LogoPap*4),T,2,"","B") Quit ; HEADER New T,R Do CACHE("") Do PASTE(PCount,LCount,L("B","F"),1,"","C") Do CACHE("") Set R=L("B","B"),T=$$TXT("BullNr") Do PASTER(T,3) Set T=$$TXT("Bestem") Do PASTER(T,13) Set T=$$TXT("Verpakking") Do PASTER(T,"",45) Set T=$$TXT("Gew") Do PASTER(T,"",54) Set T=$$TXT("Remb") Do PASTER(T,"",71) Set T=$$TXT("BarCod") Do PASTER(T,75) Do PASTE(PCount,LCount,R,1,"","C") Quit ; FOOTER(Type) New T,R Set Type=$G(Type) Do CACHE("") Set R=L("F","F") Set:$get(HeeftKenAnk) R=$$LINE^vhRtn1("S",90,"1;11;39;47$$C^vhRtn1(5);56$$C^vhRtn1(5);90") Do PASTE(PCount,LCount,R,1,"","C") Do CACHE("") Set R=L("F","B"),T=$$TXT("Page") Do PASTER(T,3) If Type="L" Do .Set T=$$TXT("TotCol") .Do PASTER(T,13) .Do PASTER($$FN(TotCol,0),"",46) .Do PASTER($$FN(TotGew,0),"",55) .Set T=$$TXT("Date")_" : "_$$EXTDATE^vhLib.DataTypes(Kreatie) .Do PASTER(T,58) Do PASTE(PCount,LCount,R,1,"","C") Do CACHE("") Set R=L("F","B") Do PASTER("PCount",3) If Type="L" Do .Set T=$$TXT("HandT")_":" .Do PASTER(T,58) Do PASTE(PCount,LCount,R,1,"","C") Do:Type="L" .Do CACHE("") .Do PASTE(PCount,LCount,L("F","B"),1,"","C") .DO VoegToeColli .DO VoegToeEuroPalletten .DO VoegToeWWPalletten .Do VoegToeMiniPalletten .Do VoegToeBuitenmaatsePalletten .Do VoegToeLanggoed .Quit:'LangGoed .Do CACHE("") .Set R=L("F","B"),T=$$TXT("LangG") .Do PASTER(T,13) .Do PASTER(LangGoed,"",45) .Do PASTE(PCount,LCount,R,1,"","C") .Quit:'LangGoed Do CACHE("") Do PASTE(PCount,LCount,L("F","L"),1,"","C") Quit VoegToeColli New Aantal,Rit #dim Rit As DOM.TRANSP.Rit = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefRit(VervRef) #dim Aantal As %String = Rit.GeefAantalColli() Do VoegToeItem("Colli",Aantal) Quit VoegToeLanggoed New Aantal,Rit #dim Rit As DOM.TRANSP.Rit = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefRit(VervRef) #dim Aantal As %String = Rit.GeefAantalLanggoed() Do VoegToeItem("Langgoed",Aantal) Quit VoegToeEuroPalletten New Aantal,Rit #dim Rit As DOM.TRANSP.Rit = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefRit(VervRef) #dim Aantal As %String = Rit.GeefAantalEuroPalletten() Set:(Rit.GeefAantalExtraPalleten()>0) Aantal = Aantal_"+"_Rit.GeefAantalExtraPalleten() Do VoegToeItem("Palet",Aantal) Quit VoegToeWWPalletten New Aantal,Rit #dim Rit As DOM.TRANSP.Rit = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefRit(VervRef) #dim Aantal As %String = Rit.GeefAantalWegwerpPalletten() Do VoegToeItem("WWPalet",Aantal) Quit VoegToeBuitenmaatsePalletten New Aantal,Rit #dim Rit As DOM.TRANSP.Rit = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefRit(VervRef) #dim Aantal As %Integer = Rit.GeefAantalBuitenmaatsePalletten() Do VoegToeItem("BuitenmaatsPallet",Aantal) Quit VoegToeMiniPalletten New Aantal,Rit #dim Rit As DOM.TRANSP.Rit = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefRit(VervRef) #dim Aantal As %Integer = Rit.GeefAantalHalveEuroPalletten() Do VoegToeItem("MiniPallet",Aantal) Quit VoegToeItem(Label,Aantal) Do CACHE("") Set R=L("F","B"),T=$$TXT(Label) Do PASTER(T,13) Set:(Aantal=0) Aantal = "" Do PASTER(Aantal,"",45) Do PASTE(PCount,LCount,R,1,"","C") Quit ; PRINT(VervRef) New R,T,MaxPages,Copies,LogoPap,LangGoed New %J,L,PCount,AfzendNr,Taal,Marge,MaxLines,PageLen,TotCol,TotGew,TranspNr,Kreatie,HeeftKenAnk Do SELPRINT^DCPRINT(##class(TECH.Config.ConfigMgr).Instance().GetString("DCABXVD_PrinterNummer")) If $D(Print) Do .Set LogoPap=Print("PAPIER")="L" .Set:'LogoPap LogoPap=$P(Print("PRINTER"),";",2)="BR" .Xecute F70 .Write @F80 .Do INIT,TITEL,HEADER,BODY,FOOTER("L") .Set MaxPages=PCount,Copies=1+($P(Print("PRINTER"),";",2)="CA")+($P(Print("PRINTER"),";",2)="BL") .Set:##class(TECH.Config.ConfigMgr).Instance().GetBoolean("DCABXVD_PrintSlechts1Kopie") Copies=1 .For Copies=1:1:Copies Do ..For PCount=1:1 Quit:'$D(^HULP(%J,"ABX",PCount)) Do ...For LCount=1:1 Quit:'$D(^HULP(%J,"ABX",PCount,LCount)) Do ....Set R=^HULP(%J,"ABX",PCount,LCount) ....If R["PCount" Set T=PCount_"/"_MaxPages,R=$P(R,"PCount")_T_$J("",6-$L(T))_$P(R,"PCount",2) ....Write !,R ...Write # .Do CLEAN Quit ; ; Initialisatie INIT Set %J=$$%J^vhRtn1(),(TotCol,TotGew,PCount)=0,Taal="N",Marge=5 Kill ^HULP(%J) Do VH^DCINIT For I=1:1 Quit:'$D(VH(I)) Do . Quit:$E(VH(I),1,4)'="Tel." . Set VH(I)=$P(VH(I),":")_": "_$TR($P(VH(I),":",2)," ","") Do LINIT^DCINIT("x"),PINIT^DCINIT,FINIT^DCINIT("x") Set MaxLines=MaxLines-4 Set R=^TRANSP("D",VervRef),TranspNr=$P(R,D),Kreatie=$P(R,D,10) Set R=^TRANSP("T",TranspNr),AfzendNr=$P(R,D,2) Set R=$$CalcVerpak^TRANSP(VervRef),LangGoed=$P(R,D,3) Write P("D",1) Quit ; CLEAN Kill ^HULP(%J) Do CLOSE^vhPRINTER 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) ; TAfhABX ;AFHALINGSLIJST VRD\AFHALINGSLIJST VRD\AFHALINGSLIJST VRD\AFHALINGSLIJST VRD TDate ;Datum\Datum\Datum\Datum TAfzend ;Afzender\Afzender\Afzender\Afzender TBullNr ;Bull.nr\Bull.nr\Bull.nr\Bull.nr TBestem ;Naam/adres bestemmeling\Naam/adres bestemmeling\Naam/adres bestemmeling\Naam/adres bestemmeling TColli ;Colli\Colli\Colli\Colli TGew ;gew.\gew.\gew.\gew. TRemb ;Rembours\Rembours\Rembours\Rembours TBarCod ;Referentie\Referentie\Referentie\Referentie TOpmerk ;opmerk.\opmerk.\opmerk.\opmerk. TPage ;Blz\Blz\Blz\Blz TTotCol ;Totaal verpakkingen\Totaal verpakkingen\Totaal verpakkingen\Totaal verpakkingen TPalet ;Palletten\Palletten\Palletten\Palletten TWWPalet ;WWPalletten\WWPalletten\WWPalletten\WWPalletten TLangG ;Langgoed\Langgoed\Langgoed\Langgoed THandT ;Handtekening chauffeur\Handtekening chauffeur\Handtekening chauffeur\Handtekening chauffeur TBuitenmaatsPallet ;Buitenmaatse palletten\Buitenmaatse palletten\Buitenmaatse palletten\Buitenmaatse palletten TMiniPallet ;Mini palletten\Mini palletten\Mini palletten\Mini palletten TLanggoed ;Langgoed\Langgoed\Langgoed\Langgoed TVerpakking ;Verpak.\Verpak.\Verpak.\Verpak. ;