Index: DOM/PM/impl/DataM/DataMProductCloner.cls.xml =================================================================== diff -u -r1133 -r1341 --- DOM/PM/impl/DataM/DataMProductCloner.cls.xml (.../DataMProductCloner.cls.xml) (revision 1133) +++ DOM/PM/impl/DataM/DataMProductCloner.cls.xml (.../DataMProductCloner.cls.xml) (revision 1341) @@ -27,6 +27,15 @@ Merge ^PRBS("BS",PRNr) = ^PRBS("BS",Product.GeefPRNr()) Do BLDIND^PRBS(PRNr) + Merge ^PRLINK("D",PRNr) = ^PRLINK("D",Product.GeefPRNr()) + + Set Kind = $Order(^PRLINK("D",PRNr,"")) + While (Kind '= "") + { + Set ^PRLINK("IKM",Kind,PRNr) = "" + Set Kind = $Order(^PRLINK("D",PRNr,Kind)) + } + // Optibox toestanden kopiƫren If ##class(BL.Prod.OptiBox.Optimize).HasOptiData("PR",Product.GeefPRNr()) { ; Heeft optibox data gekoppeld aan het product Index: APPS/PM/Maatwerk/OLM/impl/AbstractOpMaatFactory.cls.xml =================================================================== diff -u -r1290 -r1341 --- APPS/PM/Maatwerk/OLM/impl/AbstractOpMaatFactory.cls.xml (.../AbstractOpMaatFactory.cls.xml) (revision 1290) +++ APPS/PM/Maatwerk/OLM/impl/AbstractOpMaatFactory.cls.xml (.../AbstractOpMaatFactory.cls.xml) (revision 1341) @@ -30,6 +30,8 @@ // Kopiƫren van het orgalux product Set PRNr = ProductAPI.KopieerProduct(OrgaluxProduct).GeefPRNr() // Productobject zelf niet bewaren omdat prijzen en samenstelling toch gaan wijzigen + Set SamengesteldProduct = ProductAPI.GeefSamengesteldProduct(PRNr) + // Product op "niet-stock" plaatsen Set $Piece(^KPR(PRNr,1),"\",20) = "" @@ -40,8 +42,8 @@ Set TeVervangenProduct = TeVervangenKinderen.GetAt(1).GeefProduct() Set BreedteInTeKortenProduct = ..GeefBreedteTeVervangenProduct(TeVervangenProduct,BreedteOLProduct) - Kill ^PRBS("BS",PRNr,TeVervangenKinderen.GetAt(1).GeefID()) - Kill ^PRBS("IP",TeVervangenProduct.GeefPRNr(),PRNr,TeVervangenKinderen.GetAt(1).GeefID()) + Set Bouwsteen = SamengesteldProduct.GeefBouwsteen(TeVervangenKinderen.GetAt(1).GeefID()) + Do SamengesteldProduct.VerwijderBouwsteen(Bouwsteen) // Berekenen van de ingekorte producten Set InTeKortenProduct = InTeKortenKinderen.GetAt(1).GeefProduct() @@ -53,21 +55,22 @@ Set InTeKortenNaar = InbouwBreedte - (BreedteOLProduct - BreedteInTeKortenProduct) Set IngekortProduct = ..BerekenIngekortProduct(InTeKortenProduct, TeVervangenProduct, InTeKortenNaar, AantalInTeKorten) - Set VrijLabel = $Order(^PRBS("BS",PRNr,"KIND.999"),-1) - Set VolgendNr = $E(1000+$Piece(VrijLabel,".",2)+1,2,4) - Set ^PRBS("BS",PRNr,"KIND."_VolgendNr) = IngekortProduct.GeefPRNr()_"\"_AantalInTeKorten_"\K\\\\\\\\PROD\" + Set Bouwsteen = SamengesteldProduct.VoegToeKindBouwsteen(IngekortProduct,AantalInTeKorten) - Kill ^PRBS("BS",PRNr,InTeKortenKinderen.GetAt(1).GeefID()) - Kill ^PRBS("IP",InTeKortenProduct.GeefPRNr(),PRNr,InTeKortenKinderen.GetAt(1).GeefID()) + Set Bouwsteen = SamengesteldProduct.GeefBouwsteen(InTeKortenKinderen.GetAt(1).GeefID()) + Do SamengesteldProduct.VerwijderBouwsteen(Bouwsteen) // Extra toe te voegen Set Iterator = ##class(TECH.ListIterator).%New(ToeTeVoegenKinderen) While (Iterator.HasNext()) { Set KindProductInfo = Iterator.Next() - Set $Piece(^PRBS("BS",PRNr,KindProductInfo.GeefID()),"\",2) = KindProductInfo.GeefAantal() + Set Bouwsteen = SamengesteldProduct.GeefBouwsteen(KindProductInfo.GeefID()) + Do Bouwsteen.ZetAantal(KindProductInfo.GeefAantal()) } + Do SamengesteldProduct.Save() + // Korttekst herwerken Set $Piece(^KPR(PRNr,0),"\",1) = ..GeefKorttekstIngekortProduct(OrgaluxProduct, InbouwBreedte) Index: DOM/PM/impl/DataM/SamengesteldProduct.cls.xml =================================================================== diff -u -r1336 -r1341 --- DOM/PM/impl/DataM/SamengesteldProduct.cls.xml (.../SamengesteldProduct.cls.xml) (revision 1336) +++ DOM/PM/impl/DataM/SamengesteldProduct.cls.xml (.../SamengesteldProduct.cls.xml) (revision 1341) @@ -48,9 +48,9 @@ While ('$IsObject(Bouwsteen)) && (i<..Bouwstenen.Count()) { Set i = i + 1 - If (Bouwstenen.GetAt(i).GeefID() = BouwsteenID) + If (..Bouwstenen.GetAt(i).GeefID() = BouwsteenID) { - Set Bouwsteen = Bouwstenen.GetAt(i).GeefID() + Set Bouwsteen = ..Bouwstenen.GetAt(i) } } Index: vhUnitTest/DOM/PM/TestProductAPI.cls.xml =================================================================== diff -u -r1133 -r1341 --- vhUnitTest/DOM/PM/TestProductAPI.cls.xml (.../TestProductAPI.cls.xml) (revision 1133) +++ vhUnitTest/DOM/PM/TestProductAPI.cls.xml (.../TestProductAPI.cls.xml) (revision 1341) @@ -31,11 +31,27 @@ // Nagaan of er kenmerken zijn, dit zou niet mogen Do $$$AssertFalse($Data(^Prod.Ken.DataDefinitieD(GekopieerdProduct.GeefPRNr())),"Er zijn geen kenmerken") + // Nagaan of PRLINK is gekopieerd + Do $$$AssertTrue($Data(^PRLINK("D",GekopieerdProduct.GeefPRNr())),"Er zijn PRLINK nodes") + + Do $$$AssertTrue($Data(^PRLINK("IKM",148413,GekopieerdProduct.GeefPRNr())),"De node is aanwezig") + Do $$$AssertTrue($Data(^PRLINK("IKM",191578,GekopieerdProduct.GeefPRNr())),"De node is aanwezig") + Do $$$AssertTrue($Data(^PRLINK("IKM",191579,GekopieerdProduct.GeefPRNr())),"De node is aanwezig") + Do $$$AssertTrue($Data(^PRLINK("IKM",286261,GekopieerdProduct.GeefPRNr())),"De node is aanwezig") + Kill ^KPR(200030,"L1") Kill ^KPR(200030,"S1") Kill ^KPR(200030,"W1") Kill ^KPR(GekopieerdProduct.GeefPRNr()) + Kill ^PRBS("BS",GekopieerdProduct.GeefPRNr()) + Kill ^PRBS("IP",GekopieerdProduct.GeefPRNr()) + Kill ^PRLINK("D",GekopieerdProduct.GeefPRNr()) + + Kill ^PRLINK("IKM",148413,GekopieerdProduct.GeefPRNr()) + Kill ^PRLINK("IKM",191578,GekopieerdProduct.GeefPRNr()) + Kill ^PRLINK("IKM",191579,GekopieerdProduct.GeefPRNr()) + Kill ^PRLINK("IKM",286261,GekopieerdProduct.GeefPRNr()) ]]> Index: CSC Orgalux op maat.prj.xml =================================================================== diff -u -r1133 -r1341 --- CSC Orgalux op maat.prj.xml (.../CSC Orgalux op maat.prj.xml) (revision 1133) +++ CSC Orgalux op maat.prj.xml (.../CSC Orgalux op maat.prj.xml) (revision 1341) @@ -1,6 +1,6 @@ - + @@ -103,6 +103,7 @@ + @@ -111,6 +112,7 @@ + Index: vhUnitTest/APPS/PM/Maatwerk/OLM/TestOpMaatFactory.cls.xml =================================================================== diff -u -r1295 -r1341 --- vhUnitTest/APPS/PM/Maatwerk/OLM/TestOpMaatFactory.cls.xml (.../TestOpMaatFactory.cls.xml) (revision 1295) +++ vhUnitTest/APPS/PM/Maatwerk/OLM/TestOpMaatFactory.cls.xml (.../TestOpMaatFactory.cls.xml) (revision 1341) @@ -28,6 +28,10 @@ Do $$$AssertFalse($D(^PRBS("IP",191578,OrgaluxOpMaatProduct.GeefPRNr(),"KIND.001")),"De index werd verwijderd") Do $$$AssertFalse($D(^PRBS("IP",286261,OrgaluxOpMaatProduct.GeefPRNr(),"KIND.003")),"De index werd verwijderd") + Do $$$AssertEquals($P(^PRLINK("D",OrgaluxOpMaatProduct.GeefPRNr(),191579),"\"),6,"De index is correct") + Do $$$AssertEquals($P($G(^PRLINK("D",OrgaluxOpMaatProduct.GeefPRNr(),DwarslatOpMaatPRNr)),"\"),2,"2 verzaagde dwarslatten") + Do $$$AssertTrue($D(^PRLINK("IKM",DwarslatOpMaatPRNr,OrgaluxOpMaatProduct.GeefPRNr())),"Kind moeder index is aanwezig") + Do DELETE^PRODUKT2(OrgaluxOpMaatProduct.GeefPRNr(),1) // enkel de dwarslat op maat verwijderen als we zeker zijn dat dit de dwarslat op maat is Index: DOM/PM/KindBouwsteen.cls.xml =================================================================== diff -u -r1336 -r1341 --- DOM/PM/KindBouwsteen.cls.xml (.../KindBouwsteen.cls.xml) (revision 1336) +++ DOM/PM/KindBouwsteen.cls.xml (.../KindBouwsteen.cls.xml) (revision 1341) @@ -11,6 +11,11 @@ %Integer + +1 +Aantal:%Integer + + 1 DOM.PM.Product Index: DOM/PM/impl/DataM/KindBouwsteen.cls.xml =================================================================== diff -u -r1339 -r1341 --- DOM/PM/impl/DataM/KindBouwsteen.cls.xml (.../KindBouwsteen.cls.xml) (revision 1339) +++ DOM/PM/impl/DataM/KindBouwsteen.cls.xml (.../KindBouwsteen.cls.xml) (revision 1341) @@ -25,6 +25,7 @@ Set $Piece(BouwsteenRecord,"\",1) = Product.GeefPRNr() Set $Piece(BouwsteenRecord,"\",2) = Aantal Set $Piece(BouwsteenRecord,"\",3) = "K" + Set $Piece(BouwsteenRecord,"\",11) = "PROD" Set ..BouwsteenRecord = BouwsteenRecord Set ..Product = Product @@ -39,6 +40,15 @@ ]]> + +Aantal:%Integer + + + DOM.PM.Product