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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.07.2010, 12:48   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Я так понимаю у вас проводки строк заказа в статусе "в заказе". почему просто не перебирать все проводки строки заказа в нужном статусе и резервировать в нужной вам аналитике и с нужным количеством? Строки заказов вы знаете. Класс InventUpd_Reservation поможет это вам сделать. Если в проводке количество больше чем нужно зарезервировать, то по-моему проводка сама разделится на две - зарезервированную и заказанную. Хотя возможно я что то не понял и подзабыл

Последний раз редактировалось Sada; 21.07.2010 в 12:57.
Старый 21.07.2010, 15:00   #2  
rDenis2 is offline
rDenis2
Участник
 
62 / 36 (2) +++
Регистрация: 13.05.2010
Так и делаю, только если делаешь InventMovement, на основе Inventtrans, он в конце концов всё равно делается на основе salesLine, в InventMovemnet:construct(). InventMov_Sales. На данный момент суммарная InventPickigListJournalLine делается на основе первой, тоесть все остальные прибавяются к ней. Соответсвенна она не удаляется, и InventTrans идет с типом TransChildType Picking list.Тоесть при
X++:
reservation = InventUpd_Reservation::newMovement(inventMovement,
                                                         _qty ,
                                                         _mayBeReduced,
                                                         _forceNotReserveOrdered,
                                                         _showInfo);
        reservation.updateNow();
в updateReserveMore()
ищутся InventTrans с
X++:
 inventTrans.TransChildType        == None
                      inventTrans.TransChildRefId  == ''
соответсвенно резервируются не все. Думаю поменять принцип суммирование линии, тоесть удалять все, через delete(), TransChildType становится None. И создавать новую суммарную линию через doInsert(), InventTrans не должен меняться в етом случае.
Ну и дальше что то типа такого
X++:
server static void makeReservation(Common       _buffer,
                                   InventQty    _qty,
                                   InventDim    _inventDim,
                                   inventMovement _inventMovement = null,
                                   boolean      _mayBeReduced =true,
                                   boolean      _forceNotReserveOrdered = false,
                                   boolean      _showInfo = true
                                   )
{

    InventMovement                  inventMovement = _inventMovement;
    InventUpd_Reservation           reservation;
    InventDim                       inventDim;
    InventTrans                     inventTransLocal;
    Common                          _newBuffer;
    ;


    if(!inventMovement)
    {
        switch (_buffer.TableId)
        {
            case tablenum(InventTrans) :
                inventTransLocal = _buffer;
                switch (inventTransLocal.TransType)
                {
                    case InventTransType::Sales :
                        _newBuffer = inventTransLocal.salesLine();
                        inventMovement = Inventmovement::construct(_newBuffer);
                        break;
                }
                break;
            default:
                inventMovement = InventMovement::construct(_buffer);
                break;
        }
    }
    if(_inventDim && inventMovement)
    {
        inventDim.data(_inventDim);
        inventMovement.inventdim(inventDim);
    }
    if(inventMovement)
    {
        reservation = InventUpd_Reservation::newMovement(inventMovement,
                                                         _qty ,
                                                         _mayBeReduced,
                                                         _forceNotReserveOrdered,
                                                         _showInfo);
        reservation.updateNow();
    }
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Связь CustInvoiceJour и InventTrans Silphidae DAX: Программирование 19 29.10.2009 15:18
Изменение "курсора" в цикле ZVV DAX: Программирование 8 09.12.2008 15:11
Изменение RevenueAmountPhysical на InventTrans HorrR DAX: Программирование 2 29.09.2008 16:47
Как правильно достучаться из InventTrans до даты накладыной NJD DAX: Программирование 6 22.07.2005 20:52
Связь таблиц InventTrans и PurchLine Pustik DAX: Программирование 2 25.11.2004 12:23
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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