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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.05.2006, 16:54   #1  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Корректное удаление проводки
Добрый вечер!

Хочу корректно удалить проводку из inventTrans, таким образом, чтобы одновременно были внесены изменения в InventSum.

Причины: при комплектации (Axapta Retail), если скомплектовать меньше предложенного менеджером, появляется третья проводка со статусом 'Физ.Зарезервировано'. Эта проводка исчезает после разноски журнала. И эта провока мешает мне утвердать журнал, созданный на основе разницы, между предложенным менеджером и реально скомплектованным количеством. Если же ее удалить и пересчитать inventSum то все OK. Сейчас удаление проводки выглядит так:

PHP код:
 ttsbegin;
        while 
select forupdate inventTrans
            index hint TransTypeTransRef_idx
            where   inventTrans
.TransRefId  == journalId &&
                    
inventTrans.StatusIssue == StatusIssue::ReservPhysical
                    
{
                        
itemId inventTrans.ItemId;
                        
inventTrans.delete(NoYes::Yes);
                        
inventSumReCalcItem = new InventSumReCalcItem(itemIdfalseCheckFix::Fix);
                        
inventSumReCalcItem.updateNow();
                    }
    
ttscommit
Вопрос -- как эту операцию (удаление проводки и пересчет inventSum) делается стандартным образом?

Последний раз редактировалось DreamCreator; 24.05.2006 в 17:23.
Старый 24.05.2006, 17:38   #2  
dalyet is offline
dalyet
Moderator
Аватар для dalyet
Дети Юза
 
143 / 17 (1) ++
Регистрация: 14.03.2002
Адрес: Киев
Если я правильно помню - при включенной системе множ скл транзакций InventSum сам скорректируется в конце ближайшего интервала на основе текущих InventTrans'ов
Старый 24.05.2006, 17:41   #3  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от dalyet
Если я правильно помню - при включенной системе множ скл транзакций InventSum сам скорректируется в конце ближайшего интервала на основе текущих InventTrans'ов
Это надо делать мгновенно, иначе можно просто дождаться разноски первого журнала (в котором скомплектовано меньше положенного) и проводку не удалять (т.к. при разноске она исчезает).
Старый 24.05.2006, 17:52   #4  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
метод inventTrans.delete() сам пересчитывает InventSum
Ничего больше не нужно.
Старый 25.05.2006, 10:15   #5  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от BOAL
метод inventTrans.delete() сам пересчитывает InventSum
Ничего больше не нужно.
Это не так.
Создаю межскладское пермещение, комплектую меньше изначально предложенного, в результате имею три проводки, одна из которых со статусом 'Физ.Зарезервировано', и количеством = разнице между изначально предложенным количеством и реально скомплетованным. Далее смотрю что В наличии -- физ. зарезервировано 1. Далее удаляю проводку со статусом 'Физ.зарезервировано':

PHP код:
ttsbegin;
        while 
select forupdate inventTrans
            index hint TransTypeTransRef_idx
            where   inventTrans
.TransRefId  == '123886_090' &&
                    
inventTrans.StatusIssue == StatusIssue::ReservPhysical
                    
{
                        
itemId inventTrans.ItemId;
                        
inventTrans.delete(NoYes::Yes);
                    }
ttscommit
Проверяю проводки -- две, физ.зарезервировано удалена. Смотрю 'В Наличии' -- как было Физ.Зарезервировано, так там и сидит. Проблема решается пересчетом inventSum:

PHP код:
 inventSumReCalcItem = new InventSumReCalcItem(itemIdfalseCheckFix::Fix);
 
inventSumReCalcItem.updateNow(); 
Но при таком раскладе, кажется мне лишним то что я лезу в проводки - удаляю там запись, потом пересчитываю InventSum, и встает вопрос -- нельзя ли это делать штатными средствами или по их аналогии.
Старый 25.05.2006, 10:38   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Код:
inventTrans.delete(NoYes::Yes);
а какого поведения Вы ожидали, указав dropInventOnHand = NoYes::Yes?
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: mazzy (5).
Старый 25.05.2006, 13:16   #7  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Именно так

"Это не так", если есть Yes - тут все правильно. В моем посте Yes нет - там "все так"
Старый 25.05.2006, 13:22   #8  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Извиняюсь, невнимателен!

Спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бухгалтерские проводки по отборочной накладной PMS DAX: Функционал 12 24.04.2012 13:45
связь проводки НДС по оплате с основанием ksenia DAX: Функционал 2 26.01.2007 12:01
Закрывающие/открывающие проводки KatyN DAX: Функционал 11 24.07.2006 16:15
Знак в форме ГК/Бухгалтерские проводки chel DAX: Функционал 7 11.03.2005 04:28
Удаление проекта Maxim Gorbunov DAX: Программирование 0 24.12.2001 23:04
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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