Открыть заказ клиента с экрана Custom - PullRequest
0 голосов
/ 04 мая 2018

У меня есть один пользовательский экран с некоторыми значениями и кнопка, основанная на некоторой логике. Я хочу открыть Заказ на продажу и установить тип заказа. Я могу сделать это только для типа заказа SO, так как SO установлен по умолчанию на экране настроек. У меня вопрос, как я могу открыть Заказ на продажу и установить «IN» или «RM» по умолчанию.

SOOrderEntry graph = PXGraph.CreateInstance<SOOrderEntry>();
PXRedirectHelper.TryRedirect(graph, PXRedirectHelper.WindowMode.NewWindow);

Я также пытался использовать приведенный ниже код, и он также работает только для типа SO, но по умолчанию выбирает первый порядок.

SOOrderEntry docgraph = PXGraph.CreateInstance<SOOrderEntry>();
docgraph.Document.Current = docgraph.Document.Search<SOOrder.orderType>(SOOrderTypeConstants.SalesOrder);
throw new PXRedirectRequiredException(docgraph, true, "Order") { Mode = PXBaseRedirectException.WindowMode.Same };

1 Ответ

0 голосов
/ 04 мая 2018

docgraph.Document.Search<SOOrder.orderType>(SOOrderTypeConstants.SalesOrder); этот код вернет вам первый ордер типа SalesOrder. Вместо этого вы можете сделать следующее:
1. Создайте экземпляр SalesOrder.
2. Установите OrderType из SalesOrder на тот, который вам нужен.
3. Установите docgraph.Document.Current на SalesOrder.

Ваш код будет выглядеть следующим образом (возможно, потребуются некоторые изменения):

SOOrderEntry docgraph = PXGraph.CreateInstance<SOOrderEntry>();
SOOrder newOrder = docgraph.Document.Insert();//create new Order
newOrder.OrderType = "IN"; // set the OrderType to the one you need.For example "IN"
newOrder = docgrapg.Document.Update(newOrder);//  update the order
docgraph.Document.Current = newOrder;// set your order as the current order of the BLC
throw new PXRedirectRequiredException(docgraph, true, "Order") { Mode = PXBaseRedirectException.WindowMode.Same };
...