; 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",+2) Quit:($P(LijnRec,"\",25)>(^||OrderBijVH)) "" Set Status ="" If $P(LijnRec,"\",27)'="" ; kom link { Set Status="1;Productie : Onbekend" 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;Productie : klaargezet" } try { Set pxZoek=##class(APPS.Halux.Planning.impl.BatchService).%New().ZoekToelevering(TOENr) } catch { Set pxZoek="" Set $ecode="" } If $isObject(pxZoek) { Set Status="3;Productie : in batch;"_$$FormatVanafNu($ZDTH(pxZoek.ToeleveringGeplandTijdstip,3,,2)) } } Set CONSNr=$G(^ORDW("IO",ORDNr,OLUNr)) If Status="" && 'CONSNr &&($$GETSTOCK^PRODUKT4(PRNr,"F")<$P(LijnRec,"\",3)) { Set Status="4;Onvoldoende stock;"_$$GETSTOCK^PRODUKT4(PRNr,"F") } If Status="" && ($P(LijnRec,"\",28)'="") && 'CONSNr { If $$GoederenBijHalux(ORDNr) { Set Status="5;Geproduceerd, nog in Halux;"_$$FormatVanafNu($$ZoekLaatsteReceptie(PRNr)) } Else { Set Status="6;Wachten op 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;Wachtend op picking;"_$$TranslateMag($P(^ORDW("D",CONSNr,"D",ORDNr,OLUNr),"\",8)) } If (Status="") && (PickStatus="") { Set Status="8;Wachtend op picking activatie" } } Else { Set Status="6;Wachten op doorsturen" } } Quit Status TranslateMag(MagCode) Quit:MagCode="U" "Ugly" Quit:MagCode="O" "Orgalux" Quit:MagCode="A" "T/A" Quit:MagCode="H" "Halux" Quit:MagCode?1(1"E",1N) "Auto" 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" 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