; Status van de orderlijn in productie, voorraad en picking StatusVerwerking(KLNr, ORDNr, OLNr) New D, LijnRec,PRNr,Status,OLUNr,CONSNr Set D="\" Set LijnRec=$G(^KOD(KLNr,"F",ORDNr,OLNr)) Set OLUNr=$P(LijnRec,"\",15) Set PRNr=$P(LijnRec,"\",2) Quit:'PRNr "" Set:'($D(^||OrderBijVH)#1) ^||OrderBijVH=$$CALCDATE^vhLib.DataTypes($H,"A",+5) Quit:($P(LijnRec,"\",25)>(^||OrderBijVH)) "" Set Status ="" If $P(LijnRec,"\",27)'="" ; kom link { Set Status="1;In productie" Set FabKey=$$FABKEYO^HADOPV(KLNr,ORDNr,OLUNr) Set TOENr=$P(FabKey,";") If $L(FabKey) && ($P($G(^HADPR("F",FabKey,"K")),"\",3)="A") { Set Status="2;In productie" } try { Set pxZoek=##class(APPS.Halux.Planning.impl.BatchService).%New().ZoekToelevering(TOENr) } catch { Set pxZoek="" Set $ecode="" } If $isObject(pxZoek) { try { Set Status="3;In productie;"_$$FormatVanafNu($ZDTH(pxZoek.ToeleveringGeplandTijdstip,3,,2)) } catch { Set Status="" } } } Set CONSNr=$G(^ORDW("IO",ORDNr,OLUNr)) If Status="" && 'CONSNr &&($$GETSTOCK^PRODUKT4(PRNr,"F")<$P(LijnRec,"\",3)) { Set Status="4;Zonder stock;"_$$GETSTOCK^PRODUKT4(PRNr,"F") } If Status="" && ($P(LijnRec,"\",28)'="") && 'CONSNr { If $$GoederenBijHalux(ORDNr) { Set Status="5;Nog in Halux;"_$$FormatVanafNuHalux($$ZoekLaatsteReceptie(PRNr)) } Else { Set Status="6;Doorsturen" } } If Status="" ; status picking { If CONSNr { If (Status="") && ($P($G(^ORDW("D",CONSNr)),"\",21)'="") { Set Status="7;PickProbleem" } Set PickStatus=$P(^ORDW("D",CONSNr,"D",ORDNr,OLUNr),"\",2) If (Status="") && (PickStatus="B") { Set Status="99;Op bon" ; komt niet voor omdat de orderlijn niet meer bestaat } If (Status="") && (PickStatus="A") { Set Status="88;Geraapt" } If (Status="") && ((PickStatus="W")||(PickStatus="P")) { Set Status="77;Te picken;"_$$TranslateMag($P(^ORDW("D",CONSNr,"D",ORDNr,OLUNr),"\",8)) } If (Status="") && (PickStatus="") { Set Status="8;Te activeren" } } Else { Set Status="6;Doorsturen" } } ; ophalen verzendwijze If Status'="" { If CONSNr { Set VerzendWijze=$P($G(^ORDW("D",CONSNr)),"\",2) } Else { Set VerzendWijze=$P($G(^KOD(KLNr,"F",ORDNr,1)),"\",7) Set VerzendWijze=$P($P(VerzendWijze,"`"),";") ;alleen eerste code zonder de dag } Set $P(Status,";",4)=VerzendWijze Set $P(Status,";",5)=CONSNr } Quit Status TranslateMag(MagCode) Quit:MagCode="U" "Ugly" Quit:MagCode="O" "Orgalux" Quit:MagCode="A" "T/A" Quit:MagCode="H" "Halux" Quit:MagCode="V" "V.lift" Quit:MagCode?1(1"E",1N) "Auto" Quit:MagCode?1(1"O",1"E",1"U",1"A",1"H")1(1"O",1"E",1"U",1"A",1"H") $S($A($E(MagCode,1))>$A($E(MagCode,2)):$E(MagCode,1)_"+"_$E(MagCode,2),1:$E(MagCode,2)_"+"_$E(MagCode,1)) Quit "?"_MagCode FormatVanafVandaag(DatumEnTijd) New Dag,Uur Set Dag=DatumEnTijd-$H Set Dag=$S(Dag>0:"+"_Dag,Dag<0:Dag,1:"+0") Set Uur=$P(DatumEnTijd,",",2)\3600 Quit Dag_" "_Uur_"u" FormatVanafNu(DatumEnTijd) New Dag Set Diff=$$DIFFTIME^vhLib.DataTypes(DatumEnTijd,$H) Set Uur=Diff\3600 Quit Uur_" u" FormatVanafNuHalux(DatumEnTijd) New Dag,Uur,Werkdagen Set Werkdagen=0 If +DatumEnTijd<+$H ; Verschillende dagen { For Dag=+DatumEnTijd:1:($H-1) { Set Werkdagen=Werkdagen+($$CALCDATE^vhLib.DataTypes(Dag,"A","+0")=Dag) } } Set Diff=$$DIFFTIME^vhLib.DataTypes(DatumEnTijd,$H)\3600 Set Result=(Diff)_" u" ;w Werkdagen, " ", Result,! Set:(Werkdagen=1)&&(Diff>10) Result=(Diff-10)_" u" Set:(Werkdagen>1) Result=Werkdagen_" D" Quit Result ZoekLaatsteReceptie(PRNr) New VolgNr Set VolgNr=$O(^PRHIST(PRNr,""),-1) Set DatumEnTijd="" While VolgNr'="" { If $P(^PRHIST(PRNr,VolgNr),"\",4)="I" { Set DatumEnTijd=$P(^PRHIST(PRNr,VolgNr),"\",1) Set VolgNr="" } Else { Set VolgNr=$O(^PRHIST(PRNr,VolgNr),-1) } } Quit DatumEnTijd GoederenBijHalux(ORDNr) New Status If $D(^||OrderBijVH(ORDNr)) { Set Status=^||OrderBijVH(ORDNr) } Else { Set Status=##class(BL.Legacy.EWTOE).OrderStaatVolledigBijVanHoecke(ORDNr) Set ^||OrderBijVH(ORDNr)=Status } Quit 'Status