AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 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.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Операции с ОС, переданными в аренду IDian DAX: Функционал 2 10.08.2009 23:25
Спецификации. Изменение номера операции после сброса статуса petr DAX: Функционал 3 15.01.2008 12:47
Параллельные операции в маршрутах Sanya DAX: Функционал 10 26.04.2007 00:41
Как для ГК операции в LedgerTrans найти соответствующую операцию в VendTrans? romulis DAX: Программирование 20 29.08.2006 14:10
Назначение операции потребляемого на ней материала slava09 DAX: Функционал 14 19.04.2006 13:32

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:20.