serial UglyPickingCNTs,KeyCodesCNTs,BL.Derde.Kennis,BL.Derde.KlantSpecifiek Default %Library.TMFormClass 0 %Library.String EH.Makova.EventCtrlr %Library.TMForm %Library.Boolean 0 %Library.String %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") %Library.List $LB("DD1","DI1","DI2 + OD","EXPORT + URGENT","REST") %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 geen stuff meer in dat magazijn->niks doen Quit:(Button.Enabled="False") //Geklikt op orderlijst en niet magazijn New frmOrderList Set frmOrderList=##class(UI.MB.UGLYPicking.dlgOrderList).%New($LB(%this.Form.Address,0)) Set frmOrderList.FilterMagazijn=Sender.Tag Quit:(frmOrderList.dCOMPWRITElbOrders()=0) Quit:(frmOrderList.Form.ShowModal()=$$$mrCancel) Do ..dCOMPWRITEOrders(frmOrderList.outConsNr) ;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="Verzendwijze - selectie" Set ..InLijnMode=0 Set ..btnCancel.Caption="&ESC" Set ..btnCancel.Enabled="False" ;Set ..btnViaOrder.Visible="False" ;Set ..btnViaOrder.Enabled="False" ;Do ..SetExtraInfo("Even geduld...") Set MApplication.ScreenCursor=$$$crHourGlass ; --- INIT aOrder --- Kill ..aOrder New MagazijnLoop,Magazijn For MagazijnLoop=1:1:$LL(..lbVerzendwijzes) Do . Set Magazijn=$LI(..lbVerzendwijzes,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,"btnORDERVerzendwijzeClick")) ;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,Verzendwijze,CheckMagazijn,Magazijn Set LockedConsNrs="" Set InvalidMags="" Set CheckMagazijn=(..FilterMagazijn'="") For Quit:'RS.Next() Do . Set ConsNr=RS.Get("ConsolidatieNr") . Set Verzendwijze=RS.Get("VerzendWijze") . Set Magazijn=RS.Get("Magazijn") . Quit:(CheckMagazijn && (Magazijn'=..FilterMagazijn)) . Set:(##class(TECH.StringUtils).Equals(Verzendwijze, "HD", "HD1", "HD2", "HD3", "HD4", "HD5", "HD6", "HD7", "HW", "HW3", "DA", "DA1", "DA2", "DA3", "DA4", "DA5", "DA6", "DA7", "DA8", "DA9", "DAX", "BS", "BS3", "DO", "DO3", "DO4", "U01", "U02", "U03", "U04", "U05", "U06", "U07", "U08", "U09", "U10", "U11", "E01", "E02", "E03", "E04", "E05", "E06", "E07", "E08", "E09", "E10", "E11", "E12", "EX", "EXU", "SFS", "T01", "T02", "T03", "T04", "T05", "T06", "T07", "T08", "HA1", "HA2", "HA3", "HA4", "SNT")) Verzendwijze = "EXPORT + URGENT" . Set:(##class(TECH.StringUtils).Equals(Verzendwijze,"DI2", "OD", "OD1", "OD2", "OD3", "OD4", "OD5")) Verzendwijze = "DI2 + OD" . Set:(##class(TECH.StringUtils).Equals(Verzendwijze,"DD1")) Verzendwijze = "DD1" . Set:(##class(TECH.StringUtils).Equals(Verzendwijze,"DI1")) Verzendwijze = "DI1" . If '##class(TECH.ListUtils).Contains(##class(TECH.ListUtils).ListbuildToList(..lbVerzendwijzes), Verzendwijze) Do .. Set Verzendwijze="REST" . Set ..aOrder(Verzendwijze,$$$moAantal)=(..aOrder(Verzendwijze,$$$moAantal)+1) . Set:(..GetShortDueOut(RS.Get("Tijd"))=0)&&(..aOrder(Verzendwijze,$$$moUrgentie)<2) ..aOrder(Verzendwijze,$$$moUrgentie)=$S(RS.Get("KlantNr")=$$$KlantKeller:2,1:1) ; bij Keller wordt DRINGEND -> SUPERSPOED ; /*. 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 . 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:(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(..lbVerzendwijzes) Do . Set Magazijn=$LI(..lbVerzendwijzes,MagazijnLoop) . Set thisOrderCnt=..aOrder(Magazijn,$$$moAantal) . If thisOrderCnt'=0 Do .. Set OrderCnt=OrderCnt+thisOrderCnt .. Set ..aVerzendwijzeCtrls(Magazijn,$$$mcAantal).Caption=thisOrderCnt_" order"_$S(thisOrderCnt=1:"",1:"s") .. Set ..aVerzendwijzeCtrls(Magazijn,$$$mcInfo).Caption=$S(..aOrder(Magazijn,$$$moUrgentie)=2:"Superspoed",..aOrder(Magazijn,$$$moAfhaling):"Afhaling",..aOrder(Magazijn,$$$moUrgentie):"Dringend",1:"") //.. Set ..aVerzendwijzeCtrls(Magazijn,$$$mcButton).Enabled="True" //.. Set ConsNr=..aOrder(Magazijn,$$$moConsNr) //.. Set ..aVerzendwijzeCtrls(Magazijn,$$$mcButton).Tag=ConsNr ; --- finalisation --- Set ..btnCancel.Enabled="True" ;Set ..btnViaOrder.Enabled="False" 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,"") */ Set ^testPVR(1) = OrderCnt Quit OrderCnt ]]> ConsNr:%Library.String cache 0 %Library.Integer document literal %Library.CacheSerialState "%Library.TMFormClass" Address Form EventCtrlr InLijnMode MagazijnClicked UserId btnCancel btnViaOrder frmPickList lbMagazijnen lbVerzendwijzes lblExtraInfo shBack VerzendwijzeClicked FilterMagazijn