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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.04.2009, 08:26   #1  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Как вы определяете очередность платежей? По дате платежа или по очередности сопоставления?

С ума сойти не сложно. Сложнее вылечиться. Так что нервы стоит беречь.
__________________
С уважением,
glibs®
Старый 03.04.2009, 05:53   #2  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Цитата:
Сообщение от glibs Посмотреть сообщение
Как вы определяете очередность платежей? По дате платежа или по очередности сопоставления?
Извините меня, Глеб, но я не понимаю вопроса Это вопрос о настройках аксапты? Я не знаю таких настроек...
Или это вопрос о том, как мы хотим сопоставлять? По бытовой логике дата закрытия инвойса должна быть равна дате последнего платежа, в каком бы порядке все это не сопоставлялось. Иначе это приводит к ошибкам в отчете.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Старый 06.04.2009, 12:33   #3  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от Qaz Qwerty
...
По бытовой логике дата закрытия инвойса должна быть равна дате последнего платежа, в каком бы порядке все это не сопоставлялось. Иначе это приводит к ошибкам в отчете.
...
Хм...

Я посмотрел буржуйскую версию. Там в инвойсе проставляется дата оплаты, с которой он был сопоставлен физически последней (если она закрывает инвойс). Без вариантов.

В тексте подсказки к полю написано: "Date ot total settlement of the transaction". Это в принципе соответствует тому, что и происходит.

В тексте справки текст неоднозначно трактуемый.

"...
If the transaction has been settled, the date for the full settlement is displayed. This date corresponds to the transaction date of the final payment. If the field is empty, the transaction has not yet been fully settled.

For example, if a prepayment posted on January 1 is settled against an invoice posted on February 1, the invoice date is displayed.
..."

А ваша бытовая логика чем аргументирована?

Вы уверены, что от даты закрытия зависит корректность построения отчета?
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: Qaz Qwerty (1).
Старый 11.04.2009, 05:37   #4  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
;)
glibs, спасибо огромной за наводку на параметр, он нашелся на закладке "Sales tax" в параметрах главной книги и называется "Settlement / Latest date for closing" .
И теперь дата закрытия всегда дата последнего платежа.

Работает действительно АОТ\Classes\CustVendSettle.settleNow() .

Mazzy, спасибо за объяснение по поводу использования CustTransOpen . Логично.

По поводу того, почему отчет не работает в случае, когда дата закрытия не равна дате последнего платежа.

Например, мы закрыли инвойс платежами от 10 октября и от 15 сентября и формируем отчет на 30 сентября. Для отчета выбираются все проводки по клиенту, проведенные ДО даты отчета, закрытые ПОСЛЕ даты отчета, сопоставленные ПОСЛЕ даты отчета. Смотрим CustBalanceList.queryRunClosedTransactions.

X++:
 queryRun.query().dataSourceTable(tablenum(CustTrans)).findRange(fieldnum(CustTrans, AccountNum)).value(queryValue(_custTable.AccountNum));
    queryRun.query().dataSourceTable(tablenum(CustTrans)).findRange(fieldnum(CustTrans, TransDate)) .value(queryRange(dateNull(),transactionDate));
    queryRun.query().dataSourceTable(tablenum(CustTrans)).findRange(fieldnum(CustTrans, Closed)).value(SysQuery::valueEmptyString() + ',' + queryRange(transactionDate, dateMax()));

    if (!printReversed)
    {
...
    }

    queryRun.query().dataSourceTable(tablenum(CustSettlement)).findRange(fieldnum(CustSettlement, TransDate)).value(queryRange(transactionDate, dateMax()));
Дата закрытия инвойса - 15 сентября, то есть он не попадает в выборку для отчета. Между тем, по нему по состоянию на 30 сентября еще есть задолженность, ведь платеж от 10 октября еще физически не пришел.

Таким образом, баланс по клиенту (простая сумма всех проводок до определенного числа) будет расходиться с Aging Report.

Так ведь?

Вторая проблема с exchange adjustments. Тоже пришлось корректировать ручками.
__________________
Может быть выйдет, а может не-е-е-ет...
Новая песня вместо штиблет..
Теги
aging report, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Customer Aging Report (DAX 4.0) Qaz Qwerty DAX: Программирование 4 31.10.2008 22:49
Dynamics AX: Dynamics AX project success - Customer Ownership & Expectations Blog bot DAX Blogs 0 07.08.2007 21:10
Report:можно ли избавиться от "Отчет не содежит данных" Arahnid DAX: Программирование 4 29.05.2007 10:04
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43

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

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

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