public string Post([FromBody] tbEmployee emp, string Add)
        {
            try
            {
                tbEmpGroup tbEmpG = new tbEmpGroup();
                if (Add.Equals("Add"))
                {
                    SHA256 sha256 = new SHA256CryptoServiceProvider();       //建立一個SHA256
                    byte[] source = Encoding.Default.GetBytes(emp.PassWord); //將字串轉為Byte[]
                    byte[] crypto = sha256.ComputeHash(source);              //進行SHA256加密
                    string result = Convert.ToBase64String(crypto);          //把加密後的字串從Byte[]轉為字串

                    emp.PassWord = result;

                    _db.tbEmployee.Add(emp);
                    tbEmpG.EmployeeNo = emp.EmployeeNo;
                    tbEmpG.GroupID    = "";
                    _db.tbEmpGroup.Add(tbEmpG);
                    _db.SaveChanges();
                }
                else
                {
                    return("error");
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
            return("success");
        }
Beispiel #2
0
        private JArray GetExportData(string productName, string packingTime)
        {
            string[] packingTimeRangeList;
            string   packingTimeS = "";
            string   packingTimeE = "";
            DateTime dateTimeS;
            DateTime dateTimeE;

            UserModel _UserModel = null;

            var query = (from a in _db.PackingLists
                         join b in _db.ProductInfoes
                         on a.ProductNo equals b.ProductNo
                         select new
            {
                a.BagNo,
                a.CaseNo,
                a.CompanyCode,
                a.Lot,
                a.PackingTime,
                a.PalletsNo,
                a.ProductNo,
                b.ProductName,
                a.SerialNo
            });

            //綁登入者身分
            if (ViewData["UserModel"] != null)
            {
                _UserModel = (UserModel)ViewData["UserModel"];
                tbEmpGroup GroupId = _db.tbEmpGroup.Where(e => e.EmployeeNo == _UserModel.EmployeeNo).FirstOrDefault();

                if (GroupId != null)
                {
                    query = query.Where(c => c.CompanyCode == GroupId.GroupID);
                }
                else
                {
                    query = query.Where(c => c.CompanyCode == "99999999");
                }
            }
            if (!productName.Equals(""))
            {
                query = query.Where(p => p.ProductName.Contains(productName));
            }
            if (!packingTime.Equals(""))
            {
                packingTimeRangeList    = packingTime.Split('-');
                packingTimeRangeList[0] = packingTimeRangeList[0].Trim();
                packingTimeRangeList[1] = packingTimeRangeList[1].Trim();
                dateTimeS = Convert.ToDateTime(packingTimeRangeList[0]);
                dateTimeE = Convert.ToDateTime(packingTimeRangeList[1]);
                dateTimeE = dateTimeE.AddDays(1);
                query     = query.Where(e => e.PackingTime >= dateTimeS && e.PackingTime <= dateTimeE);
            }

            query = query.OrderBy(x => x.PackingTime);

            JArray jObjects = new JArray();

            foreach (var item in query)
            {
                var jo = new JObject();
                jo.Add("BagNo", item.BagNo);
                jo.Add("CaseNo", item.CaseNo);
                jo.Add("CompanyCode", item.CompanyCode);
                jo.Add("Lot", item.Lot);
                jo.Add("PackingTime", item.PackingTime.ToString());
                jo.Add("PalletsNo", item.PalletsNo);
                jo.Add("ProductNo", item.ProductNo);
                jo.Add("ProductName", item.ProductName);
                jo.Add("SerialNo", item.SerialNo);
                jObjects.Add(jo);
            }
            return(jObjects);
        }
        public string Put([FromBody] tbEmpGroup empGroup)
        {
            try
            {
                string[]      arrGroupID   = empGroup.GroupID.Split(','); //更改過後的GroupID
                List <string> listDGroupID = new List <string>();         //需要刪除的GroupID
                List <string> listAGroupID = new List <string>();         //需要新增的GroupID

                bool flag = true;

                List <tbEmpGroup> listTbEmpGroup = _db.tbEmpGroup.Where(b => b.EmployeeNo == empGroup.EmployeeNo).ToList();

                //紀錄刪除項目
                foreach (tbEmpGroup mtbEmpGroup in listTbEmpGroup)
                {
                    flag = true;
                    for (int i = 0; i < arrGroupID.Length; i++)
                    {
                        if (mtbEmpGroup.GroupID.Equals(arrGroupID[i]))
                        {
                            flag = false;
                            break;
                        }
                    }
                    if (flag == true)
                    {
                        listDGroupID.Add(mtbEmpGroup.GroupID);
                    }
                }

                //紀錄新增項目
                for (int i = 0; i < arrGroupID.Length; i++)
                {
                    flag = true;
                    foreach (tbEmpGroup mtbEmpGroup in listTbEmpGroup)
                    {
                        if (arrGroupID[i].Equals(mtbEmpGroup.GroupID))
                        {
                            flag = false;
                            break;
                        }
                    }
                    if (flag == true)
                    {
                        listAGroupID.Add(arrGroupID[i]);
                    }
                }

                //資料庫刪除
                foreach (string groupID in listDGroupID)
                {
                    tbEmpGroup tbEmpGroup = _db.tbEmpGroup.Where(b => b.EmployeeNo == empGroup.EmployeeNo).Where(c => c.GroupID == groupID).First();
                    _db.tbEmpGroup.Remove(tbEmpGroup);
                }

                //資料庫新增
                foreach (string groupID in listAGroupID)
                {
                    tbEmpGroup tbEmpGroup = new tbEmpGroup();
                    tbEmpGroup.EmployeeNo = empGroup.EmployeeNo;
                    tbEmpGroup.GroupID    = groupID;
                    _db.tbEmpGroup.Add(tbEmpGroup);

                    _db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
            return("success");
        }
Beispiel #4
0
        public JsonResult Get(int draw, int start)
        {
            UserModel             _UserModel     = null;
            List <PackingPallets> rows           = new List <PackingPallets>();
            List <PackingPallets> rowsResult     = new List <PackingPallets>();
            List <PackingPallets> rowsPageResult = new List <PackingPallets>();

            string[] packingTimeRangeList;
            string   packingTimeS = "";
            string   packingTimeE = "";
            string   parameter    = Request.Query["search[value]"].FirstOrDefault();

            PackingListsCondition condition = null;

            if (ViewData["UserModel"] != null)
            {
                _UserModel = (UserModel)ViewData["UserModel"];
                tbEmpGroup GroupId = _db.tbEmpGroup.Where(e => e.EmployeeNo == _UserModel.EmployeeNo).FirstOrDefault();
                var        tmp     = (from a in _db.PackingLists
                                      orderby a.ProductNo
                                      orderby a.PackingTime
                                      group a by new { a.CompanyCode, a.ProductNo, a.PalletsNo, a.Lot, a.CaseNo, PackingTime = a.PackingTime.ToString("yyyyMMdd") } into g
                                      group g by new { g.Key.CompanyCode, g.Key.ProductNo, g.Key.PalletsNo, g.Key.Lot, g.Key.PackingTime } into k
                                      from b in _db.ProductInfoes.Where(e => e.ProductNo == k.Key.ProductNo)
                                      select new PackingPallets
                {
                    CompanyCode = k.Key.CompanyCode,
                    PackingTime = k.Key.PackingTime,
                    ProductName = b.ProductName + "(" + b.Spec + ")",
                    ProductNo = k.Key.ProductNo,
                    PalletsNo = k.Key.PalletsNo,
                    Lot = k.Key.Lot,
                    Quantity = k.Count()
                }).Where(c => c.CompanyCode == GroupId.GroupID);

                if (parameter != "")
                {
                    condition = (PackingListsCondition)JsonConvert.DeserializeObject(parameter, typeof(PackingListsCondition));
                }

                //如果有搜尋條件
                if (condition != null)
                {
                    if (condition.PackingTime.ToString() != "")
                    {
                        packingTimeS = condition.PackingTime.Substring(0, 10).Replace("/", "").Trim();
                        packingTimeE = condition.PackingTime.Substring(10).Replace("/", "").Trim();
                        tmp          = tmp.Where(e => Convert.ToInt32(e.PackingTime) >= Convert.ToInt32(packingTimeS) && Convert.ToInt32(e.PackingTime) <= Convert.ToInt32(packingTimeE));
                    }

                    if (condition.ProductName != "")
                    {
                        tmp = tmp.Where(e => e.ProductName.Contains(condition.ProductName));
                    }
                }

                rows = tmp.OrderBy(e => e.CompanyCode).OrderBy(e => e.PackingTime).OrderBy(e => e.ProductName).OrderBy(e => e.Lot).ToList();

                int            count             = 0;
                PackingPallets newPackingPallets = new PackingPallets();
                foreach (PackingPallets packingPallets in rows)
                {
                    if (count == 0)
                    {
                        newPackingPallets             = new PackingPallets();
                        newPackingPallets.CompanyCode = packingPallets.CompanyCode;
                        newPackingPallets.PackingTime = packingPallets.PackingTime;
                        newPackingPallets.ProductName = packingPallets.ProductName;
                        newPackingPallets.ProductNo   = packingPallets.ProductNo;
                        newPackingPallets.Lot         = packingPallets.Lot;
                        newPackingPallets.PalletsNo   = "1";
                        newPackingPallets.Quantity    = packingPallets.Quantity;

                        count++;
                        continue;
                    }

                    if (newPackingPallets.CompanyCode.Equals(packingPallets.CompanyCode) &&
                        newPackingPallets.PackingTime.Equals(packingPallets.PackingTime) &&
                        newPackingPallets.ProductName.Equals(packingPallets.ProductName) &&
                        newPackingPallets.Lot.Equals(packingPallets.Lot))
                    {
                        newPackingPallets.PalletsNo = (Convert.ToInt32(newPackingPallets.PalletsNo) + 1).ToString();
                        newPackingPallets.Quantity  = newPackingPallets.Quantity + packingPallets.Quantity;
                    }
                    else
                    {
                        rowsResult.Add(newPackingPallets);

                        newPackingPallets             = new PackingPallets();
                        newPackingPallets.CompanyCode = packingPallets.CompanyCode;
                        newPackingPallets.PackingTime = packingPallets.PackingTime;
                        newPackingPallets.ProductName = packingPallets.ProductName;
                        newPackingPallets.ProductNo   = packingPallets.ProductNo;
                        newPackingPallets.Lot         = packingPallets.Lot;
                        newPackingPallets.PalletsNo   = "1";
                        newPackingPallets.Quantity    = packingPallets.Quantity;
                    }
                }
                if (count != 0)
                {
                    rowsResult.Add(newPackingPallets);
                }


                //資料總數
                int recordsTotal = rowsResult.Count();

                //取得當頁資料
                rowsPageResult = rowsResult.Skip(start).Take(10).ToList();;

                var renderModel = new DataTablesRenderModel
                {
                    draw            = draw,
                    data            = rowsPageResult,
                    length          = rowsPageResult.Count(),
                    recordsFiltered = recordsTotal,
                    recordsTotal    = recordsTotal
                };
                return(Json(renderModel));
            }
            else
            {
                return(null);
            }
        }