using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CY.BLL; using CY.Model; using CY.Infrastructure.Query; using CY.Infrastructure.Common; using CY.BLL.OA; using CY.BLL.Sys; using System.IO; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.Transactions; using CY.BLL.EC; using CY.BLL.Inquiry; using CY.Model.Inquiry; namespace CY.WebForm.Pages.financial { public partial class PlanOrderList : BasePage { // Sys_DictionaryBLL _Sys_DictionaryBLL = new Sys_DictionaryBLL(); CoreCmsPlanOrderBLL _PlanOrderBLL = new CoreCmsPlanOrderBLL(); Sys_CitySiteBLL bll_Sys_CitySiteBLL = new Sys_CitySiteBLL(); EC_OrderBasicBLL _eC_OrderBasicBLL = new EC_OrderBasicBLL(); //WorkBookTypeBLL _WorkBookTypeBLL = new WorkBookTypeBLL(); CoreCmsPlanOrderItemBLL _coreCmsPlanOrderItemBLL = new CoreCmsPlanOrderItemBLL(); EC_OrderPrintParameterBLL _OrderPrintParameterBLL = new EC_OrderPrintParameterBLL(); OA_CorporateClientsBLL bll_OA_CorporateClientsBLL = new OA_CorporateClientsBLL(); public string orderkeyid = ""; protected void Page_Load(object sender, EventArgs e) { UCPager1.AspNetPager.PageChanged += AspNetPager1_PageChanged; if (!IsPostBack) { var request = HttpContext.Current.Request; HideKeyid.Value = request["orderkeyid"].ToString2(); orderkeyid = request["orderkeyid"].ToString2(); //this.selSubjectType.DataSource = _Sys_DictionaryBLL.GetDataByType("科目类别"); //this.selSubjectType.DataBind(); //this.selSubjectType.Items.Insert(0, new ListItem("全部", "")); //BindProvince(); BindList(); } if (Request["deleteKeyIds"] != null) { List deleteKeyIdList = new List(); string deleteKeyIds = Request["deleteKeyIds"].ToString().Trim(','); string[] keyIdArry = deleteKeyIds.Split(','); foreach (string keyId in keyIdArry) { var model = _PlanOrderBLL.GetModelByKeyid(keyId.ToInt32().Value); if ( model != null) _PlanOrderBLL.DeleteModel(model); } var sss = _eC_OrderBasicBLL.UpdateorderJine(HideKeyid.Value.ToInt32().Value); JavaScript.MessageBox("删除成功", this); Response.Redirect("/Pages/business/PlanOrderList.aspx?orderkeyid=" + HideKeyid.Value); } } /// /// 加载全部数据 /// private void BindList() { Pagination pa = new Pagination(); pa.PageSize = this.UCPager1.AspNetPager.PageSize; pa.PageIndex = this.UCPager1.AspNetPager.CurrentPageIndex; string sheng = ""; //if (this.selectProvince.SelectedItem.Text != "全部") //{ // sheng = this.selectProvince.SelectedItem.Text; //} string shi = ""; //if (this.selectCity.SelectedItem.Text != "全部") //{ // shi = this.selectCity.SelectedItem.Text; //} string quxian = ""; //if (this.selectCounty.SelectedItem.Text != "全部") //{ // quxian = this.selectCounty.SelectedItem.Text; //} this.RepSubjeSetctList.DataSource = _PlanOrderBLL.SelectModelPage(pa, HideKeyid.Value, "", sheng, shi , quxian, txtpianqu.Value ,txtshipAddress.Value,txtshipName.Value,txtshipMobile.Value,txtshouhuoAddress.Value,"",""); this.RepSubjeSetctList.DataBind(); UCPager1.AspNetPager.RecordCount = pa.RecordCount; } protected void AspNetPager1_PageChanged(object src, EventArgs e) { BindList(); } protected void btn_Register_Click(object sender, EventArgs e) { BindList(); } ////绑定省 //protected void BindProvince() //{ // this.selectProvince.Items.Clear(); // this.selectProvince.DataSource = bll_Sys_CitySiteBLL.SelectAllNextModel(0, 0, 1); // this.selectProvince.DataTextField = "Name"; // this.selectProvince.DataValueField = "Keyid"; // this.selectProvince.DataBind(); // this.selectProvince.Items.Insert(0, new ListItem("全部", "")); // this.selectCity.Items.Insert(0, new ListItem("全部", "")); // this.selectCounty.Items.Insert(0, new ListItem("全部", "")); //} ////改变省绑定市 //protected void ChangeProvince(object sender, EventArgs e) //{ // this.selectCity.Items.Clear(); // this.selectCounty.Items.Clear(); // Sys_CitySite m_Sys_CitySite = bll_Sys_CitySiteBLL.GetModelByKeyid(this.selectProvince.SelectedValue.ToInt32() ?? 0); // if (m_Sys_CitySite != null) // { // this.selectCity.DataSource = bll_Sys_CitySiteBLL.SelectAllNextModel(m_Sys_CitySite.Keyid, 0, 2); // this.selectCity.DataTextField = "Name"; // this.selectCity.DataValueField = "Keyid"; // this.selectCity.DataBind(); // } // this.selectCity.Items.Insert(0, new ListItem("全部", "")); // this.selectCounty.Items.Insert(0, new ListItem("全部", "")); //} ////改变市绑定区 //protected void ChangeCity(object sender, EventArgs e) //{ // this.selectCounty.Items.Clear(); // Sys_CitySite m_Sys_CitySite = bll_Sys_CitySiteBLL.GetModelByKeyid(this.selectCity.SelectedValue.ToInt32() ?? 0); // if (m_Sys_CitySite != null) // { // this.selectCounty.DataSource = bll_Sys_CitySiteBLL.SelectProxyNextModel(m_Sys_CitySite.ProvinceId, m_Sys_CitySite.Keyid, 3); // this.selectCounty.DataTextField = "Name"; // this.selectCounty.DataValueField = "Keyid"; // this.selectCounty.DataBind(); // } // this.selectCounty.Items.Insert(0, new ListItem("全部", "")); //} protected void btn_Submit_Click(object sender, EventArgs e) { var files = Request.Files; if (files.Count <= 0) return; var file = files[0]; if (file == null) { JavaScript.MessageBox("请选择文件", this); return; } //初始化上传参数 var maxSize = 1024 * 1024 * 5; //上传大小5M var fileName = file.FileName; var fileExt = Path.GetExtension(fileName).ToLowerInvariant(); //检查大小 if (file.ContentLength > maxSize) { JavaScript.MessageBox("上传文件大小超过限制,最大允许上传5M", this); return; } string FileTypes = "xlsx";//xls, //检查文件扩展名 if (string.IsNullOrEmpty(fileExt) || Array.IndexOf(FileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1) { JavaScript.MessageBox("上传文件扩展名是不允许的扩展名,请上传后缀名为:" + FileTypes, this); return; } var lie = new List(); var jiHuaOrderDetails = new List(); using (var fileStream = file.InputStream) { // 使用HSSFWorkbook打开.xls格式的文件 IWorkbook workbook = new XSSFWorkbook(fileStream); // 获取第一个工作表 ISheet sheet = workbook.GetSheetAt(0); //获取表头作业本名称 for (int i = 0; i < 1; i++) { IRow row = sheet.GetRow(i); int j = 5; while (true) { var jiHuaOrderDetail = new JiHuaOrderDetail(); ICell cell1 = row.GetCell(j); if (cell1 == null) { break; } jiHuaOrderDetail.name = getcellvalue(cell1); if (string.IsNullOrEmpty(jiHuaOrderDetail.name)) { break; } j += 1; jiHuaOrderDetails.Add(jiHuaOrderDetail); } } // 迭代工作表中的所有行 for (int i = 1; i <= sheet.LastRowNum; i++) { var hang = new JiHuaOrder(); var jiHuaOrderDetails1 = new List(); IRow row = sheet.GetRow(i); if (row == null) continue; // 跳过空行 ICell cell0 = row.GetCell(0); if (cell0 == null) { JavaScript.MessageBox("第" + (i + 1) + "片区不能为空", this); return; } hang.pianqu = getcellvalue(cell0); ICell cell1 = row.GetCell(1); if (cell1 == null) { JavaScript.MessageBox("第" + (i + 1) + "学校不能为空", this); return; } hang.shipAddress = getcellvalue(cell1); ICell cell2 = row.GetCell(2); if (cell2 == null) { JavaScript.MessageBox("第" + (i + 1) + "联系人不能为空", this); return; } hang.shipName = getcellvalue(cell2); ICell cell3 = row.GetCell(3); if (cell3 == null) { JavaScript.MessageBox("第" + (i + 1) + "联系电话不能为空", this); return; } hang.shipMobile = getcellvalue(cell3); ICell cell4 = row.GetCell(4); if (cell4 == null) { JavaScript.MessageBox("第" + (i + 1) + "收货地址不能为空", this); return; } hang.shouhuoAddress = getcellvalue(cell4); for(int j=0; j< jiHuaOrderDetails.Count; j++) { var jiHuaOrderDetail = new JiHuaOrderDetail(); jiHuaOrderDetail.name = jiHuaOrderDetails[j].name; ICell cell9 = row.GetCell(j+5); if (cell9 == null) { JavaScript.MessageBox("第" + (i + 1) + "数量不能为空", this); return; } int aaa = 0; int.TryParse(getcellvalue(cell9), out aaa); jiHuaOrderDetail.nums = aaa; jiHuaOrderDetails1.Add(jiHuaOrderDetail); } //ICell cell7 = row.GetCell(7); //if (cell7 == null) //{ // JavaScript.MessageBox("第" + (i + 1) + "商品名称不能为空", this); // return ; //} //hang.name = getcellvalue(cell7); //ICell cell8 = row.GetCell(8); //if (cell8 == null) //{ // JavaScript.MessageBox("第" + (i + 1) + "规格不能为空", this); // return ; //} //hang.specification = getcellvalue(cell8); hang.jiHuaOrderDetails = jiHuaOrderDetails1; lie.Add(hang); } } if (lie != null && lie.Count > 0) { for (int i = 0; i < lie.Count; i++) { if (!string.IsNullOrEmpty(lie[i].shipAddress)) { if (string.IsNullOrEmpty(lie[i].shipMobile)) { JavaScript.MessageBox("第" + (i + 1) + "联系电话不能为空", this); return; } } for(int j = 0;j< lie[i].jiHuaOrderDetails.Count; j++) { if (string.IsNullOrEmpty(lie[i].jiHuaOrderDetails[j].name)) { JavaScript.MessageBox("第" + (i + 1) + "商品名称不能为空", this); return; } } //if (string.IsNullOrEmpty(lie[i].specification)) //{ // JavaScript.MessageBox("第" + (i + 1) + "规格不能为空", this); // return; //} } } var orderid = HideKeyid.Value; var sys_CitySites = bll_Sys_CitySiteBLL.SelectAllModel(null).ToList(); var eC_OrderPrintParameter = _OrderPrintParameterBLL.GetModel(orderid.ToInt32().Value); ; InquiryCommonModel model = SerializationHelper.DeSerialize(typeof(InquiryCommonModel), eC_OrderPrintParameter.PrintParameter) as InquiryCommonModel; var eC_OrderBasic = _eC_OrderBasicBLL.SelectModelById(orderid.ToInt32().Value); var Province = ""; var City = ""; var County = ""; int Provinceid = 0; int Cityid = 0; int Countyid = 0; if (eC_OrderBasic != null) { var customerCommunications = bll_OA_CorporateClientsBLL.GetModel_CustomerCommunications(eC_OrderBasic.BuyerId); Province = customerCommunications.Province; City = customerCommunications.City; County = customerCommunications.County; var sys_CitySite = bll_Sys_CitySiteBLL.GetModelByName(Province); if (sys_CitySite != null) { Provinceid = sys_CitySite.Keyid; var sys_CitySite1 = bll_Sys_CitySiteBLL.SelectAllNextModel(sys_CitySite.Keyid, 0, 2).FirstOrDefault(x => x.Name == City); if (sys_CitySite1 != null) { Cityid = sys_CitySite1.Keyid; var sys_CitySite2 = bll_Sys_CitySiteBLL.SelectAllNextModel(sys_CitySite.Keyid, sys_CitySite1.Keyid, 3).FirstOrDefault(x => x.Name == County); if (sys_CitySite2 != null) { Countyid = sys_CitySite2.Keyid; } } } } using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TransactionManager.MaximumTimeout } )) { string pianqu = ""; if (lie != null && lie.Count > 0) { for (int j = 0; j < lie.Count; j++) { var coreCmsPlanOrder = _PlanOrderBLL.GetModelByorderid(HideKeyid.Value.ToInt32().Value).Where(x => x.shipAddress == lie[j].shipAddress && x.shouhuoAddress == lie[j].shouhuoAddress).FirstOrDefault(); if (coreCmsPlanOrder == null) { CoreCmsPlanOrder order = new CoreCmsPlanOrder(); order.status = 1; order.shipMobile = lie[j].shipMobile; order.shipAddress = lie[j].shipAddress; order.shipName = lie[j].shipName; order.shouhuoAddress = lie[j].shouhuoAddress; order.userMobile = lie[j].shipMobile; order.createBy = CurrentUser.ShortName; order.createTime = DateTime.Now; order.upDataBy = CurrentUser.ShortName; order.upDataTime = DateTime.Now; order.isdelete = false; order.orderkeyid = HideKeyid.Value.ToInt32(); order.FirmId = CurrentUser.MemberId; order.sheng = Province; order.shi = City; order.quxian = County; order.shengId = Provinceid; order.shiId = Cityid; order.quxianId = Countyid; order.pianqu = lie[j].pianqu; var jiHuaOrders = lie[j].jiHuaOrderDetails; decimal orderAmount = 0; var cmsPlanOrderItems = new List(); for (int i = 0; i < jiHuaOrders.Count; i++) { var workbook = model.InquiryWorkBookList.FirstOrDefault(x => (x.WorkBookSizeTxt + x.WorkBookNameTxt ) == jiHuaOrders[i].name || (x.WorkBookNameTxt + x.WorkBookSizeTxt ) == jiHuaOrders[i].name); if (workbook == null) { JavaScript.MessageBox(jiHuaOrders[i].name + "没找到单价", this); return; } var item = new CoreCmsPlanOrderItem(); item.orderId = 0; item.name = workbook.WorkBookNameTxt; item.specification = workbook.WorkBookSizeTxt; item.price = workbook.WorkBookPrice.ToDecimal2().Value;//jiHuaOrders[i].price; item.fengmian = string.IsNullOrEmpty(workbook.fengmian) ? "" : workbook.fengmian; item.neiye = string.IsNullOrEmpty(workbook.neiye) ? "" : workbook.neiye; item.nums = jiHuaOrders[i].nums; ; item.amount = item.price * (decimal)jiHuaOrders[i].nums; item.createBy = CurrentUser.ShortName; item.createTime = DateTime.Now; item.upDataBy = CurrentUser.ShortName; item.upDataTime = DateTime.Now; item.isdelete = false; item.isOld = true; cmsPlanOrderItems.Add(item); orderAmount += item.amount; } order.orderAmount = orderAmount; order.oldOrderAmount = orderAmount; order.keYongAmount = 0; order.huaFeiAmount = 0; var id = _PlanOrderBLL.InsertModelIden(order); var ssss = false; foreach (var cmsPlanOrderItem in cmsPlanOrderItems) { cmsPlanOrderItem.orderId = id; ssss = _PlanOrderBLL.insertModelOrderItem(cmsPlanOrderItem); } } } } else { JavaScript.MessageBox("表格无数据", this); return; } scope.Complete(); } var sss = _eC_OrderBasicBLL.UpdateorderJine(orderid.ToInt32().Value); JavaScript.MessageBox("上传文件成功", this); BindList(); return; } /// /// 计划订单上传接口 /// /// public string getcellvalue(ICell cell) { string cellvalue = ""; switch (cell.CellType) { case CellType.String: // Console.WriteLine(cell.StringCellValue); cellvalue = cell.StringCellValue.Trim(); break; case CellType.Numeric: //Console.WriteLine(cell.NumericCellValue); cellvalue = cell.NumericCellValue.ToString().Trim(); break; case CellType.Boolean: //Console.WriteLine(cell.BooleanCellValue); cellvalue = cell.BooleanCellValue.ToString().Trim(); break; case CellType.Error: // Console.WriteLine(cell.ErrorCellValue); cellvalue = cell.ErrorCellValue.ToString().Trim(); break; case CellType.Blank: // Console.WriteLine(cell.ErrorCellValue); cellvalue = ""; break; // 可以添加其他类型的case } return cellvalue; } /// /// 计划订单上传接口 /// /// public string saveorder(List jiHuaOrders , List InquiryWorkBookList,List sys_CitySites) { var coreCmsPlanOrder = _PlanOrderBLL.GetModelByorderid(HideKeyid.Value.ToInt32().Value).Where(x=>x.shipAddress == jiHuaOrders[0].shipAddress && x.shouhuoAddress == jiHuaOrders[0].shouhuoAddress).FirstOrDefault() ; if(coreCmsPlanOrder == null) { CoreCmsPlanOrder order = new CoreCmsPlanOrder(); order.status = 1; order.shipMobile = jiHuaOrders[0].shipMobile; order.shipAddress = jiHuaOrders[0].shipAddress; order.shipName = jiHuaOrders[0].shipName; order.shouhuoAddress = jiHuaOrders[0].shouhuoAddress; order.userMobile = jiHuaOrders[0].shipMobile; order.createBy = CurrentUser.ShortName; order.createTime = DateTime.Now; order.upDataBy = CurrentUser.ShortName; order.upDataTime = DateTime.Now; order.isdelete = false; order.orderkeyid = HideKeyid.Value.ToInt32(); order.FirmId = CurrentUser.MemberId; order.sheng = "四川省"; order.shi = jiHuaOrders[0].shi; order.quxian = jiHuaOrders[0].quxian; var sheng = sys_CitySites.FirstOrDefault(x => x.Name == order.sheng); if (sheng != null) { order.shengId = sheng.Keyid; var shi = sys_CitySites.FirstOrDefault(x => x.Name == order.shi && x.ProvinceId == sheng.Keyid); if (shi != null) { order.shiId = shi.Keyid; var quxian = sys_CitySites.FirstOrDefault(x => x.Name == order.quxian && x.CityId == shi.Keyid); if (quxian != null) { order.quxianId = quxian.Keyid; } } } order.pianqu = jiHuaOrders[0].pianqu; decimal orderAmount = 0; var cmsPlanOrderItems = new List(); for (int i = 0; i < jiHuaOrders.Count; i++) { var workbook = InquiryWorkBookList.FirstOrDefault(x => x.WorkBookNameTxt == jiHuaOrders[i].name && x.WorkBookSizeTxt == jiHuaOrders[i].specification); if (workbook == null) { // JavaScript.MessageBox(jiHuaOrders[i].name + " " + jiHuaOrders[i].specification + "没找到单价", this); return jiHuaOrders[i].name + " " + jiHuaOrders[i].specification + "没找到单价"; } var item = new CoreCmsPlanOrderItem(); item.orderId = 0; item.name = jiHuaOrders[i].name; item.specification = jiHuaOrders[i].specification; item.price = workbook.WorkBookPrice.ToDecimal2().Value;//jiHuaOrders[i].price; item.fengmian = string.IsNullOrEmpty(workbook.fengmian) ? "" : workbook.fengmian; item.neiye = string.IsNullOrEmpty(workbook.neiye) ? "" : workbook.neiye; item.nums = jiHuaOrders[i].nums; ; item.amount = item.price * (decimal)jiHuaOrders[i].nums; item.createBy = CurrentUser.ShortName; item.createTime = DateTime.Now; item.upDataBy = CurrentUser.ShortName; item.upDataTime = DateTime.Now; item.isdelete = false; item.isOld = true; cmsPlanOrderItems.Add(item); orderAmount += item.amount; } order.orderAmount = orderAmount; order.oldOrderAmount = orderAmount; order.keYongAmount = 0; order.huaFeiAmount = 0; var id = _PlanOrderBLL.InsertModelIden(order); var sss = false; foreach (var cmsPlanOrderItem in cmsPlanOrderItems) { cmsPlanOrderItem.orderId = id; sss = _PlanOrderBLL.insertModelOrderItem(cmsPlanOrderItem); } } return ""; } } }