Показать сообщение отдельно
Старый 12.06.2012, 13:04   #1  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Округление накладной по закупке
поставили задачу:
ГК. Параметры-разноски. Системные счета = Округление накладной по закупке (LedgerPostingType::PurchaseInvoiceRoundOff)
реализовать отдельно разноску: положительной суммы округления на один счет,
отрицательной на другой счет

Текущая реализация
LedgerPostingType::PurchaseInvoiceRoundOff - используется в методах:
1. PurchFormLetter_Invoice.postInvoiceRoundOff (вызов из PurchFormLetter_Invoice\updateNow)
2. MarkupAdjustment.adjustInvoice (вызов из PurchFormLetter_Invoice\updateInventory)

Решение:
1. Добавляем в ENUM LedgerPostingType::PurchaseInvoiceRoundLoss_RU, LedgerPostingType::PurchaseInvoiceRoundProfit_RU

2. в методе PurchFormLetter_Invoice.postInvoiceRoundOff добавялем условие
if(vendInvoiceJour.InvoiceRoundOff > 0)
LedgerPostingType::PurchaseInvoiceRoundProfit_RU
else LedgerPostingType::PurchaseInvoiceRoundLoss_RU
(учитываем вариант со сторнированием)

3. а вот с методом MarkupAdjustment.adjustInvoice - никак не могу разобраться,
данный метод запускается по каждой номенклатуре, проверяет наличие записей в tmpLedgerTrans, и в виду отсутствия таковых, проходит мимо...
Единственная мысль, что данный метод используется в том случае, если в ГК создается запись не общая по накладной, а по каждой номенклатуре...

Может кто сталкивался ?!