|
04.03.2008, 20:13 | #1 |
Участник
|
Как бы я сделал всё что выше super() в классе ProdJournalCreateBOM вынес бы в отдельный метод
X++: Protected void preCreateLines() { ProdJournalBOM prodJournalBOM; ProdBOMCalc prodBOMCalc; ProdBOM prodBOM; BOMCalcData BOMCalcData = BOMCalcData::newProdTable(qtyCalc,ProdTable::find(prodId)); ; setPrefix("@SYS28536"); this.initProdJournalTableData(prodJournalType::Picklist); prodJournalTransData = prodJournalTableData.JournalStatic().newJournalTransData(prodJournalBOM,prodJournalTableData); if (prodJournalTable.NumOfLines) prodJournalTransData.parmLastLineNum(prodJournalBOM::lastLineNum(journalId)); if (! oprNumTo) oprNumTo = oprNumFrom; BOMCalcData = BOMCalcData::newProdTable(qtyCalc,ProdTable::find(prodId)); while select forupdate prodBOM index hint numIdx where prodBOM.prodId == prodId && prodBOM.OprNum >= oprNumFrom && (prodBOM.OprNum <= oprNumTo || ! oprNumTo) { prodBOMCalc = prodBOMCalc::newBOMCalcData(BOMCalcData,prodBOM,ConsumpProposal,BOMAutoConsump,! prodBOM.ConstantReleased, shipAccError); if (prodBOMCalc.hasQty() || (endUpdate && prodBOM.backorderStatus == ProdBackStatus::Release)) { prodJournalTableData.initJournalId(); this.initTransFromProdBOM(prodJournalBOM,prodBOM); ProdBOMCalc.setProdJournalBOM(prodJournalBOM); if (ConsumpAsProposal) { prodJournalBOM.BOMConsump = prodJournalBOM.BOMProposal; prodJournalBOM.inventConsump = prodJournalBOM.inventProposal; } if (proposalAsConsump) { prodJournalBOM.BOMProposal = prodJournalBOM.BOMConsump; prodJournalBOM.inventProposal = prodJournalBOM.inventConsump; } prodBOM.ConstantReleased = noYes::Yes; prodJournalBOM.insertJournalCreate(prodJournalTransData,prodBOM); if (prodBOM.ConstantReleased != prodBOM.orig().ConstantReleased) prodBOM.doUpdate(); } } } X++: Protected void createLines() { ; this.preCreateLines(); super(); } |
|
|
За это сообщение автора поблагодарили: Eldar9x (1). |