/** * OrderEdit.aspx.cs * * 功 能: 订单列表 * 类 名: OrderEdit * * Ver 变更日期 负责人 变更内容 * ─────────────────────────────────── * V0.01 2013-5-8 13:55 吴崎均 初版 * V0.02 2013-5-8 15:47 吴崎均 实现下拉数据绑定与数据级联 * V0.03 2013-5-8 18:00 吴崎均 初步完成新增线下订单(未调试) * */ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CY.BLL.Sys; using CY.BLL; using CY.Model; using CY.Infrastructure.Common; using CY.WebForm.Pages.common; using CY.BLL.EC; using CY.Model.Inquiry; using System.Transactions; namespace CY.WebForm.Pages.business { public partial class DeliverWorkBookAnPai : BasePage { CoreCmsPlanOrderBLL _CoreCmsPlanOrderBLL = null; CoreCmsPlanOrderItemBLL _CoreCmsPlanOrderItemBLL = null; OA_StaffBLL bll_OA_StaffBLL = null; OA_CarManageBll _OA_CarManageBll = null; CoreDeliverOrderBLL _CoreDeliverOrderBLL = null; CoreDeliverOrderItemBLL _CoreDeliverOrderItemBLL = null; //初始化 public DeliverWorkBookAnPai() { _CoreCmsPlanOrderBLL = new CoreCmsPlanOrderBLL(); bll_OA_StaffBLL = new OA_StaffBLL(); _OA_CarManageBll = new OA_CarManageBll(); _CoreDeliverOrderBLL = new CoreDeliverOrderBLL(); _CoreDeliverOrderItemBLL = new CoreDeliverOrderItemBLL(); _CoreCmsPlanOrderItemBLL = new CoreCmsPlanOrderItemBLL(); } /// /// 页面加载事件 /// /// /// protected void Page_Load(object sender, EventArgs e) { try { switch (Request["Target"]) { case "GetCommunication": LoadCommunication(); break; case "ReBindClients": Response.Write(ReLoadClients()); break; default: Page_Load_Default(); return; } } catch (Exception ex) { PAGEHandleException(ex); Response.Clear(); //Response.Write("-1"); Response.Write(ex.Message); } Response.End(); } /// /// 默认执行方法 /// private void Page_Load_Default() { if (!IsPostBack && !IsCallback) { this.selCarId.DataSource = bll_OA_StaffBLL.SelectListByFirmId(CurrentUser.MemberId, false, false).Where(x => x.SM_Post == "司机"); this.selCarId.DataTextField = "Name"; this.selCarId.DataValueField = "Keyid"; this.selCarId.DataBind(); this.selCarId.Items.Insert(0, new ListItem("请选择", "")); DateTime now = DateTime.Now; DateTime tomorrowMorning = now.AddDays(1).Date.Add(new TimeSpan(9, 0, 0)); // 9:00 AM this.txtDeliverTime.Value = tomorrowMorning.ToString("yyyy-MM-dd HH:mm"); var ids = Request["ids"].ToString().Trim(',').Split(','); for (int i = 0; i < ids.Length; i++) { var coreCmsPlanOrder = _CoreCmsPlanOrderBLL.GetModelByKeyid(ids[i].ToInt32().Value); if (coreCmsPlanOrder.DeliverState.HasValue && coreCmsPlanOrder.DeliverState.Value == 2) { //操作成功 JavaScript.MessageBox("已经送货完成的计划订单不能安排", this, true, false); return; } var coreDeliverOrderItems = _CoreCmsPlanOrderItemBLL.GetDeliverModelsByplanOrderid(coreCmsPlanOrder.id).ToList(); if (coreDeliverOrderItems != null && coreDeliverOrderItems.Count > 0) { //操作成功 JavaScript.MessageBox("已有未完成的送货安排不能安排", this, true, false); return; } } } } /// /// 保存点击事件 /// /// /// protected void btnSave_ServerClick(object sender, EventArgs e) { if (SaveOrder()) { //操作成功 JavaScript.MessageBoxCloseAndRefreshparent("操作成功", this); } else { //操作失败 JavaScript.MessageBox("操作失败", this); } } /// /// 加载客户联系方式 /// private void LoadCommunication() { Response.Clear(); string id = Request["id"]; if (string.IsNullOrEmpty(id)) { Response.Write("-2"); return; } OA_CorporateClientsBLL _oA_CorporateClientsBLL = new OA_CorporateClientsBLL(); OA_CorporateClients m_OA_CorporateClients = _oA_CorporateClientsBLL.SelectModelByFirmIdandMemberId(CurrentUser.MemberId, id.ToGuid2()); OA_CustomerCommunications _oA_CustomerCommunications = _oA_CorporateClientsBLL.GetModel_CustomerCommunications(m_OA_CorporateClients.Keyid); _oA_CustomerCommunications.DegreeImportanId = m_OA_CorporateClients.DegreeImportanId; _oA_CustomerCommunications.AccountManagerId = m_OA_CorporateClients.AccountManagerId; _oA_CustomerCommunications.BusinessManagerId = m_OA_CorporateClients.BusinessManagerId; _oA_CustomerCommunications.CompanyName = m_OA_CorporateClients.CompanyName; Response.Write(null == _oA_CustomerCommunications ? "" : JsonHelper.GetJsonStringByObject(_oA_CustomerCommunications)); } /// /// 保存订单 /// private bool SaveOrder() { bool isWin = false; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted, Timeout = TransactionManager.MaximumTimeout } ) ) { try { var ids = Request["ids"].ToString().Trim(',').Split(','); var shijian = this.txtDeliverTime.Value.ToDateTime2(); var datenow = DateTime.Now; var oA_Staff = bll_OA_StaffBLL.GetModelByKeyid(CurrentUser.StaffId); foreach (var keyid in ids) { CoreDeliverOrder coreDeliverOrder = new CoreDeliverOrder(); coreDeliverOrder.id = Guid.NewGuid(); coreDeliverOrder.DriverId = this.selCarId.Value.ToInt32(); var i = 0; var carManage = bll_OA_StaffBLL.GetModelByKeyid(this.selCarId.Value.ToInt32()); if (carManage != null) { coreDeliverOrder.DeliveryMoble = carManage.MobieNum; } coreDeliverOrder.OrderId = keyid.ToInt32(); coreDeliverOrder.CreateBy = oA_Staff.MobieNum; coreDeliverOrder.CreateTime = datenow; var coreCmsPlanOrder = _CoreCmsPlanOrderBLL.GetModelByKeyid(keyid.ToInt32().Value); if (coreCmsPlanOrder != null) { coreDeliverOrder.ContactName = coreCmsPlanOrder.shipName; coreDeliverOrder.ContactPhone = coreCmsPlanOrder.shipMobile; } coreDeliverOrder.OrderState = 0; coreDeliverOrder.MakeTime = shijian; coreDeliverOrder.Remarke = ""; isWin = _CoreDeliverOrderBLL.InsertModel(coreDeliverOrder); var cmsPlanOrderItems =_CoreCmsPlanOrderItemBLL.GetModelsByOrderid(keyid.ToInt32().Value); var coreDeliverOrderItems =_CoreCmsPlanOrderItemBLL.GetDeliverModelsByZongOrderid(coreCmsPlanOrder.orderkeyid.Value).Where(x => x.PlanOrderId == keyid.ToInt32().Value); ; //送货数量统计 var coreDeliverOrderItemsgroup = coreDeliverOrderItems.GroupBy(p => new { p.ZYBName, p.ZYBSpecification }) // 多个字段作为匿名类型分组键 .Select(g => new CoreDeliverOrderItem { // 分组字段 ZYBName = g.Key.ZYBName, ZYBSpecification = g.Key.ZYBSpecification, // 统计结果 //Count = g.Count(), // 每组人数 //AverageSalary = g.Average(p => p.Salary), // 平均工资 Number = g.Sum(p => p.Number), // 工资总和 LessNumber = g.Sum(p => p.LessNumber) }).ToList(); foreach ( var cmsPlanOrderItem in cmsPlanOrderItems) { var coreDeliverOrderItem1 = new CoreDeliverOrderItem(); coreDeliverOrderItem1.id = Guid.NewGuid(); coreDeliverOrderItem1.OrderID = coreDeliverOrder.id; coreDeliverOrderItem1.ZYBName = cmsPlanOrderItem.name; coreDeliverOrderItem1.ZYBSpecification = cmsPlanOrderItem.specification; //需要计算已经发货的数量 coreDeliverOrderItem1.Number = cmsPlanOrderItem.nums; var coreDeliverOrderItem = coreDeliverOrderItemsgroup.FirstOrDefault(x => x.ZYBName == cmsPlanOrderItem.name && x.ZYBSpecification == cmsPlanOrderItem.specification); if (coreDeliverOrderItem != null) { coreDeliverOrderItem1.Number = coreDeliverOrderItem1.Number - (coreDeliverOrderItem.Number + coreDeliverOrderItem.LessNumber); if (coreDeliverOrderItem1.Number < 0) { coreDeliverOrderItem1.Number = 0; } } coreDeliverOrderItem1.CreateBy = oA_Staff.MobieNum; coreDeliverOrderItem1.CreateTime = datenow; coreDeliverOrderItem1.LessNumber = 0; isWin = _CoreDeliverOrderItemBLL.InsertModel(coreDeliverOrderItem1); } } scope.Complete(); } catch (Exception ex) { PAGEHandleException(ex); JavaScript.MessageBox("操作失败", this); } finally { // 释放资源 scope.Dispose(); } } return isWin; } /// /// 重新加载客户列表 /// /// private string ReLoadClients() { try { string res = ""; OA_CorporateClientsBLL bll_OA_CorporateClientsBLL = new OA_CorporateClientsBLL(); IList m_OA_CorporateClientsList = bll_OA_CorporateClientsBLL.SelectListByFirmId(CurrentUser.MemberId) as IList; if (null != m_OA_CorporateClientsList) { m_OA_CorporateClientsList.Where(cc => CurrentUser.MemberId.Equals(cc.MemberId) && m_OA_CorporateClientsList.Remove(cc)); if (m_OA_CorporateClientsList.Count > 0) { foreach (var m_OA_CorporateClients in m_OA_CorporateClientsList) { res = res + (""); } } } return res; } catch (Exception ex) { PAGEHandleException(ex); return ""; } } } }