21.02.2007, 21:20 | #1 |
Участник
|
не отрабатывает сопоставление по поставщикам
dax 3.0 sp4fp1
Добрый день, подскажите пожалуйста по такой ситуации (не уверен, в какой из топиков обращаться, но код х++ я тоже приведу) Ситуация следующая: сопоставляю проводки по поставщику выбранной датой. была задолженность поставщику 100рублей сопоставили 30.09.06 100руб. рассопоставили 31.10.06 100руб. теперь хочу 31.10.06 снова сопоставить на 100рублей Не дает: маркирую проводки , жму обновить, галки слетают, суммы прежние. Никаких сообщений (Возможно тут уже будет готов ответ, тогда можно было ветке по функционалу спрашивать , но если нет, то рассказываю дальше) Открываю чудо-метод (умещается на одном экране монитора 22века c разрешением 160'000*90'000 calcvendsettlement.settleNow() и пристально изучаю Нахожу такой код (на последнем sp5fp2_allupdated тоже он есть), похоже относится к книге покупок (// EVZ, Purchase book -->) PHP код:
Если если мы рассопоставили числом Х сумму, то этот рассопоставленный кусок платежа нельзя снова сопоставить этим же числом Х (и ранее видимо тоже) Это идеологически верно? И какое бы сообщение можно было бы выдать пользователю в таком случае (и что тогда проверять при этом?) |
|
22.02.2007, 16:05 | #2 |
Moderator
|
В общем - короче - картина такая:
Код формы сопоставлений при заполнении сумм в specTrans, использует текущее значение суммы в валюте из custTransOpen/vendTransOpen. Теперь представим себе ситуацию: платеж на 100 рублей от 1 числа потом мы его 5ым числом с чем-то полностью сопоставляем, потом 20ым числом - отменяем сопоставление. Соответственно - в настоящий момент времени - у нас в открытой проводке сальдо равно 100 рублям и ты вполне можешь поставить эту цифру в сумму сопоставления. В то же время - по состоянию между 5ым и 20ыми числами - проводка БЫЛА СОПОСТАВЛЕНА. И пытаться ее снова сопоставить какой-то датой из этого промежутка - некорректно. Ну а методы на тему reversedAmount просто считают все отмененные сопоставления по проводке, отмененные не той датой, которой были проведены исходные сопоставления. А потом сумма этих отмененных сопоставлений вычитается из текущего баланса проводки (грубо говоря). Так что все логично. Чисто технически, выводить на форму сопоставления не текущие, а исторические сальдо каждой проводки на дату сопоставления было бы очень затратно с точки зрения нагрузки на сервер. Хотя с чисто финансовой точки зрения - это было бы логично. Тогда в specTrans попадала бы сумма сопоставления, основанная на реальном сальдо проводки на дату. Но поскольку технически такой режим сопоставления реализовать было невозможно, автор просто заткнул, как смог, дырку, поставив вычитание суммы отмененных другой датой сопоставлений из введенной пользователем суммы сопоставления. А ты как раз попал в граничный режим - то есть - не совсем понятно - как именно считать открытый баланс по проводке на 31.10. Была ли проводка на эту дату открытой, если сопоставление как раз только что отменили? |
|
|
За это сообщение автора поблагодарили: zemlyn (2). |
Теги |
ax3.0 |
|
|