05.05.2014, 13:29 | #1 |
Молодой, подающий надежды
|
Запрет изменения договора в заказе при наличии строк
AX 2012 R2 CU7
Собственно вопрос, зачем в локализации запретили изменять номер договора в шапке заказа при наличии строк? На примере продаж (в закупках все аналогично) X++: public boolean checkAgreement_RU(AgreementHeaderExtRecId_RU _agreementHeaderExtRecId = this.salesTable_RU().AgreementHeaderExt_RU) { ... if (SalesLine::exist(this.SalesId)) { ok = checkFailed("@GLS220553"); //Изменение договора не допускается, если созданы какие-либо строки. } ... X++: public boolean unlinkAgreementPrompt() У кого-нибудь есть идеи, почему так сделано? И почему не сделали нормальное изменение договора через SalesTable2LineUpdate? Если буду обновлять договор примерно таким кодом, то какие не очевидные последствия могут быть? X++: protected void updateSalesTableAgreement(SalesAgreementHeader _salesAgreementHeader) { AgreementLine agreementLine; SalesTable_RU salesTableRU; SalesLine salesLine; DimensionAttributeRecId dimensionAttributeRecId; dimensionAttributeRecId = AgreementHeaderExt_RU::getAgreementDimensionAttribute(); salesTable.unlinkAgreement(true, false, true, true); salesTable.initFromSalesAgreementHeader(_salesAgreementHeader); salesTable.update(); while select forUpdate salesLine where salesLine.SalesId == salesTable.SalesId { if (salesLine.canAgreementBeLinked()) { agreementLine = AgreementLine::findLineForAutoMatch(salesLine, salesTable.MatchingAgreement, true); if (agreementLine) { salesLine.initFromAgreementLine(agreementLine); } } if (dimensionAttributeRecId) { salesLine.DefaultDimension = DimensionDefaultingService::serviceReplaceAttributeValue( salesLine.DefaultDimension, salesTable.DefaultDimension, dimensionAttributeRecId); } salesLine.update(); } }
__________________
Кононов Пётр |
|
05.05.2014, 15:54 | #2 |
Участник
|
Если не ошибаюсь, в стандарте в т.ч. смена договора в уже созданном заказе отрабатывала совсем не так, как в диалоге создания (в итоге часть данных не обновлялась). В целом, думаю, сначала хотели запрещать, а потом "тут и там" поехало все. В т.ч. нужно не забывать, что в CU7 фин. аналитики переехали в международную таблицу, от этого наследия тоже где-то оставались "хвосты".
__________________
Ivanhoe as is.. |
|
08.05.2014, 11:17 | #3 |
Участник
|
|
|
|
|