public ActionResult Report22Print(Report22Model model) { return Pdf(string.Format("/reportsgen/report22/0/?show_printed={0}&choose_month={1}&choose_year={2}&first_print_date={3}&print_all={4}&print_page={5}&dummy=", model.show_printed, model.choose_month, model.choose_year, model.first_print_date, model.print_all, model.print_page), this._report[22].ToString(), true, 90, 155, 0, 0, 0, 0); }
public ActionResult Filter(int id) { object viewModel = null; ViewBag.title = this._report[id]; switch (id) { case 5: ViewBag.type = new SortedList() { { 1, "盈電工程有限公司" }, { 2, "盈電機電工程有限公司" } }; break; case 7: ViewBag.type = new SortedList() { { 1, "All Billed ACQ" }, { 2, "Billed ACQ with Dummy Invoice Only" }, { 3, "Billed ACQ with invoice Number" } }; break; case 8: ViewBag.dummy = new SortedList() { { 1, "All" }, { 2, "With Dummy Invoice" }, { 3, "Without Dummy Invoice" } }; break; case 9: viewModel = new Report9Model() { types = new Report9ModelType[] { Report9ModelType.Maintenance, Report9ModelType.Quotation } }; break; case 11: ViewBag.region = this.getRegion(); viewModel = new Report11Model() { order_date = DateTime.Today.ToString("dd-MM-yyyy"), //order_date_required = true }; break; case 12: ViewBag.engineer = this.getEngineer(); break; case 13: ViewBag.type = new SortedList() { { 1, "Invoice" }, { 2, "Quotation" } }; ViewBag.type2 = new SortedList() { { 1, "for Maintenance Contract (ACM)" }, { 2, "for Quotation (ACQ)" } }; break; case 14: ViewBag.type = new SortedList() { { 1, "All" }, { 2, "T&C Only" }, { 3, "Not T&C Only" }, { 4, "Without Service Date" } }; break; case 15: ViewBag.region = this.getRegion(); break; case 16: //ViewBag.type = _bank; break; case 17: ViewBag.region = this.getRegion(); break; case 19: Report19Model repot19model = new Report19Model(); repot19model.Modes = new Report19ModelMode[] { Report19ModelMode.By_Category, Report19ModelMode.By_Employee, Report19ModelMode.By_Sub__Contractor, Report19ModelMode.By_Supplier, Report19ModelMode.By_Minor_Work }; repot19model.CostCategories = this.getCosts(); repot19model.Suppliers = this.getSuppliers(); viewModel = repot19model; break; case 20: ViewBag.order_status = new SortedList() { { 1, "預約保養" }, { 2, "做保養" }, { 3, "完成保養" } }; break; case 21: //ViewBag.district = this.getDistrict(); var district = (from d in this._db.recsys_district where d.status == 1 && (d.name == "帝琴灣" || d.name == "爵悅庭") orderby d.region ascending select d); ViewBag.district = Common.array_conv(Common.query(district), "id", "name"); break; case 22: Report22Model report22Model = new Report22Model(); report22Model.show_printed = false; viewModel = report22Model; break; } return View("Report" + id, viewModel); }
public ActionResult Report22(Report22Model model) { if (model != null) { IEnumerable<report1> maintenances = null; var records = from m in this._db.recsys_maintenance join rc in this._db.recsys_relate_customers on m.customer_id equals rc.id into subrc from rc in subrc.DefaultIfEmpty() join r in this._db.recsys_routine on m.master_routine_id equals r.id into subr from r in subr.DefaultIfEmpty() join d in this._db.recsys_district on rc.district2 equals d.id into subd from d in subd.DefaultIfEmpty() where m.status == 1 && m.confirm_date != null && !d.name.Contains("帝琴灣") && !d.name.Contains("爵悅庭") orderby m.start_date select new report1 //maintenance card model { maintenance_id = m.id, start_date = m.start_date, end_date = m.end_date, model = m.model, printed = m.printed, first_print_date = m.first_print_Date, customer_name = rc.chi_name, customer_code = rc.customer_code, address = rc.address2, telephone = string.IsNullOrEmpty(rc.tel1) ? string.IsNullOrEmpty(rc.tel2) ? string.Empty : rc.tel2 : string.IsNullOrEmpty(rc.tel2) ? rc.tel1 : rc.tel1 + ", " + rc.tel2, routine = m.remark }; #region Filtering if (model.show_printed == false) records = records.Where(m => m.printed == 0); else if (!string.IsNullOrEmpty(model.first_print_date) && model.show_printed.Value == true) { DateTime start_first_print_date = Convert.ToDateTime(DateTime.ParseExact(model.first_print_date, "dd-MM-yyyy", null).ToString("yyyy-MM-dd")); DateTime end_first_print_date = start_first_print_date.AddDays(1); records = records.Where(m => m.first_print_date >= start_first_print_date).Where(m => m.first_print_date < end_first_print_date); } if (model.choose_year != null && model.choose_year != 0 && model.choose_month != null && model.choose_month != 0) { DateTime compareDate = new DateTime(model.choose_year, model.choose_month, 1); //first day of the chosen month records = records.Where(m => m.end_date >= compareDate); compareDate = compareDate.AddMonths(1).AddTicks(-1); //last day of the chosen month records = records.Where(m => m.start_date <= compareDate); } #endregion Filtering maintenances = records.ToList(); if (maintenances.Count() > 20) { Report22PageLinkModel pageLinkModel = new Report22PageLinkModel { show_printed = model.show_printed, choose_month = model.choose_month, choose_year = model.choose_year, first_print_date = model.first_print_date, recordCount = maintenances.Count() }; return View("Report22PageLink", pageLinkModel); } else { model.print_all = true; model.print_page = 0; } } return this.Report22Print(model); }
public ActionResult Report22(Report22Model model) { if (model != null) { IEnumerable<report1> maintenances = null; var records = from m in this._db.recsys_maintenance join rc in this._db.recsys_relate_customers on m.customer_id equals rc.id into subrc from rc in subrc.DefaultIfEmpty() join r in this._db.recsys_routine on m.master_routine_id equals r.id into subr from r in subr.DefaultIfEmpty() join d in this._db.recsys_district on rc.district2 equals d.id into subd from d in subd.DefaultIfEmpty() where m.status == 1 && m.confirm_date != null && !d.name.Contains("帝琴灣") && !d.name.Contains("爵悅庭") orderby m.start_date select new report1 //maintenance card model { maintenance_id = m.id, start_date = m.start_date, end_date = m.end_date, model = m.model, printed = m.printed, first_print_date = m.first_print_Date, customer_name = rc.chi_name, customer_code = rc.customer_code, address = rc.address2, telephone = string.IsNullOrEmpty(rc.tel1) ? string.IsNullOrEmpty(rc.tel2) ? string.Empty : rc.tel2 : string.IsNullOrEmpty(rc.tel2) ? rc.tel1 : rc.tel1 + ", " + rc.tel2, routine = m.remark }; //Filtering if (model.show_printed == false) records = records.Where(m => m.printed == 0); else if(!string.IsNullOrEmpty(model.first_print_date) && model.show_printed.Value == true) { DateTime start_first_print_date = Convert.ToDateTime(ConvertDateStringFormat(model.first_print_date, DATEPICKER_DATE_FORMAT, DB_DATE_FORMAT)); DateTime end_first_print_date = start_first_print_date.AddDays(1); records = records.Where(m => m.first_print_date >= start_first_print_date).Where(m => m.first_print_date < end_first_print_date); } if (model.choose_year != null && model.choose_year != 0 && model.choose_month != null && model.choose_month != 0) { DateTime compareDate = new DateTime(model.choose_year, model.choose_month, 1); //first day of the chosen month records = records.Where(m => m.end_date >= compareDate); compareDate = compareDate.AddMonths(1).AddTicks(-1); //last day of the chosen month records = records.Where(m => m.start_date <= compareDate); } //Print by page link if (model.print_all.HasValue && !model.print_all.Value && model.print_page.HasValue && model.print_page > 0) { records = records.Skip((model.print_page.Value - 1) * 20).Take(20); } maintenances = records.ToList(); //Getting orders foreach (report1 maintenance in maintenances) { var orderRecords = from r in this._db.recsys_relate join o in this._db.recsys_order on r.id2 equals o.id where r.table1 == "maintenance" && r.table2 == "order" && r.id1 == maintenance.maintenance_id && o.by_system == 1 orderby o.repair_date, o.id select new report1_order { repair_date = o.repair_date }; maintenance.orders = orderRecords.ToList(); } //Show maintenance with 0 order //maintenances = maintenances.Where(m => m.orders.Count() >= 0).ToList(); //Update 'printed' and 'first print date' of the maintenance record DateTime firstPrintDate = DateTime.Today; foreach (report1 maintenance in maintenances) { recsys_maintenance maintenanceRecord = (from m in this._db.recsys_maintenance where m.id == maintenance.maintenance_id select m).FirstOrDefault(); if (maintenanceRecord != null && maintenanceRecord.printed == 0) { maintenanceRecord.printed = 1; maintenanceRecord.first_print_Date = firstPrintDate; } } this._db.SaveChanges(); //Get maintenance card title var sysParm = (from s in this._db.recsys_system_parameter where s.status == 1 && s.name == "maint_card_header" select s).FirstOrDefault(); if (sysParm != null) ViewBag.title = sysParm.value; return View("~/Views/ReportsGen/Report1.cshtml", maintenances); } else { return Content("找不到任何紀錄。"); } }