10.10.2008, 08:31 | #1 |
Участник
|
Скидка 100% в строке Заказа
Здравствуйте!
Суть проблемы: не обрабатывается заказ если на одной из строк выставлена скидка 100%, либо сумма скидки составляет стоимость самого товара, т.е. Чистая сумма равна 0 (строка заказа - подарок с ценой 0). При обработке выдаёт ошибку "Проводка уже выполнена", а если у товара проставить цену отличную от 0, например, 0,01 заказ обрабатывается на ура. Можно ли провести заказ, у которого в строках имеется товар с нулевой ценой. |
|
10.10.2008, 08:53 | #2 |
Axapta Retail User
|
В стандарте (Ax3) все проводится отлично, видимо у вас какие то модификации?
|
|
10.10.2008, 08:59 | #3 |
Участник
|
У нас Ax3 sp4
|
|
10.10.2008, 09:27 | #4 |
Участник
|
Я посмотрел где выдаётся ошибку: Classes\SalesformLetter_Invoice\checkBeforePosting.
Заметил, что если цена товара не 0 метод checkBeforePosting выполняется 1 раз для строки заказа, если же цена нулевая то 2 раза ( и на 2 прогоне выпадает ошибка). |
|
10.10.2008, 10:29 | #5 |
Member
|
С нулевой ценой в стандарте нет. Со 100 процентной скидкой — можно.
__________________
С уважением, glibs® |
|
10.10.2008, 10:41 | #6 |
Участник
|
Я пробовал со 100% скидкой таже ошибка
|
|
30.10.2008, 12:03 | #7 |
Moderator
|
В классе SalesFormLetter_Invoice в методе updateNow есть цикл по SalesFormLine (список SalesParmLine формируется в классе TradeTotals и записывается в recordListSalesParmLine)
X++: while (salesParmLine) { .. if (! recordListSalesParmLine.next(salesParmLine)) break; } { X++: if (SalesParameters::find().ReduceInvoice) { if (! lineValue) continue; else lineAmountExist = true; } т.е. возвращаемся к началу цикла с прежним курсором SalesParmLine в итоге получаем ошибку в методе X++: protected void checkBeforePosting() { if (salesParmLine.remainBefore != (salesLine.remainSalesFinancial + salesLine.remainSalesPhysical)) throw error("@SYS23025"); ... } Таким образом сняв галочку SalesParameters.ReduceInvoice (Автоматическое сокращение по накладной, Уменьшать строки сопоставления автоматически во время разноски накладной?) устраняем ошибку. (Назначение галочки не разбирал) Похоже на баг |
|