Untitled
doituongcontrollerunknown
plain_text
a year ago
12 kB
1
Indexable
Never
using OfficeOpenXml; using OfficeOpenXml.Style; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; using System.Web.Mvc; using WassProITC.Business; using WassProITC.Business.Data; using WassProITC.Models; using WassProITC.Utilities; namespace WassProITC.Modules.DLDoiTuong { public class DMDoiTuongController : Controller { SPContext db = new SPContext(); // GET: DMDoiTuong public ActionResult Index() { return View(); } //GET DM DOI TUONG public JsonResult GetDMDoiTuong() { var search = ""; if (!string.IsNullOrEmpty(Request.Form["search[value]"])) { search = Request.Form["search[value]"]; } BusDMDoiTuong adapter = new BusDMDoiTuong(); var doituong = adapter.GetDMDoiTuong(db, search).AsEnumerable(); //sort var sortCol = "0"; string sortDirection = "asc"; if (!string.IsNullOrEmpty(Request.Form["order[0][column]"])) { sortCol = Request.Form["order[0][column]"]; } if (!string.IsNullOrEmpty(Request.Form["order[0][dir]"])) { sortDirection = Request.Form["order[0][dir]"]; } var sortOrder = sortCol + "_" + sortDirection; switch (sortOrder) { case "1_asc": doituong = doituong.OrderBy(n => n.MaDT); break; case "1_desc": doituong = doituong.OrderByDescending(n => n.MaDT); break; case "2_asc": doituong = doituong.OrderBy(n => n.TenDT); break; case "2_desc": doituong = doituong.OrderByDescending(n => n.TenDT); break; case "3_asc": doituong = doituong.OrderBy(n => n.NhomDTID); break; case "3_desc": doituong = doituong.OrderByDescending(n => n.NhomDTID); break; case "4_asc": doituong = doituong.OrderBy(n => n.GiaBVMTID); break; case "4_desc": doituong = doituong.OrderByDescending(n => n.GiaBVMTID); break; case "5_asc": doituong = doituong.OrderBy(n => n.STT); break; case "5_desc": doituong = doituong.OrderByDescending(n => n.STT); break; case " 6_asc": doituong = doituong.OrderBy(n => n.ChiNhanhID); break; case "6_desc": doituong = doituong.OrderByDescending(n => n.ChiNhanhID); break; } var data = doituong.Select(s => new { DoiTuongID = s.DoiTuongID, MaDT = s.MaDT, TenDT = s.TenDT, TenNhomDT = s.TenNhomDT, GiaBVMT = s.DienGiai, STT = s.STT, TenCN = s.TenCN, Tools = " <button type ='button' data-id=" + s.DoiTuongID + " class='btn btn-info btn-edit-dmdoituong btn-xs btn-flat margin-right-5'><i class='fa fa-edit'></i></button>" + " <button type='button' data-id=" + s.DoiTuongID + " class='btn btn-danger btn-xs btn-flat btn-delete-dmdoituong'><i class='fa fa-trash-o'></i></button>" }).ToList(); //Data length var length = Int32.Parse(Request.Form["length"]); var start = Int32.Parse(Request.Form["start"]); var result = new { draw = Request.Form["draw"], recordsTotal = data.Count(), recordsFiltered = data.Count(), data = data.Skip(start).Take(length) // total data array }; return Json(result, JsonRequestBehavior.AllowGet); } //MODAL public ActionResult Modal(decimal DoiTuongID = 0) { if (HttpContext.Request.IsAjaxRequest()) { DMDoiTuong dmdt = new DMDoiTuong(); if(DoiTuongID != 0) { dmdt = db.DMDoiTuongs.FirstOrDefault(d => d.DoiTuongID == DoiTuongID); } ViewBag.NhomDTID = new SelectList(db.NhomDoiTuongs, "NhomDTID", "TenNhomDT", dmdt.NhomDTID); ViewBag.GiaBVMTID = new SelectList(db.GiaBVMTs, "GiaBVMTID", "DienGiai", dmdt.GiaBVMTID); ViewBag.ChiNhanhID = new SelectList(db.ChiNhanhs, "ChiNhanhID", "TenCN", dmdt.ChiNhanhID); return PartialView(dmdt); } else { return HttpNotFound(); } } [HttpPost] [ValidateAntiForgeryToken] public ActionResult Update(DMDoiTuong dmdt) { if (HttpContext.Request.IsAjaxRequest()) { try { if (ModelState.IsValid) { if (dmdt.DoiTuongID == 0) { db.DMDoiTuongs.Add(dmdt); db.SaveChanges(); return Json(new Result() { Code = ResultCode.Success, Message = "Đối tượng" + dmdt.MaDT + "đã được tạo thành công", Data = true }, JsonRequestBehavior.AllowGet); } else { var old_doituong = db.DMDoiTuongs.FirstOrDefault(d => d.DoiTuongID == dmdt.DoiTuongID); old_doituong.MaDT = dmdt.MaDT; old_doituong.TenDT= dmdt.TenDT; old_doituong.NhomDTID = dmdt.NhomDTID; old_doituong.GiaBVMTID = dmdt.GiaBVMTID; old_doituong.STT = dmdt.STT; old_doituong.ChiNhanhID = dmdt.ChiNhanhID; db.SaveChanges(); return Json(new Result() { Code = ResultCode.Success, Message = "Cập nhật thành công", Data = true }, JsonRequestBehavior.AllowGet); } } return Json(new Result() { Code = ResultCode.Error, Message = "" }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { return Json(new Result() { Code = ResultCode.Error, Message = "Có lỗi trong quá trình thực hiện!" }, JsonRequestBehavior.AllowGet); } } else { return HttpNotFound(); } } [HttpPost] public ActionResult DeleteDMDT(decimal DoiTuongID) { if (HttpContext.Request.IsAjaxRequest()) { var dtID = db.DMDoiTuongs.FirstOrDefault(d => d.DoiTuongID == DoiTuongID); if(dtID.DoiTuongID == DoiTuongID) { db.DMDoiTuongs.Remove(dtID); db.SaveChanges(); return Json(new Result() {Code = ResultCode.Success, Message= "Xóa đối tượng thành công" }, JsonRequestBehavior.AllowGet); } else { return Json(new Result() { Code = ResultCode.Error, Message = "Dữ liệu đã được sử dụng!" }, JsonRequestBehavior.AllowGet); } } else { return HttpNotFound(); } } public ActionResult ExportExcel(string search= "") { byte[] result = null; using (ExcelPackage package = new ExcelPackage()) { BusDMDoiTuong apdater = new BusDMDoiTuong(); var dmdts = apdater.GetDMDoiTuong(db, search); ExcelWorksheet workSheet = package.Workbook.Worksheets.Add(String.Format("{0}", "sheet1")); using (ExcelRange cells = workSheet.Cells["A1:G1"]) { cells.Value = "DANH MỤC BẢNG GIÁ"; cells.Merge = true; cells.Style.Font.Size = 15; cells.Style.Font.Name = "Times New Roman"; cells.Style.Font.Bold = true; cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; } //TIÊU ĐỀ string[] valHeaderTable = { "STT", "Mã đối tượng", "Tên đối tượng", "Nhóm DTID", "Giá BVMTID", "STT chi nhánh", "Chi nhánh ID" }; int lengthHeaderTable = valHeaderTable.Length; int colHeader; //check lai gia tri nay neu export loi int rowHeader = 3; int valBegin = 1; for (colHeader = valBegin; colHeader < valBegin + lengthHeaderTable; colHeader++) { int j = colHeader - valBegin; workSheet.Cells[rowHeader, colHeader].Value = valHeaderTable[j]; workSheet.Cells[rowHeader, colHeader].Style.Font.Name = "Time New Roman"; workSheet.Cells[rowHeader, colHeader].Style.Font.Size = 11; workSheet.Cells[rowHeader, colHeader].Style.Font.Bold = true; workSheet.Cells[rowHeader, colHeader].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; } int startRowFrom = rowHeader + 1; if (dmdts.Count() > 0) { ExcelExportHelper.SetStyleHeader(workSheet.Cells["A" + rowHeader + ":G" + (rowHeader)]); for (int j = 0; j < dmdts.Count(); j++) { var item = dmdts[j]; int i = j + 1; //noi dung workSheet.Cells[startRowFrom, 1].Value = i; workSheet.Cells[startRowFrom, 2].Value = item.MaDT; workSheet.Cells[startRowFrom, 3].Value = item.TenDT; workSheet.Cells[startRowFrom, 4].Value = item.NhomDTID; workSheet.Cells[startRowFrom, 5].Value = item.GiaBVMTID; workSheet.Cells[startRowFrom, 6].Value = item.STT; workSheet.Cells[startRowFrom, 7].Value = item.ChiNhanhID; for (int style = 1; style <= lengthHeaderTable; style++) { workSheet.Cells[startRowFrom, style].Style.Font.Name = "Time New Roman"; workSheet.Cells[startRowFrom, style].Style.Font.Size = 11; } startRowFrom++; } ExcelExportHelper.SetStyleContent(workSheet.Cells[rowHeader, 1, startRowFrom - 1, lengthHeaderTable]); } ExcelExportHelper.SetAutoFit(workSheet, lengthHeaderTable); result = package.GetAsByteArray(); } return File(result, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "DanhMucDoiTuong.xlsx"); } } }