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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.10.2014, 10:51   #1  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
! Ошибка при выводе сведений о платеже (AX 2012)
Не знаю, в чью "светлую" голову пришло так выводить данные о платеже, но ...
(ниже выдержка из метода FactureJour_RU.getPaymentInfo())
X++:
while (rst.next(custVendInvoiceJour))
    {
        custVendTrans = custVendInvoiceJour.CustVendInvoiceJour::custVendTrans(custVendTrans);

        infolog.clear();

        while select DocumentNum, TransDate from custVendTransPayment
            order by custVendTransPayment.DocumentNum
            where custVendTransPayment.DocumentNum
        exists join custVendSettlement
            where custVendSettlement.AccountNum         == custVendTransPayment.AccountNum
               && custVendSettlement.OffsetTransVoucher == custVendTransPayment.Voucher
               && custVendSettlement.OffsetRecid        == custVendTransPayment.Recid
               && custVendSettlement.TransCompany       == custVendTrans.DataAreaId
               && custVendSettlement.TransRecId         == custVendTrans.RecId
               && custVendSettlement.AccountNum         == custVendTrans.AccountNum
        {
            docuNumSet.add(custVendTransPayment.DocumentNum);
            docDate = max(docDate, custVendTransPayment.TransDate);
        }
    }
Мало того, что DocumentDate не выбирается из map и не присваивается переменной, так еще и сравнение идет по максимальной дате.
Т.е. вместо того, чтобы сравнить с пустой датой (забыли указать в платеже), и только в этом случае взять дату проводки, всегда берут максимальную. Клиент оплатил в пятницу, в выписке компании платеж прошел в понедельник, но пятничную дату в печатных формах я не получу.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 21.10.2014, 11:08   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Мне кажется, тут в принципе подход найти максимальную дату из всех платежей.
Ну а в целом, достаточно спорный реквизит, один из первых кандидатов на переделку в рамках внедрения.
__________________
Ivanhoe as is..
Старый 21.10.2014, 12:41   #3  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Ну я бы понял, если бы вывелась максимальная дата из всех платежных документов. Т.е. сравнивать текущий docDate с DocumentDate каждого платежа. Но кто-то решил сравнение делать по TransDate место даты документа
X++:
while select DocumentNum, DocumentDate from custVendTransPayment
            order by custVendTransPayment.DocumentNum
            where custVendTransPayment.DocumentNum
        exists join custVendSettlement
            where custVendSettlement.AccountNum         == custVendTransPayment.AccountNum
               && custVendSettlement.OffsetTransVoucher == custVendTransPayment.Voucher
               && custVendSettlement.OffsetRecid        == custVendTransPayment.Recid
               && custVendSettlement.TransCompany       == custVendTrans.DataAreaId
               && custVendSettlement.TransRecId         == custVendTrans.RecId
               && custVendSettlement.AccountNum         == custVendTrans.AccountNum
        {
            docuNumSet.add(custVendTransPayment.DocumentNum);
            docDate = max(docDate, custVendTransPayment.DocumentDate);
        }
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Теги
ошибка, счет-фактура

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
dynamics-community.at: Dynamics AX 2012 Trainings Blog bot DAX auf Deutsch 0 19.06.2012 18:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
mfp: Microsoft Dynamics AX 2012 is here! Blog bot DAX Blogs 10 04.08.2011 17:11
dynamics-ax: Modeling the world, with Microsoft Dynamics AX 2012 Blog bot DAX Blogs 0 25.01.2011 09:11

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:06.