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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.10.2024, 20:04   #1  
Lankey is offline
Lankey
Участник
 
121 / 28 (1) +++
Регистрация: 19.05.2020
Как правильно сопоставлять платежи с оптатами?
Ax2012
Мне нужно сопоставлять платежи с оплатами при импорте строк журнала. Мне дается при импорте номер счет-фактуры, с которой надо сопоставить строку журнала. Это надо делать как при импорте журналов клиентов так и для строк журналах платежей поставщиков (в любом случае делаем сопоставление). Если оплата неполная, то сумма должна корректно перерасчитаться на проводке помеченной к оплате.

Вот кода, например https://axgenius.blogspot.com/2016/11/how-to-mark-vendor-open-settlement.html сопоставляет для поставщиков и использует custvendopentransmanager Нахожу также код , где используется spectransmanager (ну, например, даже тут Сопоставление VendTrans)
Как правильно это делать? И можно ли сделать так, чтобы работал код и для пославщиков и для клиентов или есть какие-то различия в бизнес-логике такие, что это незозможно?
Спасибо

PS: Также вопрос про markedInvoice на строках журнала. Нужно ли его заполнять при сопоставлении платежей с оплатами поставщика? Вроде как не заполняется, но не понимаю почему он не нужен

Последний раз редактировалось Lankey; 22.10.2024 в 20:13.
Старый 23.10.2024, 02:15   #2  
Lankey is offline
Lankey
Участник
 
121 / 28 (1) +++
Регистрация: 19.05.2020
А тут https://www.theaxapta.com/2015/03/au...ice-in-ax.html иcпользуют custVendTransData
PS: Прошу прощения за опечатки. Впопыхах писала первое сообщение, и сейчас уже нельзя ни удалить, ни исправить
Старый 23.10.2024, 10:45   #3  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
368 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Первая ссылка - маркирование проводок по документам, которые еще не разнесены в системе (в момент разноски сформируется проводка и она будет сопоставлена с той, по которой сделана маркировка перед разноской).

Ссылка из второго сообщения - сопоставление уже сформированных проводок (т.е. когда у вас уже есть в системе и накладная и оплата).

Варианты реализации, которые видятся (оба варианта - что маркирование до разноски\что после для CustVend будут выглядеть +- одинаково (использование мапов CustVendTrans\CustVendTransOpen и т.д. думаю поможет сделать идентичным, пример из коробки CustVendAutoSettlement_RU), если не использовать markedInvoice или допилить его использование для поставщиков) :

- Выполнить маркирование не разнесенной строки журнала с уже проведенной проводкой накладной (в момент создания\отдельным методом после создания всех строк). Пример как это сделать есть в первой ссылке.

Для клиентов из коробки можно использовать поле markedInvoice (заполняем номер, код компании) и дополнительно вызываем код из DS write формы клиентов платежей - по сути он выполняет тоже самое, что и код маркирования, в случае оплаты для одной накладной, скажем так - код получается чуть проще. Для поставщиков не используется, только если допиливать для своих нужд.

- Выполнить разноску строки журнала и уже после сопоставлять сформированные проводки оплаты и накладной (пример из второго сообщения).

Я сейчас уже не вспомню всех нюансов, но о чем стоит подумать и посмотреть :

- можно ли маркировать две разных строки журнала на одную накладную (т.е. у вас накладная на 200 руб, придет 2 оплаты по 100 рублей, не будет ли проблемы с маркированием второй проводки на 100, пока первая еще также помечена и не разнесена, кажется что не должно). Просто помню иногда из интерфейса открываешь проводки для сопоставления, а там проводка может быть помечена красной рукой и эту проводку выбрать для пометки уже нельзя.

- если журналы большие - много строк, мало клиентов - то сопоставление в момент создания\разноски журнала, может стать узким местом и возможно имеет смысл сделать отдельную ПО для сопоставления уже в отдельной транзакции после разноски.
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: Lankey (1).
Старый 23.10.2024, 14:04   #4  
Lankey is offline
Lankey
Участник
 
121 / 28 (1) +++
Регистрация: 19.05.2020
Спасибо, Сергей! Да, мне нужно строку неразнесенного журнала промаркировать с разнесенной счет-фактурой. В отличае от 1го примера, у меня могут быть частичные оплаты. То есть, сумма оплаты меньше, чем сумма счет-фактуры. Поэтому,видимо, не нужно обновлять сумму на журнале,как в примере, а вызывать custvendopentransmanager.updateSettleAmount(myJourLinePaymAmount). Вопрос, нужно ли потом еще и taxWitholdTrans пересчитывать(. В примере этого нет, а вот в форме vendOpenTrans editSettleAmoutCur() вызывает такой пересчет)

Не понимаю, почему столько вариантов даже в стандарте для простого, казалось бы, сопоставления. Будто по минному полю ходишь (. Может, есть какая-то документация для разработчиков, где можно почитать о том, как правильно это делать, чтобы не наломать дров? Как Вы все с этим разбирались ? По коду или читали где-то док с архитектурой этого процесса (какие классы и таблицы за что отвечают и тд)
Теги
ax2012

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Передача таблицы TempDB по маршруту класс1-форма-класс2, как правильно? mikki_messer DAX: Программирование 7 15.07.2019 16:07
D365 как правильно переопределить метод в таблице. Skolos DAX: Программирование 19 31.01.2018 18:57
Иностранные налоговые платежи Mileyko DAX: Программирование 5 13.07.2010 18:58
aEremenko: Как правильно подобрать оборудование и понять, сколько оно будет стоить? Blog bot DAX Blogs 0 17.04.2007 12:00
Как планировать платежи... skof DAX: Прочие вопросы 14 12.01.2005 15:14

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

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

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