![]() |
#5 |
Участник
|
Пара предложений. Не уверен, что правильно понял логику ...
1. InventTrans::updateMarking() Проверка на код накладной, предположительно, это "защита" от изменения документа. В том смысле, что раз накладную создали, то количество по складским проводкам уже не может быть изменено. Вероятно, по этой причине и в delete() не было очистки маркировок. Просто маркированные проводки не могли быть удалены. Точнее, наоборот. Маркировка только в тех проводках, которые не удаляются ![]() Для складских журналов аналогичным признаком будет факт разноски журнала. Вот через ИЛИ и добавить соответствующее условие if ("Указана накладная" ИЛИ "складской журнал разнесен") - (Маркируем) 2. InventJourCopyStorno.run() Сделать сопоставление не вообще "всего" количества, а именно того, которое удалось сопоставить. Т.е. примерно так X++: markQty = InventTrans::updateMarking(transOrig.InventTransId, transNew.InventTransId , transOrig.Qty);
if (markQty)
InventTrans::updateMarking(transNew.InventTransId , transOrig.InventTransId, -markQty); Ведь если не удалось сопоставить какое-то количество, значит, это количество где-то, как-то "заблокировано" к сопоставлению. Ну, и зачем "ломать об колено"? Здесь даже проверка уже смысла не имеет, ведь сторно-документ только что создан, так что вторая маркировка в сторно-документе всегда будет на все указанное количество
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: jeky (3). |
|
![]() |
||||
Тема | Ответов | |||
Снова SpreadSheet 8) | 23 | |||
И снова про номерные серии... правда немного глубже... | 29 | |||
Снова запрос | 11 | |||
снова COM Connector | 11 | |||
И снова про Сводное планирование | 2 |
|