Пример #1
0
    // Group the articles by day and count
    public List <DailySales> GetDailySalesCount()
    {
        var salesListGroupedByArticles = salesList.GroupBy(salesList => salesList.Day);

        foreach (var group in salesListGroupedByArticles)
        {
            Console.WriteLine("Number of sold articles on " + group.Key + ":");
            Console.WriteLine(group.Count());

            DailySales temp_list = new DailySales(group.Key, group.Count());
            dailySalesList.Add(temp_list);
        }
        return(dailySalesList);
    }
        public ActionResult DailySales()
        {
            emed.Models.DB53Entities db = new emed.Models.DB53Entities();
            //CrMVCApp.Models.Customer c;
            //var c = (from b in db.DailySales select b).ToList();
            var c = (from b in db.DailySales select b).ToList();

            DailySales rpt = new DailySales();

            rpt.Load();
            rpt.SetDataSource(c);
            Stream s = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

            return(File(s, "C:\\Users\\M.ALI\\Documents\\ProjectAreports\\DailySalesReport.pdf"));
        }
Пример #3
0
        public void DailySalesReportPropertiesTest()
        {
            //Arrange
            DailySales dailysales = new DailySales();

            //Act
            dailysales.ProductNumber = "1";
            dailysales.Quantity      = 2;
            dailysales.SinglePrice   = 12;
            dailysales.Total         = 24;
            dailysales.Description   = "Factory New";

            //Assert
            Assert.AreEqual(dailysales.ProductNumber, "1");
            Assert.AreEqual(dailysales.SinglePrice, 12);
            Assert.AreEqual(dailysales.Quantity, 2);
            Assert.AreEqual(dailysales.Total, 24);
            Assert.AreEqual(dailysales.Description, "Factory New");
        }
Пример #4
0
        private static DailySales ChangString(string filename, string line)
        {
            DailySales dailSales = new DailySales();

            try
            {
                //Common.WriteLog("切割字串 " + line);
                //去除多空白
                line = new Regex("[\\s]+").Replace(line, " ");
                //空白切割
                string[] words = line.Split(' ');


                dailSales = new DailySales
                {
                    StoreCode            = filename,
                    DepartmentCode       = words[0].Substring(0, 2),
                    ItemCode             = words[0].Substring(2, 6),
                    SubCode              = words[0].Substring(8, 3),
                    SalesDate            = words[0].Substring(11, 10),
                    UnitCode             = words[0].Substring(21, 2),
                    StatusPromotion      = words[0].Substring(23, 1),
                    SPType               = words[0].Substring(24, 1),
                    VatRate              = words[1],
                    SalesQty             = words[2],
                    SalesAmount          = words[3],
                    SalesPrice           = words[4],
                    PurchasePrice        = words[5],
                    Rebate               = words[6],
                    VatAmount            = words[7],
                    OriginalSellingPrice = words[8],
                    CSTAmount            = words[9]
                };
                return(dailSales);
            }
            catch (Exception ex)
            {
                Common.WriteLog("切割字串 " + line + " 失敗");

                Common.WriteLog(ex.ToString());
                return(dailSales);
            }
        }
        private void frmdailysalesReportPreview_Load(object sender, EventArgs e)
        {
            try
            {
                string         query;
                DataTable      dailySales = new DataTable();
                SqlDataAdapter da         = new SqlDataAdapter();
                cn.Open();
                if (f.cboCashier.Text == "All Cashier")
                {
                    query = string.Format("Select c.id ,c.transno,c.pcode, p.pdesc, c.price, c.qty,c.disc,c.total from tblCart as c inner join tblproduct as p on c.pcode=p.pcode where status like 'Sold' and sdate between'{0}' and '{1}'", Convert.ToString(f.dt1.Value), Convert.ToString(f.dt2.Value));
                    cm    = new SqlCommand(query, cn);
                }
                else
                {
                    query = string.Format("Select c.id ,c.transno,c.pcode, p.pdesc, c.price, c.qty,c.disc,c.total from tblCart as c inner join tblproduct as p on c.pcode=p.pcode where status like 'Sold' and sdate between'{0}' and '{1}' and c.cashier = '{2}'", Convert.ToString(f.dt1.Value), Convert.ToString(f.dt2.Value), Convert.ToString(f.cboCashier.Text));
                    //String query = string.Format("Select c.id ,c.transno,c.pcode, p.pdesc, c.price, c.qty,c.disc,c.total from tblCart as c inner join tblproduct as p on c.pcode=p.pcode where status like 'Sold' and sdate between '{0}' and '{1}'", dt1.Value, dt2.Value);
                    //String query = string.Format("Select c.id ,c.transno,c.pcode, p.pdesc, c.price, c.qty,c.disc,c.total from tblCart as c inner join tblproduct as p on c.pcode=p.pcode where status like 'Sold'");

                    cm = new SqlCommand(query, cn);
                }
                da.SelectCommand = new SqlCommand(query, cn);
                da.Fill(dailySales);
                cn.Close();



                DailySales crptDailySales = new DailySales();
                TextObject dateFrom       = (TextObject)crptDailySales.ReportDefinition.Sections["Section1"].ReportObjects["txtDateFrom"];
                TextObject DateTo         = (TextObject)crptDailySales.ReportDefinition.Sections["Section1"].ReportObjects["txtDateTo"];
                TextObject username       = (TextObject)crptDailySales.ReportDefinition.Sections["Section1"].ReportObjects["txtReportUserName"];
                dateFrom.Text = f.dt1.Text;
                DateTo.Text   = f.dt2.Text;
                username.Text = f.cboCashier.Text;
                crptDailySales.Database.Tables["dtSoldReport"].SetDataSource(dailySales);
                crvDailySalesViewer.ReportSource = null;
                crvDailySalesViewer.ReportSource = crptDailySales;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Report Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #6
0
        public void UpdateCreateSalesReportBLLGenerateProfitOfTheDayTest()
        {
            //Arrange
            var data = new List <Items>
            {
                new Items()
                {
                    Id          = "1", Quantity = 12, OriginalPrice = 1, SalesPrice = 2,
                    ProductName = "Pen", Status = "Factory New"
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Items> >();

            mockSet.As <IQueryable <Items> >().Setup(m => m.Provider).Returns(data.Provider);
            mockSet.As <IQueryable <Items> >().Setup(m => m.Expression).Returns(data.Expression);
            mockSet.As <IQueryable <Items> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockSet.As <IQueryable <Items> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            var mockContext = new Mock <OfficeStoreContext>();

            mockContext.Setup(c => c.Items).Returns(mockSet.Object);

            var updateCreateSalesReportBLL = new UpdateCreateSalesReportBLL(mockContext.Object);
            var CartItem = new DailySales()
            {
                ProductNumber = "1", Quantity = 1, SinglePrice = 1
                , Description = "Item", Total = 1
            };
            var ItemsList = new List <DailySales>()
            {
                CartItem
            };

            //Act
            double ProfitOfTheDay = updateCreateSalesReportBLL.GenerateProfitOfTheDay(ItemsList);

            //Assert
            Assert.AreEqual(ProfitOfTheDay, 1);
        }
Пример #7
0
        public static bool StartInsert(string path, string finame)
        {
            bool              result = true;
            DailySales        daily  = new DailySales();
            List <DailySales> sales  = new List <DailySales>();

            string line;

            try
            {
                //使用FileStream讀取檔案
                FileStream   fileStream = File.OpenRead(path);
                StreamReader reader     = new StreamReader(fileStream, Encoding.UTF8);
                string       filename   = Path.GetFileName(finame).Substring(0, 3);
                int          i          = 0;
                line = reader.ReadLine();
                Common.WriteLog("切割字串");


                //Console.WriteLine("切割字串");
                //start = DateTime.Now;

                while (line != null)
                {
                    line = new Regex("[\\s]+").Replace(line, " ");
                    if (line == " " || line == "")
                    {
                        line = reader.ReadLine();
                        continue;
                    }
                    daily = ChangString(filename, line);
                    sales.Add(daily);
                    //Read the next line
                    line = reader.ReadLine();
                    i++;
                }

                //end = DateTime.Now;
                //Console.WriteLine(start.ToString("hh:mm:ss"));
                //Console.WriteLine(end.ToString("hh:mm:ss"));


                reader.Close();


                Common.WriteLog("新增DB");
                result = InsertToSql(sales);



                Common.WriteLog("新增 " + finame + " 成功,一共 " + i + " 筆");


                return(result);
            }
            catch (Exception ex)
            {
                result = false;
                Common.WriteLog(ex.ToString());
                return(result);
            }
        }
Пример #8
0
        public async Task <ActionResult> DailySales(string sortOrder, string currentFilter, DailySales dailysales, int?page)
        {
            ViewBag.CurrentSort   = sortOrder;
            ViewBag.NameSortParm  = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.PriceSortParm = sortOrder == "Price" ? "price_desc" : "Price";
            string searchString = String.Empty;

            if (dailysales.Date != null)
            {
                var searchdate = (DateTime)dailysales.Date;
                searchString = searchdate.ToShortDateString();
            }
            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;
            string checkName = User.Identity.GetUserId();
            var    todayDate = DateTime.Now.ToString("dd/MM/yyyy");

            IEnumerable <Sale> sales = new List <Sale>();

            if (Request.IsAuthenticated && User.IsInRole("Admin"))
            {
                sales = await _db.Sales.AsNoTracking().ToListAsync();
            }
            else
            {
                sales = _db.Sales.AsNoTracking().Where(s => s.CustomerId.Equals(checkName));
            }

            //var sales = from o in _db.Sales
            //            select o;

            if (!String.IsNullOrEmpty(searchString))
            {
                // var salesresult = sales.Where(s => s.SaleDate.Date.ToString());
                sales = sales.Where(s => s.SaleDate.ToShortDateString().Equals(searchString));
            }
            else
            {
                sales = sales.Where(x => x.SaleDate.ToString("dd/MM/yyyy").Equals(todayDate));
            }

            switch (sortOrder)
            {
            case "name_desc":
                sales = sales.OrderByDescending(s => s.Customer.UserName);
                break;

            case "Price":
                sales = sales.OrderBy(s => s.Total);
                break;

            case "price_desc":
                sales = sales.OrderByDescending(s => s.Total);
                break;

            default:      // Name ascending
                sales = sales.OrderBy(s => s.Customer.UserName);
                break;
            }

            int pageSize   = 10;
            int pageNumber = (page ?? 1);

            return(View(sales.ToPagedList(pageNumber, pageSize)));

            //return View(await _db.Orders.ToListAsync());
        }
        // GET: DailySales
        public ActionResult Index(int?id, string salesmanId, string searchString, DateTime?SaleDate)
        {
            var dailySales = db.DailySales.Include(d => d.Salesman).Where(c => DbFunctions.TruncateTime(c.SaleDate) == DbFunctions.TruncateTime(DateTime.Today)).OrderByDescending(c => c.SaleDate).ThenByDescending(c => c.DailySaleId);

            if (id != null && id == 101)
            {
                dailySales = db.DailySales.Include(d => d.Salesman).OrderByDescending(c => c.SaleDate).ThenByDescending(c => c.DailySaleId);
            }
            //Fixed Query
            var totalSale        = dailySales.Where(c => c.IsManualBill == false).Sum(c => (decimal?)c.Amount) ?? 0;
            var totalManualSale  = dailySales.Where(c => c.IsManualBill == true).Sum(c => (decimal?)c.Amount) ?? 0;
            var totalMonthlySale = db.DailySales.Where(c => DbFunctions.TruncateTime(c.SaleDate).Value.Month == DbFunctions.TruncateTime(DateTime.Today).Value.Month).Sum(c => (decimal?)c.Amount) ?? 0;
            var duesamt          = db.DuesLists.Where(c => c.IsRecovered == false).Sum(c => (decimal?)c.Amount) ?? 0;

            var cashinhand = (decimal)0.00;

            try
            {
                cashinhand = db.CashInHands.Where(c => DbFunctions.TruncateTime(c.CIHDate) == DbFunctions.TruncateTime(DateTime.Today)).FirstOrDefault().InHand;
            }
            catch (Exception)
            {
                Utils.ProcessOpenningClosingBalance(db, DateTime.Today, false, true);
                cashinhand = (decimal)0.00;
                //Log.Error("Cash In Hand is null");
            }


            // Fixed UI
            ViewBag.TodaySale   = totalSale;
            ViewBag.ManualSale  = totalManualSale;
            ViewBag.MonthlySale = totalMonthlySale;
            ViewBag.DuesAmount  = duesamt;
            ViewBag.CashInHand  = cashinhand;

            // By Salesman
            var salesmanList = new List <string>();
            var smQry        = from d in db.Salesmen
                               orderby d.SalesmanName
                               select d.SalesmanName;

            salesmanList.AddRange(smQry.Distinct());
            ViewBag.salesmanId = new SelectList(salesmanList);

            //By Date

            var dateList = new List <DateTime>();
            var opdQry   = from d in db.DailySales
                           orderby d.SaleDate
                           select d.SaleDate;

            dateList.AddRange(opdQry.Distinct());
            ViewBag.dateID = new SelectList(dateList);

            //By Invoice No Search

            if (!String.IsNullOrEmpty(searchString))
            {
                var dls = db.DailySales.Include(d => d.Salesman).Where(c => c.InvNo == searchString);
                return(View(dls));
            }
            else if (!String.IsNullOrEmpty(salesmanId) || SaleDate != null)
            {
                IEnumerable <DailySale> DailySales;

                if (SaleDate != null)
                {
                    DailySales = db.DailySales.Include(d => d.Salesman).Where(c => DbFunctions.TruncateTime(c.SaleDate) == DbFunctions.TruncateTime(SaleDate)).OrderByDescending(c => c.DailySaleId);
                }
                else
                {
                    DailySales = db.DailySales.Include(d => d.Salesman).Where(c => DbFunctions.TruncateTime(c.SaleDate) == DbFunctions.TruncateTime(DateTime.Today)).OrderByDescending(c => c.SaleDate).ThenByDescending(c => c.DailySaleId);
                }

                if (!String.IsNullOrEmpty(salesmanId))
                {
                    DailySales = DailySales.Where(c => c.Salesman.SalesmanName == salesmanId);
                }

                return(View(DailySales.ToList()));
            }



            return(View(dailySales.ToList()));
        }