1 APPS.MAG.UglyPickingService 0 Deze moet overschreven worden en mag geen super aanroepen, anders krijg je een framestack error. 1 1 %Status BonNr:%Integer 1 BonNr:%Integer APPS.MAG.UGLYPicking.dto.Bon DeviceNaam:%String MagazijnID:APPS.MAG.UGLYPicking.enu.Magazijn APPS.MAG.UGLYPicking.dto.Bon MagazijnID:APPS.MAG.UGLYPicking.enu.Magazijn APPS.MAG.UGLYPicking.dto.Bonnen BonNr:%Integer 1 APPS.MAG.UGLYPicking.dto.Bon APPS.MAG.UGLYPicking.dto.Magazijnen APPS.MAG.UGLYPicking.dto.Sessies BonNr:%String,ProductID:%String,PalletID:%String APPS.MAG.UGLYPicking.dto.PalletPickingOpdracht 1 { set AantalInVerpakking = rsVerpakkingen.Get("GrootVerpakking") set dtoInhoud = ..BuildInhoud(AantalInVerpakking,.AantalTePicken,.AantalResterend) set dtoPalletPickingOpdracht.GrootVerpakking = dtoInhoud } if rsVerpakkingen.Get("NormaleVerpakking")>1 { set AantalInVerpakking = rsVerpakkingen.Get("NormaleVerpakking") set dtoInhoud = ..BuildInhoud(AantalInVerpakking,.AantalTePicken,.AantalResterend) set dtoPalletPickingOpdracht.NormaalVerpakking = dtoInhoud } } set dtoInhoud=..BuildInhoud(1,.AantalTePicken,.AantalResterend) set dtoPalletPickingOpdracht.StukVerpakking = dtoInhoud quit dtoPalletPickingOpdracht ]]> BonNr:%String,ProductID:%String,PalletID:%String 1 %String AantalInVerpakking:%Integer,AantalTePicken:%Integer,AantalResterend:%Integer 1 APPS.MAG.UGLYPicking.dto.Inhoud BonNr:%Integer,MagazijnID:APPS.MAG.UGLYPicking.enu.Magazijn APPS.MAG.UGLYPicking.dto.ProductLijnen Aantal:%Integer,ProductID:%Integer,MagazijnID:APPS.MAG.UGLYPicking.enu.Magazijn APPS.MAG.UGLYPicking.dto.ProductLijn Sessie:APPS.MAG.UGLYPicking.dto.Sessie %Status ProductLijn:APPS.MAG.UGLYPicking.dto.ProductLijn %Status ProductLijn:APPS.MAG.UGLYPicking.dto.ProductLijn,NieuwReservatieAantal:%Integer %Status BonNr:%Integer BonNr:%Integer,UitstelOptie:APPS.MAG.UGLYPicking.enu.UitstelOptie %TimeStamp GepickedProduct:APPS.MAG.UGLYPicking.dto.GepickedProduct APPS.MAG.UGLYPicking.dto.PickingResultaat PalletReservatie.Inventory.QtyPcs { do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.InvalidInputException).%New("Het te picken aantal ("_AantalTePicken_") is nu groter dan het aantal beschikbaar op de pallet ("_PalletResObj.Inventory.QtyPcs_").")) } ;Pallet volledig picken? If PalletReservatie.Inventory.QtyPcs-AantalTePicken=0 { ;Set:('..IgnoreCCWhenFullPick) dtoPickingResultaat.CycleCountUitvoeren=1 ;Indien Ignore-flag niet op 0->C/C triggeren } ;do PalletReservatie.%Close() set PalletReservatie = "" if GepickedProduct.Charges.Count() > 0 { ;$$$WriteToLog("*** RegisterORDWChargeTrace ***") set itCharges = ##class(TECH.ListIterator).%New(GepickedProduct.Charges) set errRegisterCharges = "" while itCharges.HasNext() && '$length(errRegisterCharges) { set ChargeInfo = itCharges.Next() ;$$$WriteToLog("- ConsNr: "_..ConsNr_" - Magazijn: "_..Magazijn_" - ProdNr: "_..ProductNr_" - Qty: "_ChargeQty_" - ChargeID: "_ChargeID) set errRegisterCharges = ##class(BL.ProdHist.ChargeTrace).RegisterORDWChargeTrace(GepickedProduct.BonNr,GepickedProduct.Magazijn,GepickProduct.ProductID,ChargeInfo.Aantal,ChargeInfo.ChargeID,.varlbAssocChargeAantal) ;$$$WriteToLog(" ChargeTraceAantalIDs => "_$$LCVT^vhLib(varlbAssocChargeAantal)) } if $length(errRegisterCharges) { do dtoPickingResultaat.Waarschuwingen.Insert("Fout tijdens vastleggen ChargeIDs: "_errRegisterCharges_".") } else { ;$$$WriteToLog("RegisterChargeTrace success") } } set errCommitReservation=##class(Flow.OrderWMS.PalletReservatie).CommitReservation(PalletReservatieID) if $length(errCommitReservation) { do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.InvalidInputException).%New(errCommitReservation)) } ;Mogelijk is AantalTePicken <> OrigAantal omdat met de mogelijkheid heeft het aantal te wijzigen ;in deze form, om de reservatie dan correct weg te halen moet het originele aantal worden ;opgegeven. Stel QtyOrig=30, dan is QtyOrigRes=30, u verandert het aantal in 10. U drukt op de ;button 'klaar'. Deze zal een reservatie van slechts 10 weghalen indien u niet met CommitPicking ;het reservatie-aantal opgeeft. Dan neemt deze gewoon de nieuwe Qty=10. Dwz dat er nog 20 gereserveerd ;blijven, terwijl deze helemaal ter beschikking zijn van de gebruiker. Dus wij geven OrigAantal (=30) ;mee aan CommitPicking: set errCommitPicking=##class(EWMS.Inventory).CommitPicking(InventoryID,LocationsID,AantalTePicken,OrigAantal,GepickedProduct.BonNr) if $length(errCommitPicking) { do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.InvalidInputException).%New(errCommitPicking)) } ; Afdrukken van etiket in dien nod ;Do:(..AskForPrintPalletEtiket) ..PrintPalletEtiket(..ConsNr,1,..Magazijn) quit dtoPickingResultaat ]]> BonNr:%Integer %Boolean 1 APPS.MAG.UGLYPicking.impl.Sessie