/**
* 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 "";
}
}
}
}