public virtual Result <OrderHistoryResultModel> GetOrders(DateTime?fromDate, DateTime?untilDate, int page, int count)
        {
            var result = new Result <OrderHistoryResultModel>();

            try
            {
                var orderHeaders = this.orderManager.GetVisitorOrders(
                    this.VisitorContext.ContactId,
                    this.StorefrontContext.ShopName,
                    fromDate,
                    untilDate,
                    page,
                    count);

                if (orderHeaders.Result == null)
                {
                    result.SetErrors(orderHeaders.ServiceProviderResult);
                    return(result);
                }

                var ordersList = new List <CartModel>();
                foreach (var orderHeader in orderHeaders.Result)
                {
                    var orderDetails = this.orderManager.GetOrderDetails(
                        orderHeader.OrderID,
                        this.VisitorContext.ContactId,
                        this.StorefrontContext.ShopName);

                    var order = orderDetails.Result;
                    if (order != null)
                    {
                        CartModel orderModel = this.orderModelBuilder.Initialize(order);
                        ordersList.Add(orderModel);
                    }
                    else
                    {
                        result.SetErrors(orderDetails.ServiceProviderResult);
                    }
                }

                var model = new OrderHistoryResultModel(ordersList)
                {
                    CurrentPageNumber = page
                };

                result.SetResult(model);
                return(result);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex, this);
                result.SetErrors(nameof(this.GetOrders), ex);
            }

            return(result);
        }
Пример #2
0
        public async Task <int> GetOrderHistoryByCriteriaTestNew(List <MerchantIdentification_StoreName> lstAllMerchantStoreInformation, string startdate, string enddate)
        {
            TokenDetails objTokenDetails = new TokenDetails();
            List <OrderDetailsExportFields> lstFinalResult = new List <OrderDetailsExportFields>();

            LogHelper.Log("Start Date: " + startdate + " End Date: " + enddate);
            foreach (var objAllMerchantStoreInformation in lstAllMerchantStoreInformation)
            {
                OrderHistorySearchCriteria objReportSearchCriteria = new OrderHistorySearchCriteria();
                objReportSearchCriteria.searchCriteria = new OrderHistoryInputParametersModel();
                objReportSearchCriteria.searchCriteria =
                    new OrderHistoryInputParametersModel()
                {
                    offset = 0,
                    limit  = 10000,
                    //searchString = "",
                    startDate = startdate,
                    endDate   = enddate,
                    //paymentTypes = new string[] { "CASH", "CCRD", "DCRD", "CHECK" },
                    orderStatus      = new string[] { "PAID", "PARTIAL_PAID", "OPEN" },
                    transactionTypes = new string[] { "SALE", "VOID", "REFUND", "PARTIALREFUND", "PARTIALVOID", "UPDATETIP" },
                    storeIds         = new int[] { 1 },
                    orderBy          = "firstPaymentDate",
                    //userId = objEmployee.id,//232741//

                    //Sale option
                    hideSale       = false, // To display only refund transaction
                    hideRefund     = true,  // To display only sales transaction
                    onlySplitCheck = false  // To display only split check transaction

                                            //Refund option
                                            //hideSale = true,  // To display only refund transaction
                                            //hideRefund = false, // To display only sales transaction
                                            //onlySplitCheck = false // To display only split check transaction

                                            //Split Check option
                                            //hideSale = false,  // To display only refund transaction
                                            //hideRefund = true, // To display only sales transaction
                                            //onlySplitCheck = true // To display only split check transaction
                };

                string  jsonString         = JsonConvert.SerializeObject(objReportSearchCriteria);
                JObject objInputParameters = JObject.Parse(jsonString);

                try
                {
                    string objRes = string.Empty;
                    OrderHistoryFullObject objOrderHistoryFullObject = null;
                    using (HttpClient client = new HttpClient())
                    {
                        objTokenDetails.SetHTTPClientObjectValues(client);
                        HttpResponseMessage response = await objTokenDetails.ExecuteClientPostMethod("order/getorderhistory", objInputParameters, client, Token.securityToken, objAllMerchantStoreInformation.merchantIdentification);

                        if (response.IsSuccessStatusCode)
                        {
                            objTokenDetails.SetRefreshToken(response);
                            objRes = await response.Content.ReadAsStringAsync();

                            objOrderHistoryFullObject = JsonConvert.DeserializeObject <OrderHistoryFullObject>(objRes);
                        }
                    }

                    //if (!string.IsNullOrEmpty(objRes) && !objRes.ToLower().Contains("records not found"))
                    if (objOrderHistoryFullObject != null && objOrderHistoryFullObject.ResponseCode.statusCode == 200)
                    {
                        try
                        {
                            JObject jsonRes            = JObject.Parse(objRes);
                            JToken  jTokenSearchResult = jsonRes.FindTokens("searchResult").FirstOrDefault();
                            JObject JobjSearchResult   = JObject.Parse(jTokenSearchResult.ToString());
                            JToken  jTokenOrder        = jsonRes.FindTokens("orders").FirstOrDefault();

                            //LogHelper.Log("Employee: " + objEmployee.userName + " Emp ID: " + objEmployee.id + " Orders Count: " + jTokenOrder.Children().Count() + " Time: " + DateTime.Now);
                            LogHelper.Log("Store: " + objAllMerchantStoreInformation.merchantStoreName + " Orders Count: " + jTokenOrder.Children().Count() + " Time: " + DateTime.Now);

                            List <OrderDetailsExportFields> lstStoreResult = new List <OrderDetailsExportFields>();

                            foreach (var jObjectOrder in jTokenOrder.Children())
                            {
                                OrderHistoryResultModel objOrderHistory = JsonConvert.DeserializeObject <OrderHistoryResultModel>(jObjectOrder.ToString());

                                if (!lstStoreResult.Any(s => s.TicketNo == objOrderHistory.transactionCode))
                                {
                                    OrderDetailsExportFields objOrderDetailsExportFields = new OrderDetailsExportFields();
                                    objOrderDetailsExportFields.TicketNo        = objOrderHistory.transactionCode;
                                    objOrderDetailsExportFields.Type            = objOrderHistory.orderType;
                                    objOrderDetailsExportFields.Employee        = objOrderHistory.userFirstName + " " + objOrderHistory.userLastName;
                                    objOrderDetailsExportFields.Store           = objAllMerchantStoreInformation.merchantStoreName;
                                    objOrderDetailsExportFields.Date            = Convert.ToDateTime(objOrderHistory.orderDate).ToString("MM/dd/yyyy");
                                    objOrderDetailsExportFields.Time            = Convert.ToDateTime(objOrderHistory.orderDate).ToString("hh:mm tt");
                                    objOrderDetailsExportFields.ItemName        = objOrderHistory.listOfItems;
                                    objOrderDetailsExportFields.PaymentType     = objOrderHistory.paymentType;
                                    objOrderDetailsExportFields.TransactionType = objOrderHistory.paymentInfo.FirstOrDefault().transactionType;
                                    objOrderDetailsExportFields.GrossSale       = objOrderHistory.subTotal;
                                    objOrderDetailsExportFields.Discounts       = objOrderHistory.discount;
                                    objOrderDetailsExportFields.Refunds         = objOrderHistory.refundAmount;
                                    objOrderDetailsExportFields.NetSale         = objOrderDetailsExportFields.GrossSale - objOrderDetailsExportFields.Discounts - objOrderDetailsExportFields.Refunds;
                                    objOrderDetailsExportFields.Tips            = objOrderHistory.tip;
                                    objOrderDetailsExportFields.Tax             = objOrderHistory.tax;
                                    objOrderDetailsExportFields.Total           = objOrderDetailsExportFields.NetSale + objOrderDetailsExportFields.Tax + objOrderDetailsExportFields.Tips;

                                    lstStoreResult.Add(objOrderDetailsExportFields);
                                    //lstFinalResult.Add(objOrderDetailsExportFields);

                                    //OrderHistoryResultModel objOrderHistory = JsonConvert.DeserializeObject<OrderHistoryResultModel>(jObjectOrder.ToString());
                                    //if (objOrderHistory != null && !string.IsNullOrEmpty(objOrderHistory.orderId))
                                    //{
                                    //    List<OrderDetailsExportFields> objResult = await GetOrderDetailsByOrderID(objOrderHistory.orderId, objOrderHistory.transactionCode, objAllMerchantStoreInformation.merchantIdentification, objOrderHistory.userFirstName + " " + objOrderHistory.userLastName, objAllMerchantStoreInformation.merchantStoreName);

                                    //    if (objResult != null && objResult.Count() > 0)
                                    //        lstFinalResult.AddRange(objResult);
                                    //}
                                }
                            }

                            lstFinalResult.AddRange(lstStoreResult);
                        }
                        catch (Exception ex)
                        {
                            LogHelper.Log("Error: " + ex.Message);
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Log("Error: " + ex.Message);
                }
            }

            try
            {
                LogHelper.Log("Total Records: " + lstFinalResult.Count());
                //lstFinalResult = lstFinalResult.OrderBy(s => s.TicketNo).ToList();
                SaveOrderDetailsIntoExcel(lstFinalResult, lstFinalResult.FirstOrDefault().Store + "_" + Convert.ToDateTime(startdate).ToString("MMM-yy"));
                LogHelper.Log("File saved successfully. " + DateTime.Now);
            }
            catch (Exception ex)
            {
                LogHelper.Log("Error in save data into excel. " + ex.Message);
            }

            return(0);
        }