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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.09.2010, 15:19   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
CustVendSettle просмотр кода
DAX 2009 RU 5
просматривал код и возникли вопросы
- метод settleNow
строка 552 и далее
X++:
            if (!areDebitsDone && custVendTransDebit.AmountCur != 0)
            {
                //find the offset to the custVendTransDebet still open
                select firstonly custVendTransCredit order by RecId desc
                where custVendTransCredit.RecId == custVendTransDebit.OffsetRecId;

                this.setStillOpenValues(custVendTransDebit,
                    custVendTransOpenDebit.RecId,
                    specTransDebit.Balance01,
                    custVendTransCredit.Dimension,
                    debitTransState);
            }

            if (!areCreditsDone && custVendTransCredit.AmountCur != 0)
            {
                this.setStillOpenValues(custVendTransCredit,
                    custVendTransOpenCredit.RecId,
                    specTransCredit.Balance01,
                    custVendTransCredit.Dimension,
                    debitTransState); // ???
            }
почему (или зачем) при сохранении кредитовой проводки с ней идет состояние дебетовой?

- метод processStillOpenTransactions
Делается цикл по еще открытым проводкам.
X++:
    for (currentIndex = stillOpenIndex; currentIndex > 0; currentIndex--)
    {
        // Find over/under amount for the company
        currentCompany = stillOpenCompany[stillOpenIndex];
        changecompany(currentCompany)
        {
            // There can be multiple transactions per company in the index, but we only want to
            // process each company once for over/under taxes.  Will use set called companiesWithTaxProccesed
            // and if company is already in the set this is indication that taxes where already calculated
            // and shouldn't be calculated again.
            if (companiesWithTaxProcessed.in(currentCompany))
            {
                calcTaxForCompany = false;
            }
            else
...
Здесь каждый раз берется код компании для проводки с индексом stillOpenIndex, который не меняется. Надо либо changeCompany вынести из цикла, либо все-таки брать компанию для currentIndex .

- метод processStillOpenTransactions
объявлена переменная isCrossCompany.
Единственный раз ее значение меняется в цикле по проводкам. То есть, с какого-то момента все последуюшие проводки обрабатывются с признаком isCrossCompany = true, независимо от данных в самих проводках.
Это такая задумка или недодумка?

Последний раз редактировалось Wamr; 25.09.2010 в 15:51.
За это сообщение автора поблагодарили: kashperuk (5), Logger (3), ziva (2), MikeR (4), gl00mie (5).
Теги
ax2009, ax2012, custvendsettle, баг, сопоставление

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
эффективное отображение исполнения кода Evgeniy2020 DAX: Программирование 8 31.07.2008 11:11
как сообщить об ошибках, не прерывая исполнения кода chanchala DAX: Программирование 11 16.07.2008 12:28
проблема с настройкой штрихового кода Nic DAX: Функционал 4 27.12.2004 09:04
Отображение названия вместо кода! demID DAX: Программирование 31 05.10.2004 00:03
Использование штрихового кода (barcode) в Аксапта Pavlo AKA Panok DAX: Функционал 9 17.10.2003 15:13

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:08.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.