serial UglyPickingCNTs,KeyCodesCNTs,BL.Derde.Kennis,BL.Derde.KlantSpecifiek Default %Library.TMFormClass 0 EH.Makova.EventCtrlr %Library.TMForm %Library.Boolean 0 %Library.String %Library.String "(onbekend)" %Library.String 1 %Library.String 1 %Library.String 1 %Library.String 1 %TMButton %TMButton %Library.String $$$NULLOREF %Library.List $LB("HALUX","ORGALUX","UGLY","LANG","TRANSFER") %TMLabel %TMShape initvalue:%String cache 0 %Status document literal cache 0 document literal cache 0 document literal Args:%String cache 0 document literal cache 0 document literal Msg:EH.Lib.Msg cache 0 document literal ConsNr,Magazijn:%Library.String cache 0 %Library.Boolean document literal HET ORDER KOMT IN GEEN ENKEL MAGAZIJN MEER VOOR . If MagazijnCnt=0 Do .. New ExtraInfo,EWMSStatus,VerzendWijze,HoofdingObj .. Set HoofdingObj=##class(Flow.OrderWMS.Hoofding).%OpenId(ConsNr) .. If HoofdingObj=$$$NULLOREF Do ... Set VerzendWijze="de verzendwijze is onbekend: kan object met Id '"_ConsNr_"' niet openen" ... Set ExtraInfo="Klant: (onbekend)." .. Else Do ... Do ..ShowKennisAnkers(HoofdingObj.Klant.Nummer) ... Set VerzendWijze=HoofdingObj.VerzendWijze ... If $D(^RES("KLANT","PI","VERZENDWIJZE","D",VerzendWijze)) Do .... Set VerzendWijze="de verzendwijze is "_$P(^RES("KLANT","PI","VERZENDWIJZE","D",VerzendWijze),"`",2) ... Else Do .... Set VerzendWijze="de verzendwijze '"_VerzendWijze_"' kan niet vertaald worden" ... Set ExtraInfo="Klant: "_$S($IsObject(HoofdingObj.Klant):HoofdingObj.Klant.Naam,1:"(onbekend)")_$S(Magazijn="ORGALUX":", Orgalux.",1:".")_$C(13,10,13,10) ... Do HoofdingObj.%Close() .. Set EWMSStatus=##class(BL.MB.UGLYPicking.PalletPick).GetEWMSStatus(ConsNr,$LB(Magazijn)) .. Set:(EWMSStatus'="") EWMSStatus=EWMSStatus_$C(13,10,13,10) .. ;Do WL^vhDBG(ExtraInfo_EWMSStatus_"Alle lijnen van order '"_ConsNr_"' zijn gepicked: "_$ZCVT(VerzendWijze,"L")_".") .. Do MApplication.AddToAppLog("Order done: "_ConsNr) .. Do pdaMsgBox^vhVisual(..Form.Caption,ExtraInfo_EWMSStatus_"Alle lijnen van order '"_ConsNr_"' zijn gepicked: "_$ZCVT(VerzendWijze,"L")_".",$$$MBICONINFORMATION) . ;COUNT>0 -> HET ORDER KOMT NOG IN 1 OF MEERDERE MAGAZIJNEN VOOR - GEEF EEN TUSSENBOODSCHAP . Else Do .. New EWMSStatus .. Set EWMSStatus=##class(BL.MB.UGLYPicking.PalletPick).GetEWMSStatus(ConsNr,$LB(Magazijn)) .. If EWMSStatus'="" Do ... Set Continue=($$pdaMsgBox^vhVisual(..Form.Caption,EWMSStatus_$C(13,10,13,10)_"Doorgaan met dit order?",$$$MBICONQUESTION,1)=$$$mrOk) Quit Continue ]]> ConsNr,Magazijn:%Library.String cache 0 document literal 1 Do ;komt voor in meerdere magazijnen, toon magazijnen... .. Do ..dCOMPWRITESubLijnen(ConsNr) . Else Do .. Do:(..dCOMPWRITEOrders()=0) ..Form.Close() Else Do . Do:(..dCOMPWRITEOrders()=0) ..Form.Close() Quit ]]> DueOut:%String cache 0 %Library.String document literal 0) "V" New DueTijd,VandaagTijd Set VandaagTijd=$P($H,",",2) Set DueTijd=$P(DueOut,",",2) Quit:(DueTijd initvalue:%String cache 0 MApplication document literal initvalue:%String cache 0 %Library.Status document literal OnClickMethod:%Library.List cache 0 document literal Info:%Library.String="" cache 0 document literal KlantNr:%String cache 0 document literal Args:%String cache 0 document literal afsluiten Else Do . Set ExitForm=1 Do:(ExitForm) ..Form.Close() ;End of user code s Args=$lb(Sender) q ]]> Args:%String cache 0 document literal Args:%String cache 0 document literal Args:%String cache 0 document literal Args:%String cache 0 document literal geen stuff meer in dat magazijn->niks doen Quit:(Button.Enabled="False") New frmOrderList Set frmOrderList=##class(UI.MB.UGLYPicking.dlgOrderListDeliverySelection).%New($LB(%this.Form.Address,0)) Set frmOrderList.FilterMagazijn=Sender.Tag Quit:(frmOrderList.dCOMPWRITEOrders()=0) Quit:(frmOrderList.Form.ShowModal()=$$$mrCancel) ;End of user code s Args=$lb(Sender) q ]]> ViaConsNr:%Library.String="" cache 0 %Library.Integer document literal ^UGLYMAXLinesPickedCnt Do Quit 0 . Kill ^UGLYOrderPick("ACTIVE",$J) . $$$UIWriteToLog("=== UGLY Picking closed: automatic ===") . New CmdLine . Set CmdLine=""""_MApplication.ExeName()_""" -a"_$ZU(110)_" -p7200 -n"_$ZU(5)_" ""-gUGLY Picking"" -u~"_..UserId_" -w"_..UserId . Do MApplication.Execute(CmdLine) . Do MApplication.Terminate() If (ViaConsNr'="") && '##class(Flow.OrderWMS.Hoofding).%ExistsId(ViaConsNr) Do Quit 0 . Do pdaMsgBox^vhVisual(..Form.Caption,"Het opgegeven order "_ViaConsNr_" bestaat niet.",$$$MBICONINFORMATION) ; --- Initialisation --- Set ..Form.Caption="Orders - selectie" Set ..InLijnMode=0 Set ..btnCancel.Caption="&ESC" Set ..btnCancel.Enabled="False" Set ..btnViaOrder.Visible="True" Set ..btnViaOrder.Enabled="False" Do ..SetExtraInfo("Even geduld...") Set MApplication.ScreenCursor=$$$crHourGlass ; --- INIT aOrder --- Kill ..aOrder New MagazijnLoop,Magazijn For MagazijnLoop=1:1:$LL(..lbMagazijnen) Do . Set Magazijn=$LI(..lbMagazijnen,MagazijnLoop) . Set ..aOrder(Magazijn,$$$moAantal)=0 . Set ..aOrder(Magazijn,$$$moOldestDueOut)=0 . Set ..aOrder(Magazijn,$$$moOldestBOPicking)=0 . Set ..aOrder(Magazijn,$$$moUrgentie)=0 . Set ..aOrder(Magazijn,$$$moAfhaling)=0 . Set ..aOrder(Magazijn,$$$moConsNr)=0 . Set ..aOrder(Magazijn,$$$moMultipleMagazijn)=0 ; --- Reset MagazijnControls --- Do ..ResetButtonArray($LB(%this,"btnORDERMagazijnClick")) ;OnClick event van magazijn-buttons koppelen ; --- Openstaande orders ophalen --- ; - Sortering bepalen ; - Aantal magazijnen waarover order verdeeld is achterhalen... New RS,Query Set Query="BL.MB.UGLYPicking.OrderSel:QOpenstaandePerMag" Set RS=##class(%ResultSet).%New(Query) If RS=$$$NULLOREF Do Quit 0 . Do pdaMsgBox^vhVisual(..Form.Caption,"Kan de query '"_Query_"' niet openen.",$$$MBICONERROR) New ExecStatus Set ExecStatus=RS.Execute() If $$$ISERR(ExecStatus) Do Quit 0 . Do pdaMsgBox^vhVisual(..Form.Caption,"Kan de query '"_Query_"' niet uitvoeren: "_$$ParseStatus^vhLib(ExecStatus),$$$MBICONERROR) ;Query doorlopen Kill ..aMagazijnenForOrder New ConsNr,Magazijn,tmpOldestDueOut,LockedConsNrs,InvalidMags Set LockedConsNrs="" Set InvalidMags="" For Quit:'RS.Next() Do . Set ConsNr=RS.Get("ConsolidatieNr") . Quit:((ViaConsNr'="") && (ViaConsNr'=ConsNr)) . If $$IsLocked^vhLib("^UGLYOrderPick("_ConsNr_")") || ##class(APPS.MAG.UglyPickingService).%New().IsBonInGebruik(ConsNr) Do Quit .. Set:('$LF(LockedConsNrs,ConsNr)) LockedConsNrs=LockedConsNrs_$LB(ConsNr) . Set Magazijn=RS.Get("Magazijn") . If '$LF(..lbMagazijnen,Magazijn) Do Quit .. Set InvalidMags=InvalidMags_$C(13,10)_ConsNr_": "_Magazijn_"." . Set ..aOrder(Magazijn,$$$moAantal)=..aOrder(Magazijn,$$$moAantal)+1 ;Was reeds ge-init. op 0, dus geen $G vereist . If $D(..aMagazijnenForOrder(ConsNr)) Do .. Quit:($LF(..aMagazijnenForOrder(ConsNr),Magazijn)) ;Magazijn reeds in lijst .. Set ..aMagazijnenForOrder(ConsNr)=..aMagazijnenForOrder(ConsNr)_$LB(Magazijn) ;Wordt gebruikt voor het achterhalen van een order verdeeld over meerdere magazijnen . Else Do .. Set ..aMagazijnenForOrder(ConsNr)=$LB(Magazijn) . Set:(..GetShortDueOut(RS.Get("Tijd"))=0)&&(..aOrder(Magazijn,$$$moUrgentie)<2) ..aOrder(Magazijn,$$$moUrgentie)=$S(RS.Get("KlantNr")=$$$KlantKeller:2,1:1) ; bij Keller wordt DRINGEND -> SUPERSPOED ; . Set:(RS.Get("VerzendWijze")?1(1"AFH",1"AF".E)) ..aOrder(Magazijn,$$$moAfhaling)=1 . If ..aOrder(Magazijn,$$$moConsNr)=0 Do Quit ;EERSTE MAAL GEGEVENS INVULLEN (we moeten minima zoeken) .. Set ..aOrder(Magazijn,$$$moOldestDueOut)=$$HToNum^vhLib(RS.Get("Tijd")) .. Set ..aOrder(Magazijn,$$$moOldestBOPicking)=$$HToNum^vhLib(RS.Get("BeginPicking")) .. Set ..aOrder(Magazijn,$$$moConsNr)=ConsNr . Set tmpOldestDueOut=$$HToNum^vhLib(RS.Get("Tijd")) . If tmpOldestDueOut<..aOrder(Magazijn,$$$moOldestDueOut) Do .. Set ..aOrder(Magazijn,$$$moOldestDueOut)=tmpOldestDueOut .. Set ..aOrder(Magazijn,$$$moOldestBOPicking)=$$HToNum^vhLib(RS.Get("BeginPicking")) .. Set ..aOrder(Magazijn,$$$moConsNr)=ConsNr . Else If tmpOldestDueOut=..aOrder(Magazijn,$$$moOldestDueOut) Do .. If $$HToNum^vhLib(RS.Get("BeginPicking"))<..aOrder(Magazijn,$$$moOldestBOPicking) Do ... Set ..aOrder(Magazijn,$$$moOldestBOPicking)=$$HToNum^vhLib(RS.Get("BeginPicking")) ... Set ..aOrder(Magazijn,$$$moConsNr)=ConsNr Do RS.%Close() If InvalidMags'="" Do . Do pdaMsgBox^vhVisual(..Form.Caption,"Niet te verwerken orders in magazijnen:"_$C(13,10)_InvalidMags,$$$MBICONERROR) ; --- Interface aanpassen aan verkregen gegevens --- ; OrderCnt kan bijv. 4 zijn, ondanks het feit dat er slechts één ordernr is: ; Het order komt dan voor in 4 verschillende magazijnen New OrderCnt,thisOrderCnt Set OrderCnt=0 For MagazijnLoop=1:1:$LL(..lbMagazijnen) Do . Set Magazijn=$LI(..lbMagazijnen,MagazijnLoop) . Set thisOrderCnt=..aOrder(Magazijn,$$$moAantal) . If thisOrderCnt'=0 Do .. Set OrderCnt=OrderCnt+thisOrderCnt .. Set ..aMagazijnCtrls(Magazijn,$$$mcAantal).Caption=thisOrderCnt_" order"_$S(thisOrderCnt=1:"",1:"s") .. Set ..aMagazijnCtrls(Magazijn,$$$mcInfo).Caption=$S(..aOrder(Magazijn,$$$moUrgentie)=2:"Superspoed",..aOrder(Magazijn,$$$moAfhaling):"Afhaling",..aOrder(Magazijn,$$$moUrgentie):"Dringend",1:"") .. Set ..aMagazijnCtrls(Magazijn,$$$mcButton).Enabled="True" .. Set ConsNr=..aOrder(Magazijn,$$$moConsNr) .. Set ..aMagazijnCtrls(Magazijn,$$$mcButton).Tag=ConsNr ; --- finalisation --- Set ..btnCancel.Enabled="True" Set ..btnViaOrder.Enabled="True" Set MApplication.ScreenCursor=$$$crDefault ; --- final msgs --- If LockedConsNrs'="" Do . New LockedConsNrsCnt . Set LockedConsNrsCnt=$LL(LockedConsNrs) . Do ..SetExtraInfo(LockedConsNrsCnt_" order"_$S(LockedConsNrsCnt=1:" is",1:"s zijn")_" bezet") Else Do . Do ..SetExtraInfo() If OrderCnt=0 Do Quit 0 . New Msg . If LockedConsNrs="" Do .. If ViaConsNr="" Do ... Set Msg="Alle orders zijn verwerkt." .. Else Do ... Set Msg="Het opgegeven order "_ViaConsNr_" bevat geen lijnen om te verwerken met dit programma." . Else Do .. New LockedConsNrsCnt .. Set LockedConsNrsCnt=$LL(LockedConsNrs) .. Set Msg="Er zijn geen orders meer ter beschikking."_$C(13,10,13,10) .. Set Msg=Msg_"Momenteel "_$S(LockedConsNrsCnt=1:"is",1:"zijn")_" er nog "_LockedConsNrsCnt_" in verwerking: "_$$ListToPieces^vhLib(LockedConsNrs,", ")_"." . Do pdaMsgBox^vhVisual(..Form.Caption,Msg,$$$MBICONINFORMATION) Else Do . Set:(ViaConsNr'="") ..Form.Caption="Orders - selectie - "_$$CEL^vhFMT(0,"ViaConsNr","N","L",8,0,"") Quit OrderCnt ]]> ConsNr:%Library.String cache 0 %Library.Integer document literal %Library.CacheSerialState list "%Library.TMFormClass" Address Form EventCtrlr Shape1 btnCancel btnSelect lblConsNr lblDueOut lvOrders btnFilter ListViewMode Button1 Button2 Button3 Button4 Label1 btnHalux btnLanggoed btnOrgalux btnUgly Label2 Label3 Label4 Label5 Label6 Label7 Label8 btnAfgewerkte lblHaluxAantalOrders lblHaluxUrgentie lblLanggoedAantalOrders lblLanggoedUrgentie lblOrgaluxAantalOrders lblOrgaluxUrgentie lblUglyAantalOrders lblUglyUrgentie ConsNrsToIgnore UserId lblHaluxAantal lblLanggoedAantal lblOrgaluxAantal lblUglyAantal lblHaluxExtra lblLanggoedExtra lblOrgaluxExtra lblUglyExtra shBack InSubLijnMode Magazijnen lbMagazijnen InLijnMode lblExtraInfo btnViaOrder frmPickList MagazijnClicked VerzendwijzeClicked