Index: APPS/VKP/impl/LeveringsbonOpkuisService.cls.xml =================================================================== diff -u -r50416 -r50505 --- APPS/VKP/impl/LeveringsbonOpkuisService.cls.xml (.../LeveringsbonOpkuisService.cls.xml) (revision 50416) +++ APPS/VKP/impl/LeveringsbonOpkuisService.cls.xml (.../LeveringsbonOpkuisService.cls.xml) (revision 50505) @@ -3,21 +3,45 @@ TECH.RegisteredObject + +TECH.Console.Console +1 + + DOM.VKP.OrderAPI 1 + +TECH.DateTime.DateTimeAPI +1 + + + +DOM.PARTIJ.LegacyPartijAPI +1 + + + +vhLib.Logger +1 + + Do ##class(APPS.VKP.impl.LeveringsbonOpkuisService).%New().KuisOpLeveringsbonnenOuderDan() -OrderApi:DOM.VKP.OrderAPI="" +Console:TECH.Console.Console="",OrderApi:DOM.VKP.OrderAPI="",DateTimeApi:TECH.DateTime.DateTimeAPI="",Logger:vhLib.Logger="",LegacyPartijApi:DOM.PARTIJ.LegacyPartijAPI="" 1 1 %Status 1 @@ -29,22 +53,42 @@ #dim Bon As DOM.VKP.Bon #dim BonId As %String #dim IsBonTypeF As %Boolean + #dim KlantNummer As %Integer + #dim KlantNrVerwijzingKO1 As %String + #dim OrderId As %String #dim LeveringsDatum As %Date #dim BonIterator As TECH.Iterator = ..OrderApi.GeefBonIterator() + #dim Vandaag As %Date = ..DateTimeApi.CurrentHorolog() While BonIterator.HasNext() { Set Bon = BonIterator.Next() Set BonId = Bon.GeefID() Set IsBonTypeF = ..OrderApi.BestaatBon(BonId) Set LeveringsDatum = Bon.GeefLeveringsDatum() - If (IsBonTypeF && (LeveringsDatum <= ($Horolog - LeeftijdInAantalDagen))) { - #dim KlantNummer As %Integer = $Piece(Bon.GeefKlantID(),"||",2) + If (IsBonTypeF && (LeveringsDatum <= (Vandaag - LeeftijdInAantalDagen))) { Try { + Set KlantNummer = ..LegacyPartijApi.GeefKlantNummerVoorPartijID(Bon.GeefKlantID()) + Do ..Console.WriteLine("BonId: '"_BonId_"' met KlantNummer: '"_KlantNummer_"' wordt gewist. OrderIndex in ^KO1 gewist voor: ") + #dim OrderIdIterator As TECH.Iterator = Bon.GeefOrderIterator() + While OrderIdIterator.HasNext() { + Set OrderId = OrderIdIterator.Next() + Set KlantNrVerwijzingKO1 = $Piece($Get(^KO1(OrderId,"F")),"\",1) + If KlantNummer = KlantNrVerwijzingKO1 { + Do ..Console.WriteLine(" *** OrderId: '"_OrderId_"'") + Kill ^KO1(OrderId,"F") + } Else { + Do ..Logger.Warning("Inconsistent gebruik van ^KO1 voor OrderId t.o.v. BonNr, Klant matcht niet.","OrderId: '"_OrderId_"' met KlantNrVerwijzingKO1: '"_KlantNrVerwijzingKO1_"' VS BonId: '"_BonId_"' met KlantNummer: '"_KlantNummer_"'") + } + If ..OrderApi.BestaatOrder(OrderId) { + Do ..Logger.Warning("Order bestaat onterecht","OrderId: '"_OrderId_"'") + } + } Do DELBON^FLOWBON3(KlantNummer,BonId) Do DELKUP^FLOWBON3(KlantNummer,BonId) Kill ^KUL(KlantNummer,"F",BonId) - Kill ^KU1(BonId,"F") + Kill ^KU1(BonId,"F") + Kill ^KU3("-"_LeveringsDatum,Bon.GeefVerzendwijze(),BonId) } Catch { #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() }