#Include %occInclude Go() New LocID,LLocM,LocG,LocX,LocY,LocZ,QtyPcs,QtyRes,ProductNr,Sectie,Batch,Quality,Owner Kill %msg,SQLCODE #Define DoNotReset 1 &sql(DECLARE crPPP CURSOR FOR SELECT Inv.loc_id,Loc.loc_m,Loc.loc_g,Loc.loc_x,Loc.loc_y,Loc.loc_z,Inv.qty_pcs,Inv.qty_res,Inv.product,Inv.sectie,Inv.batch,Inv.quality,Inv.owner INTO :LocID,LLocM,LocG,LocX,LocY,LocZ,QtyPcs,QtyRes,ProductNr,Sectie,Batch,Quality,Owner FROM EWMS.Inventory AS Inv, EWMS.Locations AS Loc WHERE (Inv.qty_res<>0) AND (Inv.loc_id=Loc.loc_id) AND (Loc.loc_m>=1) AND (Loc.loc_m<=4)) &sql(OPEN crPPP) Quit:((SQLCODE<0) || ($L($G(%msg)))) "Error: "_SQLCODE_", "_%msg //ERROR? ;Alles uit query tijdelijk bewaren in array (er traden fouten op wanneer nog andere zaken binnenin deze ;query werden uitgevoerd, zaken die waarschijnlijk ook met gelijke variabelen werken (%msg, SQLCODE) New FatalErr,PurgeCnt,aReservation,InvID,ConsNrs Set FatalErr=0 Set PurgeCnt=0 For &sql(FETCH crPPP) Quit:(SQLCODE || FatalErr) Do . Set:((SQLCODE<0) || ($L($G(%msg)))) FatalErr=1 //Foutje? . Quit:(LLocM=1) . Set InvID=##class(EWMS.Inventory).ComposeID(LocID,Sectie,ProductNr,Batch,Quality,Owner) . ;plaats reeds html data in array nu we de velden van de query nog ter beschikking hebben . Set ConsNrs=$$GetConsNrsViaLocIDAndProd(LocID,+ProductNr) . Set aReservation(InvID)=""_LocID_""_$J(LLocM,4)_""_$J(LocG,4)_""_$J(LocX,4)_""_$J(LocY,4)_""_$J(LocZ,4)_""_$J(+ProductNr,7)_""_##class(Prod.Product).GetPropViaNr(+ProductNr,"KortTekst")_""_$J(QtyRes,7,0)_""_$J(QtyPcs,7,0)_""_ConsNrs_"" . Set aReservation(InvID,$$$DoNotReset)=(LLocM=1) . Set PurgeCnt=PurgeCnt+1 Quit:(FatalErr) "Error: "_SQLCODE_", "_%msg //ERROR? &sql(CLOSE crPPP) ;Sluiten indien query geen resultaten heeft Quit:(PurgeCnt=0) "" ;HTML mail opstellen met daarin palletten waarvan de reservatie <> 0 New MailBody,StyleTable Set StyleTable="border-collapse:collapse; border:solid 1px;" Set MailBody="" Set MailBody=MailBody_"" New ResetQtyResStatus,InvID Set InvID="" For Set InvID=$O(aReservation(InvID)) Quit:(InvID="") Do . Set MailBody=MailBody_$C(13,10)_aReservation(InvID) //bevat HTML inhoud, daarnet opgebouwd . If aReservation(InvID,$$$DoNotReset) Do .. Set MailBody=MailBody_"" . Else Do .. Set ResetQtyResStatus="" .. If ResetQtyResStatus="" Do ... Set MailBody=MailBody_"" .. Else Do ... Set MailBody=MailBody_"" Set MailBody=MailBody_"
LocIDLocMLocGLocXLocYLocZProductKorttekstQtyResQtyPcsConsNrsRemove status
Unchanged
Ok
"_ResetQtyResStatus_"
" Do SendMiniMail^vhLib("UGLY Picking ",$LB("tr@vanhoecke.be"),"UGLY Picking: reservaties verwijderd.",MailBody,0,1) Quit "" GetConsNrsViaLocIDAndProd(LocID,ProdNr) New RS,Query Set Query="Flow.OrderWMS.PalletReservatie:GetReservatiesViaPallIDAndProd" Set RS=##class(%ResultSet).%New(Query) Quit:(RS=$$$NULLOREF) "Kan geen nieuwe instantie van de query '"_Query_"' maken." New tmpStatus Set tmpStatus=RS.Execute(LocID,ProdNr) Quit:($$$ISERR(tmpStatus)) "Fout bij het uitvoeren van de query '"_Query_"': "_$C(13,10)_$$ParseStatus^vhLib(tmpStatus) New ConsStr,ConsNr Set ConsStr="" For Quit:('RS.Next()) Do . Set ConsNr=RS.Get("ConsolidatieNr") . If $$IsLocked^vhLib("^UGLYOrderPick("_ConsNr_")") Do .. Set ConsNr="+"_$$FormatNumber^vhLib(".",ConsNr) . Else Do //Indien locked: nu actief, niet meetellen .. Set ConsNr=$$FormatNumber^vhLib(".",ConsNr) . Set ConsStr=$S(ConsStr="":"",1:ConsStr_",")_ConsNr // '.': Thousand Sep Quit ConsStr