Пример #1
0
        public List <SalesSummary> Calculate(List <SalesSummary> salesSummaries, List <Transaction> transactions)
        {
            var dateTimeNow = DateTime.Now;
            var salesReps   = transactions.Select(x => x.SalesRep).Distinct();

            foreach (var salesRep in salesReps)
            {
                var summary = new SalesSummary {
                    SalesRep = salesRep
                };

                var repTransactions = transactions.Where(x => x.SalesRep == salesRep);

                summary.Y2DSold = repTransactions.Where(x => x.Date >= new DateTime(dateTimeNow.Year, 1, 1))
                                  .Select(x => CalculateTransaction(x))
                                  .Sum();

                summary.M2DSold = repTransactions.Where(x => x.Date >= new DateTime(dateTimeNow.Year, dateTimeNow.Month, 1))
                                  .Select(x => CalculateTransaction(x))
                                  .Sum();

                summary.Q2DSold = repTransactions.Where(x => GetQuarter(x.Date) == GetQuarter(dateTimeNow))
                                  .Select(x => CalculateTransaction(x))
                                  .Sum();

                summary.I2DSold = repTransactions
                                  .Select(x => CalculateTransaction(x))
                                  .Sum();

                salesSummaries.Add(summary);
            }

            return(salesSummaries);
        }
        public void Write(string path, SalesSummary salesSummary)
        {
            var salesSummaryForSerialization = SalesSummaryForSerialization.FromSaleSummary(salesSummary);
            var engine = new FileHelperEngine <SalesSummaryForSerialization>();

            engine.WriteFile(path, new List <SalesSummaryForSerialization> {
                salesSummaryForSerialization
            });
        }
Пример #3
0
        public string SalesSummaryChartForMobile(SalesSummary duration)
        {
            try
            {
                List <SalesSummaryViewModel> saleObj = Mapper.Map <List <SalesSummary>, List <SalesSummaryViewModel> >(_dashboardBusiness.GetSalesSummaryChart(duration));

                return(JsonConvert.SerializeObject(new { Result = true, Records = saleObj }));
            }
            catch (Exception ex)
            {
                return(JsonConvert.SerializeObject(new { Result = false, Message = ex.Message }));
            }
        }
        private void BindReport()
        {
            ToCaption.Visible   = true;
            FromCaption.Visible = false;
            DateTime     fromDate     = StartDate.SelectedStartDate;
            DateTime     toDate       = EndDate.SelectedEndDate;
            SalesSummary salesSummary = ReportDataSource.GetSalesSummary(fromDate, toDate, true);

            if (salesSummary != null)
            {
                ProductSales.Text              = salesSummary.ProductTotal.LSCurrencyFormat("lc");
                ProductDiscounts.Text          = salesSummary.DiscountTotal.LSCurrencyFormat("lc");
                ProductSalesLessDiscounts.Text = String.Format("{0}", (salesSummary.ProductTotal + salesSummary.DiscountTotal).LSCurrencyFormat("lc"));
                GiftWrapCharges.Text           = salesSummary.GiftWrapTotal.LSCurrencyFormat("lc");
                CouponsRedeemed.Text           = salesSummary.CouponTotal.LSCurrencyFormat("lc");
                TaxesCollected.Text            = salesSummary.TaxTotal.LSCurrencyFormat("lc");
                ShippingCharges.Text           = salesSummary.ShippingTotal.LSCurrencyFormat("lc");
                TotalCharges.Text              = salesSummary.TotalReceivables.LSCurrencyFormat("lc");
                TotalOrders.Text       = salesSummary.OrderCount.ToString();
                TotalItemsSold.Text    = salesSummary.ProductCount.ToString();
                NumberOfCustomers.Text = salesSummary.UserCount.ToString();
                CostOfGoods.Text       = salesSummary.CostOfGoodTotal.LSCurrencyFormat("lc");

                decimal avgOrderAmount = 0;
                if (salesSummary.OrderCount > 0)
                {
                    avgOrderAmount = salesSummary.GrandTotal / salesSummary.OrderCount;
                }
                AverageOrderAmount.Text = avgOrderAmount.LSCurrencyFormat("lc");
                ReportPanel.Visible     = true;

                // update captions
                if (fromDate > DateTime.MinValue)
                {
                    FromCaption.Visible = true;
                    FromCaption.Text    = string.Format(FromCaption.Text, fromDate.ToShortDateString());
                }
                if (toDate > DateTime.MinValue)
                {
                    ToCaption.Text = string.Format(ToCaption.Text, toDate.ToShortDateString());
                }
                else
                {
                    ToCaption.Text = string.Format(ToCaption.Text, "present");
                }
            }
            else
            {
                ReportPanel.Visible = false;
            }
        }
Пример #5
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            Stream            = null;
            OutputContentType = "image/png";
            ETag = string.Empty;

            SalesSummary summary = new SalesSummary(MTApp.CurrentStore.Id);

            GenerateChart(summary.GetWeeklySummary(TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, MTApp.CurrentStore.Settings.TimeZone), MTApp.OrderServices),
                          "Sales This Week", 600, 200);
            RenderChart();
        }
Пример #6
0
        public List <SalesSummary> GetSalesSummary(DateTime startTime, DateTime endTime)
        {
            SalesSummary        salesSummary;
            List <SalesSummary> salesSummaries = new List <SalesSummary>();
            //every sales will have a payment entry, even if zero payed. So look for payments
            List <Payment> paymentsForDay = PaymentCache.GetInstance().GetPaymentsByTime(startTime, endTime);

            foreach (Payment payment in paymentsForDay)
            {
                salesSummary         = new SalesSummary();
                salesSummary.Payment = payment;
                salesSummaries.Add(salesSummary);
            }
            return(salesSummaries);
        }
Пример #7
0
        public List <SalesSummary> GetSalesSummaryChart(SalesSummary dueObj)
        {
            List <SalesSummary> SalesSummaryList = null;
            Settings            settings         = new Settings();

            try
            {
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[Accounts].[GetSalesSummaryChart]";
                        cmd.Parameters.Add("@duration", SqlDbType.NVarChar, 20).Value = dueObj.duration;
                        cmd.Parameters.Add("@includeinternal", SqlDbType.Bit).Value   = dueObj.IsinternalComp;
                        cmd.CommandType = CommandType.StoredProcedure;
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            if ((sdr != null) && (sdr.HasRows))
                            {
                                SalesSummaryList = new List <SalesSummary>();
                                while (sdr.Read())
                                {
                                    SalesSummary SSList = new SalesSummary();
                                    {
                                        SSList.Period = (sdr["Period"].ToString() != "" ? sdr["Period"].ToString() : SSList.Period);
                                        SSList.Amount = (sdr["INAmount"].ToString() != "" ? (sdr["INAmount"].ToString()): SSList.Amount);
                                    }
                                    SalesSummaryList.Add(SSList);
                                }
                            }
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }

            return(SalesSummaryList);
        }
Пример #8
0
        public List <SalesSummary> GetSalesSummary()
        {
            List <SalesSummary> SalesInvoiceSummaryList = new List <SalesSummary>();
            SalesSummary        SalesInvoiceSummary     = null;

            try
            {
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[PSA].[GetSalesSummary]";
                        cmd.CommandType = CommandType.StoredProcedure;
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            if ((sdr != null) && (sdr.HasRows))
                            {
                                while (sdr.Read())
                                {
                                    SalesInvoiceSummary               = new SalesSummary();
                                    SalesInvoiceSummary.Month         = (sdr["Month"].ToString() != "" ? sdr["Month"].ToString() : SalesInvoiceSummary.Month);
                                    SalesInvoiceSummary.MonthCode     = (sdr["MonthCode"].ToString() != "" ? int.Parse(sdr["MonthCode"].ToString()) : SalesInvoiceSummary.MonthCode);
                                    SalesInvoiceSummary.Year          = (sdr["Year"].ToString() != "" ? int.Parse(sdr["Year"].ToString()) : SalesInvoiceSummary.Year);
                                    SalesInvoiceSummary.Sales         = (sdr["Sales"].ToString() != "" ? decimal.Parse(sdr["Sales"].ToString()) : SalesInvoiceSummary.Sales);
                                    SalesInvoiceSummary.LastYear      = (sdr["LastYear"].ToString() != "" ? int.Parse(sdr["LastYear"].ToString()) : SalesInvoiceSummary.LastYear);
                                    SalesInvoiceSummary.LastYearSales = (sdr["LastYearSales"].ToString() != "" ? decimal.Parse(sdr["LastYearSales"].ToString()) : SalesInvoiceSummary.LastYearSales);
                                    SalesInvoiceSummaryList.Add(SalesInvoiceSummary);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(SalesInvoiceSummaryList);
        }
        private void SendResponse(SalesSummary salesSummary, Headers headers)
        {
            var customHeaders = CopyCustomHeaders(headers);

            var header      = customHeaders.First(h => h.Key.Equals("CTM_SALES_ANALYSIS_OUTPUT_TOPIC"));
            var outputTopic = Encoding.ASCII.GetString(header.GetValueBytes());

            var serializeSaleSummary = JsonConvert.SerializeObject(salesSummary, Formatting.Indented);

            using (var producer = new ProducerBuilder <Null, string>(_producerConfig).Build())
            {
                producer.Produce(outputTopic, new Message <Null, string> {
                    Value = serializeSaleSummary, Headers = customHeaders
                });

                producer.Flush(TimeSpan.FromSeconds(5));

                PrintLogs(customHeaders);
            }
        }
Пример #10
0
        private void OnOpenDailySalesReportCommand(object showAll)
        {
            try
            {
                var showRestrictedCustomers = false;
                if (showAll != null)
                {
                    showRestrictedCustomers = bool.Parse(showAll.ToString());
                }

                SalesSummary salesSummary = new SalesSummary(false);
                salesSummary.ShowDialog();
            }
            catch (Exceptions.RMSException ex)
            {
                Utility.ShowErrorBox(ex.Message);
            }
            catch (Exception ex)
            {
                Utility.ShowErrorBox(ex.Message);
                //log here
            }
        }
Пример #11
0
        public async Task <List <SalesSummary> > GetSalesSummary()
        {
            List <SalesSummary> Result = new List <SalesSummary>();

            try
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "ESP_Hub_UKDashboard";

                    using (SqlDataReader dr = await _data.OpenQuery(cmd))
                    {
                        while (dr.Read())
                        {
                            SalesSummary so = new SalesSummary();
                            so.Warehouse     = dr["Warehouse"].ToString();
                            so.NotProcessed  = dr["NotProcessed"].ToString();
                            so.Hold          = dr["Hold"].ToString();
                            so.Failed        = dr["Failed"].ToString();
                            so.AwaitingStock = dr["AwaitingStock"].ToString();
                            so.ReadyToShip   = dr["ReadyToShip"].ToString();
                            so.Shipped       = dr["Shipped"].ToString();
                            so.Cancelled     = dr["Cancelled"].ToString();
                            so.Total         = dr["Total"].ToString();

                            Result.Add(so);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(Result);
        }
Пример #12
0
        private void LoadSummary()
        {
            SalesSummary  manager = new SalesSummary(MyPage.MTApp.CurrentStore.Id);
            WeeklySummary summary = manager.GetWeeklySummary(TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, MyPage.MTApp.CurrentStore.Settings.TimeZone), MyPage.MTApp.OrderServices);

            if (summary == null)
            {
                return;
            }

            this.litM.Text    = summary.Monday.ToString("c");
            this.litT.Text    = summary.Tuesday.ToString("c");
            this.litW.Text    = summary.Wednesday.ToString("c");
            this.litR.Text    = summary.Thursday.ToString("c");
            this.litF.Text    = summary.Friday.ToString("c");
            this.litS.Text    = summary.Saturday.ToString("c");
            this.litY.Text    = summary.Sunday.ToString("c");
            this.litWeek.Text = summary.Week.ToString("c");

            this.litML.Text    = summary.MondayLast.ToString("c");
            this.litTL.Text    = summary.TuesdayLast.ToString("c");
            this.litWL.Text    = summary.WednesdayLast.ToString("c");
            this.litRL.Text    = summary.ThursdayLast.ToString("c");
            this.litFL.Text    = summary.FridayLast.ToString("c");
            this.litSL.Text    = summary.SaturdayLast.ToString("c");
            this.litYL.Text    = summary.SundayLast.ToString("c");
            this.litWeekL.Text = summary.WeekLast.ToString("c");

            this.litMC.Text    = FormatPercent(summary.MondayChange);
            this.litTC.Text    = FormatPercent(summary.TuesdayChange);
            this.litWC.Text    = FormatPercent(summary.WednesdayChange);
            this.litRC.Text    = FormatPercent(summary.ThursdayChange);
            this.litFC.Text    = FormatPercent(summary.FridayChange);
            this.litSC.Text    = FormatPercent(summary.SaturdayChange);
            this.litYC.Text    = FormatPercent(summary.SundayChange);
            this.litWeekC.Text = FormatPercent(summary.WeekChange);
        }
Пример #13
0
 public static SalesSummaryForSerialization FromSaleSummary(SalesSummary salesSummary)
 {
     return(new SalesSummaryForSerialization(salesSummary.AmountSalesman, salesSummary.AmountCustomer,
                                             salesSummary.WorstSellers, salesSummary.MostExpensiveSales));
 }
Пример #14
0
 public List <SalesSummary> GetSalesSummaryChart(SalesSummary duration)
 {
     return(_dashboardRepository.GetSalesSummaryChart(duration));
 }
Пример #15
0
        private static SalesSummary GetSalesSummary(Cashier cashier)
        {
            var salesSummary = new SalesSummary
            {
                DaylyBalance = cashier.DaylyBalance.Value,
                DailyCreditLimit = cashier.DailyCreditLimit,
                TodaySales = cashier.TodaySales,
                WeeklyBalance = cashier.WeeklyBalance.Value,
                WeeklyCreditLimit = cashier.WeeklyCreditLimit
            };

            return salesSummary;
        }