public ActionResult Report8(Report8Model model) { //return Pdf("/reportsgen/report8/", this._report[8].ToString(), false); return new ReportsGenController().Report8(model); }
//public ActionResult Report8(int? id) public ActionResult Report8(Report8Model model) { //string start_date = model.start_date; //string end_date = model.end_date; //string customer_code = model.customer_code; //string customer_name = model.customer_name; ArrayList where = new ArrayList(); /* if (! String.IsNullOrWhiteSpace(start_date)) { where.Add("q.create_date >= '" + start_date + "'"); } if (! String.IsNullOrWhiteSpace(end_date)) { where.Add("q.create_date <= '" + end_date + "'"); } */ /* if (String.IsNullOrWhiteSpace(start_date) && String.IsNullOrWhiteSpace(end_date)) { */ DateTime now = DateTime.Now.AddMonths(-2); where.Add("q.confirm_date <= '" + Common.to_date(DB_DATE_FORMAT, now) + "'"); //where.Add("q.confirm_date <> '1900-01-01'"); where.Add("q.confirm_date is not null"); where.Add("(q.invoice = '' or q.invoice is null)"); //} if (model.dummy.HasValue) { switch (model.dummy.Value) { case 2: where.Add(" q.dummy = 1"); break; case 3: where.Add(" q.dummy = 0"); break; } } //if (! String.IsNullOrWhiteSpace(customer_code)) //{ // where.Add("c.customer_code LIKE '%" + customer_code + "%'"); //} //if (! String.IsNullOrWhiteSpace(customer_name)) //{ // where.Add("c.name LIKE '%" + customer_name + "%'"); //} if (model.MasterCustomerID.HasValue) where.Add("c.customer_id = " + model.MasterCustomerID.Value); string sql = Common.doSql(@" SELECT q.id, q.number, q.confirm_date, q.remark, q.issue_date, q.lang, (q.supplier_id+q.material_estimation2+q.material_estimation3) AS material_estimation, c.customer_code, c.name AS customer_name, c.address1, c.address2, c.tel1, c.fax1, c.contact, c.title, q.dummy, c.tel2, c.fax2 FROM {p}_quotation AS q LEFT JOIN {p}_relate_customers AS c ON q.customer_id = c.id WHERE q.status = '1' " + (where.Count > 0 ? " AND " + String.Join(" AND ", where.ToArray()) : String.Empty) + " ORDER BY q.billing_date ASC"); IEnumerable<report8> quotation = Common.queryToObject<report8>(this._db.ExecuteStoreQuery<report8>(sql)); if (quotation.Count() > 0) { ArrayList qid = new ArrayList(); Hashtable items = new Hashtable(); foreach (report8 item in quotation) { qid.Add(item.id); items.Add(item.id, item); } if (qid.Count > 0) { sql = Common.doSql(@" SELECT r.id1, i.* FROM {p}_quotation_items AS i LEFT JOIN {p}_relate AS r ON r.id2 = i.id WHERE r.table1 = 'quotation' AND r.table2 = 'quotation_items' AND r.id1 IN ('" + String.Join("','", qid.ToArray()) + @"') ORDER BY r.id1 ASC, i.id ASC"); IEnumerable<report7_items> quotation_items = Common.queryToObject<report7_items>(this._db.ExecuteStoreQuery<report7_items>(sql)); if (quotation_items.Count() > 0) { foreach (report8 item in quotation) { item.customer_code = trimZero(item.customer_code); item.items = quotation_items.Where(theItem => theItem.id1 == item.id).OrderBy(theItem => theItem.nSequence).ToList(); } } else { foreach (report8 item in quotation) { item.items = new List<report7_items>(); } } } ViewBag.title = this._title; sql = "SELECT * FROM recsys_system_parameter s WHERE s.status = '1'"; SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["reportConnection"].ConnectionString); using (connection) { SqlCommand command = new SqlCommand(sql, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { if (reader["name"].ToString().Equals("company_eng_name_68")) ViewBag.Name_Eng = reader["value"].ToString().Substring(0, 3); } } reader.Close(); } return View("~/Views/ReportsGen/Report8.cshtml", quotation); } else { return Content("找不到任何紀錄。"); } }