05.03.2014, 20:54 | #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? Проблема в том, что у нас через заказы на продажу выписывают услуги. И при создании накладных пользователи любят давать одинаковые номера накладным в подобных операциях. Как следствие, имеем много накладных с одинаковыми номерами, содержащими всего одну строку. Иногда совпадают и даты накладных. В результате, данный запрос находит строки фактур, относящихся к другим накладным и, как следствие, сумма и количество фактуры получается "произвольной". В общем случае, отличной от суммы накладной. Это ошибка кода или так специально было задумано?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
05.03.2014, 21:03 | #2 |
Участник
|
Баг, причем и в AX2012 тоже код имеется, правда у нас проявился при суммарной обработке, когда несколько строк накладных имели одинаковый номер (транслировался из строк заказа). Менял как написано в этом посте, пока полет нормальный.
ПС. Думается мне смотрели в relation на FactureTrans_RU к таблице CustInvoiceTrans, правда и в этом случае потеряли связь по PurchSalesId
__________________
Sergey Nefedov Последний раз редактировалось SRF; 05.03.2014 в 21:07. |
|
|
За это сообщение автора поблагодарили: Владимир Максимов (5). |
06.03.2014, 10:27 | #3 |
Участник
|
В модуле расчетов с клиентом есть еще такой документ "Накладная с произвольным текстом". Так вот, созданная на его основе накладная имеет пустой (не заполненный) номер лота. Из идентификаторов строки накладной только и остается, что номер строки.
Поэтому, связь по номеру лота надо указать не "вместо", а "вместе" (в дополнение) к связи по номеру строки Т.е. некая логика под связкой по номеру строки все-таки была. Хотя и не продуманная до конца PS: Если сравнить с методом \Classes\FactureTransCreateVend_RU\calcAmounts(), то добавить надо связь не по номеру лота, а по номеру заказа, хотя, думаю, принципиальной разницы нет
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 06.03.2014 в 10:56. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (3), SRF (2). |
06.03.2014, 12:09 | #4 |
Участник
|
Разница все таки есть, ведь для накладной с произвольным текстом поле номер заказа пустое, так что номер лота здесь кажется более правильным решением.
__________________
Sergey Nefedov |
|
06.03.2014, 12:23 | #5 |
Участник
|
Цитата:
- Из накладной с произвольным текстом - Из заказа на продажу При создании накладной из накладной с произвольным текстом в CustInvoiceTrans будет пустым как номер лота, так и номер заказа. Заполненным будет только номер строки При создании накладной из заказа на продажу в CustInvoiceTrans будет заполнен как номер лота, так и номер заказа. Другими словами, разницы нет никакой. В одном случае все поля пустые, в другом случае все поля заполнены. Вопрос исключительно личных предпочтений.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
Теги |
ax2009, фактура |
|
|