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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.02.2010, 09:36   #1  
Jonas is offline
Jonas
Участник
 
6 / 10 (1) +
Регистрация: 27.12.2009
одновременно две операции
Добрый день,

возможно ли делая продажу (Sales Оrder) сразу генерировать (Ax создала автоматично) операцию платежа например наличными через кассу?

Можно ли такое сконфигурировать в Ax 4.0?

Заранее благодарен!
Старый 10.02.2010, 09:51   #2  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Да можно (правдо давно это настраивал), в условиях платежа клиента вроде как надо настроить, тогда система вам проведет заказ и выполнит оплату (но я могу и ошибаться, а то давно оташел от этих дел : ( ).
Старый 10.02.2010, 10:08   #3  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Всё верно, нужно в Условиях оплаты (Terms of Payment) выбрать Payment method - C.O.D. (на русский переведено по разному в разных версиях), установить флаг "Cash payment", и выбрать нужный счёт ГК в поле "Cash". Тогда при разноске накладной по счёту автоматически сформируется проводка по клиенту на оплату на выбранный счёт.
__________________
Михаил Андреев
https://www.amand.ru
За это сообщение автора поблагодарили: Logger (1).
Старый 10.02.2010, 10:30   #4  
ikopyl is offline
ikopyl
Участник
Лучший по профессии AXAWARD 2013
 
245 / 128 (5) +++++
Регистрация: 27.07.2006
Адрес: Белгород - Москва - Химки
Проводка только закроет задолженность клиента на указанный счет. Приходник всё равно придётся делать руками.
Это можно применить, если что-то продаете в розницу (без выдачи приходного кассового ордера), а потом одним приходником отражаете выручку по кассе (с промежуточного счета, указанного в способе оплаты).
__________________
Если машина не заводится с пятого раза - читай инструкцию.
Старый 10.02.2010, 11:10   #5  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от ikopyl Посмотреть сообщение
Это можно применить, если что-то продаете в розницу (без выдачи приходного кассового ордера), а потом одним приходником отражаете выручку по кассе (с промежуточного счета, указанного в способе оплаты).
Не только Можно использовать для продажи товара наложенным платежом и даже факторинга. При этом касса вообще не используется.
__________________
Михаил Андреев
https://www.amand.ru
Старый 10.02.2010, 11:37   #6  
ikopyl is offline
ikopyl
Участник
Лучший по профессии AXAWARD 2013
 
245 / 128 (5) +++++
Регистрация: 27.07.2006
Адрес: Белгород - Москва - Химки
Цитата:
Сообщение от Михаил Андреев Посмотреть сообщение
Не только Можно использовать для продажи товара наложенным платежом и даже факторинга. При этом касса вообще не используется.
Согласен
__________________
Если машина не заводится с пятого раза - читай инструкцию.
Старый 25.12.2012, 16:08   #7  
zemlyn is offline
zemlyn
Участник
Аватар для zemlyn
 
146 / 44 (2) +++
Регистрация: 28.01.2004
Добрый день, коллеги.
AX 2009
Нужна такая возможность - автосоздание проводки-"оплаты" с сопоставлением по поставщику.
Добавил такое Условие на оплату (с галкой ~"Наличными")

Сделал операцию в журнале ГК (выбрал условие на оплату) - автооперация не сработала (предварительный показ проводок также доп.проводку не показывает)

Сделал заказ на покупку - автооперация отработала.

В журнале ГК опция не работает?
Старый 26.12.2012, 11:29   #8  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от zemlyn Посмотреть сообщение
В журнале ГК опция не работает?
Должно работать. У меня работает. За это отвечает кусок кода :
X++:
.............................
//handle possible cashpayment or settlements if it's not a 0 transaction
    custVendTransData = CustVendTransData::construct(custVendTrans);

    if (!postingProfileSettlement)
    {
        if(custVendTrans.AmountCur || custVendTrans.AmountMST)
        {
            /* <SYS>
            if (PaymTerm::isCashAccount(paymTermId) && custVendTrans.AmountCur)
            </SYS> */
            // <GEEU>
            if ((PaymTerm::isCashAccount(paymTermId) || emplAccount) && custVendTrans.AmountCur)
            {
                if (emplAccount)
                {
                    custVendTransCash = custVendTransData.updateEmplAccount_RU(ledgerVoucher,
                                                                               ledgerPostingType,
                                                                               cashDiscAmount,
                                                                               cashDiscDate,
                                                                               emplAccount,
                                                                               EmplParameters_RU::find().PostingProfile,
                                                                               exchRate,
                                                                               exchRateSecondary);
                }
                else
            // </GEEU>
                {
                    custVendTransCash = custVendTransData.updateCashDisc(paymTermId,
                                                                         ledgerVoucher,
                                                                         ledgerPostingType,
                                                                         cashDiscAmount,
                                                                         cashDiscDate,
                                                                         exchRate);
                                                                         /* <SYS>

                                                                         </SYS> */
                // <GEEU>
                }
                // </GEEU>
.............................
в классе CustVendVoucher в методе Post. Проверьте попадает туда алгоритм или нет?
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
За это сообщение автора поблагодарили: zemlyn (1).
Старый 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.
Старый 26.12.2012, 12:44   #10  
zemlyn is offline
zemlyn
Участник
Аватар для zemlyn
 
146 / 44 (2) +++
Регистрация: 28.01.2004
Да, спасибо. Тоже дошёл до этого кусочка кода.
Так беззастенчиво обнуляет значение, и не краснеет воришка.
Похоже на какую-то быстро прилепленную заплатку.

Причем в названиях легко запутаться.
Нужный журнал д.б. создан в РП-Журналы-Накладные-Журналы накладных (Тип журнала Регистрация накладной от поставщика). А там рядом еще есть пункт Регистрация накладных...

Хоть бы в инфолог выдавал сообщение....
Э-э-эх.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Операции с ОС, переданными в аренду 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, время: 00:29.