Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 2
0
        /// <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;
            }
        }
Exemplo n.º 3
0
        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;
                }
            }
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
 public virtual void UpdateProcessed(LUM3DCartProcessOrder processOrder)
 {
     ImportOrderList.Cache.SetValue <LUM3DCartProcessOrder.processed>(processOrder, true);
     ImportOrderList.Update(processOrder);
 }