private static void ApproveSingleSubcontract(SubcontractEntry graph, POOrder subcontract) { SetupGraphForApproval(graph, subcontract); CheckActionExisting(graph); PressApprove(graph, subcontract); graph.Persist(); }
private static void CheckActionExisting(SubcontractEntry graph) { if (!graph.Actions.Contains(ActionsMessages.Action)) { throw new PXException(PXMessages.LocalizeFormatNoPrefixNLA(EpMessages.AutomationNotConfigured, graph)); } }
private static PXAdapter CreateAdapter(SubcontractEntry graph, POOrder subcontract) { var dummyView = new DummyView(graph, subcontract); return(new PXAdapter(dummyView) { Menu = nameof(Approve) }); }
private static void PressApprove(SubcontractEntry graph, POOrder subcontract) { var action = graph.Actions[ActionsMessages.Action]; var adapter = CreateAdapter(graph, subcontract); // method Press is lazy, foreach needed for full completion foreach (var dummy in action.Press(adapter)) { } }
private static bool ApproveSubcontract(SubcontractEntry graph, KeyValuePair <EPApprovalProcess.EPOwned, POOrder> subcontractApprovalPair) { try { PXProcessing <EPApproval> .SetCurrentItem(subcontractApprovalPair.Key); ApproveSingleSubcontract(graph, subcontractApprovalPair.Value); PXProcessing <EPApproval> .SetProcessed(); return(false); } catch (Exception exception) { PXProcessing <EPApproval> .SetError(exception); return(true); } }
private static void SetupAutomationStep(SubcontractEntry graph, POOrder subcontract) { PXAutomation.GetView(graph); PXAutomation.GetStep(graph, subcontract.CreateArray(), BqlCommand.CreateInstance(typeof(Select <>), typeof(POOrder))); }
private static void SetupGraphForApproval(SubcontractEntry graph, POOrder subcontract) { graph.Clear(); graph.Document.Current = subcontract; SetupAutomationStep(graph, subcontract); }
private static bool ApproveSubcontracts(SubcontractEntry graph, Dictionary <EPApprovalProcess.EPOwned, POOrder> subcontractApprovalDictionary) { return(subcontractApprovalDictionary.Select(x => ApproveSubcontract(graph, x)).ToList().Any(x => x)); }