/// <summary> /// Get 3D Cart API response collection to insert data into custom table. /// </summary> public static void CreateProcessOrders(List <MyArray> arrays) { LUM3DCartImportProc graph = PXGraph.CreateInstance <LUM3DCartImportProc>(); for (int i = 0; i < arrays.Count; i++) { LUM3DCartProcessOrder procOrder = new LUM3DCartProcessOrder() { LineNumber = i + 1, ProcessID = GetProcessID(graph), InvoiceNumber = arrays[i].InvoiceNumber, OrderID = arrays[i].OrderID.ToString(), CustomerID = arrays[i].CustomerID == 0 ? null : arrays[i].CustomerID.ToString(), OrderDate = arrays[i].OrderDate, OrderStatusID = arrays[i].OrderStatusID.ToString(), OrderAmount = (decimal)arrays[i].OrderAmount, SalesTaxAmt = (decimal)(arrays[i].SalesTax + arrays[i].SalesTax2), LastUpdated = arrays[i].LastUpdate, BillingEmailID = arrays[i].BillingEmail, Processed = false }; if (LUM3DCartProcessOrder.UK.Find(graph, procOrder.OrderID, procOrder.InvoiceNumber) == null) { graph.ImportOrderList.Cache.Insert(procOrder); } } graph.Actions.PressSave(); }
/// <summary> /// Create an sales order from external logistic. /// </summary> public static void ImportRecords(LUM3DCartSetup curSetup, LUM3DCartProcessOrder processOrder) { try { SOOrderEntry orderEntry = PXGraph.CreateInstance <SOOrderEntry>(); SOOrder order = orderEntry.Document.Cache.CreateInstance() as SOOrder; order.OrderType = curSetup.OrderType; order.CustomerID = curSetup.CustomerID; order.CustomerOrderNbr = processOrder.OrderID; order.DocDate = processOrder.OrderDate; order = orderEntry.Document.Insert(order); CreateOrderDetail(orderEntry, curSetup, order); orderEntry.Save.Press(); CreatePaymentProcess(order); } catch (PXException ex) { PXProcessing.SetError <LUM3DCartProcessOrder>(ex.Message); throw; } }
public static void PrepareRecords(LUM3DCartSetup curSetup, DateTime?endDate) { LUM3DCartImportProc graph = PXGraph.CreateInstance <LUM3DCartImportProc>(); LUM3DCartProcessOrder processOrder = graph.ImportOrderList.Current; if (processOrder == null) { try { DeleteWrkTableRecs(); CreateProcessOrders(GetResponse(curSetup, string.Format("3dCartWebAPI/v2/Orders?datestart={0}&limit={1}&orderstatus={2}", endDate.Value.AddDays(-7), 1000, ThreeDCartOrderStatus.New)).Result); } catch (Exception ex) { PXProcessing.SetError <LUM3DCartProcessOrder>(ex.Message); throw; } } }
/// <summary> /// The process ID value is generated based on the number of executions. /// </summary> public static int?GetProcessID(PXGraph graph) { LUM3DCartProcessOrder objProcess = PXSelectGroupBy <LUM3DCartProcessOrder, Aggregate <Max <LUM3DCartProcessOrder.processID> > > .Select(graph); return(objProcess != null && objProcess.ProcessID != null ? (objProcess.ProcessID + 1) : 1); }
public virtual void UpdateProcessed(LUM3DCartProcessOrder processOrder) { ImportOrderList.Cache.SetValue <LUM3DCartProcessOrder.processed>(processOrder, true); ImportOrderList.Update(processOrder); }