public static void GetAmazonOrderItems(SOScheduleProcess graph, PrepareAndImportOrdersParams objScheduleParams) { List <SOFieldMapping> liUsrMapping = new List <SOFieldMapping>(); InvokeServicesCallResponse objSyncOrderResponse = new InvokeServicesCallResponse(); List <OrderItem> amwLineItems = new List <OrderItem>(); objScheduleParams.objSOOrderEntry.Clear(); objScheduleParams.objSOPartialMaint.Clear(); objSyncOrderResponse = new InvokeServicesCallResponse(); amwLineItems = new List <OrderItem>(); ServiceCallParameters objServiceCallParams = new ServiceCallParameters(); objServiceCallParams.objSOAmazonSetup = objScheduleParams.objSOAmazonSetup; objServiceCallParams.amwOrderID = objScheduleParams.amazonOrderID; objServiceCallParams.methodCall = SOConstants.invokeListOrderItems; objSyncOrderResponse = new SOOrdersServiceCall(clientOrder).InvokeServicesCalls(graph, objServiceCallParams); amwLineItems = objSyncOrderResponse != null && objSyncOrderResponse.objListOrderItemsResponse != null && objSyncOrderResponse.objListOrderItemsResponse.ListOrderItemsResult != null && objSyncOrderResponse.objListOrderItemsResponse.ListOrderItemsResult.OrderItems.Count > 0 ? objSyncOrderResponse.objListOrderItemsResponse.ListOrderItemsResult.OrderItems : amwLineItems; if (objScheduleParams.ObjCurrentOrder != null) { objScheduleParams.objamwLineItems = amwLineItems; objScheduleParams.objliUsrMapping = liUsrMapping; CreateSO.CreateSalesOrderandPayments(objScheduleParams); } }
internal static void PrepareRecord(SOScheduleProcess graph, PrepareAndImportOrdersParams objScheduleParams, ref bool isErrorOccured) { SOProcessOrder objprocessorder = null; foreach (Order currentOrder in objScheduleParams.amwOrders) { try { objScheduleParams.objSOOrderEntry.Clear(); objScheduleParams.objSOPartialMaint.Clear(); objScheduleParams.paymentGraph.Clear(); if (!CheckOrderExist(objScheduleParams.objSOOrderEntry, objScheduleParams.objSOPrepareAndImport.IntegrationID, currentOrder.AmazonOrderId)) { objprocessorder = new SOProcessOrder(); objprocessorder.ProcessID = objScheduleParams.objSOPrepareAndImport != null && objScheduleParams.objSOPrepareAndImport.ProcessID != null ? objScheduleParams.objSOPrepareAndImport.ProcessID : 1; objprocessorder.IntegrationID = objScheduleParams.objSOPrepareAndImport != null && objScheduleParams.objSOPrepareAndImport.IntegrationID != null ? objScheduleParams.objSOPrepareAndImport.IntegrationID : string.Empty; objprocessorder.AmazonOrderID = currentOrder.AmazonOrderId; objprocessorder.BuyerEmailID = currentOrder.BuyerEmail; objprocessorder.AmazonOrderDate = currentOrder.PurchaseDate != null ? currentOrder.PurchaseDate : (DateTime?)null; objprocessorder.AmazonOrderLastUpdated = currentOrder.LastUpdateDate != null ? currentOrder.LastUpdateDate : (DateTime?)null; objprocessorder.OrderAmount = (currentOrder.OrderTotal != null && currentOrder.OrderTotal.Amount != null) ? Convert.ToDecimal(currentOrder.OrderTotal.Amount) : 0m; objprocessorder.AmazonStatus = currentOrder.OrderStatus; objprocessorder.SynDatetime = objScheduleParams.businessDateTime; objprocessorder.PrepareStatus = true; objprocessorder.ImportStatus = false; string xmlFeedContent = ListToXMLConverstion(currentOrder); objprocessorder.OrderSchema = xmlFeedContent; objScheduleParams.objSOPartialMaint.ProcessOrder.Cache.Insert(objprocessorder); objScheduleParams.objSOPartialMaint.Actions.PressSave(); SOLogService.LogImportCount(null, objprocessorder.IntegrationID, objScheduleParams.objSOPartialMaint, objprocessorder.ProcessID, SOConstants.scheduleimportorders, false); SOProcessOrder processRecord = PXSelect <SOProcessOrder, Where <SOProcessOrder.integrationID, Equal <Required <SOProcessOrder.integrationID> >, And <SOProcessOrder.processID, Equal <Required <SOProcessOrder.processID> >, And <SOProcessOrder.amazonOrderID, Equal <Required <SOProcessOrder.amazonOrderID> > > > >, OrderBy <Desc <SOProcessOrder.lineNumber> > > .Select(objScheduleParams.objSOOrderEntry, objScheduleParams.objSOPrepareAndImport.IntegrationID, objScheduleParams.objSOPrepareAndImport.ProcessID, currentOrder.AmazonOrderId); objScheduleParams.amazonOrderID = objprocessorder.AmazonOrderID; objScheduleParams.ObjCurrentOrder = currentOrder; objScheduleParams.objSOProcessOrderRecord = processRecord; GetAmazonOrderItems(graph, objScheduleParams); } else { SOLogService.LogImportCount(null, objScheduleParams.objSOAmazonSetup.IntegrationID, objScheduleParams.objSOPartialMaint, objScheduleParams.objSOPrepareAndImport.ProcessID, SOConstants.scheduleimportorders, true); } } catch (Exception ex) { isErrorOccured = true; SOLogService.LogImportStatus(objScheduleParams, false, ex.Message); } } }