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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.02.2017, 13:20   #1  
CHESER85 is offline
CHESER85
Участник
 
93 / 11 (1) +
Регистрация: 04.08.2011
Адрес: Ufa
Записей в блоге: 1
Открытые операции по клиенту
Доброго времени суток, уважаемые программисты и консультанты системы АХ 4.0. Пытаюсь разобраться с логикой системы, просьба мне помочь в этом разборе.
Задача: посчитать сумму предоплаты по заказу на продажу.
Сумма предоплаты считается следующим образом:

display prepaymentAmountMST prepaymentAmountMST()
{
SpecTrans specTrans;
AmountMST amountMST = 0;
;

while select specTrans
where specTrans.SpecTableId == this.TableId &&
specTrans.SpecRecId == this.RecId
amountMST += specTrans.custTransOpen().AmountMST;

return -amountMST;
}

Здесь видно, что пробегаемся по всем открытым операциям в таблице custTransOpen, которые через таблицу specTrans привязываются к текущему заказу на продажу по RecId (на форме открытых операций это изображается в виде галочки).
Открытые операции могут быть с типом "платеж", это когда через журнал платежей загружают операции, которые потом привязывают к нужному заказу на продажу. Также (и это малопонятно для меня) открытые операции могут быть с типом "заказ на продажу", которые система формирует автоматически при разноске/сторнировании накладных.
Рассмотрим ситуации с примером:
Ситуация №1. Платеж перед накладной.
1) сначала привязывают платеж 100 рублей
в предоплату садится сумма платежа 100 рублей. В шапке заказа на продажу во вкладке настройка значение поля "Тип сопоставления" автоматически меняется с "Нет" на "Помеченные операции".
2) потом разносят накладную на 40 рублей,
предоплата остается такой же (открытая операция с типом "заказ на продажу" не формируется)
3) отвязывают платеж на 100 рублей (т.е. снимают галку в открытых операциях)
Непонятный момент: "тип сопоставления" не изменяется обратно с "Помеченные операции" на "Нет".
Т.к. платеж отвязали, в предоплате останется 0 рублей.
4) потом сторнируют эту же накладную на 40 рублей,
формируется открытая операция "кредит-нота" с типом "Заказ на продажу" на сумму 40 рублей и привязывается к заказу. в предоплате становится 40 рублей.
5) потом делают "реверс" платежа 100 рублей
В открытых операциях создается строчка с типом "Заказ на продажу" которая связана с накладной из п.2 но (еще один непонятный момент) не привязанная к заказу на продажу. В сумме предоплаты остается 40 рублей.

В итоге после проделанных манипуляций по разноске накладной и ее сторнировании в предоплате остается 40 рублей. Если бы созданная в п. 5 строчка привязалась к заказу на продажу, то тогда в итоге осталось бы 0, т.к. произошло бы взаимное уничтожение.

Я думаю, что это неверно, что в результате манипуляций осталось 40 а не 0.


Ситуация №2. Накладная перед платежом.
1) сначала разносят накладную на 40 рублей
автоматически формируется строчка в открытых операциях с типом "Заказ на продажу", которая связана с этой накладной, но не привязана к этому заказу на продажу. Это объясняется тем, что во вкладке настройка в шапке заказа на продажу значение поля "Тип сопоставления" стоит "Нет", и система не привязывает эту открытую операцию к заказу на продажу. В предоплате стоит 0
2) потом привязывают платеж на 100 рублей
в предоплату садится дополнительно сумма платежа 100 рублей. В шапке заказа на продажу во вкладке настройка значение поля "Тип сопоставления" автоматически меняется с "Нет" на "Помеченные операции". В итоге в предоплате 100 рублей
3) отвязывают платеж 100 рублей (т.е. снимают галку в открытых операциях)
Непонятный момент: "тип сопоставления" не изменяется обратно с "Помеченные операции" на "Нет".
Т.к. платеж отвязали, в предоплате останется 0 рублей.
4) потом сторнируют эту же накладную на 40 рублей,
формируется открытая операция "кредит-нота" с типом "Заказ на продажу" на сумму 40 рублей и привязывается к заказу. в предоплате становится 40 рублей.
5) потом делают "реверс" платежа 100 рублей
никакие дополнительные проводки по custOpenTrans в этом пункте не создаются. Сумма предоплаты становится 40 рублей.

Опять же мы видим подобную картину, т.е. после всех манипуляций сумма предоплаты не обнулилась, а стала 40.

В связи с этим вопросы:
1. Какой идейный смысл несут в системе автоматически создаваемые проводки по custTransOpen с типом "Заказ на продажу" в момент разноски/сторнирования накладных?
2. Почему тип сопоставления salesTable.settleVoucher не изменяется обратно с "Помеченные операции" на "Нет" в момент отвязки платежа?
3. Почему после операции "разноска накладной -> сторно накладной" возникает остаток в сумме предоплаты?

Последний раз редактировалось CHESER85; 06.02.2017 в 13:24.
Старый 06.02.2017, 16:28   #2  
BIDeveloper is offline
BIDeveloper
Участник
 
26 / 11 (1) +
Регистрация: 27.11.2016
Цитата:
Сообщение от CHESER85 Посмотреть сообщение
В связи с этим вопросы:
1. Какой идейный смысл несут в системе автоматически создаваемые проводки по custTransOpen с типом "Заказ на продажу" в момент разноски/сторнирования накладных?
Так устроен функционал расчета задолженности и сопоставления с платежами. Сопоставляется не платеж с заказом/накладной, а открытая проводка по платежу с открытой проводкой по накладной. Открытые проводки также можно формировать например из журнала ГК (начислили штраф клиенту или еще что). В общем, суть такая, что различные документы формируют пул открытых проводок, положительных и отрицательных и уже эти проводки сопоставляются.
Старый 06.02.2017, 16:33   #3  
BIDeveloper is offline
BIDeveloper
Участник
 
26 / 11 (1) +
Регистрация: 27.11.2016
Цитата:
Сообщение от CHESER85 Посмотреть сообщение
Ситуация №1. Платеж перед накладной.
1) сначала привязывают платеж 100 рублей
в предоплату садится сумма платежа 100 рублей. В шапке заказа на продажу во вкладке настройка значение поля "Тип сопоставления" автоматически меняется с "Нет" на "Помеченные операции".
2) потом разносят накладную на 40 рублей,
предоплата остается такой же (открытая операция с типом "заказ на продажу" не формируется)
Вообще в этот момент должна создаваться открытая операция с типом "заказ на продажу" на 40 рублей, которая сразу же сопоставляется с открытой операцией по платежу. Если у вас не так, то это бага, ищите обновления или проверяйте ваш код.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Процент отходов на операции маршрута и заказ материалов Starling DAX: Функционал 6 20.10.2014 10:24
Странные знаки и выравнивание у полей сумм в форме Проводки по клиенту Aquarius DAX: Функционал 1 27.06.2012 21:25
Повторные операции в маршрутах Hard DAX: Функционал 21 21.09.2011 15:04
Как посчитать сальдо по клиенту на дату Silphidae DAX: Программирование 23 29.07.2010 14:59
Операции с ОС, переданными в аренду IDian DAX: Функционал 2 10.08.2009 23:25
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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