#include BL.Sys.FOP.Common #include BL.Derde.KlantSpecifiek ULTOER ;Toerlijst ; [ 12/22/2003 4:56 PM ] ; Do INIT,KRITERIA() Do COMMAND Kill ^HULP(%J) Lock Quit ; OnError Set $ZT = "" New Exception,KLNr,ULNr #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch("APPS.TRANSP.GLS.Exceptions.CommunicatieException","APPS.TRANSP.Transsmart.Exceptions.CommunicatieException","TECH.Exceptions.InvalidInputException") Do Boodschap^vhTXTPOP(Exception.GeefOmschrijving()) #dim KLNr As %String = $Piece(^HULP(%J,"D",ULTOER(6)),"\",3) #dim ULNr As %String = $Piece(^HULP(%J,"D",ULTOER(6)),"\",1) Set ^HULP(%J,"D",ULTOER(6))=$$FETCHL(KLNr,ULNr) If ULTOER(6)-DatVan Set Max=$$FETCH(Max,Datum) Quit:Max-OldMax>Len Set:Datum=""!(Datum>-DatVan) Datum=-1 Quit Max ; FETCH(Max,Date) GoTo FETCH+1^ULTOER2 ; Naar de nieuwe FETCH i.v.m. het opnemen van de doorgestuurde orders CW 22.04.10 New VerzWz,Beperk,Sort,LVerzWz,ULNr,KLNr,R,Type,SortKey,IsTerugN,VerzType,VervRef New KlantInd,KlantNm,PostKode,Gemeente,Land,FakSoort Kill ^HULP(%J,"T") Set LVerzWz=$P(Kriteria,D,3),VerzType=$P(Kriteria,D,7) Set VerzWz=LVerzWz_" " If $L(VerzWz) Set VerzWz=$O(^KU3(Date,VerzWz),-1) Set Beperk=$P(Kriteria,D,4),Sort=$P(Kriteria,D,5) For Set VerzWz=$O(^KU3(Date,VerzWz)) Quit:VerzWz=""!($E(VerzWz,1,$L(LVerzWz))'=LVerzWz) Do .Set ULNr="" .For Set ULNr=$O(^KU3(Date,VerzWz,ULNr)) Quit:ULNr="" Do ..Set R=^KU3(Date,VerzWz,ULNr),KLNr=$P(R,D),FakSoort=$P(R,D,2) ..Quit:'$D(^KUL(KLNr,FakSoort,ULNr)) ..If "\O\T\"[(D_Beperk_D),FakSoort'="F" Quit ..If $L(VerzType) Set IsTerugN=$$ISTERUGN^FLOWBON5(ULNr) Quit:$P("L\T",D,IsTerugN+1)'=VerzType ..If $D(BulkGroep) Quit:$L($P(^KUL(KLNr,FakSoort,ULNr,1),D,38)) Set BONNrs(ULNr)="" ..Set Type=$P("O\\F\F",D,$F("FXGM",FakSoort)-1) ..If "A"'[Beperk,"T"'[Beperk,Type'=Beperk Quit ..Set R=$$FETCHL(KLNr,ULNr,FakSoort),VervRef=$P($P(R,D,13),";") ..If Beperk["T",VervRef,##class(BL.Flow.Cons.TransportData).IsClosed(VervRef) Quit ; Beperking openstaande en niet op transport ..Set SortKey=ULNr If Sort'="B" Set SortKey=KlantInd_SortKey If Sort'="K" Set SortKey=PostKode_SortKey If Sort'="P" Set SortKey=VerzWz_KlantInd_SortKey ..Set ^HULP(%J,"T",SortKey)=R Set SortKey="",Count=Max For Set SortKey=$O(^HULP(%J,"T",SortKey)) Quit:SortKey="" Set Count=Count+1,^HULP(%J,"D",Count)=^HULP(%J,"T",SortKey) Kill ^HULP(%J,"T") Quit Count ; FETCHL(KLNr,ULNr,FakSoort) New R,KlantNm,Gemeente,Land,FakSoort,Type,Proforma,IsTerugN If '$D(FakSoort) Set FakSoort="F" Set:'$D(^KUL(KLNr,FakSoort,ULNr)) FakSoort="G" If FakSoort="G",'$D(^KUL(KLNr,FakSoort,ULNr)) Set FakSoort="M" Set R=^KUL(KLNr,FakSoort,ULNr,1) Set Type=$P(R,D,28),Proforma="" Set:$P(R,D,25)="M"!($P(R,D,25)="P") Proforma=$P(R,D,25)_$S($P(R,D,29)["P":"m",1:"z") Set KlantInd=^KK1(KLNr),R=$G(^KUL(KLNr,FakSoort,ULNr,3)) If '$$IsBonMetEigenLeveradres^TRANSP(R) Set R=^KKL(KlantInd,0) If $$IsBonMetEnkelVerwijzingNaarLeveradres^TRANSP(R) Set R = ^KKL(KlantInd,"L"_##class(TECH.StringUtils).AlignRight($P(R,D)," ",3)) Set KlantNm=$P(R,D,2),PostKode=$P(R,D,6),Gemeente=$P(R,D,7) Set Land=$$LAND^vhRtn1($P(R,D,8)),IsTerugN=$$ISTERUGN^FLOWBON5(ULNr) Set R=ULNr_D_Type_D_KLNr_D_KlantNm_D_$S(Land'="BE":Land_"-",1:"")_Gemeente Set R=R_D_^KUL(KLNr,FakSoort,ULNr,1),$P(R,D,50)=Proforma,$P(R,D,51)=IsTerugN Set R = $$VulAanGLSInfo^ULTOER2(ULNr) Set KlantInd=$$UPTRIMAN^vhRtn1(KlantNm)_" "_KLNr Quit R ; EDITEER(Field) New R,KLNr,FakSoort,ULNr,KlantInd,PostKode,Taal,BONNr,Refetch Quit:'$$INITMOD() Set BONNr=ULNr,Refetch=0 If $D(^HULP(%J,"D",ULTOER(6))) Set Refetch=BONNr'=$P(^HULP(%J,"D",ULTOER(6)),D) Set DL(2)=ULTOER(3),DL(3)=ULTOER(4)-9+($D(Field)*5) Do PL^PROC Kill DL(2),DL(3) If "Z"[$G(Field) Set KlantInd=^KK1(KLNr),Taal=$P(^KKL(KlantInd,0),D,9) If Taal="" Set Taal="N" If $D(Field) Do If 1 .If Field="D" Do FIELD^vhScherm("ULTOERED",3) .If Field="Z" Do FIELD^vhScherm("ULTOERED",4) Else Do EDIT^vhScherm("ULTOERED") Do REMOVE^vhLock("^KUL(KLNr,""F"",ULNr)") If %SC Do .If Refetch Do REFETCH Quit .Set ^HULP(%J,"D",ULTOER(6))=$$FETCHL(KLNr,ULNr) Do EL^PROC Set DL(2)=ULTOER(3),DL(3)=ULTOER(4)+9-($D(Field)*5) Do PL^PROC Kill DL(2),DL(3) Do:'Refetch!'%SC RESET^vhScherm Quit ORGVERP New ULNr If $$INITMOD() Do EXTERN^ORGVERP(ULNr) Quit KLBONOVZ New KLNr Set KLNr=$P($G(^HULP(%J,"D",@DL(1)@(6))),D,3) If KLNr Do STORE^vhTERMINA(),KLANT^KLBONOVZ(KLNr),REFRESH^vhTERMINA() Quit ZENDW(Nr) ;Aanpassen van volgnummer van numerieke verzendingswijzen If Nr="X" Set ZendMod='ZendMod Do ADD^vhScherm(1,1) Quit Quit:'ZendMod New Rec,KlantInd,Taal Quit:'$$INITMOD(0,1) Set (Rec)=^KUL(KLNr,"F",ULNr,1) Set (OldW,ZendW)=$P($P($P(Rec,D,7),"#")," ") I Input?1N Set ZendW=$E(ZendW,1,2) Set:Input ZendW=ZendW_Input I "<"[Input Do .Set ZendW=$O(^RES("KLANT","PI","VERZENDWIJZE","D",ZendW)) .If $E(ZendW,1,2)'=$E(OldW,1,2) Do ..Set ZendW=$E(OldW,1,2) ..Quit:$D(^RES("KLANT","PI","VERZENDWIJZE","D",ZendW))!(ZendW="TP") ..Set ZendW=$O(^RES("KLANT","PI","VERZENDWIJZE","D",ZendW)) .Set ZendW=$P(ZendW," ") If '$D(^RES("KLANT","PI","VERZENDWIJZE","D",ZendW)) Write *7 Quit Set KlantInd=^KK1(KLNr),Taal=$P(^KKL(KlantInd,0),D,9) If Taal="" Set Taal="N" S ZendW=ZendW_" #"_$G(^RES("KLANT","PI","VERZENDWIJZE","D",ZendW,Taal)) Do KILL^KFVZW("F",Rec,ULNr) Set $P(Rec,D,7)=ZendW Set ^KUL(KLNr,"F",ULNr,1)=Rec D SET^KFVZW("F",Rec,ULNr) Do REMOVE^vhLock("^KUL(KLNr,""F"",ULNr)") Set ^HULP(%J,"D",ULTOER(6))=$$FETCHL(KLNr,ULNr) If ULTOER(6)(ULTOER(6)+ULTOER(4))) If ULNr'=$P($G(^HULP(%J,"D",ULTOER(6))),D) Do .For I=1:1 Quit:'$D(^HULP(%J,"D",I)) If $P(^HULP(%J,"D",I),D)=ULNr Set ULTOER(6)=I Quit .Set:ULTOER(7)>ULTOER(6) ULTOER(7)=ULTOER(6) .Set:ULTOER(6)-ULTOER(7)'5 Set DL(2)=sRT Do WL^PROC Kill DL(2),DL(3) If sRB=24,'ULTOER(9) Set FP=2401 Write @F,"Geen uitleverigen gevonden voor bovenstaande selectiecriteria",@F2 Do RESET^vhScherm Quit ; INITMOD(NoMod,DontAsk) New %TC,R Set (ULNr,KLNr)="" Set:$D(^HULP(%J,"D",ULTOER(6))) R=^HULP(%J,"D",ULTOER(6)),X=$P(R,D) If '$G(DontAsk) Do .Set %R=24,%C=2,ln=6,prompt="Bonnummer : ",FP=2401 W @F,@F2 Do ^vhINP .Do ADD^vhScherm(24,24) Do REFRESH Quit:'X 0 Quit:'$D(^KU1(X)) 0 Set ULNr=X,KLNr=+^KU1(X,"F") Quit:$G(NoMod) 1 If $D(^KUL(KLNr,"G",ULNr)) Do TXT^vhINP("Deze bon is reeds gefaktureerd") Quit 0 If '$D(^KUL(KLNr,"F",ULNr)) Do TXT^vhINP("Deze bon is gestorneerd"),REFETCH Quit 0 Do ADD^vhLock("^KUL(KLNr,""F"",ULNr)") I '%TC Do Quit 0 .Do LDISP^vhLock("^KUL(KLNr,""F"",ULNr)","Order "_ULNr) .Set DL(2)=24 Do WL^PROC Kill DL(2) Quit 1 ; CHKTRANS(BONNr,DontAsk) New R,Ok,KLNr,VervRef,GroepNr,Transporteur,TranspDate Set Ok=1,KLNr=$P(^KU1(BONNr,"F"),D),R=^KUL(KLNr,"F",BONNr,1) Set VervRef=$P($P(R,D,8),";"),GroepNr=$P($P(R,D,8),";",2) Do:VervRef .Set R=$G(^TRANSP("D",VervRef)) .Quit:R="" .Set Transporteur=$$TRANSPORTEUR^TRANSP(VervRef,1),TranspDate=$$EXTDATE^vhLib.DataTypes($P(R,D,10)) .If '$P(R,D,11),'$P(R,D,12) Do ..Set Ok=$S($G(DontAsk):1,1:$$^vhTXTPOP("ULTOER","TRANSP","",BONNr,GroepNr,Transporteur,TranspDate)) ..Do:Ok DELGRP^TRANSP(VervRef,GroepNr) .Else Set Ok=$S($G(DontAsk):0,1:$$^vhTXTPOP("ULTOER","TRANSPCLO","",BONNr,Transporteur,TranspDate)) Quit Ok ; KF9 New R,KLNr,FakSoort,ULNr,KlantInd,PostKode,Old,New Quit:'$$ASK^vhWACHTW("MANAGER",,"",0) Quit:'$$INITMOD() Do Locals("ULNr") Set Old=^KUL(KLNr,"F",ULNr,1) Do DO^vhPROGRAM("ExternVerwerkUitlevering^Flow.VerwerkDoc") If '$D(^KUL(KLNr,"F",ULNr)) Do REFETCH Quit Set New=^KUL(KLNr,"F",ULNr,1) Set %SC=1 If $P(Old,D,2)=$P(New,D,2),$P(Old,D,7)=$P(New,D,7) Set %SC=0 If %SC Set ^HULP(%J,"D",ULTOER(6))=$$FETCHL(KLNr,ULNr) Do ADD^vhScherm(1,24) Quit ; DISPLAY Write *7 Quit New R,ULNr Quit:'$D(^HULP(%J,"D",ULTOER(6))) Set R=^HULP(%J,"D",ULTOER(6)) Set ULNr=$P(R,D) Do PRINT^BON(ULNr,"K") Quit ; ETIKET New R,KLNr,ULNr Do:$$INITMOD(1) EXTERN^FLOWBON4(ULNr) Quit ; TRANSPLIJST Set Vzw=$P(Kriteria,D,3) Set VerzType=$P(Kriteria,D,7) Set Beperk=$P(Kriteria,D,4) Set Sort=$P(Kriteria,D,5) Set DatVan=$P(Kriteria,D,2),DatTot=$P(Kriteria,D,6) Set lbCrit=$LB("TOER",DatVan,DatTot,Vzw) Quit PRINT(Type) New ULTOERL,I,R,X,DL,Clear For I=1,2,5,8 Set ULTOERL(I)=ULTOER(I) Set $P(ULTOERL(2),D,4,5)="$$KLTYP^KLANT($P(FL(3),D,3));C;R;3;;;;$S(X=""IND-A"":""IA"",X=""IND-B"":""IB"",1:"""")" Set X=$P(Kriteria,D,5),ULTOERL(11)="Toerlijst "_$$GeefToerNr()_" volgens "_$S(X="B":"bonnummer",X="K":"klantnaam",1:"postkode") Set X=$P(Kriteria,D,3) Set:$L(X) ULTOERL(11)=ULTOERL(11)_D_$S($L(X):X_" "_$G(^RES("KLANT","PI","VERZENDWIJZE","D",X,"N")),1:"") Set DL(1)="ULTOERL",Clear=20+(Type="P"*2),FP=Clear*100+1 Write @F,@F1 If '$L(Type) Set Type="PMT" Set R=$A("S") If Type="M" Do .If $P(^cLOG(boot,"DEV",$$IO^cQ5),D)'="MC" Set Type="PMT" .Read *R:1 Do ^OUTPUT(Type,"",$S($G(R):$C(R),1:"")) Do ADD^vhScherm(Clear,24) Quit ; GeefToerNr() Quit:$P(Kriteria,D,3)'?1"OD"1N "" Quit $I(^TRANSP("ULTOER")) Locals(List) New I For I=1:1:$L(List,",") Set $P(List,",",I)=""""_$P(List,",",I)_"""" Xecute "For Locals="_List_" Set Locals(Locals)=@Locals" Quit ; HELP Set Input="" Set FaktSoort=$P($G(^HULP(%J,"D",ULTOER(6))),D,2) Do POP^MN("ULTOERH") Set Input=R If Input'="HELP",Input'="?" Quit New FL,DL,HLP Set HLP(1)="ULTOER",HLP(3)=7,HLP(6)="" Do HLP^HELP Do ADD^vhScherm(1,24) Quit ; MAILVERZ(BONNr,NewVerzW) New R,KLNr,KlNaam,OldVerzW,TUserId,Txt,Ref,MailId,OrderCreatedBy Set R=^KU1(BONNr,"F"),KLNr=$P(R,D),R=^KUL(KLNr,"F",BONNr,1),OldVerzW=$P(R,D,7) Do:$P(NewVerzW," ")'=$P(OldVerzW," ") .Set R=^KKL(^KK1(KLNr),0),KlNaam=$P(R,D,2) .Set TUserId=$$INTVW^KLOPV(KLNr),OrderCreatedBy=$$OrderCreatedBy^FLOWBON(BONNr) .If OrderCreatedBy Set:TUserId TUserId=TUserId_";" Set TUserId=TUserId_$P(OrderCreatedBy,"#") .Set:'TUserId TUserId="ORDVW" .Set Txt(1)="Leveringsbon "_BONNr_" van "_KlNaam_"~is gewijzigd van " .Set Txt(1)=Txt(1)_$P(OldVerzW," ")_" naar "_$P(NewVerzW," ")_"." .Set Ref(1)="KL\"_KLNr_"\R\L",Ref(2)="BON\"_BONNr_"\R" .;Set MailId=$$SYSTEM^vhMAIL("KL",KLNr,"Wijziging verzendwijze",TUserId,.Txt,.Ref,1,1) Quit ; DisplayTerugnOfBeloofd(FL) New DisplayTerugnOfBeloofd Set DisplayTerugnOfBeloofd=$S($L($P(FL(3),D,31)):$P(FL(3),D,31),1:$P(FL(3),D,21)) If $L($P(FL(3),D,31)) Set DisplayTerugnOfBeloofd=$P(FL(3),D,31) Else Set DisplayTerugnOfBeloofd=$S($L($P(FL(3),D,21)):$S($P(FL(3),D,28)="N":"N",1:$S('$P(FL(3),D,41):"B",1:"")),1:"") Quit DisplayTerugnOfBeloofd ; ; Initialiseren van de verpakkingsgegevens INITVERPAK(%J,sFL) If $P(sFL(1),D,3)="DI1" Do INITABX^ULTOER(%J) If $P(sFL(1),D,3)="DI2" Do INITTTC^ULTOER(%J) If $P(sFL(1),D,3)="DI3" Do INITOD4en5^ULTOER(%J) If $P(sFL(1),D,3)="OD5" Do INITOD4en5^ULTOER(%J) Quit ; ; Ophalen van de verpakkingsgegevens ABX ABXData(%J) New I,R,ABXData,VervRef,Verpakking,DefaultTransporteur Set DefaultTransporteur = $P($G(^TRANSP("U",io,"T")),D,1) Set (VervRef,Verpakking)="" For Set VervRef=$O(^TRANSP("IO",VervRef),-1) Quit:VervRef="" Do Quit:(DefaultTransporteur=Transporteur) . Set Transporteur = $P($G(^TRANSP("D",VervRef)),D) Set:VervRef Verpakking=$$CalcVerpak^TRANSP(VervRef) Set ABXData=VervRef_D_Verpakking Quit ABXData ; ; Initialiseren van de verpakkingsgegevens ABX INITABX(%J) New R Set R=$$ABXData(%J),VervRef=$P(R,D) If $Length(VervRef){ Do HaalOpDataHeaderGLS(VervRef) Do REMATTR^vhScherm("ABX","H","H") Do RefreshHeader() } Quit ; Initialiseren van de verpakkingsgegevens DI2 (OD4), OD5 en DI3 INITOD4en5(%J) Do HaalOpDataHeaderOD4enOD5($$OD4en5Data(%J)) Do RefreshHeader() Quit ; Initialiseren van de verpakkingsgegevens TTC INITTTC(%J) Do HaalOpDataHeaderTTC($$OD4en5Data(%J)) Do RefreshHeader() Quit ; ; Ophalen van de verpakkingsgegevens DI2 (OD4), OD5 en DI3 OD4en5Data(%J) New I,R,OD4en5Data,VervRef,Verpakking Set (VervRef,Verpakking)="" For I=1:1 Set R=$G(^HULP(%J,"D",I)) Quit:R="" Do Quit:VervRef . Quit:($$ISTERUGN^FLOWBON5($P(R,"\"))) . Set VervRef=$P($P(R,D,13),";") . Quit:'VervRef . Set:##class(BL.Flow.Cons.TransportData).IsClosed(VervRef) VervRef="" . Set:VervRef BijkomendeVerpakking = $$CalcVerpak^TRANSP(VervRef) . Set:VervRef Verpakking = $$TelOpVerpakking(Verpakking,BijkomendeVerpakking) Set OD4en5Data=VervRef_D_Verpakking Quit OD4en5Data TelOpVerpakking(Verpakking,BijkomendeVerpakking) Set AantalSoortenVerpakking = $Length(Verpakking,"\") If (AantalSoortenVerpakking > 1){ For Index=1:1:AantalSoortenVerpakking { Set VerpakkingAantal = $Piece(Verpakking,"\",Index) Set BijkomendeVerpakkingAantal = $Piece(BijkomendeVerpakking,"\",Index) If ##class(TECH.Integer).IsValid(VerpakkingAantal) && ##class(TECH.Integer).IsValid(BijkomendeVerpakkingAantal) { Set VerpakkingAantal = VerpakkingAantal + BijkomendeVerpakkingAantal Set $Piece(Verpakking,"\",Index) = VerpakkingAantal }ElseIf ($Length(VerpakkingAantal,";") = 2){ Set VerpakkingAantalDeel1 = $Piece(VerpakkingAantal,";",1) + $Piece(BijkomendeVerpakkingAantal,";",1) Set VerpakkingAantalDeel2 = $Piece(VerpakkingAantal,";",2) + $Piece(BijkomendeVerpakkingAantal,";",2) Set VerpakkingAantal = VerpakkingAantalDeel1_";"_VerpakkingAantalDeel2 Set $Piece(Verpakking,"\",Index) = VerpakkingAantal } } }Else{ Set Verpakking = BijkomendeVerpakking } Quit Verpakking ; HaalOpDataHeaderOD4enOD5(R) Set VervRef=$P(R,D) Set Pallet=$P(R,D,2) Set Collo=$P(R,D,3) Set LangGoed=$P(R,D,4) Set KleinPallet=$P(R,D,5) Set BuitenmaatsPallet = 0 /// TO DO bij andere transporteurs ? Quit HaalOpDataHeaderTTC(R) Set VervRef=$P(R,D) Set Pallet=$P(R,D,2) Set Collo=$P(R,D,3) Set LangGoed=$P(R,D,4) Set KleinPallet=$P(R,D,5) Set BuitenmaatsPallet = $P(R,D,6) Quit HaalOpDataHeaderGLS(RitID) New Rit #dim Rit As DOM.TRANSP.Rit = ##class(DOM.DomeinContext).Instance().GeefTransportAPI().GeefRit(RitID) Set Pallet = Rit.GeefAantalEuroPalletten() + Rit.GeefAantalWegwerpPalletten() Set Collo = Rit.GeefAantalColli() Set LangGoed = Rit.GeefAantalLanggoed() Set KleinPallet = Rit.GeefAantalHalveEuroPalletten() Set BuitenmaatsPallet = Rit.GeefAantalBuitenmaatsePalletten() Quit RefreshHeader() Do REMATTR^vhScherm("PALLET","H","H") Do REMATTR^vhScherm("COLLO","H","H") Do REMATTR^vhScherm("LANGGOED","H","H") Do REMATTR^vhScherm("KLEINPALLE","H","H") Do REMATTR^vhScherm("BUITENMAAT","H","H") Quit ; CHKMENU(Menu,Aktie) New I,R,Ok,VerzWijze,BONNr Set Ok=0 If Menu="L" Do ; Link menu . If Aktie="AT" Do ; Alles op transport . . Set R=$G(^HULP(%J,"D",1)) . . Quit:R="" . . Set BONNr=$P(R,D) . . Set VerzWijze=$P($P(R,D,12)," "),Ok=$E(VerzWijze,1,3)'="DI1" ; Niet indien GLS . . Quit:'Ok . . For I=1:1 Set R=$G(^HULP(%J,"D",I)) Quit:R="" Do Quit:'Ok . . . Set Ok=$P($P(R,D,12)," ")=VerzWijze ; Zelfde verzendwijze? Quit Ok ; ; Hoeveel leveringsadressen van een klant uit deze toerlijst staan reeds op transport? LevAdresNrsOpTransport(KLNr) New I,R,LevAdresNrs,BONNr,LevAdresNr Set LevAdresNrs="" For I=1:1 Set R=$G(^HULP(%J,"D",I)) Quit:R="" Do:$P(R,D,3)=KLNr . Set BONNr=$P(R,D) . Quit:'$L(##class(Flow.Cons.TransportBon).GetTransport(BONNr)) ; Niet op transport . Set LevAdresNr=$$GetAdresNr^LEVADR(KLNr,$$GetLevAdr^KFLAD("L",BONNr)) . Set:";"_LevAdresNrs_";"'[(";"_LevAdresNr_";") LevAdresNrs=LevAdresNrs_";"_LevAdresNr Set $E(LevAdresNrs)="" Quit LevAdresNrs ; MenuItem(Menu,Aktie) New R,MenuItem,KLNr,BONNr,LevAdresNr If Menu="L" Do ; Link menu . If Aktie="KT" Do ; Klant op transport . . Set R=$G(^HULP(%J,"D",ULTOER(6))),BONNr=$P(R,D),KLNr=$P(R,D,3),LevAdresNr=$$GetAdresNr^LEVADR(KLNr,$$GetLevAdr^KFLAD("L",BONNr)) . . Set MenuItem=$P(^KKL(^KK1(KLNr),0),D,2)_" op transport" Set:$L(LevAdresNr) MenuItem=MenuItem_" ("_LevAdresNr_")" Quit $G(MenuItem) ; AllToTransport(KLNr,RefBONNr) New I,R,BONNr,BONNrs,Leveringen,TerugNames,Terug,TransportLink,TransportLevering,TransportTerug,AutoClose,PerKlant,Adres,LevAdresNr Set PerKlant=$G(KLNr) Set:PerKlant AutoClose=0 If $G(KLNr),$G(RefBONNr) Set LevAdresNr=$$GetAdresNr^LEVADR(KLNr,$$GetLevAdr^KFLAD("L",RefBONNr)) For I=1:1 S R=$G(^HULP(%J,"D",I)) Quit:R="" Do . If $G(KLNr) Quit:$P(R,D,3)'=KLNr . Set BONNr=$P(R,D) . If '$L(##class(Flow.Cons.TransportBon).GetTransport(BONNr)) Do ; Bon is nog niet opgenomen in een transport . . If $D(LevAdresNr),$$GetAdresNr^LEVADR(KLNr,$$GetLevAdr^KFLAD("L",BONNr))'=LevAdresNr Quit ; Er is een referentie levadr meegegeven en het komt niet overeen met deze bon . . Set BONNrs(BONNr)="" If $D(BONNrs) Do ; Er zijn bons op te nemen . Set:'$D(AutoClose) AutoClose=$$^vhTXTPOP("ULTOER","AUTOCLOSE") . Quit:AutoClose="A" . For I=1:1 S R=$G(^HULP(%J,"D",I)) Quit:R="" Do . . If $G(KLNr) Quit:$P(R,D,3)'=KLNr . . Set BONNr=$P(R,D) . . If $D(LevAdresNr),$$GetAdresNr^LEVADR(KLNr,$$GetLevAdr^KFLAD("L",BONNr))'=LevAdresNr Quit ; Er is een referentie levadr meegegeven en het komt niet overeen met deze bon . . Set TransportLink=##class(Flow.Cons.TransportBon).GetTransport(BONNr) . . If $$ISTERUGN^FLOWBON5(BONNr) Do . . . If $L(TransportLink) Set TransportTerug=$P(TransportLink,";") Quit ; Bon is opgenomen in een transport . . . Set TerugNames(BONNr)="" . . Else Do . . . If $L(TransportLink) Set TransportLevering=$P(TransportLink,";"),Adres=$P(TransportLink,";",2) Quit ; Bon is opgenomen in een transport . . . Set Leveringen(BONNr)="" . If $D(Leveringen) Do . . Kill BONNrs . . Merge BONNrs=Leveringen . . Do ##class(BL.Flow.Cons.TransportFlow).AddAllLeveringen(.BONNrs,$G(TransportLevering),$G(Adres),AutoClose,$S(PerKlant:"",1:1)) . If $D(TerugNames) Do . . If $D(Leveringen) Do Quit:'$$^vhTXTPOP("ULTOER","TRANSPTERUG","") . . . Set BONNr="",Terug="Terug" . . . For I=1:1 Set BONNr=$O(TerugNames(BONNr)) Quit:BONNr="" Do If I>10 Set Terug(I)="... | ..." Quit . . . . Set KLNr=$P(^KU1(BONNr,"F"),D) . . . . Set Terug(I)=BONNr_" | "_$P(^KKL(^KK1(KLNr),0),D,2) . . Kill BONNrs . . Merge BONNrs=TerugNames . . Do ##class(BL.Flow.Cons.TransportFlow).AddAllLeveringen(.BONNrs,$G(TransportTerug),"",AutoClose,$S(PerKlant:"",1:1)) Else Do WARN^vhTXTPOP("Er zijn geen bons op transport te plaatsen!","") Quit ; ; Kan een transport afgedrukt of gesloten worden? CheckTransport(CheckClosed) New I,R,BONNr,TransportLink,Transport,Transporteur,TransportOk Set TransportOk=0 For I=1:1 S R=$G(^HULP(%J,"D",I)) Quit:R="" Do Quit:TransportOk . Set BONNr=$P(R,D) . Quit:$P(R,D,2)="W" ; nog niet op bon, WMS . Set TransportLink=##class(Flow.Cons.TransportBon).GetTransport(BONNr),Transport=$P(TransportLink,";") . Quit:'Transport . If $G(CheckClosed),##class(BL.Flow.Cons.TransportData).IsClosed(Transport) Quit ; Afsluiten transport en het transport is gesloten . Set Transporteur=$$TRANSPORTEUR^TRANSP(Transport) . Set:'##class(DOM.TRANSP.impl.DataM.DataMTransportAPI).%New().IsGLS(Transporteur) TransportOk=1 ; Indien niet ABX Quit TransportOk ; ; Printen van een transportlijst PrintTransp New I,R,BONNr,TransportLink,Transport,Transporteur,Transporten,DefaultTransport,Obj For I=1:1 S R=$G(^HULP(%J,"D",I)) Quit:R="" Do . Set BONNr=$P(R,D),TransportLink=##class(Flow.Cons.TransportBon).GetTransport(BONNr) . Set Transport=$P(TransportLink,";") Set:Transport Transport(Transport)="" . If I=@DL(1)@(6) Set DefaultTransport=Transport Set Transport=$O(Transport("")) Do:$O(Transport(Transport)) . Set Transport="" . For Set Transport=$O(Transport(Transport)) Quit:Transport="" Do . . Set Transporteur=$$TRANSPORTEUR^TRANSP(Transport,1) . . Set Obj=##class(Flow.Cons.Transport).%OpenId(Transport),TransportType=Obj.TransportType . . Set I=I+1,Transporten(I)=Transport_D_Transport_" | "_Transporteur_" | "_$S(TransportType="T":"Terugname",1:"Levering") . Set R=$$WILD^vhPOPUP("C;C","-1O","",.Transporten,$G(DefaultTransport)) Set:zb'="CANC" Transport=$P(R,D) If Transport,'$$BevatGeenVerpakking^TRANSPC(Transport) Do EXTERN^DCPRINT("E",Transport,,,1) Quit ; ; Mailen van een transportlijst MailTransp New I,R,BONNr,TransportLink,Transport,Transporteur,Transporten,DefaultTransport,Obj S R=$G(^HULP(%J,"D",@DL(1)@(6))) Set BONNr=$P(R,D),TransportLink=##class(Flow.Cons.TransportBon).GetTransport(BONNr) Set Transport=$P(TransportLink,";") Do ##class(vhLib.Logger).%New("Transport").Debug("Mail Transportlijst start", "Transport='" _ Transport _ "'; gekozen vanop bonnr='" _ BONNr _ "'.") #dim DomeinContext As DOM.DomeinContext = ##class(DOM.DomeinContext).Instance() Set TransporteurAlsLeverancierNr = DomeinContext.GeefTransportAPI().GeefRit(Transport).GeefTransporteur() Set lbAdressen = $lb( DomeinContext.GeefPartijAPI().GeefPartij( DomeinContext.GeefLegacyPartijAPI().GeefLeverancierPartijID(TransporteurAlsLeverancierNr) ).GeefEmail() ) Do ExportEnMail^TRANSPExport2File(Transport,lbAdressen,".csv",$C(59)) Do ##class(vhLib.Logger).%New("Transport").Debug("Mail Transportlijst einde", "Transport='" _ Transport _ "'; gekozen vanop bonnr='" _ BONNr _ "'.") Quit ; ; Afsluiten van een transport met eventueel een afdruk CloseTransp(Print) New I,R,BONNr,TransportLink,Transport,Transporteur,Transporten,DefaultTransport,Obj For I=1:1 S R=$G(^HULP(%J,"D",I)) Quit:R="" Do . Set BONNr=$P(R,D),TransportLink=##class(Flow.Cons.TransportBon).GetTransport(BONNr) . Set Transport=$P(TransportLink,";") . Quit:'Transport . If ##class(BL.Flow.Cons.TransportData).IsClosed(Transport) Quit ; Transport is reeds gesloten . Set:Transport Transport(Transport)="" . If I=@DL(1)@(6) Set DefaultTransport=Transport Set Transport=$O(Transport("")) Do:$O(Transport(Transport)) . Set Transport="" . For Set Transport=$O(Transport(Transport)) Quit:Transport="" Do . . Set Transporteur=$$TRANSPORTEUR^TRANSP(Transport,1) . . Set Obj=##class(Flow.Cons.Transport).%OpenId(Transport),TransportType=Obj.TransportType . . Set I=I+1,Transporten(I)=Transport_D_Transport_" | "_Transporteur_" | "_$S(TransportType="T":"Terugname",1:"Levering") . Set R=$$WILD^vhPOPUP("C;C","-1O","",.Transporten,$G(DefaultTransport)) Set:zb'="CANC" Transport=$P(R,D) If Transport,$$^vhTXTPOP("ULTOER","CLOSETRANSP") Do ##class(BL.Flow.Cons.TransportData).AutoClose(Transport,$G(Print)) If ##class(TECH.Config.ConfigMgr).Instance().GetBoolean("MagWordenUitgevoerd_EventHandler_PakbonMagGeboektWorden") { #dim EventRaiser = ##class(DOM.MAG.event.EventRaiser).%New() #dim OrderApi = ##class(DOM.DomeinContext).Instance().GeefOrderAPI() #dim PakbonMagGeboektWordenHelper = ##class(AXimpl.Dynamics.InventoryOut.EventHandler.PakbonMagGeboektWordenHelper).%New(EventRaiser,OrderApi) If (PakbonMagGeboektWordenHelper.IsVerzendwijzeMetUitgesteldPakbonBoekenAx(BONNr)) { Do ##class(vhLib.Logger).%New("VerwerkAfgeslotenTransport").Info("Bon nummer '"_BONNr, ##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentTimeStamp()) Do PakbonMagGeboektWordenHelper.ManualPakbonMagGeboektWordenAfhandelaar(BONNr) } } Quit ; ; Afdrukken Levernota's PrintANotas(Kriteria) New sc,Printer Set Printer=##class(TECH.Config.ConfigMgr).Instance().GetString("DCPRINT_SelectPrinter") Set:(Printer="AUTO")||(Printer="") Printer="LEVBON_PS" S sc=##class(BL.Flow.TransportLijst.Doc).RenderAndPrintANotas($P(Kriteria,D,2),$P(Kriteria,D,6),$P(Kriteria,D,3),Printer) I sc,$$$ISERR(sc) Do WARN^vhTXTPOP($$ParseStatus^vhLib(sc),"") Quit ; Fromateren van de naam i.v.m. Schachermayer NAAM(FL) New KLNr,Naam,IsSchachermayer Set KLNr=$P(FL(3),D,3),Naam=$P(FL(3),D,4) Set IsSchachermayer=((KLNr=$$$KlantSchachermayerNL)||(KLNr=$$$KlantSchachermayerAU)) Set:IsSchachermayer Naam = "SCH*"_Naam Quit Naam