Index: APPS/Halux/AAP/DnaCodeService.cls.xml =================================================================== diff -u -r60245 -r74747 --- APPS/Halux/AAP/DnaCodeService.cls.xml (.../DnaCodeService.cls.xml) (revision 60245) +++ APPS/Halux/AAP/DnaCodeService.cls.xml (.../DnaCodeService.cls.xml) (revision 74747) @@ -15,23 +15,48 @@ APPS.Halux.AAP.DnaCodeGenerator - + DOM.common.ProjectSettingsAPI 1 - + TECH.DateTime.DateTimeAPI 1 - + DOM.PM.ProductAPI 1 + +APPS.Halux.common.SequentieService +1 + + + +vhLib.Logger +1 + + + +APPS.VKP.Maatwerk.impl.ConfiguratorService +1 + + + +DOM.PM.Maatwerk.Calc.Common.impl.IngegevenKenmerkenSpaceStepHelper +1 + + + +APPS.Halux.AAP.DnaCodeService.DnaCodeServiceHelper +1 + + -DnaCodeRepository:DOM.Halux.AAP.DnaCodeRepository="",ProductTypeAPI:DOM.PM.impl.ProductTypeAPIimpl="",DnaCodeGenerator:APPS.Halux.AAP.DnaCodeGenerator="",ProjectSettingsApi:DOM.common.ProjectSettingsAPI="",ProductApi:DOM.PM.ProductAPI="" +DnaCodeRepository:DOM.Halux.AAP.DnaCodeRepository="",ProductTypeAPI:DOM.PM.impl.ProductTypeAPIimpl="",DnaCodeGenerator:APPS.Halux.AAP.DnaCodeGenerator="",ProjectSettingsAPI:DOM.common.ProjectSettingsAPI="",ProductAPI:DOM.PM.ProductAPI="",SequentieService:APPS.Halux.common.SequentieService="",Logger:vhLib.Logger="",ConfiguratorService:APPS.VKP.Maatwerk.impl.ConfiguratorService="",IngegevenKenmerkenSpaceStepHelper:DOM.PM.Maatwerk.Calc.Common.impl.IngegevenKenmerkenSpaceStepHelper="",DnaCodeServiceHelper:APPS.Halux.AAP.DnaCodeService.DnaCodeServiceHelper 1 1 %Status @@ -40,9 +65,14 @@ Set ..DnaCodeRepository = $$$Inject(DnaCodeRepository, ##class(DOM.Halux.AAP.DnaCodeRepository).%New()) Set ..ProductTypeAPI = $$$Inject(ProductTypeAPI, ##class(DOM.PM.impl.ProductTypeAPIimpl).%New()) Set ..DnaCodeGenerator = $$$Inject(DnaCodeGenerator, ##class(APPS.Halux.AAP.DnaCodeGenerator).%New()) - Set ..ProjectSettingsApi = $$$Inject(ProjectSettingsApi, ##class(DOM.common.impl.ProjectSettingsAPI).%New()) - Set ..DateTimeApi = ##class(TECH.Context).Instance().GeefDateTimeAPI() - Set ..ProductApi = $$$Inject(ProductApi, ##class(DOM.PM.impl.ProductAPI).%New()) + Set ..ProjectSettingsAPI = $$$Inject(ProjectSettingsAPI, ##class(DOM.common.impl.ProjectSettingsAPI).%New()) + Set ..DateTimeAPI = ##class(TECH.Context).Instance().GeefDateTimeAPI() + Set ..ProductAPI = $$$Inject(ProductAPI, ##class(DOM.PM.impl.ProductAPI).%New()) + Set ..SequentieService = $$$Inject(SequentieService, ##class(APPS.Halux.common.impl.SequentieService).%New()) + Set ..Logger = $$$Inject(Logger, ##class(vhLib.Logger).%New()) + Set ..ConfiguratorService = $$$Inject(ConfiguratorService,##class(APPS.VKP.Maatwerk.impl.ConfiguratorService).%New()) + Set ..IngegevenKenmerkenSpaceStepHelper = $$$Inject(IngegevenKenmerkenSpaceStepHelper, ##class(DOM.PM.Maatwerk.Calc.Common.impl.IngegevenKenmerkenSpaceStepHelper).%New()) + Set ..DnaCodeServiceHelper = $$$Inject(DnaCodeServiceHelper, ##class(APPS.Halux.AAP.DnaCodeService.DnaCodeServiceHelper).%New(DnaCodeGenerator, DnaCodeRepository, ProductTypeAPI, ProductAPI, ConfiguratorService, IngegevenKenmerkenSpaceStepHelper)) Quit $$$OK ]]> @@ -69,9 +99,9 @@ #dim Teller As %Integer = 1 While Teller <= ToeleveringLijn.GeefAantal() { - Set DnaCode = ..MaakDnaCodeVoorToeleveringLijn(ToeleveringLijn, Batch) + Set DnaCode = ..DnaCodeServiceHelper.MaakDnaCodeVoorToeleveringLijn(ToeleveringLijn, Batch) If ParentCodeVoorToeleveringLijn = "" { - Set ParentCodeVoorToeleveringLijn = ..BepaalParentDnaCode(DnaCode) + Set ParentCodeVoorToeleveringLijn = ..DnaCodeServiceHelper.BepaalParentDnaCode(DnaCode, Batch) } Set DnaCode.ParentDnaCode = ParentCodeVoorToeleveringLijn Do DnaCodes.Insert(DnaCode) @@ -122,7 +152,7 @@ } } While DnaCodeTeller < ToeleveringLijn.GeefAantal() { - Do ..DnaCodeRepository.Bewaar(..MaakDnaCodeVoorToeleveringLijn(ToeleveringLijn)) + Do ..DnaCodeRepository.Bewaar(..DnaCodeServiceHelper.MaakDnaCodeVoorToeleveringLijn(ToeleveringLijn)) Set DnaCodeTeller = DnaCodeTeller + 1 } ]]> @@ -147,85 +177,223 @@ If DnaCode.Status = ##class(DOM.Halux.AAP.enu.DnaCodeStatus).Nieuw() { Set DnaCode.Status = ##class(DOM.Halux.AAP.enu.DnaCodeStatus).InBatch() Set DnaCode.Lijn = Batch.GeefLijn() - Set DnaCode.IsWegwerpPallet = Batch.GeefIsWegwerpPallet() + Set DnaCode.IsWegwerpPallet = Batch.GeefIsWegwerpPallet(Toelevering.GeefID()) Do ..DnaCodeRepository.Bewaar(DnaCode) } } } ]]> - -ToeleveringLijn:DOM.AKP.ProductToeleveringLijn,Batch:APPS.Halux.common.impl.BatchImpl="" -1 -DOM.Halux.AAP.DnaCode + +ToeleveringID:%String,ProductID:%String,SequentieNummer:%String="",Herafdruk:%Boolean=$$$False,BatchId:%String="",IsKlantEtiketSpaceStep:%Boolean=$$$False +%String 0)) { + Set DnaCodeIterator = ..DnaCodeRepository.ZoekViaToeleveringEnSequentienummerEnRecent(ToeleveringID, SequentieNummer) + } Else { + Set DnaCodeIterator = ..DnaCodeRepository.ZoekViaToeleveringIdEnStatusEnRecent(ToeleveringID,##class(DOM.Halux.AAP.enu.DnaCodeStatus).InBatch()) + } + + #dim DnaCode As DOM.Halux.AAP.DnaCode = "" + While DnaCodeIterator.HasNext() { + Set DnaCode = DnaCodeIterator.Next() + If ..DnaCodeServiceHelper.MagDnaCodeBijgewerktWorden(DnaCode, ProductID, Herafdruk, SequentieNummer) { + If ($$$HasLength(SequentieNummer) && $$$Not(..DnaCodeServiceHelper.IsSpaceStepGeneriekProduct(DnaCode,ProductID))) { + Set DnaCode.SequentieNummer = SequentieNummer + } + Set DnaCode.AfdrukTijdstip = ..DateTimeAPI.CurrentHorolog() + Do ..DnaCodeRepository.Bewaar(DnaCode) + Set Result = DnaCode.DnaCode + Quit + } + } + + If $$$Not($$$HasLength(Result)) { + Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.DataNotFoundException).%New("Geen nog niet afgedrukte barcode gevonden voor Toelevering '"_ToeleveringID_"' en product '"_ProductID_"'")) + } + + Quit Result ]]> - -DnaCode:DOM.Halux.AAP.DnaCode -1 + +SequentieId:%String,BatchId:%String,ToeleveringId:%String,ToeleveringlijnId:%String,ProductId:%String="" + + + + +BatchId:%String,Sequentienummer:%String %String - -ToeleveringID:%String,ProductID:%String,SequentieNummer:%String="" + +ToeleveringId:%String,SequentieNummer:%String,ProductNummer:%String %String 1) { + Set Exception = ##class(TECH.Exceptions.DataCorruptException).%New("Meerdere dnacodes gevonden voor toelevering '" _ ToeleveringId _ "', product '" _ ProductNummer _ "' en sequentienummer '" _ SequentieNummer _ "'.") + do ##class(TECH.ExceptionHandler).Throw(Exception) } - #dim Result As %String = "" - #dim DnaCodeIterator As TECH.Iterator - Set DnaCodeIterator = ..DnaCodeRepository.ZoekViaToeleveringIdEnStatus(ToeleveringID,##class(DOM.Halux.AAP.enu.DnaCodeStatus).InBatch()) - #dim DnaCode As DOM.Halux.AAP.DnaCode = "" + + Quit DnaCode +]]> + + + +BatchId:%String,Sequentienummer:%String +TECH.Iterator + + + + +ProdutNummer:%String,PalletCode:%String +%Integer + + + + +ProductNummer:%String,PalletCode:%String +%String + + + + +PalletCode:%String +%Boolean + + + + +PalletCode:%String +1 +%Boolean + + + + +PalletCode:%String +%Integer +