Beispiel #1
0
        // Origin: Off_CreateSalesDaily
        public ActionResult CreateSalesDailyPartial()
        {
            var user      = UserManager.FindById(User.Identity.GetUserId());
            var item      = new Off_SalesInfo_Daily();
            var storelist = from m in _offlineDB.Off_Store
                            where m.Off_System_Id == user.DefaultSystemId
                            orderby m.StoreName
                            select new { Key = m.Id, Value = m.StoreName };

            ViewBag.StoreDropDown = new SelectList(storelist, "Key", "Value");
            return(PartialView(item));
        }
Beispiel #2
0
        // Origin: analyseExcel_DailyInfoTable
        public async Task <List <Excel_DataMessage> > UploadDailySalesByExcelAsync(string filename, List <Excel_DataMessage> messageList)
        {
            try
            {
                var             user    = UserManager.FindById(User.Identity.GetUserId());
                string          folder  = HttpContext.Server.MapPath("~/Content/xlsx/");
                string          strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + folder + filename + ";Extended Properties='Excel 12.0; HDR=1; IMEX=1'"; //此连接可以操作.xls与.xlsx文件
                OleDbConnection conn    = new OleDbConnection(strConn);
                conn.Open();
                DataSet          ds   = new DataSet();
                OleDbDataAdapter odda = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}]", "Sheet1$"), conn);                    //("select * from [Sheet1$]", conn);
                odda.Fill(ds, "[Sheet1$]");
                conn.Close();
                DataTable dt          = ds.Tables[0];
                int       i           = 0;
                bool      result_flag = true;
                foreach (DataRow dr in dt.Rows)
                {
                    i++;
                    try
                    {
                        // 判断是否存在店铺
                        string storename   = dr["店铺名称"].ToString();
                        var    exist_store = _offlineDB.Off_Store.SingleOrDefault(m => m.StoreName == storename && m.Off_System_Id == user.DefaultSystemId);
                        if (exist_store == null)
                        {
                            messageList.Add(new Excel_DataMessage(i, "店铺不存在", true));
                            result_flag = false;
                            continue;
                        }
                        // 判断是否有促销员,如有促销员,判断存在销售员
                        string     sellername   = dr["促销员"].ToString();
                        Off_Seller exist_seller = null;
                        if (sellername != "")
                        {
                            exist_seller = _offlineDB.Off_Seller.SingleOrDefault(m => m.Name == sellername);
                            if (exist_seller == null)
                            {
                                messageList.Add(new Excel_DataMessage(i, "销售员不存在", true));
                                result_flag = false;
                                continue;
                            }
                        }
                        // 判断是否含已有数据
                        DateTime info_date       = Convert.ToDateTime(dr["日期"]);
                        var      exist_dailyinfo = _offlineDB.Off_SalesInfo_Daily.SingleOrDefault(m => m.Date == info_date && m.StoreId == exist_store.Id && m.isMultiple == false);
                        if (exist_dailyinfo != null)
                        {
                            messageList.Add(new Excel_DataMessage(i, "当日数据已存在", true));
                            result_flag = false;
                            continue;
                        }
                        else
                        {
                            int?   attendance      = null;
                            string attendance_info = dr["考勤"].ToString();
                            switch (attendance_info)
                            {
                            case "全勤":
                                attendance = 0;
                                break;

                            case "迟到":
                                attendance = 1;
                                break;

                            case "早退":
                                attendance = 2;
                                break;

                            case "旷工":
                                attendance = 3;
                                break;

                            default:
                                attendance = null;
                                break;
                            }
                            Off_SalesInfo_Daily dailyinfo = new Off_SalesInfo_Daily()
                            {
                                StoreId    = exist_store.Id,
                                Date       = info_date,
                                Item_Brown = ExcelOperation.ConvertInt(dr, "红糖姜茶"),
                                Item_Black = ExcelOperation.ConvertInt(dr, "黑糖姜茶"),
                                Item_Lemon = ExcelOperation.ConvertInt(dr, "柠檬姜茶"),
                                Item_Honey = ExcelOperation.ConvertInt(dr, "蜂蜜姜茶"),
                                Item_Dates = ExcelOperation.ConvertInt(dr, "红枣姜茶"),
                                Off_Seller = exist_seller,
                                Attendance = attendance,
                                Salary     = ExcelOperation.ConvertDecimal(dr, "工资"),
                                Bonus      = ExcelOperation.ConvertDecimal(dr, "奖金"),
                                Debit      = ExcelOperation.ConvertDecimal(dr, "扣款"),
                                isMultiple = ExcelOperation.ConvertBoolean(dr, "多人"),
                                remarks    = dr["备注"].ToString(),
                                UploadTime = DateTime.Now,
                                UploadUser = User.Identity.Name
                            };
                            _offlineDB.Off_SalesInfo_Daily.Add(dailyinfo);
                            messageList.Add(new Excel_DataMessage(i, "数据类型验证成功", false));
                        }
                    }
                    catch (Exception e)
                    {
                        result_flag = false;
                        messageList.Add(new Excel_DataMessage(i, "表格格式错误," + e.ToString(), true));
                    }
                }
                if (result_flag)
                {
                    await _offlineDB.SaveChangesAsync();

                    messageList.Add(new Excel_DataMessage(0, "保存成功", false));
                }
                else
                {
                    messageList.Add(new Excel_DataMessage(0, "数据行发生错误,未保存", true));
                }
            }
            catch (Exception e)
            {
                messageList.Add(new Excel_DataMessage(-1, "表格格式错误" + e.ToString(), true));
            }
            return(messageList);
        }
Beispiel #3
0
        public async Task <ActionResult> CreateSalesDailyPartial(Off_SalesInfo_Daily model, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                Off_SalesInfo_Daily item = new Off_SalesInfo_Daily();
                if (TryUpdateModel(item))
                {
                    List <int> plist       = new List <int>();
                    var        user        = UserManager.FindById(User.Identity.GetUserId());
                    var        productlist = from m in _offlineDB.Off_Product
                                             where m.Off_System_Id == user.DefaultSystemId &&
                                             m.status >= 0
                                             select m;
                    // 添加或修改销售列表
                    foreach (var product in productlist)
                    {
                        // 获取单品数据
                        int?sales = null;
                        if (form["sales_" + product.Id] != "")
                        {
                            sales = Convert.ToInt32(form["sales_" + product.Id]);
                        }
                        int?storage = null;
                        if (form["storage_" + product.Id] != "")
                        {
                            storage = Convert.ToInt32(form["storage_" + product.Id]);
                        }
                        decimal?amount = null;
                        if (form["amount_" + product.Id] != "")
                        {
                            amount = Convert.ToDecimal(form["amount_" + product.Id]);
                        }
                        // 判断是否已有数据

                        // 添加数据
                        // 如果三项数据不为空,则添加
                        if ((sales == null || sales == 0) && storage == null && amount == null)
                        {
                        }
                        else
                        {
                            Off_Daily_Product existdata = new Off_Daily_Product()
                            {
                                Off_SalesInfo_Daily = item,
                                ItemCode            = product.ItemCode,
                                ProductId           = product.Id,
                                SalesAmount         = amount,
                                SalesCount          = sales,
                                StorageCount        = storage
                            };
                            _offlineDB.Off_Daily_Product.Add(existdata);
                            //offlineDB.SaveChanges();
                        }
                    }
                    item.UploadTime = DateTime.Now;
                    item.UploadUser = User.Identity.Name;
                    _offlineDB.Off_SalesInfo_Daily.Add(item);
                    var result = await _offlineDB.SaveChangesAsync();

                    OfflineSalesUtilities util = new OfflineSalesUtilities();
                    var result2 = await util.UpdateDailySalesAvg(item.StoreId, (int)item.Date.DayOfWeek + 1);

                    return(Content("SUCCESS"));
                }
                return(Content("FAIL"));
            }
            else
            {
                ModelState.AddModelError("", "发生错误");
                var storelist = from m in _offlineDB.Off_Store
                                orderby m.StoreName
                                select new { Key = m.Id, Value = m.StoreName };
                ViewBag.StoreDropDown = new SelectList(storelist, "Key", "Value");
                return(PartialView(model));
            }
        }
Beispiel #4
0
        public async Task <ActionResult> EditDailySalesPartial(int id, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                var item = new Off_SalesInfo_Daily();
                if (TryUpdateModel(item))
                {
                    List <int> plist       = new List <int>();
                    var        user        = UserManager.FindById(User.Identity.GetUserId());
                    var        productlist = from m in _offlineDB.Off_Product
                                             where m.Off_System_Id == user.DefaultSystemId &&
                                             m.status >= 0
                                             select m;
                    // 添加或修改销售列表
                    foreach (var product in productlist)
                    {
                        // 获取单品数据
                        int?sales = null;
                        if (form["sales_" + product.Id] != "")
                        {
                            sales = Convert.ToInt32(form["sales_" + product.Id]);
                        }
                        int?storage = null;
                        if (form["storage_" + product.Id] != "")
                        {
                            storage = Convert.ToInt32(form["storage_" + product.Id]);
                        }
                        decimal?amount = null;
                        if (form["amount_" + product.Id] != "")
                        {
                            amount = Convert.ToDecimal(form["amount_" + product.Id]);
                        }
                        // 判断是否已有数据
                        var checkinproductlist = _offlineDB.Off_Daily_Product.Where(m => m.DailyId == id);
                        var existdata          = checkinproductlist.SingleOrDefault(m => m.ProductId == product.Id);
                        if (existdata != null)
                        {
                            if (sales == null && storage == null && amount == null)
                            {
                                // 无数据则删除
                                _offlineDB.Off_Daily_Product.Remove(existdata);
                            }
                            else if (sales == 0 && storage == 0 && amount == 0)
                            {
                                _offlineDB.Off_Daily_Product.Remove(existdata);
                            }
                            else
                            {
                                // 修改数据
                                existdata.SalesAmount  = amount;
                                existdata.SalesCount   = sales;
                                existdata.StorageCount = storage;
                            }
                        }
                        else
                        {
                            // 添加数据
                            // 如果三项数据不为空,则添加
                            if (sales == null && storage == null && amount == null)
                            {
                            }
                            else if (sales == 0 && storage == 0 && amount == 0)
                            {
                            }
                            else
                            {
                                existdata = new Off_Daily_Product()
                                {
                                    DailyId      = id,
                                    ItemCode     = product.ItemCode,
                                    ProductId    = product.Id,
                                    SalesAmount  = amount,
                                    SalesCount   = sales,
                                    StorageCount = storage
                                };
                                _offlineDB.Off_Daily_Product.Add(existdata);
                                //offlineDB.SaveChanges();
                            }
                        }
                    }
                    item.UploadTime = DateTime.Now;
                    item.UploadUser = User.Identity.Name;
                    _offlineDB.Entry(item).State = System.Data.Entity.EntityState.Modified;
                    var result = await _offlineDB.SaveChangesAsync();

                    // 该代码需要重写

                    OfflineSalesUtilities util = new OfflineSalesUtilities();
                    var result2 = await util.UpdateDailySalesAvg(item.StoreId, (int)item.Date.DayOfWeek + 1);

                    //update_Sales_AVGINfo(item.StoreId, (int)item.Date.DayOfWeek + 1);
                    return(Content("SUCCESS"));
                }
                else
                {
                    return(PartialView("AuthorizeErrorPartial"));
                }
            }
            else
            {
                return(PartialView("ErrorPartial"));
            }
        }