/**
|
* 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();
|
}
|
|
/// <summary>
|
/// 页面加载事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
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();
|
}
|
|
|
|
/// <summary>
|
/// 默认执行方法
|
/// </summary>
|
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;
|
}
|
}
|
}
|
}
|
|
/// <summary>
|
/// 保存点击事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
protected void btnSave_ServerClick(object sender, EventArgs e)
|
{
|
|
if (SaveOrder())
|
{
|
//操作成功
|
JavaScript.MessageBoxCloseAndRefreshparent("操作成功", this);
|
}
|
else
|
{
|
//操作失败
|
JavaScript.MessageBox("操作失败", this);
|
}
|
}
|
|
|
|
|
|
/// <summary>
|
/// 加载客户联系方式
|
/// </summary>
|
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));
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
/// 保存订单
|
/// </summary>
|
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;
|
}
|
|
|
|
/// <summary>
|
/// 重新加载客户列表
|
/// </summary>
|
/// <returns></returns>
|
private string ReLoadClients()
|
{
|
try
|
{
|
string res = "<option value=''>请选择</option>";
|
OA_CorporateClientsBLL bll_OA_CorporateClientsBLL = new OA_CorporateClientsBLL();
|
IList<OA_CorporateClients> m_OA_CorporateClientsList = bll_OA_CorporateClientsBLL.SelectListByFirmId(CurrentUser.MemberId) as IList<OA_CorporateClients>;
|
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 + ("<option value='" + m_OA_CorporateClients.MemberId + "'>" + m_OA_CorporateClients.CompanyName + "</option>");
|
}
|
}
|
}
|
return res;
|
}
|
catch (Exception ex)
|
{
|
PAGEHandleException(ex);
|
return "";
|
}
|
}
|
}
|
}
|