Показать сообщение отдельно
Старый 05.03.2014, 20:54   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,656 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Сумма фактуры отличается от суммы накладной
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?

Проблема в том, что у нас через заказы на продажу выписывают услуги. И при создании накладных пользователи любят давать одинаковые номера накладным в подобных операциях. Как следствие, имеем много накладных с одинаковыми номерами, содержащими всего одну строку. Иногда совпадают и даты накладных.

В результате, данный запрос находит строки фактур, относящихся к другим накладным и, как следствие, сумма и количество фактуры получается "произвольной". В общем случае, отличной от суммы накладной.

Это ошибка кода или так специально было задумано?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...