Показать сообщение отдельно
Старый 26.12.2012, 12:17   #9  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
По клиентам(тип счета) работает во всех случаях. А вот по поставщикам, работает только в зависимости от типа журнала. Работает только для типов LedgerJournalType::Approval - утверждение и LedgerJournalType::VendInvoiceRegister - регистрация накладной от поставщика. Почему так - не знаю. В классе VendVoucher, в методе newVendVoucherJournal видно, что параметр _paymTermId не всегда передается. Вот кусок кода :
X++:
................................
switch (ledgerJournalType)
    {
        case LedgerJournalType::Approval: // вот здесь всегда передается
            if (_ledgerJournalTrans.Cancel == NoYes::Yes)
            {
                vendVoucher = new VendVoucherJournalCancel(_ledgerVoucher,
                                                           _ledgerJournalTrans.AccountNum,
                                                           _ledgerJournalTrans.amount() + _amountCur,
                                                           _ledgerJournalTrans.CurrencyCode,
                                                           _ledgerTransTxt,
                                                           _ledgerJournalTrans.Dimension,
                                                           _ledgerJournalTrans.PostingProfile,
                                                           LedgerPostingType::VendBalance,
                                                           _ledgerJournalTrans.Payment, // и здесь передается
                                                           _ledgerJournalTrans.SettleVoucher,
                                                           curuserid(),
                                                           NoYes::Yes,
                                                           '',
                                                           dateNull(),
                                                           0,
                                                           dateNull(),
                                                           _ledgerJournalTrans);
            }
            else
            {
                 vendVoucher = new VendVoucherJournalApproval(_ledgerVoucher,
                                                              _ledgerJournalTrans.AccountNum,
                                                              _ledgerJournalTrans.amount() + _amountCur,
                                                              _ledgerJournalTrans.CurrencyCode,
                                                              _ledgerTransTxt,
                                                              _ledgerJournalTrans.Dimension,
                                                              _ledgerJournalTrans.PostingProfile,
                                                              LedgerPostingType::VendBalance,
                                                              _ledgerJournalTrans.Payment, // и здесь передается
                                                              _ledgerJournalTrans.SettleVoucher,
                                                              curuserid(),
                                                              NoYes::Yes,
                                                              '',
                                                              dateNull(),
                                                              0,
                                                              dateNull(),
                                                              _ledgerJournalTrans);
            }
        break;

        default :
            if (TaxParameters::canApplyCashDiscOnInvoice_ES() && (ledgerJournalType == LedgerJournalType::Daily || ledgerJournalType == LedgerJournalType::VendInvoiceRegister))
            {
                amount      = _ledgerJournalTrans.amount() + _amountCur - _ledgerJournalTrans.CashDiscAmount;
                approved    = NoYes::Yes;
                approvedBy  = curuserid();
            }
            else
            {
                amount      = _ledgerJournalTrans.amount() + _amountCur;
                approved    = _ledgerJournalTrans.Approved;
                approvedBy  = _ledgerJournalTrans.ApprovedBy;
            }

            vendVoucher = new VendVoucherJournal(_ledgerVoucher,
                                                 _ledgerJournalTrans.AccountNum,
                                                 amount,
                                                 _ledgerJournalTrans.CurrencyCode,
                                                 _ledgerTransTxt,
                                                 _ledgerJournalTrans.Dimension,
                                                 _ledgerJournalTrans.PostingProfile,
                                                 LedgerPostingType::VendBalance,
                                                 ledgerJournalType == LedgerJournalType::VendInvoiceRegister ? //а вот здесь передается если тип LedgerJournalType::VendInvoiceRegister, передавайте его здесь всегда
                                                 _ledgerJournalTrans.Payment : '',
                                                 _ledgerJournalTrans.SettleVoucher,
                                                 approvedBy,
                                                 approved,
                                                 '',
                                                 dateNull(),
                                                 0,
                                                 dateNull(),
                                                 _ledgerJournalTrans);
    }
................................
Передавайте его всегда и все будет оплачиваться и сопоставляться, правда могут всплыть(а могут и не всплыть) какие-нибудь подводные камни, связанные именно с вышеуказанным ограничением. А так, проверил, работает.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 26.12.2012 в 13:22.