#include BL.Derde.KlantSpecifiek KFLAD ;MODULE BEPALEN LEVERINGSADRES [ 05/15/2003 4:17 PM ] ; ; Als OrderObject hier niet gekend is dan zitten we in de fase van het initieren van de hoofding anders bevinden we ons in de fase ; van het wijzigen van het order .. ; natuurlijk op voorwaarde dat UGL = "OD" zeker ... ; If $G(ORDNr) Quit:'$$CHKMODLA(ORDNr) New R,LevAdr,KlantId,Optie,KlNaam,KlAdres,NrLevAdr,VervRef,GroepNr,Transporteur,Taal If '$D(KLNr),$D(KC) New KLNr Set KLNr=KC Set LevAdr=$G(B(3)),KlantId=^KK1(KLNr),R=^KKL(KlantId,0) Set KlNaam=$P(R,D,2),KlAdres=$P(R,D,5),Taal=$P(R,D,9) Set VervRef=$P($P(B(1),D,8),";"),GroepNr=$P($P(B(1),D,8),";",2) Set:UGL="OD" VervRef=$P($P(B(1),D,12),";"),GroepNr=$P($P(B(1),D,12),";",2) Goto KFLAD1:'$$CheckTransport($S(UGL="OD":"O",1:"L"),UR,VervRef,GroepNr) If $G(AutoMb),$D(^MBLOG("T",KLNr,LogNr,"LEVADR")) Set LevAdr=^MBLOG("T",KLNr,LogNr,"LEVADR") Else If $L($G(EDIORDNr)),$D(^MBLOG("EDI",KLNr,+EDIORDNr,EDIORDNr)) Do . Set R=^MBLOG("EDI",KLNr,+EDIORDNr,EDIORDNr) . Set NrLevAdr=$P(R,D,6),LevAdr=$P(R,D,6,11) . If $L($TR(LevAdr,D,"")) Do . .If NrLevAdr?.N Do . . .Set KlantInd=^KK1(KLNr) . . .Set LevAdr=$G(^KKL(KlantInd,"L"_$E(" ",1,3-$L(NrLevAdr))_NrLevAdr)) . .Else Set $P(LevAdr,D,7)="N",$P(LevAdr,D,3)=D_$P(LevAdr,D,3),$P(LevAdr,D)=D_$P(LevAdr,D) Else If SWLA="Flow.NieuwDocHoofding",$G(OfferteNr),$D(Offerte) Do . Set LevAdr=##class(BL.Flow.Offerte.Offerte).GetLA(OfferteNr),KlAdres=$P(LevAdr,D,5) Else Do . Set Optie="HP" If SWLA="Flow.NieuwDocHoofding",KlAdres["POSTBUS" Set Optie=Optie_"A" . Set:$P(LevAdr,D,19)="M" $P(LevAdr,D)="M" . Set Optie=Optie_"M" . If KLNr=$$$KlantHalux Set R=1 ; voor halux steeds het eerste leveringsadres nemen . Else Set R=$$SELECT^LEVADR(KLNr,Optie,$S($P(LevAdr,D,19)="M":LevAdr,1:""),"LB") . Quit:R="" . If 'R Set LevAdr=$Select($piece(R,D)="M":R,1:"") . Else Do . . Set LevAdr=^KKL(KlantId,"L"_$J(R,3)) . . new VerzendingWijze set VerzendingWijze = $P(LevAdr,"\",26) . . if '$length(VerzendingWijze) set VerzendingWijze = $$SELECT^KLVERZW(,,,,,,,,,,1) . . if $length(VerzendingWijze) set $piece(LevAdr,"\",26)=VerzendingWijze new VerzendingWijze set VerzendingWijze=$piece(LevAdr,"\",26) if '$length(VerzendingWijze) { If '$IsObject($Get(KlantObject)) { new PartijID Set PartijID = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KC) Set KlantObject = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(PartijID) } set VerzendingWijze = KlantObject.GeefVerzendingWijze() } If $L(VerzendingWijze) Do . Set:Taal="" Taal="N" . Set VerzendingWijze=$P($P(VerzendingWijze,"#")," ") . Set:UGL="UL" VerzendingWijze=VerzendingWijze_" #"_$G(^RES("KLANT","PI","VERZENDWIJZE","D",VerzendingWijze,Taal)) Do:UGL="UL" KILL^KFVZW(US,B(1),UR) Do ZetVerzendingWijze^Flow.Order.Wijzig.Hoofding(.ORDNr,VerzendingWijze) Do:UGL="UL" SET^KFVZW(US,B(1),UR) If $P(LevAdr,D,19) Do . If $D(^KK1($P(LevAdr,D,19))) Do . . Set KlantId=^KK1($P(LevAdr,D,19)) . . Set LevAdr=$P(LevAdr,D,1)_D_$P(^KKL(KlantId,0),D,2,9)_D_$P(LevAdr,D,10,99) . Else Set (K,B(301))="",LevAdr="" If KlAdres["POSTBUS",$TR(LevAdr,D,"")="",'$$TXTPOP^FLOW("POSTBUSADRES","",KLNr_" "_KlNaam) Goto KFLAD If $P(LevAdr,D,5)["POSTBUS",'$$TXTPOP^FLOW("POSTBUSADRES","",KLNr_" "_KlNaam) Goto KFLAD Set B(3)=LevAdr If $TR(B(3),D,"")="" Set (K,B(301))="" Else Set K=1 If VervRef,GroepNr=UR Do . Set Transporteur=$P(^TRANSP("D",VervRef),D) . If ##class(DOM.TRANSP.impl.DataM.DataMTransportAPI).%New().IsGLS(Transporteur) Do ; Indien ABX . . If $TR(B(3),D,"")="" Kill ^TRANSP("D",VervRef,"D",GroepNr,"A") . . Else Set ^TRANSP("D",VervRef,"D",GroepNr,"A")="1\"_$P(B(3),D,2,8) . Else Do ##class(BL.Flow.Cons.TransportFlow).EditAdres($S(UGL="OD":"O",1:"L"),UR,VervRef_"||"_GroepNr,"O") ; Niet ABX KFLAD1 Do RefreshAdresEnVerzendWijze Set FP=UL*100+1 Write @F,@F1 Quit ; RefreshAdresEnVerzendWijze New I,U1,U2 If SWLA'="Flow.NieuwDocHoofding"!($TR(B(3),D,"")="") Do . Set U1=100 . For Set U1=$O(A(U1)) Quit:U1="" Set U2=A(U1) Do . . If (($P(U2,U,16)>301)&&($P(U2,U,16)<400)) Do RefreshRubriek(U2) . . If ($P(U2,U,16)=107) Do RefreshRubriek(U2) If SWLA="Flow.NieuwDocHoofding" For I=2:1:25 Do .Kill B(300+I) .Set:$L($P(B(3),D,I)) B(300+I)=$P(B(3),D,I) Quit ; RefreshRubriek(U2) New U3,X,K Set X=$P(U2,U,16),(K,U3)=$P(B(X\100),D,X#100) If $L($P(U2,U,8)) D WLIP^vhDBG(195,"Xecute : "_$P(U2,U,16)) Xecute "Set U3="_$P(U2,U,8) Set FP=$P(U2,U,5)*100+$P(U2,U,6) Write @F,$J("",$P(U2,U,9)),$J("",$P(U2,U,13)),@F,U3 Quit ; CHKMODLA(ORDNr) New R,ModOk,KLNr,KlNaam Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D),R=^KKL(^KK1(KLNr),0),KlNaam=$P(R,D,2) Set ModOk='$D(^ORDW("IO",ORDNr)) Set:'ModOk ModOk=$$^vhTXTPOP("FLOWORD","CHKMODLA","",ORDNr,KlNaam) Quit ModOk ; ; Geef het leveringsadres van een order of leveringsbon GetLevAdr(Type,Object) New LevAdr,KLNr Set KLNr=$P(@("^K"_$S(Type="O":"O1",1:"U1")_"(Object,""F"")"),D) If Type="O" Set LevAdr=^KOD(KLNr,"F",Object,3) Else Set LevAdr=^KUL(KLNr,$$NODE^FLOWBON(Object),Object,3) Quit LevAdr ; ; Controleer het huidige leveringsadres van een order of leveringsbon met OldAdres CheckLevAdr(Type,Object,OldAdres) New NewAdres,Check Set NewAdres=$$GetLevAdr(Type,Object) For I=2:1:9,13:1:15,24,25 Set Check=$P(NewAdres,D,I)=$P(OldAdres,D,I) Quit:'Check Quit Check ; ; Wijzig het leveringsadres van alle orders en leveringen van een transport ModTransport(Type,Object) New R,KLNr,VervRef,GroepNr,Transporteur Set KLNr=$P(@("^K"_$S(Type="O":"O1",1:"U1")_"(Object,""F"")"),D) Set R=$P(@("^K"_$S(Type="O":"OD",1:"UL")_"(KLNr,""F"",Object,1)"),D,$S(Type="O":12,1:8)) Set VervRef=$P(R,";"),GroepNr=$P(R,";",2) If VervRef,GroepNr Do . Set Transporteur=$P(^TRANSP("D",VervRef),D) . Do:'##class(DOM.TRANSP.impl.DataM.DataMTransportAPI).%New().IsGLS(Transporteur) ##class(BL.Flow.Cons.TransportFlow).EditAdres(Type,Object,VervRef_"||"_GroepNr,"O") ; Enkel indien niet ABX Quit ; CheckTransport(Type,Object,VervRef,GroepNr) New R,Check,KLNr,KlNaam,Transporteur,Transport,TranspDate Set Check='VervRef Do:'Check . Set Transporteur=$P(^TRANSP("D",VervRef),D) . Set Check=##class(DOM.TRANSP.impl.DataM.DataMTransportAPI).%New().IsGLS(Transporteur) . Quit:Check . Set KLNr=$P(^TRANSP("D",VervRef,"D",GroepNr),D),KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) . Set Transport=$P(^KLE(^KL1(Transporteur),0),D,2),TranspDate=$$EXTDATE^vhLib.DataTypes($P(^TRANSP("D",VervRef),D,10)) . Set Check=$$^vhTXTPOP("TRANSPORT","KFLAD","",$S(Type="O":"Order",1:"Leveringsbon"),Object,KlNaam,Transport,TranspDate) Quit Check ;