|
|
#1 |
|
Участник
|
Сумма фактуры отличается от суммы накладной
Ax2009 метод \Classes\FactureTransCreateCust_RU\calcAmounts()
X++: FactureTrans_RU tmpTrans, tmpTransSec;
(...)
select sum(Qty),
sum(LineAmount),
sum(vat),
sum(Excise),
sum(TaxAmount),
sum(LineAmountMST),
sum(vatAmountMST),
sum(ExciseAmountMST),
sum(TaxAmountMST)
from tmpTrans
where tmpTrans.InvoiceId == custInvoiceTrans.InvoiceId &&
tmpTrans.InvoiceDate == custInvoiceTrans.InvoiceDate &&
tmpTrans.InvoiceLineNum == custInvoiceTrans.LineNum && // <-- ???
tmpTrans.NumberSequenceGroup == custInvoiceTrans.NumberSequenceGroup &&
tmpTrans.FactureLineType == FactureLineType_RU::InvoiceLine &&
tmpTrans.Module == FactureModule_RU::Cust;Кто-нибудь может пояснить, в чем смысл использования для идентификации при поиске ранее созданных строк фактур порядкового номера строки LineNum, а не номер лота InventTransId? Проблема в том, что у нас через заказы на продажу выписывают услуги. И при создании накладных пользователи любят давать одинаковые номера накладным в подобных операциях. Как следствие, имеем много накладных с одинаковыми номерами, содержащими всего одну строку. Иногда совпадают и даты накладных. В результате, данный запрос находит строки фактур, относящихся к другим накладным и, как следствие, сумма и количество фактуры получается "произвольной". В общем случае, отличной от суммы накладной. Это ошибка кода или так специально было задумано?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
|
|
#2 |
|
Участник
|
Баг, причем и в AX2012 тоже код имеется, правда у нас проявился при суммарной обработке, когда несколько строк накладных имели одинаковый номер (транслировался из строк заказа). Менял как написано в этом посте, пока полет нормальный.
ПС. Думается мне смотрели в relation на FactureTrans_RU к таблице CustInvoiceTrans, правда и в этом случае потеряли связь по PurchSalesId
__________________
Sergey Nefedov Последний раз редактировалось SRF; 05.03.2014 в 21:07. |
|
|
|
| За это сообщение автора поблагодарили: Владимир Максимов (5). | |
|
|
#3 |
|
Участник
|
В модуле расчетов с клиентом есть еще такой документ "Накладная с произвольным текстом". Так вот, созданная на его основе накладная имеет пустой (не заполненный) номер лота. Из идентификаторов строки накладной только и остается, что номер строки.
Поэтому, связь по номеру лота надо указать не "вместо", а "вместе" (в дополнение) к связи по номеру строки Т.е. некая логика под связкой по номеру строки все-таки была. Хотя и не продуманная до конца ![]() PS: Если сравнить с методом \Classes\FactureTransCreateVend_RU\calcAmounts(), то добавить надо связь не по номеру лота, а по номеру заказа, хотя, думаю, принципиальной разницы нет
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 06.03.2014 в 10:56. |
|
|
|
| За это сообщение автора поблагодарили: S.Kuskov (3), SRF (2). | |
|
|
#4 |
|
Участник
|
Разница все таки есть, ведь для накладной с произвольным текстом поле номер заказа пустое, так что номер лота здесь кажется более правильным решением.
__________________
Sergey Nefedov |
|
|
|
|
#5 |
|
Участник
|
Цитата:
- Из накладной с произвольным текстом - Из заказа на продажу При создании накладной из накладной с произвольным текстом в CustInvoiceTrans будет пустым как номер лота, так и номер заказа. Заполненным будет только номер строки При создании накладной из заказа на продажу в CustInvoiceTrans будет заполнен как номер лота, так и номер заказа. Другими словами, разницы нет никакой. В одном случае все поля пустые, в другом случае все поля заполнены. Вопрос исключительно личных предпочтений.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
| Теги |
| ax2009, фактура |
|
|
|