Index: BL/MB/UGLYPicking/Receptie.cls.xml =================================================================== diff -u -r29059 -r39040 --- BL/MB/UGLYPicking/Receptie.cls.xml (.../Receptie.cls.xml) (revision 29059) +++ BL/MB/UGLYPicking/Receptie.cls.xml (.../Receptie.cls.xml) (revision 39040) @@ -117,10 +117,8 @@ - -JBL opmerking : ProdIsInKOM mag weg want wordt nergens meer gebruikt, enkel doorgegeven 1 - + cache 0 %Library.List @@ -129,6 +127,7 @@ 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) - } - } - } - + If AttachTLNrAndQuitIfLineExists && (UseThisTLNr'="") && (LijnNr'=0) Do Quit $LB(4,"Product '"_ProductNr_"' gekoppeld aan toelevering '""', scanaantal ongewijzigd.") + . Do ..SetBufferAssocToelev(bfrRGID,bfrVolgNr,LijnNr,UseThisTLNr) + + + If LijnNr'=0 Do + . If ( ZonderToeleveringBeperking || (MetToeleveringBeperking && GebruikDeelAantalVanDezeToelevering)) Do ;Bufferlijn bestaat reeds, geen assoc toeleveringsnummer meegegeven, inhoud van de lijn gewoon +1 + .. Set Status=..INCBufferQty(bfrRGID,bfrVolgNr,LijnNr) + .. If $LI(Status)=1 Do ;Indien status=2 => 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) && (ZonderToeleveringBeperking)) Status=$LB(2,"Product '"_ProductNr_"' succesvol ingescand. "_$LI(Status,2)) + .. Set:(($LI(Status)>0) && (GebruikDeelAantalVanDezeToelevering)) Status=$LB(0) + . Else Do ;Bufferlijn bestaat reeds, assoc toeleveringsnummer opgegeven, lijn op maximum scanaantal instellen + .. New TotalQty + .. Set TotalQty=..GetTotalQtyViaProdNr(ProductNr,UseThisTLNr) + .. Do ..SetBufferQtyDone(bfrRGID,bfrVolgNr,LijnNr,TotalQty) + .. Do ..SetBufferAssocToelev(bfrRGID,bfrVolgNr,LijnNr,UseThisTLNr) + .. Set:($LI(Status)>0) Status=$LB(2,"Product '"_ProductNr_"' ingesteld op maximum waarde ("_TotalQty_"). "_$LI(Status,2)) + Quit:($LI(Status)'=0) Status - //--------------------------------------------------------------------------------------------- // 3. Afdalen in ^TO("IP",ProductNr), ToeleveringsNummers ophalen // OPBOUW: ^TO("IP",ProductNr,TLNr,TLUNr) @@ -211,48 +213,56 @@ Set AantalToeleveringenFound=0, TotalQty=0 Set ProdIsInKOM=0, ErrorList="" - ; ===[ NODE 3: TLNr ]=== - If ToeleveringID="" Do + If ZonderToeleveringBeperking 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) + . Do atbRunThroughToelev(ProductNr,UseThisTLNr,.ProdIsInKOM,.ErrorList,.TotalQty,.AantalToeleveringenFound) New QtyDone - Set QtyDone=..GetQtyDoneViaProdNr(ProductNr,,,,,ToeleveringID) + Set QtyDone=..GetQtyDoneViaProdNr(ProductNr,,,,,UseThisTLNr) 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 - } - } + Set StartQty=$G(StartQty,$S(ZonderToeleveringBeperking:1,1:TotalQty-QtyDone)) 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 - + + /// JBL, sorry voor de commentaar, maar ik denk dat hier gebeurd : + /// SITUATIE 1 : (ZonderToeleveringBeperking) + /// UseThisTLNr = "" + /// Dan wordt hier een nieuwe lijn in buffer aangemaakt als het product er nog niet in zat. + /// + /// SITUATIE 2 : (MetToeleveringBeperking) + ///; - UseThisTLNr = ToeleveringsNr + ; Enkel het product (met ProductNr) van de toelevering (met UseThisTLNr) wordt toegevoegd, + ; dit met maximaal aantal + /// op dat moment wordt het totaal aantal toegevoegd aan de buffer met de toeleveringID + /// Wat er nu is bijgekomen is dat de property 'GebruikTotaalAantalIndienUseThisTLNr' optioneel is bijgekomen. + /// Ik vermoed dat onderstaand vroeger enkel mocht uitgevoerd worden als + /// - UseThisTLNr ingevuld was, want bij lege UseThisTLNr hij kwam niet tot hier door de early quits + /// Onderstaande code mag dus vanaf heden enkel uitgevoerd worden als + /// - UseThisTLNr ingevuld is + /// - GebruikTotaalAantalIndienUseThisTLNr = 1 + If ((ZonderToeleveringBeperking) || (MetToeleveringBeperking && GebruikTotaalAantalIndienUseThisTLNr)) { + ;AllesOK: Aan buffer toevoegen + New Rec,LijnNr + Set Rec=ProductNr_SEP_Dossier_SEP_PalletID_SEP_Locatie_SEP_StartQty_SEP_$H_SEP_UserID_SEP_$G(UseThisTLNr) + 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)).") ;======================================================================================================== @@ -265,7 +275,7 @@ . 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 + .. Set ErrorList=ErrorList_"Het bestelde aantal van toelevering '"_TLNr_"' is onbekend. " . Else Do .. Set TotalQty=TotalQty+ToeleveringsQty Set AantalToeleveringenFound=AantalToeleveringenFound+1 @@ -279,7 +289,7 @@ @@ -612,7 +622,8 @@ 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=$$SendMiniMail^vhLib($$$SystemMail("Receptie-UGLY"),EmailList,"UGLY Receptie "_CloseTime,Msg) + ; geen mails meer PV 05 03 2012 + Set Status=$$$OK ;$$SendMiniMail^vhLib($$$SystemMail("Receptie-UGLY"),EmailList,"UGLY Receptie "_CloseTime,Msg) ;Error? If $$$ISERR(Status) Do Quit $LB(-2,$$ParseStatus^vhLib(Status)) @@ -1388,12 +1399,28 @@ ]]> + + +Controle of de Toelevering onmiddellijk op de GLS vrachtwagen kan geplaatst worden. +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="" +bfrRGID:%Library.String,bfrVolgNr:%Library.String,ProductNr:%Library.String,Locatie:%Library.String,PalletID:%Library.String cache 0 %Library.Integer @@ -1411,8 +1438,7 @@ . If $P(Rec,SEP,1)=ProductNr Do .. If $P(Rec,SEP,4)=Locatie Do ... If $P(Rec,SEP,3)=PalletID Do - .... If ((ToeleveringID="") || ($P(Rec,SEP,8)=ToeleveringID)) Do - ..... Set Found=Loop ;Geef LijnNr terug bij overeenkomst + .... Set Found=Loop ;Geef LijnNr terug bij overeenkomst Quit Found ]]> @@ -1435,7 +1461,7 @@ RGID:%String,VolgNr:%String %String @@ -2145,64 +2171,25 @@ - - - -1 -ProductID:%String,RGID:%String,VolgNr:%Integer -1 -1 -%Integer - - - -1 -ProductID:%String,Aantal:%Integer,RGID:%String,BufferVolgNr:%Integer -1 -%List - - Index: BL/MB/UGLYPicking/VerzendDirectControleur.cls.xml =================================================================== diff -u --- BL/MB/UGLYPicking/VerzendDirectControleur.cls.xml (revision 0) +++ BL/MB/UGLYPicking/VerzendDirectControleur.cls.xml (revision 39040) @@ -0,0 +1,200 @@ + + + + +BL.Derde.LevSpecifiek +0 +%RegisteredObject + + + +Vandaag op transport en morgen leveren = Aantalwerkdagen=1, maar er mag 1 dag extra omdat DI1 in de namiddag wordt geproduceerd. +2 + + + +15 + + + +DI1 + + + + +w ##class(BL.MB.UGLYPicking.VerzendDirectControleur).%New().ControleViaReceptieBuffer("TB",5) +bfrRGID:%String,bfrVolgNr:%String +%Library.String + + + + +bfrRGID:%String,bfrVolgNr:%String +1 +%Library.String + + + + +ProductNr:%String +1 +%String + + + + + +w ##class(BL.MB.UGLYPicking.VerzendDirectControleur).%New().ControleViaToelevering(247031) +TOENr:%String +%String + + + + +ORDNr:%String +%String + + + + +KLNr,ORDNr +1 + + + + +KLNr:%String,ORDNr:%String +1 +%String + + + + +KLNr:%String +1 +0 + + + + +KLNr:%String,ORDNr:%String +1 +MaximaleLeverdag FoutCode="Later leveren "_Datum + + Set SomVanAantal=SomVanAantal+$P(Lijn,"\",3) + Set:SomVanAantal>..#MaxAantalLades FoutCode="Groot aantal "_SomVanAantal + + Set PRNr=$P(Lijn,"\",2) + Set GenTyp=$P($$GENTYP^HAD(PRNr),"\",1,2) + Set GenTyp=$S(GenTyp="":"*",1:GenTyp) + Set:$P(GenTyp,"\")'?1(1"TBX",1"LBX",1"TAO") FoutCode="GenType geen lade "_GenTyp + + Set:(MemGenTyp'="")&(MemGenTyp'=GenTyp) FoutCode="Verschillend GenType "_MemGenTyp_"="_GenTyp + Set MemGenTyp=GenTyp + + ;w ORDNr," ",OLNr," ",PRNr," ",$P(^KPR(PRNr,0),"\")," ",$$EXTDATE^vhLib.DataTypes(Datum)," ",SomVanAantal," ",GenTyp,! + } + Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) + } + Quit FoutCode +]]> + + + + +