AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.05.2014, 13:29   #1  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Запрет изменения договора в заказе при наличии строк
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  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Если не ошибаюсь, в стандарте в т.ч. смена договора в уже созданном заказе отрабатывала совсем не так, как в диалоге создания (в итоге часть данных не обновлялась). В целом, думаю, сначала хотели запрещать, а потом "тут и там" поехало все. В т.ч. нужно не забывать, что в CU7 фин. аналитики переехали в международную таблицу, от этого наследия тоже где-то оставались "хвосты".
__________________
Ivanhoe as is..
Старый 08.05.2014, 11:17   #3  
imir is offline
imir
Участник
 
159 / 161 (6) ++++++
Регистрация: 28.05.2010
Цитата:
Сообщение от pedrozzz Посмотреть сообщение
зачем в локализации запретили изменять номер договора в шапке заказа при наличии строк?
Тот, кто видел структуру таблиц договоров в 2012-й - в цирке не смеется.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX 2012: Запрет на изменение частично оприходованных строк в заказе на покупку Stitch_MS DAX: Программирование 2 23.05.2013 13:54
Запрет изменения таблиц hated8 DAX: Программирование 8 07.04.2010 10:32
Обработка накладной в заказе больше 10 минут для 200 строк sao DAX: Администрирование 23 19.10.2005 18:53
Нужен запрет на изменения данных журнала переноса после его распечатки ATimTim DAX: Программирование 4 19.01.2005 12:16
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:34.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.