EWORDF2 ;E'WMS Orderconsolidatie feedback [ 09/02/2003 2:12 PM ] Q FORCE(CONSNr) New SoftV Set SoftV="" For Set SoftV=$O(^ORDW("D",CONSNr,"S",SoftV)) Quit:SoftV="" Do . Quit:$P(^ORDW("D",CONSNr,"S",SoftV),D,1)'="P" ; Elk SoftVerwerking moet PARTIEEL zijn. . Do SENDC02(CONSNr,SoftV) ; dummy C02 record opsturen . Do WARN^EWLOG($T(FORCE2)) ; forced status toekennen Set:$P(^ORDW("D",CONSNr),D,21)="" $P(^ORDW("D",CONSNr),D,21)="f" Quit SENDC02(CONSNr,SoftV) ; Simulatie C02 record New C ; Dummy C02 Set C="C02" Set C("CONSNR")=CONSNr,C("ORDNR")=0,C("OLNR")=0 Set C("DATUM")=$H,C("STATUS")="POK" Set C("SOFTV")=SoftV Do PICKEND^EWORDF(.C) Quit COMPLETE(CONSNr) New C,TeDoen,ORDNr,OLNr,OLUNr,SOLNr,ConsRec ; Completeer van een order waar alle orderlijnen zijn afgewerkt door het versturen van dummy C02 en C04 berichten Set ConsRec=^ORDW("D",CONSNr) Quit:$P(ConsRec,D,20)'="P" ; Alleen order op status = P Quit:$P(ConsRec,D,21)'="" ; Heeft een errorstatus Set (ORDNr,OLUNr,SOLNr)="" Set TeDoen=0 ; Bons waarvan nog moet gepickt worden? For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do ..For Set SOLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)) Quit:SOLNr="" Do ...Set Rec=^(SOLNr) ...; Controle of op deze bon nog iets te doen is ...Set:'TeDoen TeDoen=($P(Rec,D,2)="W") ; Quit:TeDoen ; Er is nog te doen dus nog niet afsluiten Do FORCE(CONSNr) Do ERROR^EWLOG($T(COMPL)) Quit CONSEND(C) ; Feedback van E'WMS betreffende het afsluiten van consolidatie ; Opgeroepen door EWRECR ; C wordt opgeroepen via .Local ; Voor een consolidatie kunnen er meerdere CONSEND doorgestuurd worden, 1 per palet. ; Wordt niet meer gebruikt - april 2003 Quit OPBON(CONSNr) New ORDNr,OLUNr,SOLNr,CONSRec,ORDStat,SOLRec If CONSNr,$D(^ORDW("D",CONSNr)) Else Do ERROR^EWLOG($T(NOCONS)) Quit Lock +^ORDW("D",CONSNr) Set CONSRec=^ORDW("D",CONSNr) If $G(^EWLOG("DEBUG"))=2 Write !,@FMTB,"C04:",CONSNr,@FMTb,!,CONSRec Set ORDStat=$P(CONSRec,D,20) If ORDStat="X"!(ORDStat="B") ; Order door Admin afgesloten Else Do .Set $P(CONSRec,D,20)="C" Set ^ORDW("D",CONSNr)=CONSRec Set (ORDNr,OLUNr,SOLNr)="" If $G(^EWLOG("DEBUG"))=2 Write !,CONSRec Set CONSRec=^ORDW("D",CONSNr) If $P(CONSRec,D,20)="C",$P(CONSRec,D,21)="" Do ; Volledig geconsolideerd en geen andere problemen .Set ^ORDW("BON",CONSNr)=$H Lock -^ORDW("D",CONSNr) Quit CHKBON ; Geconsolideerde orders die moeten op bon gezet worden ; dit na New CONSNr,CONSRec,DiffTime Set CONSNr="" For Set CONSNr=$O(^ORDW("BON",CONSNr)) Quit:CONSNr="" Do .Set CONSRec=$G(^ORDW("D",CONSNr)) .Set DiffTime=$S(("AF;EX;DD"[$E($P(CONSRec,D,2),1,2))!($P($H,",",2)>(16*60*60)):1,1:1) ; Voor afhalingen of na 16:00 onmiddellijk verwerken, anders na 3 minuten .Quit:$$DIFFTIME^vhLib.DataTypes(^ORDW("BON",CONSNr),$H)