KFLAD ;MODULE BEPALEN LEVERINGSADRES [ 05/15/2003 4:17 PM ] ; If $G(ORDNr) Quit:'$$CHKMODLA(ORDNr) New R,LevAdr,KlantId,Optie,KlNaam,KlAdres,NrLevAdr,VervRef,GroepNr,Transporteur 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) 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="KF17",$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="KF17",KlAdres["POSTBUS" Set Optie=Optie_"A" .Set:$P(LevAdr,D,19)="M" $P(LevAdr,D)="M" .Set Optie=Optie_"M",R=$$SELECT^LEVADR(KLNr,Optie,$S($P(LevAdr,D,19)="M":LevAdr,1:""),"LB") .If 'R Set LevAdr=$S($P(R,D)="M":R,1:"") .Else Set LevAdr=^KKL(KlantId,"L"_$J(R,3)) 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 $P(LevAdr,D,26)=$P(LevAdr,D,26),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 Transporteur=5036 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 S1 Set FP=UL*100+1 Write @F,@F1 Quit ; S1 New I,U1,U2 If SWLA'="KF17"!($TR(B(3),D,"")="") Do .Set U1=100 .For Set U1=$O(A(U1)) Quit:U1="" Set U2=A(U1) If $P(U2,U,16)>301,$P(U2,U,16)<400 Do S2(U2) If SWLA="KF17" 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 ; S2(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)) 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:Transporteur'=5036 ##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=Transporteur=5036 . 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^vhDTyp($P(^TRANSP("D",VervRef),D,10)) . Set Check=$$^vhTXTPOP("TRANSPORT","KFLAD","",$S(Type="O":"Order",1:"Leveringsbon"),Object,KlNaam,Transport,TranspDate) Quit Check ;