|
|
#1 |
|
Участник
|
Изменение маршрута производственного заказа
Стояла такая задача:
Пусть у нас есть производственный заказ с более менее правильной спецификацией и фиктивный маршрутом в 1 операцию - сделать хорошо, он выполняется, т.е. разносятся журналы, меняются статусы и т.д. И вот настал момент, когда фиктивный маршрут нам нужно поменять на нормальный(пронормированный и прочее), но нам необходимо: - отгрузочные накладные не откатывать (что списали, то уже не вернешь); - откатить старые журналы карат заданий; - обновить журнал карта заданий; - провести все задания из нового журнала; - списать новые позиции спецификации если такие есть; Решению, которое нашла я: Откатывала журналы карты заданий X++: ProdJournalCheckPostRoute prodJournalCheckPostRoute;
ProdJournalCreateRoute prodJournalCreate;
ProdJournalTable prodJournalTable;
;
prodJournalCreate = ProdJournalCreateRoute::newStatusDecrease( m_prodTable.ProdId );
prodJournalCreate.run();
prodJournalTable = prodJournalCreate.usedProdJournalTable();
if ( prodJournalTable.RecId && prodJournalTable.JournalId )
{
prodJournalCheckPostRoute = ProdJournalCheckPostRoute::newPostJournal( prodJournalTable.JournalId, true );
prodJournalCheckPostRoute.run();
}А использовала бубен и танцы с таблицей ReqRoute, а именно создавала там маршрут с помощью ReqTrans.createRoute(), далее практически скопипастив метод ReqTransPoMarkFirm.createProdRoute создавала записи в ProdRoute для обновления заданий пробегала ProdRoute и переписывала задания с помощью X++: while select prodRoute order by OprNum,OprPriority where prodRoute.ProdId == m_prodTable.ProdId { prodJobUpdate = ProdJobUpdate::newProdIdOprNum( prodRoute.ProdId, prodRoute.OprNum); prodJobUpdate.run(); } Теперь вопрос, насколько ужасно мое решение? -__- Знает кто-нибудь менее шаманский способ? |
|
|