Index: DOM/PM/impl/DataM/DataMProductRepository.cls.xml =================================================================== diff -u --- DOM/PM/impl/DataM/DataMProductRepository.cls.xml (revision 0) +++ DOM/PM/impl/DataM/DataMProductRepository.cls.xml (revision 38178) @@ -0,0 +1,122 @@ + + + + +1 +TECH.RegisteredObject + + +PRNr:%String,NoOld:%Boolean=0 + + + + + + Index: PRODUKT2.mac.rou =================================================================== diff -u -r38176 -r38178 --- PRODUKT2.mac.rou (.../PRODUKT2.mac.rou) (revision 38176) +++ PRODUKT2.mac.rou (.../PRODUKT2.mac.rou) (revision 38178) @@ -197,117 +197,7 @@ Do ##class(TECH.Context).Instance().GeefPubSubAPI().GeefEventRaiser().RaiseEventAsync(Event) DELETE(PRNr,NoOld) - New Key,I,KLNr,Nm,PAKNr,MPRNr,KPRNr,Msg,BSNode,KGS,KHS,KSS - Set Msg=$$DeleteProd^EWPR(PRNr) - ;Copieren naar OLD - For I="I","J" Set Key=$O(^KPR(PRNr,I)) Set:$E(Key)=I Key(I)=^KPR(PRNr,Key) - If '$G(NoOld) Do - . ; Product basis geg - . For I=0:1:15 Set:$D(^KPR(PRNr,I)) ^KPRO(PRNr,I)=^KPR(PRNr,I) - . Set:$D(^KPR(PRNr,"G")) ^KPRO(PRNr,"G")=^KPR(PRNr,"G") ; G-node - . For I="I","J" Set Key=$O(^KPR(PRNr,I)) Set:$D(Key(I)) ^KPRO(PRNr,Key)=Key(I),^KPRO(PRNr,I)="" - . Set $P(^KPRO(PRNr,2),D,17)="X;"_(+$H) ; Timestamp - . ; Bouwstenen - . For BSNode="BS","BSS" Do - . . Merge:$D(^PRBS(BSNode,PRNr)) ^PRBSH(BSNode,PRNr,$H)=^PRBS(BSNode,PRNr) ; Historiek bijhouden - . ; Halux definitie - . Merge ^HADPR("PO",PRNr)=^HADPR("P",PRNr) ; Halux def - ; Verwijderen nieuwe log - Kill ^DLOG(Q,"PR",PRNr) - ; Verwijderen nieuwe stock - Kill ^PRSTOCK("D",PRNr) - ; Verwijder palletinformatie - Kill ^EWPAL("D",PRNr) - ; Verwijderen nieuwe historiek - Kill ^PRHIST(PRNr) - ; Verwijderen weekverkoop - Kill ^KSPW(PRNr) - ;Verwijderen statistieken - Set KLNr=0 - For Set KLNr=$O(^KSTPR(PRNr,KLNr)) Quit:KLNr="" Kill ^KSTKL(KLNr,PRNr),^KLKAN(KLNr,PRNr) - Kill ^KSTPR(PRNr) ;Kill ^AKANAL(PRNr) ; Wordt 's nachts verwijderd - ;Verwijderen klant prijsuitzonderingen - Set KHS=$P($G(Key("I")),D,1),KGS=$P($G(Key("I")),D,2),KSS=$P($G(Key("I")),D,3) - Set KLNr=0 - If $L(KHS) For Set KLNr=$O(^KLPUTZ("IN",KHS,KGS,KSS,PRNr,KLNr)) Quit:KLNr="" Kill ^(KLNr),^KLPUTZ("N",KLNr,KHS,KGS,KSS,PRNr) - Set KLNr=0 - If $L(KHS) For Set KLNr=$O(^KLPUTZ("IS",KHS,KGS,KSS,PRNr,KLNr)) Quit:KLNr="" Kill ^(KLNr),^KLPUTZ("S",KLNr,KHS,KGS,KSS,PRNr) - ;Verwijderen pakketten - Set (PAKNr,KLNr)="" - For Set KLNr=$O(^PAKKET("IP",PRNr,KLNr)) Quit:'KLNr Do - .For Set PAKNr=$O(^PAKKET("IP",PRNr,KLNr,PAKNr)) Quit:'PAKNr Do - ..Kill ^PAKKET("IP",PRNr,KLNr,PAKNr),^PAKKET("D",PAKNr,PRNr) - ..If $O(^PAKKET("D",PAKNr,""))=$O(^PAKKET("D",PAKNr,""),-1) Set $P(^PAKKET("D",PAKNr),D,3)="E" - ..If $O(^PAKKET("D",PAKNr,""))="" Kill ^PAKKET("IK",KLNr,$$UPTRIMAN^vhRtn1($P(^PAKKET("D",PAKNr),D,2))),^PAKKET("D",PAKNr) - ; Verwijder produkt uitzonderingen - New NoSa - For NoSa="N","S" Do - .Set KLNr="" - .For Set KLNr=$O(^PRPUTZ(NoSa,PRNr,KLNr)) Quit:KLNr="" Kill ^PRPUTZ("I"_NoSa,KLNr,PRNr) - .Kill ^PRPUTZ(NoSa,PRNr) - ; Verwijderen bestelimpuls - Set KLNr="" - For Set KLNr=$O(^KPBI("D",KLNr)) Quit:KLNr="" Kill ^KPBI("D",KLNr,PRNr) - ; Verwijderen bouwstenen - Do DELOBJ^PRBS(PRNr) - ; ProductAPI opzetten - New ProductAPI, Product - Set ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() - ; Verwijderen BLUM LogSteuer - Do ##class(BL.Blum.LogSteuer).DeleteViaPRNr(PRNr) - ; Verwijderen OptiBox verpakking - Do ##class(BL.Prod.OptiBox.BoxData).%New().Delete("PR",PRNr,1) - ; Verwijderen productspecificatie en berekeningspecificatie - Set ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() - Set Product = ProductAPI.GeefProduct(PRNr) - If (Product.%Extends("DOM.PM.MaatwerkProduct")) - { - New BerekeningsSpecificatie, ProductSpecificatie - Set ProductSpecificatie = Product.GeefProductSpecificatie() - If ($IsObject(ProductSpecificatie) && (ProductSpecificatie.%Id() '= "")) - { - Do ##class(DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie).%DeleteId(ProductSpecificatie.%Id()) - } - Set BerekeningsSpecificatie = Product.GeefBerekeningsSpecificatie() - If ($IsObject(BerekeningsSpecificatie) && (BerekeningsSpecificatie.%Id() '= "")) - { - Do ##class(DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie).%DeleteId(BerekeningsSpecificatie.%Id()) - } - } - ; Verwijderen Halux kenmerken - Kill ^HADPR("P",PRNr) - ; Verwijderen referentie naar offerte, order en bon - Kill ^KOFKLP(PRNr),^KOP(PRNr),^KUP(PRNr) - - // Opkuisen van product in flow offerte - new rsQuery set rsQuery = $$ExecDynQuery^vhLib.Query("SELECT ID FROM Flow_Offerte.LijnProduct WHERE Product = ?",$listbuild(PRNr)) - new Hoofdingen set Hoofdingen = ##class(%ListOfDataTypes).%New() - while rsQuery.Next() { - set LijnProduct = ##class(Flow.Offerte.LijnProduct).%OpenId(rsQuery.Get("ID")) - do Hoofdingen.Insert(LijnProduct.Hoofding.%Id()) - set LijnProduct = "" // unswizzle object - do ##class(Flow.Offerte.LijnProduct).%DeleteId(rsQuery.Get("ID")) - } - - // Opkuisen van hoofdingen indien deze geen lijnen meer bevatten na verwijderen van lijnen uit flow offerte - new itHoofdingen set itHoofdingen = ##class(TECH.ListIterator).%New(Hoofdingen) - new HoofingID - while itHoofdingen.HasNext() { - set HoofdingID = itHoofdingen.Next() - do ExecDynQuery^vhLib.Query("DELETE FROM Flow_Offerte.Hoofding WHERE ID = ? AND AantalLijnen = 0",$listbuild(HoofdingID)) - } - - ; Verwijderen produkt - Do VERW^LOG("PR",PRNr) - Do DELIND(PRNr) - ; Verwijderen Product kenmerken - Do ProductAPI.GeefProductMetKenmerken(PRNr).VerwijderAlleKenmerkenSets() - Do ProductAPI.GeefProductMetKenmerken(PRNr).VerwijderAlleHFBewerkingsInfo() - - Kill ^KPR(PRNr) - - Do Verwijderd(PRNr) - + do ##class(DOM.PM.impl.DataM.DataMProductRepository).%New().VerwijderViaID(PRNr,$get(NoOld)) Quit DELIND(PRNr,KortT,IdentNr,RecI,RecJ) ; Verwijderen indexen @@ -957,3 +847,4 @@ +