UglyPickingCNTs 0 BL.Lib.BaseObj XXX ~tmp \ ; 1 bfrRGID:%String,bfrVolgNr:%String,UserId:%Library.String %Library.List Enkel als alle elementen in de buffer gekoppeld zijn aan dezelfde toelevering wordt dit teruggegeven 1 bfrRGID:%String,bfrVolgNr:%String %Library.String 1 bfrRGID:%String,bfrVolgNr:%String %Library.String 1 ProductNr:%String JBL opmerking : ProdIsInKOM mag weg want wordt nergens meer gebruikt, enkel doorgegeven 1 cache 0 %Library.List document literal dan is de toelevering reeds afgewerkt New Rec Set Rec=^UPRCP("B",bfrRGID,bfrVolgNr,LijnNr) Set $P(Rec,SEP,$$$bsnScanTime)=$H ;ScanTime opnieuw instellen... Set ^UPRCP("B",bfrRGID,bfrVolgNr,LijnNr)=Rec } Set:($LI(Status)>0) Status=$LB(2,"Product '"_ProductNr_"' succesvol ingescand. "_$LI(Status,2)) } ElseIf (ToeleveringID'="") && MagTotaalToeleveringRecepteren { ;Bufferlijn bestaat reeds, assoc toeleveringsnummer opgegeven, lijn op maximum scanaantal instellen New TotalQty Set TotalQty=..GetTotalQtyViaProdNr(ProductNr,ToeleveringID) Do ..SetBufferQtyDone(bfrRGID,bfrVolgNr,LijnNr,TotalQty) Do ..SetBufferAssocToelev(bfrRGID,bfrVolgNr,LijnNr,ToeleveringID) Set:($LI(Status)>0) Status=$LB(2,"Product '"_ProductNr_"' ingesteld op maximum waarde ("_TotalQty_"). "_$LI(Status,2)) }ElseIf (ToeleveringID'="") && 'MagTotaalToeleveringRecepteren{ Set Status=..INCBufferQty(bfrRGID,bfrVolgNr,LijnNr) If $LI(Status)=1 { ;Indien status=2 => dan is de toelevering reeds afgewerkt Do ..SetBufferAssocToelev(bfrRGID,bfrVolgNr,LijnNr,ToeleveringID) } } } Quit:($LI(Status)'=0) Status //--------------------------------------------------------------------------------------------- // 3. Afdalen in ^TO("IP",ProductNr), ToeleveringsNummers ophalen // OPBOUW: ^TO("IP",ProductNr,TLNr,TLUNr) //--------------------------------------------------------------------------------------------- New ErrorList,AantalToeleveringenFound,TotalQty Set AantalToeleveringenFound=0, TotalQty=0 Set ProdIsInKOM=0, ErrorList="" ; ===[ NODE 3: TLNr ]=== If ToeleveringID="" Do . New tmpStatus,TLNr . Set TLNr="" . For Set TLNr=$O(^TO("IP",ProductNr,TLNr)) Quit:(TLNr="") Do .. Set tmpStatus=..FIsToeleveringsNrAllowed(TLNr) .. Quit:($LI(tmpStatus)'=1) .. Do atbRunThroughToelev(ProductNr,TLNr,.ProdIsInKOM,.ErrorList,.TotalQty,.AantalToeleveringenFound) Else Do ;Indien TLNr opgegeven, enkel deze meetellen in bufferlijn . Do atbRunThroughToelev(ProductNr,ToeleveringID,.ProdIsInKOM,.ErrorList,.TotalQty,.AantalToeleveringenFound) New QtyDone Set QtyDone=..GetQtyDoneViaProdNr(ProductNr,,,,,ToeleveringID) If (TotalQty = QtyDone) { Quit $LB(3,"Het bestelde aantal voor de toelevering is volledig gescand.") } ;De Qty die initieel in de buffer komt te staan (zelf opgegeven, TLNr aanwezig->TotalQty, anders 1) Set StartQty=$G(StartQty) If StartQty = "" { If MagTotaalToeleveringRecepteren{ Set StartQty = TotalQty-QtyDone }Else{ Set StartQty = 1 } } Quit:(StartQty<0) $LB(-5,"Interne fout: starthoeveelheid("_StartQty_") is kleiner dan nul.") Quit:(StartQty>TotalQty) $LB(-6,"Interne fout: starthoeveelheid("_StartQty_") is groter dan aantal in toeleveringen("_TotalQty_").") Quit:(ErrorList'="") $LB(-2,ErrorList) Quit:(AantalToeleveringenFound=0) $LB(-3,"Product '"_ProductNr_"' heeft toeleveringen, maar deze kunnen niet verwerkt worden met dit programma (ongeldige leverancier(s)).") ;AllesOK: Aan buffer toevoegen New Rec,LijnNr Set Rec=ProductNr_SEP_Dossier_SEP_PalletID_SEP_Locatie_SEP_StartQty_SEP_$H_SEP_UserID_SEP_ToeleveringID Set LijnNr=..GetNewLijnNr(bfrRGID,bfrVolgNr) Set ^UPRCP("B",bfrRGID,bfrVolgNr,LijnNr)=Rec Quit $LB(1,"Product '"_ProductNr_"' succesvol toegevoegd aan buffer '"_bfrRGID_"'("_AantalToeleveringenFound_" toelevering(en)).") ;======================================================================================================== atbRunThroughToelev(ProductNr,TLNr,ProdIsInKOM,ErrorList,TotalQty,AantalToeleveringenFound) Set:('ProdIsInKOM) ProdIsInKOM=..FIsToeleveringKOM(TLNr) ; ===[ NODE 4: TLUNr ]=== New TLUNr,TLLNr,ToeleveringsQty Set TLUNr="" For Set TLUNr=$O(^TO("IP",ProductNr,TLNr,TLUNr)) Quit:(TLUNr="") Do . Set TLLNr=^TO("IP",ProductNr,TLNr,TLUNr) . Set ToeleveringsQty=..FGetToeleveringsQty(TLNr,TLLNr) . If ToeleveringsQty=-1 Do .. Set ErrorList=ErrorList_"Het bestelde aantal van toelevering '"_TLNr_"' is onbekend voor lijn "_TLUNr . Else Do .. Set TotalQty=TotalQty+ToeleveringsQty Set AantalToeleveringenFound=AantalToeleveringenFound+1 Quit ]]> 1 bfrRGID:%String,bfrVolgNr:%String 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.Boolean document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String cache 0 %Library.Boolean document literal Resultaat in aSORTEDbfr aSORTEDbfr(ChronoKey)=Rec Rec zoals ^UPRCP("B",bfrRGID,bfrVolgNr,LijnNr) 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.List document literal GetBufferStatus levert info terug omtrent de huidige bufferstatus (aantal lijnen te koppelen, nog niet gekoppeld, aantal stuks, etc) 1 1 cache 0 %Library.List document literal TotalQty) $LB(-4,"Het opgegeven aantal ("_NewQty_") is groter dan het aantal dat besteld is ("_TotalQty_").") //------------------------------------------------------------------------------------------------- // 5. Wijziging vastleggen //------------------------------------------------------------------------------------------------- ; *** NEW QTY = 0 *** => DELETE & QUIT If NewQty=0 Do Quit $LB(2,"Product '"_ProdNr_"' werd uit de buffer verwijderd.") . Kill ^UPRCP("B",bfrRGID,bfrVolgNr,bfrLijnNr) . Set BufferIsDeleted=1 ; *** NEW QTY > 0 *** Set $P(Rec,SEP,5)=NewQty Quit:('..LockToelevering(ProdNr)) $LB(-5,"De toelevering is momenteel in gebruik. Probeer later eens opnieuw.") Set ^UPRCP("B",bfrRGID,bfrVolgNr,bfrLijnNr)=Rec Do ..SetBufferTime(bfrRGID,bfrVolgNr) ;Instellen op nu=laatst gebruikt Do ..UnLockToelevering(ProdNr) Quit $LB(1,"Aantal werd succesvol aangepast ("_NewQty_"/"_TotalQty_" ingescand).") ]]> 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String,ProductNr:%Library.String,Dossier:%Library.String="" cache 0 %Library.List document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String,Locatie:%Library.String,Pallet:%Library.String cache 0 %Library.List document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,HandleOnly:%Library.Boolean=0 cache 0 %Library.List document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,DoMailOnly:%Library.Boolean=0 cache 0 %Library.List document literal Banco) New Obj,ReceptieGroep If ##class(Res.PI.ReceptieGroep).%ExistsId(bfrRGID) Do . Set Obj=##class(Res.PI.ReceptieGroep).%OpenId(bfrRGID) . If Obj=$$$NULLOREF Do Quit .. Set ReceptieGroep=bfrRGID_" (kan object niet openen)" . Set ReceptieGroep=Obj.Caption Else Do . Set ReceptieGroep=bfrRGID_" (ReceptieGroep niet gevonden)" ;E-mail versturen New EmailList,Msg Set EmailList=..GetEmailList() New Status,CloseTime Set CloseTime=$P(Rec,SEP,1) Set:(CloseTime="") CloseTime=$H ;Eventuele error opvangen Set CloseTime=$ZDT(CloseTime,2,2) Set Msg=ReceptieGroep_" receptie afgesloten door '"_UserId_"' op "_CloseTime_$S(DoMailOnly:" (mail delayed).",1:".") Set Status=1 //$$SendMiniMail^vhLib($$$SystemMail("Receptie-UGLY"),EmailList,"UGLY Receptie "_CloseTime,Msg) ;Error? If $$$ISERR(Status) Do Quit $LB(-2,$$ParseStatus^vhLib(Status)) . $$$WriteToLog("Error during sendmail: "_$$ParseStatus^vhLib(Status)) ;Success! Set Rec=^UPRCP("B",bfrRGID,bfrVolgNr) Set $P(Rec,SEP,4)=1 ;IsMailed=1 Set ^UPRCP("B",bfrRGID,bfrVolgNr)=Rec New Msg If DoMailOnly Do . Set Msg="" Else Do . Set Msg="Buffer '"_bfrRGID_"' met als VolgNr '"_bfrVolgNr_"' werd succesvol afgesloten." Set Msg=Msg_"Er is een e-mail verstuurd naar "_$$LCVT^vhLib(EmailList)_"." $$$WriteToLog("Close success.") Quit $LB(1,Msg) ]]> 1 bfrRGID:%Library.String,UserID:%Library.String cache 0 %Library.Integer document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,ProductNr:%Library.String,UserID:%Library.String cache 0 %Library.String document literal 1 cache 0 %Library.List document literal NIET NODIG -> DECREASE NAAR BOUND. 0 //------------------------------------------------------------------------------------------------- ;New TotalQty,AssocToelev ;Set AssocToelev=$P(Rec,SEP,8) ;Set TotalQty=..GetTotalQtyViaProdNr(ProdNr,AssocToelev) ;Quit:(TotalQty=-1) $LB(-3,"Fout tijdens het verkrijgen van het bestelde aantal voor product '"_ProdNr_"'.") //------------------------------------------------------------------------------------------------- // 4. MyQtyDone achterhalen //------------------------------------------------------------------------------------------------- New MyQtyDone Set MyQtyDone=$P(Rec,SEP,5) If MyQtyDone<0 Do Quit $LB(-4,"Het receptie-aantal is kleiner of gelijk aan nul. De lijn '"_bfrLijnNr_"' wordt verwijderd uit buffer '"_bfrRGID_"' met VolgNr '"_bfrVolgNr_"'.") . Do ..RemoveFromBuffer(bfrRGID,bfrVolgNr,bfrLijnNr) . Set BufferIsDeleted=1 If (MyQtyDone=1) || (MyQtyDone=0) Do Quit $LB(2,"Product '"_ProdNr_"' werd uit de buffer verwijderd.") . Do ..RemoveFromBuffer(bfrRGID,bfrVolgNr,bfrLijnNr) . Set BufferIsDeleted=1 Set $P(Rec,SEP,5)=$P(Rec,SEP,5)-1 Quit:('..LockToelevering(ProdNr)) $LB(-5,"De toelevering is momenteel in gebruik. Probeer later eens opnieuw.") Set ^UPRCP("B",bfrRGID,bfrVolgNr,bfrLijnNr)=Rec Do ..SetBufferTime(bfrRGID,bfrVolgNr) ;Instellen op nu=laatst gebruikt Do ..UnLockToelevering(ProdNr) Quit $LB(1,"Aantal werd succesvol verminderd.") ]]> 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String,DecQty:%Library.String,BufferLineIsDeleted:%Library.Boolean cache 0 document literal 1 cache 0 %Library.List document literal 1 ToeleveringsNr:%Library.String,TLLNr:%Library.String cache 0 %Library.Integer document literal 1 ToeleveringsNr:%Library.String cache 0 %Library.Boolean document literal 1 ToeleveringsNr:%Library.String cache 0 %Library.List document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.String document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.String document literal 1 cache 0 %Library.String document literal 1 expression bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String %Library.String 1 cache 0 %Library.String document literal 1 cache 0 %Library.List document literal 1 ProductNr:%Library.String cache 0 %Library.String document literal 1 ProductNr:%Library.String,ReturnString:%Library.Boolean=0 cache 0 %Library.List document literal 1 ToeleveringsNr:%Library.String cache 0 %Library.String document literal 1 bfrRGID:%Library.String,KlantNr:%Library.String cache 0 %Library.String document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.Integer document literal 1 bfrRGID:%Library.String cache 0 %Library.Integer document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 document literal 1 expression bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String 1 bfrRGID:%Library.String cache 0 document literal 1 Dossier:%Library.String cache 0 %Library.String document literal 00KALQE7 Quit $TR($J($TR(Dossier,".",""),8)," ","0") ; === OLD SCHOOL - zonder nullen === Quit $TR(Dossier,".","") ]]> de bfrExcl stuff is optioneel
indien opgegeven (RGID,VolgNr,LijnNr)
dan wordt de Qty van die bufferlijn NIET
meegerekend bij het result van deze functie
Voorbeeld:
Product Z heeft 2/10 (bfrA) en 4/10 (bfrB) specs.
Dwz in totaal 6/10.

  • GetQtyDoneViaProdNr(Z)=6

  • GetQtyDoneViaProdNr(Z,,bfrA...)=4 (6-2)

  • GetQtyDoneViaProdNr(Z,,bfrB...)=2 (6-4)

  • ]]>
    1 cache 0 %Library.Integer document literal 1) Quit QtyDone ]]>
    1 ProductNr:%Library.String,ReturnString:%Library.Boolean=0 cache 0 %Library.String document literal 1 cache 0 %Library.String document literal De MyQtyDone parameter is optioneel, indien opgegeven en UseThisTLNr is ook opgegeven, dan zal gecontroleerd worden of de toeleveringstotalqty die wordt teruggegeven nog wel mogelijk, zoniet wordt deze aangepast teruggegeven 1 ProductNr:%String,UseThisTLNr:%String="",MyQtyDone:%Integer cache 0 %Library.Integer document literal 1 ProductNr:%Library.String cache 0 %Library.List document literal 1 cache 0 %Library.List document literal TotalQty: Het receptie-aantal is groter dan het aantal besteld //-3: Fout tijdens verkrijgen van 'bestelde aantal' //-2: Lijn bestaat niet meer in buffer //-1: Buffer bestaat niet meer // 0: //SUCCESS: // 1: Succes (NB: DEZE STATUS WO GEBRUIKT IN 'ADDTOBUFFER') // 2: De receptie is reeds afgewerkt (NB: DEZE STATUS WO GEBRUIKT IN 'ADDTOBUFFER') New Status Set AllScanned=0 ;Als alles gescand is van de toelevering //------------------------------------------------------------------------------------------------- // 1. Buffer existentie controleren //------------------------------------------------------------------------------------------------- Set Status=$LB(0) ;Neutrale status If '..BufferLijnExists(bfrRGID,bfrVolgNr,bfrLijnNr) Do . If '..BufferExists(bfrRGID,bfrVolgNr) Do .. Set Status=$LB(-1,"Buffer '"_bfrRGID_"' met VolgNr '"_bfrVolgNr_"' bestaat niet meer!") . Else Do .. Set BufferIsDeleted=1 .. Set Status=$LB(-2,"Kan het aantal niet wijzigen: lijn '"_bfrLijnNr_"' bestaat niet meer in buffer '"_bfrRGID_"' met VolgNr '"_bfrVolgNr_"'!") Quit:($LI(Status)<0) Status //------------------------------------------------------------------------------------------------- // 2. ProductNr van buffer achterhalen //------------------------------------------------------------------------------------------------- New ProdNr,Rec,SEP Set SEP=..#bfrSEP Set Rec=^UPRCP("B",bfrRGID,bfrVolgNr,bfrLijnNr) Set ProdNr=$P(Rec,SEP,1) //------------------------------------------------------------------------------------------------- // 3. TotalQty van toelevering achterhalen //------------------------------------------------------------------------------------------------- New TotalQty,AssocToelev Set AssocToelev=$P(Rec,SEP,8) Set TotalQty=..GetTotalQtyViaProdNr(ProdNr,AssocToelev) Quit:(TotalQty=-1) $LB(-3,"Fout tijdens het verkrijgen van het bestelde aantal voor product '"_ProdNr_"'.") //------------------------------------------------------------------------------------------------- // 4. FullQtyDone van buffer achterhalen //------------------------------------------------------------------------------------------------- New FullQtyDone Set FullQtyDone=..GetQtyDoneViaProdNr(ProdNr,,,,,AssocToelev) //------------------------------------------------------------------------------------------------- // 5. Relatie tussen TotalQty & FullQtyDone beoordelen //------------------------------------------------------------------------------------------------- Quit:(FullQtyDone>TotalQty) $LB(-4,"Het receptie-aantal is groter dan het aantal besteld ("_(FullQtyDone)_"/"_TotalQty_")!") If (FullQtyDone+1)>TotalQty Do Quit $LB(2,"De receptie is reeds afgewerkt ("_TotalQty_"/"_TotalQty_" ingescand).") . Set AllScanned=1 Set $P(Rec,SEP,5)=$P(Rec,SEP,5)+1 Quit:('..LockToelevering(ProdNr)) $LB(-5,"De toelevering is momenteel in gebruik. Probeer later eens opnieuw.") Set ^UPRCP("B",bfrRGID,bfrVolgNr,bfrLijnNr)=Rec Do ..SetBufferTime(bfrRGID,bfrVolgNr) ;Instellen op nu=laatst gebruikt Do ..UnLockToelevering(ProdNr) Quit $LB(1,"Aantal werd succesvol vermeerderd ("_(FullQtyDone+1)_"/"_TotalQty_" ingescand).") ]]> 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.Boolean document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.Boolean document literal Geeft LijnNr terug bij overeenkomst 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,ProductNr:%Library.String,Locatie:%Library.String,PalletID:%Library.String,ToeleveringID:%String="" cache 0 %Library.Integer document literal 1 ProductNr:%Library.String cache 0 %Library.Boolean document literal 1 RGID:%String,VolgNr:%String %String 1 RGID:%String,VolgNr:%String %String 1 RGID:%String,VolgNr:%String 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.Boolean document literal 1 ProductNr:%Library.String cache 0 %Library.Boolean document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String cache 0 document literal 1 ProductNr:%Library.String cache 0 %Library.Integer document literal 1 cache 0 document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,DefaultLocatie:%Library.String,DefaultPallet:%Library.String,LocatieVast:%Library.String="",PalletVast:%Library.String="",AutoPopupAantal:%Library.Boolean=0 cache 0 document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,AutoPopupAantal:%Library.Boolean=1 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String,Qty:%Library.String cache 0 document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String,TLNr:%String 1 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String %String 1 %Integer 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String,CompositeID:%String 1 %Boolean 0 Do Quit 0 . Set varMsg="Buffer '"_bfrRGID_"' met als VolgNr '"_bfrVolgNr_"' en LijnNr '"_bfrLijnNr_": het ingescande aantal '"_MyQtyDone_"' is niet geldig." ;Het ingescande aantal toepassen op aCharge wanneer >1 (bevat aantal voor slechts 1x het product, terwijl we MyQtyDone x het product wensen) New ProdNrLoop If MyQtyDone>1 Do . Set ProdNrLoop="" . For Set ProdNrLoop=$O(aCharge(ProdNrLoop)) Quit:(ProdNrLoop="") Do .. Set aCharge(ProdNrLoop)=aCharge(ProdNrLoop)*MyQtyDone ;(eventueel) Gekoppelde chargenummers checken New pCompositeID Set pCompositeID=$P(Rec,..#bfrSEP,$$$bsnAssocCompositeIDs) New Loop,CompositeID,objComposite,Key,emChargeAantal,CAProdNr,CompositeIDCnt Set Key="" Set CompositeIDCnt=$S(pCompositeID="":0,1:$L(pCompositeID,..#bfrSubSEP)) For Loop=1:1:CompositeIDCnt Do . Set CompositeID=$P(pCompositeID,..#bfrSubSEP,Loop) . If '##class(ProdHist.ChargeTrace).%ExistsId(CompositeID) Do Quit .. Do AddMsg("- CompositeID '"_CompositeID_"' bestaat niet" ) . Set objComposite=##class(ProdHist.ChargeTrace).%OpenId(CompositeID) . If objComposite.ProdGetObjectId()'=ProductNr Do Quit .. Do AddMsg("- CompositeID '"_CompositeID_"' is gekoppeld aan product '"_objComposite.ProdGetObjectId()_"' terwijl '"_ProductNr_"' verwacht wordt" ) . ;Doorheen chargeaantal lopen . For Set emChargeAantal=objComposite.ChargeAantal.GetNext(.Key) Quit:(Key="") Do .. Set CAProdNr=emChargeAantal.ProductGetObjectId() .. If CAProdNr="" Do Quit ... Do AddMsg("- CompositeID '"_CompositeID_"', ChargeID '"_emChargeAantal.ChargeID_"': Productnummer niet meer geldig ('"_emChargeAantal.ProductKortTekst_"')") .. If $D(aCharge(CAProdNr)) Do ... Set aCharge(CAProdNr)=aCharge(CAProdNr)-emChargeAantal.Aantal ;we gaan op naar nul = alles ingescand .. Else Do ... Do AddMsg("- Product '"_CAProdNr_"' (ChargeID '"_emChargeAantal.ChargeID_"') is onderdeel van de composite '"_CompositeID_"', maar niet (meer) nodig") ;aCharge werd aangepast, kijken of alle gewenste aantallen bereikt zijn New ValidateOK Set ProdNrLoop="" Set ValidateOK=1 For Set ProdNrLoop=$O(aCharge(ProdNrLoop)) Quit:(ProdNrLoop="") Do . If aCharge(ProdNrLoop)<0 Do ;fout, er is teveel gescand .. Do AddMsg("- Van product '"_##class(Prod.Product).GetPropViaNr(ProdNrLoop,"KortTekst")_"' zijn teveel chargenummers ingescand") . Else If aCharge(ProdNrLoop)>0 Do .. Set ValidateOK=0 .. Do AddMsg("- Van product '"_##class(Prod.Product).GetPropViaNr(ProdNrLoop,"KortTekst")_"' zijn er geen of niet voldoende chargenummers ingescand (nog "_aCharge(ProdNrLoop)_" vereist)") ;Informatieve header toevoegen in geval van msg If varMsg'="" Do . Set varMsg="Buffer "_##class(BL.MB.UGLYPicking.ReceptieProductie).BuildBufferKey(bfrRGID,bfrVolgNr,bfrLijnNr)_", Product '"_##class(Prod.Product).GetPropViaNr(ProductNr,"KortTekst")_"'"_$C(13,10)_varMsg Quit ValidateOK ;------------------------------------------------------------------- AddMsg(Msg) Set varMsg=$S(varMsg="":"",1:varMsg_$C(13,10))_Msg Quit ]]> 1 expression bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String cache 0 %String document literal 1 expression bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String cache 0 %String document literal 1 expression bfrRGID:%Library.String,bfrVolgNr:%Library.String,bfrLijnNr:%Library.String cache 0 %String document literal 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,HTime:%Library.String cache 0 document literal 1 bfrRGID:%Library.String,KlantNr:%Library.String,Locatie:%Library.String cache 0 document literal 9) && Found) ^UPRCP("K",oldRGID,oldKlantNr) Quit ]]> 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String cache 0 %Library.Boolean document literal 1 ProductNr:%Library.String cache 0 %Library.Boolean document literal 1 %Library.Integer 1 %Library.List 1 TLNr:%Library.String,UserId:%Library.String,Locatie:%Library.String,PalletID:%Library.String,RGID:%Library.String,VolgNr:%Library.String,StartQty:%Library.Integer,KillBufferWhenEmpty:%Library.Boolean=1,PalletViaDossier:%Library.Boolean=1,AttachTLNrAndQuitIfLineExists:%Boolean=0 %Library.List 1 ============================================================================================================================ SPECIFIC STUFF ============================================================================================================================ d ..CloseAndPrintTBHBuffer() 1 bfrRGID:%Library.String,bfrVolgNr:%Library.String,DoPrintOnly:%Library.Boolean=0 cache 0 %Library.List document literal 1 RGID:%String,VolgNr:%Integer,LocatieID:%String 1 ProductID:%String,RGID:%String,VolgNr:%Integer 1 1 %Integer 1 ProductID:%String,Aantal:%Integer,RGID:%String,BufferVolgNr:%Integer 1 %List