![]() |
#9 |
Участник
|
По клиентам(тип счета) работает во всех случаях. А вот по поставщикам, работает только в зависимости от типа журнала. Работает только для типов 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. |
|