TRANSPX ;Verwerking expediteur (leveringbons) [ 04/14/2003 11:42 AM ] ; NEWGRP(VervRef,GroepNr,BONNr) New %SC,R,sFL,TranspNr,KLNr,BONNrs,FANrs,PROFNrs,ORDNrs,ModHoofding Set R=^TRANSP("D",VervRef),TranspNr=$P(R,D) Do:$L($G(VervRef)) .Quit:'$$LOCK(VervRef,GroepNr) .Do INITGRP .If $P(sFL(1),D,2)>0,'##Class(CHUI.Flow.Cons.Transport).CheckMaximumRembours(VervRef,GroepNr,$P(sFL(1),D,2),1) Quit .Set ModHoofding=1 .If $D(^TRANSP("D",VervRef,"D")) Set %SC=1 .Else If $P($G(^TRANSP("D",VervRef)),D,8) Set %SC=1 .Else If $L($G(^TRANSP("D",VervRef,"T"))) Set %SC=1 .Else Do NIEUW^vhScherm("TRANSPX") .Do:%SC ..Set ModHoofding=0 ..Do NIEUW^vhScherm("TRANSPX") ..Do:%SC SAVEGRP(VervRef,GroepNr,.BONNrs,.sFL) .If '%SC,$O(^TRANSP("D",VervRef,"D",""))="" Do ##Class(BL.Flow.Cons.TransportData).DeleteHoofding(VervRef) .Do UNLOCK(VervRef,GroepNr) Quit ; MODGRP(VervRef,GroepNr) New %SC,R,sFL,TranspNr,KLNr,BONNr,BONNrs,FANrs,PROFNrs,ORDNrs,ModHoofding Do:$$LOCK(VervRef,GroepNr) .Set BONNr=$O(^TRANSP("D",VervRef,"D",GroepNr,"B","")) .Do INITGRP .Set ModHoofding=0 .Do EDIT^vhScherm("TRANSPX") .Do:%SC SAVEGRP(VervRef,GroepNr,.BONNrs,.sFL) .Do UNLOCK(VervRef,GroepNr) Quit ; ; Raadplegen transportstatus RPLGRP(VervRef,GroepNr) New %SC,R,sFL,TranspNr,KLNr,BONNr,BONNrs,FANrs,PROFNrs,ORDNrs,Ophalen,Transfer Set BONNr=$O(^TRANSP("D",VervRef,"D",GroepNr,"B","")) Do INITGRP Set R=^TRANSP("D",VervRef),Ophalen=$P(R,D,11),Transfer=$P(R,D,12) Do STORE^vhTERMINA() Do DISPLAY^vhScherm("TRANSPX"),FIELD^vhScherm("TRANSPX","OK") Do REFRESH^vhTERMINA() Quit ; INITGRP New R,Rembours,Gewicht,Temp,Node,ORDNr,FANr Set sFL("V")=$G(^TRANSP("D",VervRef)) If $L(sFL("V")) Set TranspNr=$P(sFL("V"),D) Else Do . Set sFL("V")=TranspNr . Set:$$ISTERUGN^FLOWBON5(GroepNr) $P(sFL("V"),D,5)="T" . Set $P(sFL("V"),D,9)=$$DEVUSER^vhUSER(),$P(sFL("V"),D,10)=$P(sFL(1),D,10) . Set $P(sFL("V"),D,15)=$P($G(^TRANSP("T",TranspNr)),D,11) Set sFL(1)=$G(^TRANSP("D",VervRef,"D",GroepNr)),sFL("L")=$G(^TRANSP("D",VervRef,"D",GroepNr,"A")) If sFL(1)="" Do . Set R=^KU1(GroepNr,"F"),KLNr=$P(R,D) . Set sFL(1)=KLNr,$P(sFL(1),D,9)=$$DEVUSER^vhUSER(),$P(sFL(1),D,10)=$H Else Set KLNr=$P(sFL(1),D) Do:'$D(^TRANSP("D",VervRef,"D",GroepNr,"B",BONNr)) . Set Rembours=$S($$ISREMB^REMBOURS(KLNr,BONNr):$P($$BON^REMBOURS(BONNr),D),1:"") . Set Node=$$NODE(BONNr),R=^KUL(KLNr,Node,BONNr,1),Gewicht=$J($P($P(R,D,13),"#",3),0,1) . Set $P(sFL("V"),D,3)=$P(sFL("V"),D,3)+Gewicht . Set $P(sFL(1),D,2)=$P(sFL(1),D,2)+Rembours . Set $P(sFL(1),D,3)=$P(sFL(1),D,3)+Gewicht If '$P(sFL("L"),D) Do . Set sFL("L")=^KUL(KLNr,"F",BONNr,3) . Set:$TR($P(sFL("L"),D,2,8),D,"")="" sFL("L")=^KKL(^KK1(KLNr),0) Set Temp=BONNr,BONNrs(BONNr)="" Set BONNr="" For Set BONNr=$O(^TRANSP("D",VervRef,"D",GroepNr,"B",BONNr)) Quit:BONNr="" Set BONNrs(BONNr)="" Set FANr="" For Set FANr=$O(^TRANSP("D",VervRef,"D",GroepNr,"F",FANr)) Quit:FANr="" Set FANrs(FANr)="" Set PROFNr="" For Set PROFNr=$O(^TRANSP("D",VervRef,"D",GroepNr,"Z",PROFNr)) Quit:PROFNr="" Set PROFNrs(PROFNr)="" Set ORDNr="" For Set ORDNr=$O(^TRANSP("D",VervRef,"D",GroepNr,"O",ORDNr)) Quit:ORDNr="" Set ORDNrs(ORDNr)="" Set sFL("AT",1)=$G(^TRANSP("D",VervRef,"T")),sFL("T",1)=$G(^TRANSP("D",VervRef,"D",GroepNr,"T")) Merge sFL("Q")=^TRANSP("D",VervRef,"D",GroepNr,"Q") Set BONNr=Temp Quit ; ; Wegschrijven van de data SAVEGRP(VervRef,GroepNr,BONNrs,Nodes) New R,BONNr,KLNr,Next,Node,TranspNr,ColTyp If $D(BONNrs) Do .Set BONNr="" .For Set BONNr=$O(^TRANSP("D",VervRef,"D",GroepNr,"B",BONNr)) Quit:BONNr="" Do ..Quit:$D(BONNrs(BONNr)) ..Set KLNr=$P(^KU1(BONNr,"F"),D),Node=$$NODE(BONNr) ..Set R=^KUL(KLNr,Node,BONNr,1),$P(R,D,8)="",^KUL(KLNr,Node,BONNr,1)=R ..Kill ^TRANSP("D",VervRef,"D",GroepNr,"B",BONNr) ..Do VERW^LOG("TRP",VervRef,"B"_BONNr) .Set R=Nodes("V"),TranspNr=$P(R,D),^TRANSP("D",VervRef)=R .Set ^TRANSP("D",VervRef,"D",GroepNr)=Nodes(1),BONNr="" .For Set BONNr=$O(BONNrs(BONNr)) Quit:BONNr="" Do ..Set KLNr=$P(^KU1(BONNr,"F"),D),Node=$$NODE(BONNr) ..Set R=^KUL(KLNr,Node,BONNr,1),$P(R,D,8)=VervRef_";"_GroepNr_";"_TranspNr,^KUL(KLNr,Node,BONNr,1)=R ..Do:'$D(^TRANSP("D",VervRef,"D",GroepNr,"B",BONNr)) OPEN^LOG("TRP",VervRef,"B"_BONNr) ..Set ^TRANSP("D",VervRef,"D",GroepNr,"B",BONNr)="" ..Do ##Class(BL.Flow.Cons.TransportFlow).VerzendWijze(VervRef,GroepNr,"L",BONNr) .Kill ^TRANSP("D",VervRef,"D",GroepNr,"Q") .Set ColTyp="" .For Set ColTyp=$O(sFL("Q",ColTyp)) Quit:ColTyp="" Do ..Set R=sFL("Q",ColTyp) ..Quit:$TR(R,D,"")="" ..Set ^TRANSP("D",VervRef,"D",GroepNr,"Q",ColTyp)=R .Kill ^TRANSP("D",VervRef,"T"),^TRANSP("D",VervRef,"D",GroepNr,"T") .Set:$L($G(sFL("AT",1))) ^TRANSP("D",VervRef,"T")=sFL("AT",1) .Set:$L($G(sFL("T",1))) ^TRANSP("D",VervRef,"D",GroepNr,"T")=sFL("T",1) .If $P(sFL("L"),D)'=KLNr,$L($TR($P($G(sFL("L")),D,2,99),D,"")) .Else Set sFL("L")="",$P(sFL("L"),D,9)="" .Set ^TRANSP("D",VervRef,"D",GroepNr,"A")=sFL("L") .Set ^TRANSP("IO",VervRef)="" .Do CUMVERV(VervRef) .Quit:$P(Nodes("V"),D,2)'="P" .Quit:##Class(CHUI.Flow.Cons.Transport).TransportEdited(VervRef)'="A" .Quit:$$BevatGeenVerpakking^TRANSPC(VervRef) .Do EXTERN^DCPRINT("E",VervRef,,,1) Quit ; ; Cumuleren van het gewicht in de hoofdnode CUMVERV(VervRef) New R,GroepNr,Gewicht,Obj Set (GroepNr,Gewicht)="" For Set GroepNr=$O(^TRANSP("D",VervRef,"D",GroepNr)) Quit:GroepNr="" Do .Set R=^TRANSP("D",VervRef,"D",GroepNr),Gewicht=Gewicht+$P(R,D,3) Set Obj=##Class(Flow.Cons.Transport).%OpenId(VervRef) Do Obj.%Reload() Set Obj.GewichtGoederen=Gewicht,R=Obj.%Save() Quit ; NODE(BONNr) New KLNr,Node Set KLNr=$P(^KU1(BONNr,"F"),D) For Node="F","G","M" Quit:$D(^KUL(KLNr,Node,BONNr)) Quit Node ; LOCK(VervRef,GroepNr) New %TC,Ref,TranspNr Set Ref="^TRANSP(""D"",VervRef" Set:$L($G(GroepNr)) Ref=Ref_",""D"","_GroepNr Set Ref=Ref_")" Do ADD^vhLock($NA(@Ref)) Do:'%TC .Set R=^TRANSP("D",VervRef),TranspNr=$P(R,D) .Do LDISP^vhLock($NA(@Ref),$P(^KLE(^KL1(TranspNr),0),D,2)) Quit %TC ; UNLOCK(VervRef,GroepNr) New Ref Set Ref="^TRANSP(""D"",VervRef" Set:$L($G(GroepNr)) Ref=Ref_",""D"","_GroepNr Set Ref=Ref_")" Do REMOVE^vhLock($NA(@Ref)) Quit ; MUNT(BONNr) New R,KLNr,Node,Munt Set KLNr=$P(^KU1(BONNr,"F"),D),Node=$$NODE(BONNr) Set R=^KUL(KLNr,Node,BONNr,1),Munt=$P(R,D,18) Quit Munt ; RUBREXEC If X="-",'$P($G(sFL("Q","L")),D),$$BevatLanggoed(.BONNrs) Do ; Controle op ingave langgoed .New RubrNr .For RubrNr=1:1 Quit:'$D(sScrnDef(RubrNr)) Quit:$P(sScrnDef(RubrNr),"`",7)="Q.L.1" .For X=1:1 Quit:'$D(sEdit(X)) Quit:sEdit(X)=RubrNr .If '$D(sEdit(X)) Set X="-" Quit ; Rubriek langgoed staat niet op het scherm .Set:$$^vhTXTPOP("TRANSP","LANGGOED")'="J" X="-" If X="B",'$G(ModBeheer) Set ModBeheer=1,X="-" ; Beheer transport is ingedrukt Quit ; INITEXEC If $G(ModHoofding) Do .Do REMATTR^vhScherm("OPHVOORZ","D","D"),REMATTR^vhScherm("ALGOPMERK","D","D") .Do REMATTR^vhScherm("GROEPEER","D","D"),REMATTR^vhScherm("UITLEVDAT","D","D") .Do PUTATTR^vhScherm("AANMAAKG","HD","HD") .Do PUTATTR^vhScherm("SCHLIJNF7","HD","HD"),PUTATTR^vhScherm("SCHLIJN","HD","HD"),PUTATTR^vhScherm("SCHLIJNF8","HD","HD") .Do PUTATTR^vhScherm("KLANT","HD","HD"),PUTATTR^vhScherm("LEVADR","HD","HD") .Do PUTATTR^vhScherm("LASTRAAT","HD","HD"),PUTATTR^vhScherm("LAWOONPL","HD","HD") .Do PUTATTR^vhScherm("LEVBONS","HD","HD"),PUTATTR^vhScherm("FACTUREN","HD","HD"),PUTATTR^vhScherm("PROFORMAS","HD","HD") .Do PUTATTR^vhScherm("ORDERS","HD","HD"),PUTATTR^vhScherm("OPMERKING","HD","HD") .Do PUTATTR^vhScherm("PALET","HD","HD"),PUTATTR^vhScherm("COLLIE","HD","HD") .Do PUTATTR^vhScherm("LANGGOED","HD","HD"),PUTATTR^vhScherm("VRACHTKOST","HD","HD") .Do PUTATTR^vhScherm("NETGEW","HD","HD"),PUTATTR^vhScherm("REMBOURS","HD","HD") Else Do .Do:$G(Ophalen)!$G(Transfer) REMATTR^vhScherm("OPHALEN","H","H"),REMATTR^vhScherm("TRANSFERT","H","H") Quit ; ; Geeft een lijst van de bons "," gescheiden BONLIST() New BonList,BONNr Set (BonList,BONNr)="" For Set BONNr=$O(BONNrs(BONNr)) Quit:BONNr="" Set BonList=BonList_", "_BONNr Set $E(BonList)="" Quit BonList ; ; Ingave datum en tijdstip ophalen OphVoorz(sFL) New %SC,X,OphVoorz,Datum,Tijd,sFLTemp Merge sFLTemp=sFL Do STORE^vhTERMINA() Set OphVoorz=$P(sFL("V"),D,8),Datum=$P(OphVoorz,","),Tijd=$P(OphVoorz,",",2) Do DISPLAY^vhScherm("TRANSPXOPH") For Do Quit:X="-" Quit:%SC .Do FIELD^vhScherm("TRANSPXOPH","DATUM") .Quit:'%SC .Do DISPLAY^vhScherm("TRANSPXOPH",,,,"DATUM") .Do FIELD^vhScherm("TRANSPXOPH","TIJD") .Set:X="-" X="" Set:'Datum Datum="" Set:'Tijd Tijd="" If Datum=$P(OphVoorz,","),Tijd=$P(OphVoorz,",",2) Set %SC=0 If %SC Set OphVoorz=Datum Set:Tijd OphVoorz=OphVoorz_","_Tijd Else Merge:'%SC sFL=sFLTemp Do REFRESH^vhTERMINA() Quit OphVoorz ; ; Ingave datum en tijdstip uiterste leverdag UitLevDat(sFL) New %SC,X,UitLevDat,Datum,Tijd,sFLTemp Merge sFLTemp=sFL Do STORE^vhTERMINA() Set UitLevDat=$P(sFL("V"),D,18),Datum=$P(UitLevDat,","),Tijd=$P(UitLevDat,",",2) Do DISPLAY^vhScherm("TRANSPXULD") For Do Quit:X="-" Quit:%SC .Do FIELD^vhScherm("TRANSPXULD","DATUM") .Quit:'%SC .Do DISPLAY^vhScherm("TRANSPXULD",,,,"DATUM") .Do FIELD^vhScherm("TRANSPXULD","TIJD") .Set:X="-" X="" Set:'Datum Datum="" Set:'Tijd Tijd="" If Datum=$P(UitLevDat,","),Tijd=$P(UitLevDat,",",2) Set %SC=0 If %SC Set UitLevDat=Datum Set:Tijd UitLevDat=UitLevDat_","_Tijd Else Merge:'%SC sFL=sFLTemp Do REFRESH^vhTERMINA() Quit UitLevDat ; ; Controle of de zending langgoed bevat BevatLanggoed(BONNrs) New BevatLanggoed,OrderAPI,Bon,BONNr Set BevatLanggoed=0,BONNr=$O(BONNrs("")) While ((BONNr '= "") && ('BevatLanggoed)) { Set OrderAPI = ##class(DOM.DomeinContext).Instance().GeefOrderAPI() Set Bon = OrderAPI.GeefBon(BONNr) Set BevatLanggoed = ##class(APPS.OV.impl.FlowObjectInhoudService).BonBevatLangGoed(Bon) Set BONNr=$O(BONNrs(BONNr)) } Quit BevatLanggoed ;