11.09.2013, 13:19 | #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(); } Теперь вопрос, насколько ужасно мое решение? -__- Знает кто-нибудь менее шаманский способ? |
|