public ActionResult Create(ProductItem model, int pageNo = 1) { var productItem = db.ProductItems.Where(p => p.ShortCode.Equals(model.ShortCode, StringComparison.OrdinalIgnoreCase) || p.Name.Equals(model.ShortCode, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (productItem != null) { TempData["Error"] = Language.Accessory.Accessory.DuplicateError; return(RedirectToAction("Details", new { PageNo = pageNo })); } if (ModelState.IsValid) { db.ProductItems.Add(model); db.SaveChanges(); StockDiary diary = new StockDiary() { Date = DateTime.Now, Note = model.Description, Type = db.StockStatuses.Find(model.StockStatusId).Text, ProductItemId = model.Id }; db.StockDiaries.Add(diary); db.SaveChanges(); } return(RedirectToAction("Index", new { PageNo = pageNo })); }
public JsonResult Insert(StockDiary model) { //model.Code = AutoNumberHelper.GenerateNumber(ObjectType.StockDiary, db); db.StockDiaries.Add(model); db.SaveChanges(); return(Json(new { Succeed = true })); }
public JsonResult AssignEmployee(int ticketId, int employeeId, int productId, string serial, int productItemID) { var productTicket = db.ProductTickets.Find(ticketId); var productItem = db.ProductItems.Find(productItemID); productItem.EmployeeId = productTicket.EmployeeId; db.Entry(productItem).State = EntityState.Modified; StockDiary diary = new StockDiary() { Date = DateTime.Now, ProductTicketId = ticketId, ProductItemId = productItem.Id, Type = "Production", Note = productTicket.Employee.Name }; db.StockDiaries.Add(diary); db.SaveChanges(); return(Json(new { Succeed = true }, JsonRequestBehavior.AllowGet)); }
// GET: ProductItem/Edit/5 public ActionResult Edit(ProductItem model, int oldStockStatusId, int?oldEmployeeId, int pageNo = 1, string PONo = "") { var productItem = db.ProductItems.Where(p => (p.ShortCode.Equals(model.ShortCode, StringComparison.OrdinalIgnoreCase) || p.Name.Equals(model.ShortCode, StringComparison.OrdinalIgnoreCase)) && p.Id != model.Id).FirstOrDefault(); if (productItem != null) { TempData["Error"] = Language.Accessory.Accessory.DuplicateError; return(RedirectToAction("Details", new { id = model.Id, PageNo = pageNo })); } string oldEmployeeName = string.Empty; if (oldEmployeeId != model.EmployeeId) { oldEmployeeName = (oldEmployeeId != null && oldEmployeeId > 0) ? db.Employees.Find(oldEmployeeId).Name : string.Empty; } string newEmployeeName = string.Empty; if (oldEmployeeId != model.EmployeeId) { newEmployeeName = (model.EmployeeId != null && model.EmployeeId > 0) ? db.Employees.Find(model.EmployeeId).Name : string.Empty; } if (oldStockStatusId != model.StockStatusId || (oldEmployeeId != model.EmployeeId)) { StockDiary diary = new StockDiary() { Date = DateTime.Now, Note = string.Format("{0} => {1}", oldEmployeeName, newEmployeeName), Type = db.StockStatuses.Find(model.StockStatusId).Text, ProductItemId = model.Id }; db.StockDiaries.Add(diary); } db.Entry <ProductItem>(model).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", new { PageNo = pageNo })); }
public ActionResult Import(HttpPostedFileBase file) { DataSet ds = file.ToDataSet(); Utils.LdapAuthentication _ldap = new Utils.LdapAuthentication(string.Format("LDAP://{0}", ConfigurationManager.AppSettings["Domain"])); DataTable dt = ds.Tables[0]; if (dt.Columns.Count == 5) { dt.Columns.Add("Kết quả"); if (ds != null) { //foreach (DataTable dt2 in ds.Tables) //{ foreach (DataRow r in dt.Rows) { string importDescription = string.Empty; string error = string.Empty; string shortCode = string.Empty; string _username = string.Empty; string _stockStatusName = string.Empty; string _POno = string.Empty; string _description = string.Empty; try { shortCode = r[0].ToString(); _username = r[1].ToString(); _stockStatusName = r[2].ToString(); _POno = r[3].ToString(); _description = r[4].ToString(); var productItem = db.ProductItems.Where(p => p.ShortCode.Equals(shortCode, StringComparison.OrdinalIgnoreCase) || p.Name.Equals(shortCode, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (productItem == null) { importDescription = "ShortCode không tồn tại"; error = "Lỗi"; } else { var employee = new Employee(); if (_username != string.Empty) { //int empID = int.Parse(_eCode); employee = db.Employees.Where(e => (e.UserName.Equals(_username, StringComparison.OrdinalIgnoreCase) && _username != string.Empty)).FirstOrDefault(); if (employee == null) { importDescription = "Nhân viên không tồn tại"; //ImpersonatorUser imp = _ldap.Finduser(_username); //if (imp != null) //{ // Department department= null; // if (imp.Department != string.Empty && imp.Department != null) // { // department = new Department() // { // Name = imp.Department // }; // db.Departments.Add(department); // db.SaveChanges(); // } // employee = new Employee(); // employee.Code = imp.Pager; // employee.Name = imp.DisplayName; // if (department != null) employee.DepartmentId = department.Id; // employee.UserName = imp.Username; // db.Employees.Add(employee); // db.SaveChanges(); // importDescription = "Tạo mới nhân viên"; //} //else //{ // importDescription = "Nhân viên không tồn tại"; // error = "Lỗi"; //} } } var stockStatus = new StockStatus(); if (_stockStatusName != string.Empty) { stockStatus = db.StockStatuses.Where(s => s.Text.Equals(_stockStatusName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (stockStatus == null) { importDescription += "Không tìm thấy trạng thái kho; "; //stockStatus = new StockStatus(); //stockStatus.Text = _stockStatusName; //db.StockStatuses.Add(stockStatus); //db.SaveChanges(); } } if (error == string.Empty) { if (productItem.StockStatusId != stockStatus.Id) { StockDiary diary = new StockDiary() { Date = DateTime.Now, Note = "", Type = _stockStatusName, ProductItemId = productItem.Id }; db.StockDiaries.Add(diary); } if (employee != null && employee.Id > 0) { productItem.EmployeeId = employee.Id; productItem.StockStatusId = stockStatus.Id; } else { productItem.EmployeeId = null; productItem.StockStatusId = stockStatus.Id; } productItem.PONo = _POno; productItem.Description = _description; db.SaveChanges(); importDescription = "Thành công"; } } } catch (Exception ex) { importDescription += "Error: " + ex.Message + " Inner: " + ex.InnerException; } r[0] = shortCode; r[1] = _username; r[2] = _stockStatusName; r[3] = _POno; r[4] = _description; r[5] = importDescription; } FileExcel(dt, "ProductItem"); } } else { dt.Columns.Add("Import Status", typeof(string)); dt.Columns.Add("Import Detail", typeof(string)); //dt.Columns.Add("Description", typeof(string)); if (ds != null) { //foreach (DataTable dt2 in ds.Tables) //{ foreach (DataRow r in dt.Rows) { try { string _departmentName = string.Empty; string _categoryName = string.Empty; string _buildingName = string.Empty; string _sectionName = string.Empty; string _userCode = string.Empty, _userDisplayName = string.Empty;//, _userUserName = string.Empty _eCode = string.Empty; string _shortCode = string.Empty, _shortName = string.Empty, _productName = string.Empty, _serialNo = string.Empty; DateTime _buyDate = DateTime.MinValue; DateTime _expiryDate = DateTime.MinValue; string _stockStatusName;//, _productStatusName, _poNo = string.Empty, _cdROM = string.Empty, _remark = string.Empty; string _supplierName = string.Empty; var productItem = new ProductItem(); var category = new Category(); var product = new Product(); var dept = new Department(); var employee = new Employee(); var productStatus = new ProductStatus(); var building = new Building(); var stockStatus = new StockStatus(); var supplier = new Supplier(); string _POno = string.Empty; string _description = string.Empty; string importDescription = string.Empty; _shortCode = r[0].ToString(); _shortName = r[1].ToString(); //_buildingName = r[2].ToString(); _categoryName = r[3].ToString(); _productName = r[4].ToString(); _sectionName = r[5].ToString(); _buildingName = r[6].ToString(); _userCode = r[7].ToString(); _userDisplayName = r[8].ToString(); _departmentName = r[9].ToString(); _stockStatusName = r[10].ToString(); _serialNo = r[11].ToString(); _expiryDate = r[12] != null && r[12].ToString() != string.Empty? DateTime.Parse(r[12].ToString()) : DateTime.MinValue; _buyDate = r[13] != null && r[13].ToString() != string.Empty ? DateTime.Parse(r[13].ToString()) : DateTime.MinValue; _supplierName = r[14].ToString(); _POno = r[15].ToString(); _description = r[16].ToString(); #region check trùng dữ liệu //if (db.ProductItems.Where(p => p.ShortCode.Equals(_shortCode, StringComparison.OrdinalIgnoreCase)).FirstOrDefault() != null) //{ // importDescription = "ShortCode đã tồn tại"; //} //if (db.ProductItems.Where(p => p.Name.Equals(name, StringComparison.OrdinalIgnoreCase)).FirstOrDefault() != null) //{ // importDescription = "Name đã tồn tại"; //} //if (db.ProductItems.Where(p => p.SerialNo.Equals(serialNo, StringComparison.OrdinalIgnoreCase)).FirstOrDefault() != null) //{ // importDescription = "Số Serial No đã tồn tại"; //} #endregion if (importDescription == string.Empty) { #region kiểm tra và tạo dữ liệu từ điển if (_categoryName != string.Empty) { category = db.Categories.Where(c => c.Name.Equals(_categoryName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (category == null) { category = new Category(); category.Code = AutoNumberHelper.GenerateNumber(ObjectType.Category, db); category.Name = _categoryName; db.Categories.Add(category); db.SaveChanges(); } } if (_buildingName != string.Empty) { building = db.Buildings.Where(c => c.Name.Equals(_buildingName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (building == null) { building = new Building(); building.Code = AutoNumberHelper.GenerateNumber(ObjectType.Building, db); building.Name = _buildingName; db.Buildings.Add(building); db.SaveChanges(); } } product = db.Products.Where(p => p.Name.Equals(_productName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (product == null) { product = new Product(); product.Code = AutoNumberHelper.GenerateNumber(ObjectType.Product, db); product.Name = _productName; product.CategoryId = category.Id > 0 ? category.Id : (int?)null; db.Products.Add(product); db.SaveChanges(); } //if (_departmentName != string.Empty) //{ // dept = db.Departments.Where(d => d.Name.Equals(_departmentName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); // if (dept == null) // { // dept = new Department(); // dept.Name = _departmentName; // db.Departments.Add(dept); // db.SaveChanges(); // } //} if (_supplierName != string.Empty) { supplier = db.Suppliers.Where(d => d.Name.Equals(_supplierName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (supplier == null) { supplier = new Supplier(); supplier.Name = _supplierName; db.Suppliers.Add(supplier); db.SaveChanges(); } } if (_userDisplayName != string.Empty || _userCode != string.Empty) { //int empID = int.Parse(_eCode); employee = db.Employees.Where(e => (e.UserName.Equals(_userCode, StringComparison.OrdinalIgnoreCase) && _userCode != string.Empty)).FirstOrDefault(); if (employee == null) { importDescription += "Không tìm thấy nhân viên; "; } } //if (_productStatusName != string.Empty) //{ // productStatus = db.ProductStatuses.Where(s => s.Text.Equals(_productStatusName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); // if (productStatus == null) // { // productStatus = new ProductStatus(); // productStatus.Text = _productStatusName; // db.ProductStatuses.Add(productStatus); // db.SaveChanges(); // } //} if (_stockStatusName != string.Empty) { stockStatus = db.StockStatuses.Where(s => s.Text.Equals(_stockStatusName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (stockStatus == null) { importDescription += "Không tìm thấy trạng thái kho; "; //stockStatus = new StockStatus(); //stockStatus.Text = _stockStatusName; //db.StockStatuses.Add(stockStatus); //db.SaveChanges(); } } if (importDescription == string.Empty) { productItem = db.ProductItems.Where(p => p.ShortCode.Equals(_shortCode, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (productItem == null) { productItem = new ProductItem() { ShortCode = _shortCode, Name = _shortName, ProductId = product.Id, BuildingId = building != null && building.Id > 0 ? building.Id : (int?)null, SerialNo = _serialNo, PODate = _buyDate > DateTime.MinValue ? _buyDate : (DateTime?)null, ExpiryDate = _expiryDate > DateTime.MinValue ? _expiryDate : (DateTime?)null, ProductStatusId = productStatus != null && productStatus.Id > 0 ? productStatus.Id : (int?)null, StockStatusId = stockStatus != null && stockStatus.Id > 0 ? stockStatus.Id : (int?)null, //CDROM = _cdROM != string.Empty ? int.Parse(_cdROM) : (int?)null, EmployeeId = employee != null && employee.Id > 0 ? employee.Id : (int?)null, SupplierId = supplier != null && supplier.Id > 0 ? supplier.Id : (int?)null, PONo = _POno, Description = _description, CreatedOn = DateTime.Now }; db.ProductItems.Add(productItem); db.SaveChanges(); StockDiary diary = new StockDiary() { Date = DateTime.Now, Note = "", Type = _stockStatusName, ProductItemId = productItem.Id }; db.StockDiaries.Add(diary); db.SaveChanges(); importDescription += "Thêm mới"; } else { string oldEmployeeName = string.Empty; if (employee.Id != productItem.EmployeeId) { oldEmployeeName = (productItem.EmployeeId != null && productItem.EmployeeId > 0) ? db.Employees.Find(productItem.EmployeeId).Name : string.Empty; } string newEmployeeName = string.Empty; if (employee.Id != productItem.EmployeeId) { newEmployeeName = (employee.Id != null && employee.Id > 0) ? db.Employees.Find(employee.Id).Name : string.Empty; } if (productItem.StockStatusId != stockStatus.Id || productItem.EmployeeId != employee.Id) { StockDiary diary = new StockDiary() { Date = DateTime.Now, Note = string.Format("{0} => {1}", oldEmployeeName, newEmployeeName), Type = _stockStatusName, ProductItemId = productItem.Id }; db.StockDiaries.Add(diary); } productItem.ProductId = product.Id; productItem.Name = _shortName; productItem.BuildingId = building != null && building.Id > 0 ? building.Id : (int?)null; productItem.SerialNo = _serialNo; productItem.PODate = _buyDate > DateTime.MinValue ? _buyDate : (DateTime?)null; productItem.ProductStatusId = productStatus != null && productStatus.Id > 0 ? productStatus.Id : (int?)null; productItem.StockStatusId = stockStatus != null && stockStatus.Id > 0 ? stockStatus.Id : (int?)null; //productItem.CDROM = _cdROM != string.Empty ? int.Parse(_cdROM) : (int?)null; productItem.EmployeeId = employee != null && employee.Id > 0 ? employee.Id : (int?)null; productItem.SupplierId = supplier != null && supplier.Id > 0 ? supplier.Id : (int?)null; productItem.ExpiryDate = _expiryDate > DateTime.MinValue ? _expiryDate : (DateTime?)null; db.Entry(productItem).State = EntityState.Modified; productItem.PONo = _POno; productItem.Description = _description; db.SaveChanges(); importDescription += "Cập nhật"; } r[17] = "Thành công"; } else { r[17] = "Không thành công"; } #endregion } else { r[17] = "Không thành công"; } r[18] = importDescription; } catch (Exception ex) { r[17] = "Lỗi"; r[18] = string.Format("Message: {0} - Inner Exception: {1}", ex.Message, ex.InnerException); } } //} } //foreach (DataRow r in dt.Rows) //{ //} FileExcel(dt, "ProductItem"); } return(RedirectToAction("Index", "ProductItem")); }