Показать сообщение отдельно
Старый 02.06.2014, 14:06   #2  
Starling is offline
Starling
Участник
Дети Юза
 
530 / 76 (4) ++++
Регистрация: 20.10.2005
Адрес: Kiev
Вопрос №1 – формирование даты потребности в компании B
Имеем:
1. В компании A возникает потребность в материале М1 на 30.05.2012
2. Принято решение, что материал М1 должен быть доставлен в компанию A за 5 дней до потребности. Для этих целей в группе покрытия материала М1 указан резерв прихода 5 дней.
3. При планировании получаем:
a. В компании А:
i. Дата потребности = 30.05.2014.
ii. Дата поставки = 25.05.2014
b. В компании B:
i. Дата потребности = 30.05.2014
ii. И именно от этой даты система начинает планирование в компании B.
Получается, что поставь мы хоть 1000 в резерв прихода в компании A для материала M1 это никак не отразится на планировании в компании B. Как результат срываем сроки поставки материала М1.
Мне кажется, что для корректной работы системы необходимо, чтобы дата потребности в Компании B = дата поставки в компании A, т.е. 25.05.2014.
Я внес следующие изменения в метод convertReqDate ReqIntercompanyConversionUtil класса:
X++:
 public ReqDate convertReqDate(ReqPO _reqPO)
{
    SalesLine salesLineTemp;
    SalesCalcAvailableDlvDates salesCalcAvailableDlvDates;
    InventDim inventDim;


    salesLineTemp.DlvMode = this.convertDeliveryMode(_reqPO);
    if (!salesLineTemp.DlvMode)
    {
        return _reqPO.ReqDate;
    }

    inventDim.InventSiteId = this.convertSiteId(_reqPO);
    inventDim.InventLocationId = this.convertWarehouseId(_reqPO);
    inventDim = InventDim::findOrCreate(inventDim);

    salesLineTemp.InventDimId = inventDim.InventDimId;
    //Ошибка определения даты потребности-->
    //salesLineTemp.ReceiptDateRequested = _reqPO.ReqDate;
    salesLineTemp.ReceiptDateRequested = _reqPO.ReqDateDlv;
    //<--
    salesLineTemp.DeliveryPostalAddress = this.findDeliveryAddress(_reqPO);
    salesCalcAvailableDlvDates = SalesCalcAvailableDlvDates::newCommonSalesDlvDateType(salesLineTemp);
    salesCalcAvailableDlvDates.createPossibleShippingAndReceiptDates(true);

    return salesCalcAvailableDlvDates.parmSalesAvailableDlvDatesTmp().AvailableShippingDate;
}
Что вы думаете по этому поводу?
За это сообщение автора поблагодарили: Мартынов Дмитрий (1).