using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CoreFS.CA03;
using CoreFS.CA04;
using CoreFS.CA06;
using System.Collections;
using Infragistics.Win.UltraWinGrid;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Tool;
using System.IO;
using System.Xml;
using Core.Mes.Client.Comm.Format;
using Infragistics.Win.UltraWinEditors;
using Core.Mes.Client.Comm;
using Core.StlMes.Client.SaleOrder.Dialog;
namespace Core.StlMes.Client.SaleOrder
{
public partial class frmOrderDelivery : FrmBase
{
public frmOrderDelivery()
{
InitializeComponent();
ExceptionHelper.RegistException();
}
///
/// 重写基类load事件,屏蔽平台过滤功能。
///
///
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
cmbUnit.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
}
public frmOrderDelivery(OpeBase ob)
{
InitializeComponent();
ExceptionHelper.RegistException();
this.ob = ob;
}
///
/// Top事件。
///
///
///
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "doQuery":
doQuery();
break;
case "Query":
doQuery();
break;
case "doAdd":
doAdd();
break;
case "doUpdate":
if (ultraGMain.Rows.Count <= 0)
{
MessageUtil.ShowWarning("请选择一条记录,然后再进行操作!");
return;
}
doUpdate();
break;
case "doDelete":
if (ultraGMain.Rows.Count <= 0)
{
MessageUtil.ShowWarning("请选择一条记录,然后再进行操作!");
return;
}
doDelete();
break;
case "doOk":
doOk();
break;
case "GenerateCh":
GenerateChangeTable();
break;
default:
break;
}
}
#region 用于合同变更请求 FormOrderChangeManage
bool isDelete = false; //是否删除
bool isAdd = false; //是否新增
bool isUpdate = false; //是否更新
string chanVal = ""; //变更明细
private string maxOrdLnDlyPk; //合同行下最大的交货行PK值 在Load时获取数据库
Dictionary dic = new Dictionary(); //发生变化的行号 +变换内容
#endregion
///
/// 委托方法
///
///
public delegate void GetOrderDeliveryHander(DataSet ds);
public event GetOrderDeliveryHander GetOrderDelivery;
///
/// 确认
///
private void doOk()
{
if (FromForm != "4")
{
//合同状态
string ordLnStateMsg = ValidState();
if (ordLnStateMsg != "")
{
MessageUtil.ShowWarning(ordLnStateMsg);
return;
}
}
//检验是否维护指定地点。
if (CheckStation() == false) return;
if (this.FromForm == "1")
{
if (ultraGMain.Rows.Count <= 0)
{
MessageUtil.ShowWarning("必须保留至少一行交货行!");
return;
}
}
if (this.OrdType.Equals("120102")) //现货合同 只允许一个交货行
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.queryDeliveyCount", new object[] { this.OrderNo }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (Convert.ToInt32(dt.Rows[0][0]) > 1)
{
MessageUtil.ShowWarning("现货合同的每个合同行下只允许存在一个交货行!");
return;
}
}
}
string err = CheckDlyTransit();
if (err != "")
{
MessageUtil.ShowWarning(err);
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认?") == DialogResult.No)
{
return;
}
if (ultraGMain.Rows.Count <= 0)
{
GetOrderDelivery(this.dataSet1);
this.Close();
return;
}
if ((this.FromForm == "0" || FromForm == "4") && validSumWt())
{
GetOrderDelivery(this.dataSet1);
this.Close();
}
if (this.FromForm.Equals("1") && validSumWt())
{
this.dlyDt = dataTable1;
DialogResult = DialogResult.OK;
this.Close();
}
if (this.FromForm == "3" && validSumWt())
{
this.Close();
}
}
//MANAG_NO,ORDER_NO,ORDER_SEQ,ORDER_UNIT
private string dlyTime = DateTime.Now.ToShortDateString();
public string DlyTime
{
get { return dlyTime; }
set
{
if (value != null && value != "")
dlyTime = value;
}
}
private string fromForm = "0";
///
/// 0来自于‘合同信息维护’界面的请求。,1 来自'交货期评审提报'界面的交货期修改按钮弹出。 2来自于 合同变更 请求修改交货行信息。 3来自合同行变更调整交货期
/// 4.临时修改交货地点
///
public string FromForm
{
get { return fromForm; }
set { fromForm = value; }
}
private DataTable dlyDt = new DataTable();
public DataTable DlyDt
{
get { return dlyDt; }
set { dlyDt = value; }
}
string saleOrg = "";
public string SaleOrg
{
get { return saleOrg; }
set { saleOrg = value; }
}
///
/// 管理卡号
///
private string manageNo = "";
public string ManageNo
{
get { return manageNo; }
set { manageNo = value; }
}
///
/// 交货量
///
private string numWt = "";
public string NumWt
{
get { return numWt; }
set { numWt = value; }
}
///
/// 估算总量
///
private string numTag = "";
public string NumTag
{
get { return numTag; }
set { numTag = value; }
}
///
/// 合同ORD_LN_PK值
///
private string orderNo = "";
///
/// 合同ORD_LN_PK值
///
public string OrderNo
{
get { return orderNo; }
set { orderNo = value; }
}
//----------------------暂时在合同变更处使用=-=--------------------------
///
/// 合同号 ORDER_NO
///
private string ordNo;
public string OrdNo
{
get { return ordNo; }
set { ordNo = value; }
}
///
/// 合同行号
///
private string ordSeq;
///
/// 合同行号
///
public string OrdSeq
{
get { return ordSeq; }
set { ordSeq = value; }
}
//------------------------------------------------------------------------------------
///
/// 合同行号
///
private string orderSeq = "";
public string OrderSeq
{
get { return orderSeq; }
set { orderSeq = value; }
}
///
/// 单位
///
private string orderUnit = "";
public string OrderUnit
{
get { return orderUnit; }
set { orderUnit = value; }
}
///
/// 存储新增时的交货信息编号,用于传递给运输线路界面。
///
private string deliveryNo = "";
public string DeliveryNo
{
get { return deliveryNo; }
set { deliveryNo = value; }
}
///
/// 产品规格代码
///
private string spec_code = "";
public string Spec_code
{
get { return spec_code; }
set { spec_code = value; }
}
///
/// 保总长
///
private double order_line_lne = 0;
public double Order_line_lne
{
get { return order_line_lne; }
set { order_line_lne = value; }
}
///
/// 收货单位
///
private string shRow = "";
public string ShRow
{
get { return shRow; }
set { shRow = value; }
}
///
/// DataSet,如果有数据,则需要将数据查询出来。
///
private DataSet orderSet;
public DataSet OrderSet
{
get { return orderSet; }
set { orderSet = value; }
}
///
/// 交货地点
///
private string dlyAddress;
///
/// 交货地点
///
public string DlyAddress
{
get { return dlyAddress; }
set { dlyAddress = value; }
}
private string lenUnit;
///
/// 长度单位/保总长单位
///
public string LenUnit
{
get { return lenUnit; }
set { lenUnit = value; }
}
///
/// 合同类型
///
private string ordType = "A";
///
/// 合同类型
///
public string OrdType
{
get { return ordType; }
set { ordType = value; }
}
///
/// 接箍单各重量
///
private double jg_weight = 0;
///
/// 接箍单各重量
///
public double Jg_weight
{
get { return jg_weight; }
set { jg_weight = value; }
}
///
/// 品种代码
///
private string produc_code = "";
///
/// 品种代码
///
public string Produc_code
{
get { return produc_code; }
set { produc_code = value; }
}
///
/// 验证重量
///
///
private bool validWt()
{
if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt))
{
MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
decimal JHwt = 0;
foreach (UltraGridRow urow in ultraGMain.Rows)
{
if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
{
JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
}
}
if ((Convert.ToDecimal(JHwt) + Convert.ToDecimal(uNCount.Value)) > Convert.ToDecimal(numWt))
{
MessageBox.Show("请确认是否超出交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
return true;
}
///
/// 修改验证重量
///
///
private bool validUpWt()
{
if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt))
{
MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
decimal JHwt = 0;
decimal IndexWt = Convert.ToDecimal(ultraGMain.ActiveRow.Cells[5].Value); // ?
//int Gswt = 0;
foreach (UltraGridRow urow in ultraGMain.Rows)
{
if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
{
JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
}
}
decimal sumWtx = (JHwt - IndexWt) + Convert.ToDecimal(uNCount.Value);
if (sumWtx > Convert.ToDecimal(numWt))
{
MessageBox.Show("请确认是否超出交货总量" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
return true;
}
///
/// 合同交货行的交货总量必须等于合同行的订货量
///
///
private bool validSumWt()
{
if (Convert.ToDecimal(uNCount.Value) > Convert.ToDecimal(numWt))
{
MessageBox.Show("交货量不允许大于:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
decimal JHwt = 0;
//int Gswt = 0;
foreach (UltraGridRow urow in ultraGMain.Rows)
{
if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
{
JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
}
}
decimal sumWtx = (JHwt - Convert.ToDecimal(numWt));
if (sumWtx < 0)
{
MessageBox.Show("请确认是否满足交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (sumWtx > 0)
{
MessageBox.Show("请确认是否超出交货总量:" + numWt, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
return true;
}
///
/// 合同交货行的交货总量刷新功能
///
///
private decimal validLoadSumWt()
{
decimal JHwt = 0;
foreach (UltraGridRow urow in ultraGMain.Rows)
{
if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
{
JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
}
}
decimal sumWtx = (JHwt - Convert.ToDecimal(numWt));
if (sumWtx < 0)
{
sumWtx = -sumWtx;
}
return sumWtx;
}
///
/// 修改
///
private bool doUpdate()
{
//交货期变更不验证重量--存在修改合同订单量情况
if (this.FromForm != "2")
{
if (!validUpWt())
{
return false;
}
}
//确定是否有选中项。
if (ultraGMain.ActiveRow == null)
{
MessageBox.Show("请选择需要修改的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
if (this.FromForm != "2" && this.FromForm != "4")
{
//合同状态
string ordLnStateMsg = ValidState();
if (ordLnStateMsg != "")
{
MessageUtil.ShowWarning(ordLnStateMsg);
return false;
}
}
if (FromForm != "4")
{
if (Convert.ToDateTime(uDTDeliveryEnd.Value) < DateTime.Now)
{
MessageUtil.ShowWarning("最迟交货期日期[" + Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString() + "]不合理!");
return false;
}
}
//验证交货时间差
//只有一行时 不用验证时间差。
if (ultraGMain.Rows.Count >= 2)
{
//if (!this.delEnd())
//{
// return false;
//}
}
//无效数据不允许修改。
//验证非空项
if (ValidInput())
{
//直接修改交货信息。
ArrayList parms = new ArrayList();
//交货结束日期,改为最迟交货日期
parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToString("yyyy-MM-dd"));
//两次交货日期之间必须大于31天
//交货量
parms.Add(uNCount.Value.ToString());
//计量单位(从主界面接收的参数)
parms.Add(OrderUnit);
//估算重量(留空)
parms.Add(uNEstimate.Value.ToString());
//保总长
parms.Add(uNLen.Value.ToString());
//收货单位编码
parms.Add(cmbUnit.Value == null ? "" : cmbUnit.Value.ToString());
//收获单位名称
parms.Add(cmbUnit.Text);
////交货地点DELVRY_ADDR
parms.Add(cmbDeliveryAddress.Text);
//是否代办,如果非代办,则没有运输方案、总运费。
parms.Add(ckbTpcoAgency.Checked ? "1" : "0");
//地点,允许为空。
parms.Add(utxtAddress.Text.Trim());
//运输方案。长沙-北京 方案1.
parms.Add("");
//总运费
parms.Add(transitMny);
parms.Add(UserInfo.GetUserName());
parms.Add(cmbFactoryType.Value == null ? "" : cmbFactoryType.Value.ToString());
parms.Add(chkExtra.Checked ? "1" : "0");
string deliveryNo = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString();
string seq = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString();
//管理卡号
parms.Add(ManageNo);
//合同号
parms.Add(OrderNo);
//合同行号
parms.Add(seq);
string name = UserInfo.GetUserName();
if (this.FromForm == "2")
{ //来自于合同变更时 请求修改交货行信息
FormOrderChangeManage foc = new FormOrderChangeManage(this.ob);
if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2")
{
MessageUtil.ShowWarning("此合同行已存在非交货行变更的变更单,不能修改!");
return false;
}
string chanStatus = GetExistsApplyNo(this.OrderNo);
if (chanStatus != "W" && chanStatus != "S" && chanStatus != "F")
{
DeleteApplyNo(this.OrderNo);
}
else
{
if (chanStatus == "W")
{
MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能修改!");
return false;
}
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认修改数据!") == DialogResult.No) return false;
string ordLnDlyPk = "";
string chmaxOrdLnDlyPk = GetMaxOrdLnPk();
if (seq == maxOrdLnDlyPk) //变更修改行PK等于合同最大
{
if (maxOrdLnDlyPk == chmaxOrdLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxOrdLnDlyPk) < 0)
{
ordLnDlyPk = chmaxOrdLnDlyPk;
}
else
{
ordLnDlyPk = maxOrdLnDlyPk;
}
}
else if (string.Compare(seq, maxOrdLnDlyPk) < 0) //变更修改行PK小于合同最大
{
if (maxOrdLnDlyPk == chmaxOrdLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxOrdLnDlyPk) < 0)
{
ordLnDlyPk = chmaxOrdLnDlyPk;
}
else
{
ordLnDlyPk = maxOrdLnDlyPk;
}
}
else //变更修改行PK大于合同最大
{
ordLnDlyPk = "";
}
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage";
ccp.MethodName = "doUpdateOrderDlyLine";
ccp.ServerParams = new object[] { parms, ordLnDlyPk, this.OrderNo };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return false;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return false;
}
}
//修改信息头
UltraGridRow ugr = ultraGMain.ActiveRow;
if (ugr.Cells["DELVRY_EDATE"].Value.ToString() != Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString())
chanVal = "交货日期:" + ugr.Cells["DELVRY_EDATE"].Value.ToString() + " 修改为 " + Convert.ToDateTime(uDTDeliveryEnd.Value).ToString("yyyy-MM-dd")+ "\r\n";
if (ugr.Cells["RECEIV_NO"].Value.ToString() != cmbUnit.Value.ToString())
chanVal = chanVal + "收货单位:" + ugr.Cells["RECEIV_NM"].Value.ToString() + " 修改为 " + cmbUnit.Text + "\r\n";
if (ugr.Cells["DELVRY_QTY"].Value.ToString() != uNCount.Value.ToString())
chanVal = chanVal + "交货量:" + ugr.Cells["DELVRY_QTY"].Value.ToString() + " 修改为 " + uNCount.Value.ToString() + "\r\n";
if (ugr.Cells["DELVRY_ADDR"].Value.ToString() != cmbDeliveryAddress.Text.Trim())
chanVal = chanVal + "交货地点:" + ugr.Cells["DELVRY_ADDR"].Value.ToString() + " 修改为 " + cmbDeliveryAddress.Text.Trim() + "\r\n";
if (ugr.Cells["RECEIV_ADDR"].Value.ToString() != utxtAddress.Text.Trim())
chanVal = chanVal + "指定地址:" + ugr.Cells["RECEIV_ADDR"].Value.ToString() + " 修改为 " + utxtAddress.Text.Trim() + "\r\n";
if (ugr.Cells["TRANSIT_TYP_NM"].Value.ToString() != cmbFactoryType.Text)
chanVal = chanVal + "出厂类型:" + ugr.Cells["TRANSIT_TYP_NM"].Value.ToString() + " 修改为 " + cmbFactoryType.Text.Trim() + "\r\n";
if (ugr.Cells["AGENCY_FL"].Value.ToString().ToUpper() != ckbTpcoAgency.Checked.ToString().ToUpper())
{
string tpco = "";
string tpco1 = "";
if (ugr.Cells["AGENCY_FL"].Value.ToString().ToUpper() == "TRUE")
tpco = "有";
else
tpco = "无";
if (ckbTpcoAgency.Checked)
tpco1 = "有";
else
tpco1 = "无";
chanVal = chanVal + "TPCO代办:" + tpco + " 修改为 " + tpco1 + "\r\n";
}
if (chanVal == "")
isUpdate = false;
else
{
isUpdate = true;
chanVal = "交货行 " + deliveryNo + "\r\n" + chanVal;
}
if (dic.ContainsKey(deliveryNo))
{
if (chanVal != "")
{
chanVal = dic[deliveryNo] + chanVal;
dic[deliveryNo] = chanVal;
}
}
else
{
dic.Add(deliveryNo, chanVal);
}
MessageUtil.ShowTips("修改成功!");
//刷新数据源
doQuery();
foreach (UltraGridRow urow in ultraGMain.Rows)
{
if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
{
urow.Activate();
break;
}
}
uNCount.Value = validLoadSumWt();
GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] });
return true;
}
else
{
if (MessageUtil.ShowYesNoAndQuestion("是否确认修改数据!") == DialogResult.No) return false;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "doUpdate";
ccp.ServerParams = new object[] { parms, name, this.ManageNo, this.FromForm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return false;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return false;
}
}
MessageUtil.ShowTips("修改成功!");
//刷新数据源
doQuery();
//新增子表记录,运输线路。
//addOrderDeliveryTransit(deliveryNo);
Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
for (int i = 0; i < ultraGMain.Rows.Count; i++)
{
urow = ultraGMain.Rows[i];
if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
{
urow.Activate();
break;
}
}
uNCount.Value = validLoadSumWt();
GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] { ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"] });
return true;
}
}
else
{
return false;
}
}
///
/// 单击编辑区控件时,执行的修改。
///
private bool doUpdateDelivery()
{
//确定是否有选中项。
if (ultraGMain.ActiveRow == null)
{
MessageBox.Show("请选择需要修改的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
//无效数据不允许修改。
//验证非空项
if (ValidInput())
{
//直接修改交货信息。
ArrayList parms = new ArrayList();
//交货结束日期,改为最迟交货日期
parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString());
//两次交货日期之间必须大于31天
//交货量
parms.Add(uNCount.Value.ToString());
//计量单位(从主界面接收的参数)
parms.Add(OrderUnit);
//估算重量(留空)
parms.Add(uNEstimate.Value.ToString());
//保总长
parms.Add(uNLen.Value.ToString());
//收货单位编码
parms.Add(cmbUnit.Value.ToString());
//收获单位名称
parms.Add(cmbUnit.Text);
////交货地点DELVRY_ADDR
parms.Add(cmbDeliveryAddress.Text);
//是否代办
parms.Add(1);
//地点,允许为空。
parms.Add(utxtAddress.Text.Trim());
//运输方案。长沙-北京 方案1.
parms.Add("");
//总运费
parms.Add(transitMny);
parms.Add(UserInfo.GetUserName());
string deliveryNo = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString();
//管理卡号
parms.Add(ManageNo);
//合同号
parms.Add(OrderNo);
//合同行号
parms.Add(OrderSeq);
////交货信息编号
//parms.Add(deliveryNo);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "doUpdate";
ccp.ServerParams = new object[] { parms };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return false;
//刷新数据源
doQuery();
//新增子表记录,运输线路。
//addOrderDeliveryTransit(deliveryNo);
Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
for (int i = 0; i < ultraGMain.Rows.Count; i++)
{
urow = ultraGMain.Rows[i];
if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
{
urow.Activate();
break;
}
}
GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] {
ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"]
});
return true;
}
else
{
return false;
}
}
///
/// 获取重量
///
///
private double validIntSumWt()
{
double JHwt = 0;
foreach (UltraGridRow urow in ultraGMain.Rows)
{
if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals(""))
{
JHwt += Convert.ToDouble(urow.Cells["DELVRY_QTY"].Value);
}
}
double sumWtx = (Convert.ToDouble(numWt) - JHwt);
return sumWtx;
}
///
/// 删除
///
private void doDelete()
{
if (ultraGMain.ActiveRow == null)
{
MessageBox.Show("请选择需要删除的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdLnLikuState",
new object[] { ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString() }, ob);
if (dt.Rows.Count > 0)
{
MessageUtil.ShowWarning("交货行存在利库信息,不能进行删除操作!");
return;
}
if (this.FromForm != "2")
{
//合同状态
string ordLnStateMsg = ValidState();
if (ordLnStateMsg != "")
{
MessageUtil.ShowWarning(ordLnStateMsg);
return;
}
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认删除数据?") == DialogResult.No)
{
return;
}
if (this.FromForm == "2")
{
FormOrderChangeManage foc = new FormOrderChangeManage(this.ob);
if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2")
{
MessageUtil.ShowWarning("此合同行已存非交货行类型的变更,不能删除!");
return;
}
string chanStatus = GetExistsApplyNo(this.OrderNo);
if (chanStatus != "W" && chanStatus != "S")
{
DeleteApplyNo(this.OrderNo);
}
else
{
if (chanStatus == "W")
{
MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能删除!");
return;
}
}
}
UltraGridRow row = ultraGMain.ActiveRow;
string deliveryNo = row.Cells["ORD_LN_DLY_PK"].Value.ToString();
string dlyNo = row.Cells["DELIVERY_NO"].Value.ToString();
DataRow[] dr = dataTable1.Select("ORD_LN_DLY_PK = '" + deliveryNo + "'", "");
//获取当前选中行的管理卡号、合同头号、合同行号、交货信息编号,删除该编号对应的全部运输线路信息。
clearTransit(deliveryNo);
//删除当前交货信息。
deleteDelivery(deliveryNo);
if (this.FromForm == "0" || this.FromForm == "1" || this.FromForm == "3")
{
doQuery();
}
else
{
if (dic.ContainsKey(dlyNo))
{
isUpdate = false;
}
isDelete = true;
dataTable1.Rows.Remove(dr[0]);
ultraGMain.UpdateData();
deliveryTransitTpcoSrc.Clear();
deliveryTransitUserSrc.Clear();
chanVal = "删除交货行 " + dlyNo;
if (dic.ContainsKey(dlyNo))
{
chanVal = dic[dlyNo] + chanVal;
dic[dlyNo] = chanVal;
}
else
{
dic.Add(dlyNo, chanVal);
}
SetpanelDlyChangeValue();
}
uNCount.Value = validLoadSumWt();
}
///
/// 删除当前选中交货信息行
///
///
private void deleteDelivery(string deliveryNo)
{
ArrayList parms = new ArrayList();
parms.Add(deliveryNo);
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "deleteDelivery";
ccp.ServerParams = new object[] { parms, UserInfo.GetUserName(), this.ManageNo, this.FromForm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
MessageUtil.ShowTips("删除成功!");
}
}
///
/// 删除全部线路
///
private void clearTransit(string deliveryNo)
{
ArrayList parms = new ArrayList();
parms.Add(deliveryNo);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "clearTransit";
ccp.ServerParams = new object[] { parms, this.FromForm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return;
}
///
/// 新增交货信息
///
private bool doAddDelivery()
{
if (ValidInput())
{
//验证交货时间差
if (!this.delEnd())
{
return false;
}
//两次交货日期必须大于31天。
//获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。
//存储新增时的交货信息编码,用于传递给运输线路信息界面。
DeliveryNo = autoCode();
//直接新增交货信息。
ArrayList parms = new ArrayList();
//管理卡号
parms.Add(ManageNo);
//合同号
parms.Add(OrderNo);
parms.Add(OrderNo);
//合同行号
parms.Add(OrderNo);
//交货信息编号
parms.Add(deliveryNo);
//交货结束日期,改为最迟交货日期
parms.Add(Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString());
//两次交货日期之间必须大于31天。
//交货量
parms.Add(uNCount.Value);
//计量单位(从主界面接收的参数)
parms.Add(OrderUnit);
//估算重量(留空)
parms.Add(uNEstimate.Value.ToString());
//保总长
parms.Add(uNLen.Value);
//收货单位编码
parms.Add(cmbUnit.Value);
//收获单位名称
parms.Add(cmbUnit.Text);
////交货地点DELVRY_ADDR
parms.Add(cmbDeliveryAddress.Text);
//代办=false。
//运输线路信息=“”
//吨运费=“”
//是一条全新的记录,如果有运输线路信息,那么,你在点击运输线路信息按钮时,会自动新增以及更新运费等信息。
//是否代办
parms.Add(0);
//地点,允许为空。
parms.Add(utxtAddress.Text.Trim());
//运输方案。长沙-北京 方案1.
parms.Add("");
//总运费
parms.Add(transitMny);
parms.Add(UserInfo.GetUserName());
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "doAdd";
ccp.ServerParams = new object[] { parms };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return false;
//刷新数据源
doQuery();
Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
for (int i = 0; i < ultraGMain.Rows.Count; i++)
{
urow = ultraGMain.Rows[i];
if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
{
urow.Activate();
break;
}
}
GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] {
ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"]
});
return true;
}
else
{
return false;
}
}
///
/// 获取交货信息最新日期。
///
///
private string GetDelEnd()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetDelEnd", new Object[] { OrderNo }, this.ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0][0].ToString();
}
else
{
return "";
}
}
///
/// 往DataSet数据集中新增一条记录。
///
private void doAdd()
{
if (this.FromForm != "2")
{
//合同状态
string ordLnStateMsg = ValidState();
if (ordLnStateMsg != "")
{
MessageUtil.ShowWarning(ordLnStateMsg);
return;
}
}
//交货期变更暂时不验证重量
if (this.FromForm != "2")
{
if (!validWt())
{
return;
}
}
if (ValidInput())
{
//两次交货日期必须大于31天。
//获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。
//验证交货时间差
if (ultraGMain.Rows.Count >= 1)
{
//if (!this.delEnd())
//{
// return;
//}
}
if (Convert.ToDateTime(uDTDeliveryEnd.Value) < DateTime.Now)
{
MessageUtil.ShowWarning("最迟交货期日期[" + Convert.ToDateTime(uDTDeliveryEnd.Value).ToShortDateString() + "]不合理!");
return;
}
//存储新增时的交货信息编码,用于传递给运输线路信息界面。
DeliveryNo = autoCode();
//直接新增交货信息。
ArrayList parms = new ArrayList();
//管理卡号
parms.Add(ManageNo);
//合同行号
parms.Add(OrderNo);
if (this.FromForm == "2")
{
string chmaxLnDlyPk = GetMaxOrdLnPk();
if (maxOrdLnDlyPk == chmaxLnDlyPk || string.Compare(maxOrdLnDlyPk, chmaxLnDlyPk) < 0)
{
parms.Add(chmaxLnDlyPk);
parms.Add(OrderNo);
parms.Add(OrderNo);
parms.Add(chmaxLnDlyPk);
parms.Add(OrderNo);
parms.Add(OrderNo);
parms.Add(OrderNo);
parms.Add(OrderNo);
// parms.Add(chmaxLnDlyPk);
}
else
{
parms.Add(maxOrdLnDlyPk);
parms.Add(OrderNo);
parms.Add(OrderNo);
parms.Add(maxOrdLnDlyPk);
parms.Add(OrderNo);
parms.Add(OrderNo);
parms.Add(OrderNo);
parms.Add(OrderNo);
//parms.Add(maxOrdLnDlyPk);
}
}
else
{
parms.Add(OrderNo);
parms.Add(OrderNo);
parms.Add(OrderNo);
//parms.Add(OrderNo);
}
//交货信息编号
//交货结束日期,改为最迟交货日期
parms.Add(uDTDeliveryEnd.DateTime.ToString("yyyy-MM-dd"));
//两次交货日期之间必须大于31天。
//交货量
parms.Add(uNCount.Value.ToString());
//计量单位(从主界面接收的参数)
parms.Add(OrderUnit);
//估算重量(留空)
parms.Add(uNEstimate.Value.ToString());
//保总长
parms.Add(uNLen.Value.ToString());
//收货单位编码
parms.Add(cmbUnit.Value.ToString());
//收获单位名称
parms.Add(cmbUnit.Text);
////交货地点DELVRY_ADDR
parms.Add(cmbDeliveryAddress.Text);
//只执行简单新增操作。
//代办=false。
//运输线路信息=“”
//吨运费=“”
//是一条全新的记录,如果有运输线路信息,那么,你在点击运输线路信息按钮时,会自动新增以及更新运费等信息。
parms.Add(ckbTpcoAgency.Checked ? "1" : "0");
//地点,允许为空。
parms.Add(utxtAddress.Text.Trim());
//运输方案。长沙-北京 方案1.
parms.Add("");
//总运费
parms.Add("");
parms.Add(UserInfo.GetUserName());
parms.Add(cmbFactoryType.Value == null ? "" : cmbFactoryType.Value.ToString());
parms.Add(chkExtra.Checked ? "1" : "0");
parms.Add(chkAdd.Checked ? "1" : "0");
if (this.OrdType.Equals("120102")) //现货合同 只允许一个交货行
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.queryDeliveyCount", new object[] { this.OrderNo }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (Convert.ToInt32(dt.Rows[0][0]) > 1)
{
MessageUtil.ShowWarning("现货合同的每个合同行下只允许存在一个交货行!");
return;
}
}
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认新增数据!") == DialogResult.No) return;
if (this.FromForm == "2")
{
FormOrderChangeManage foc = new FormOrderChangeManage(this.ob);
if (foc.IsExistsApplyNoWithLineLock(OrderNo, "交货行") == "2")
{
MessageUtil.ShowWarning("此合同行已存在非交货行类型的变更,不能新增!");
return;
}
string chanStatus = GetExistsApplyNo(this.OrderNo);
if (chanStatus != "W" && chanStatus != "S" && chanStatus != "F")
{
DeleteApplyNo(this.OrderNo);
}
else
{
if (chanStatus == "W")
{
MessageUtil.ShowWarning("此合同行已存在变更单,且变更单处于待审状态,不能新增!");
return;
}
}
}
string name = UserInfo.GetUserName();
string dept = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob);
dept = dept + "-" + UserInfo.GetDepartment();
try
{
ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.doAdd", new object[] { parms, name, dept, this.ManageNo, this.FromForm }, ob);
}
catch (MESException e)
{
MessageUtil.ShowTips(e.ExceptionInfo);
return;
}
MessageUtil.ShowTips("新增成功!");
if (this.FromForm == "2")
{
chanVal = "新增交货行 " + DeliveryNo + " 交货量 " + uNCount.Value.ToString() + OrderUnit + " 收货单位 " + cmbUnit.Text;
if (dic.ContainsKey(DeliveryNo))
{
chanVal = dic[DeliveryNo] + "\r\n" + chanVal;
dic[DeliveryNo] = chanVal;
}
else
{
dic.Add(DeliveryNo, chanVal);
}
isAdd = true;
}
//刷新数据源
doQuery();
Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
for (int i = 0; i < ultraGMain.Rows.Count; i++)
{
urow = ultraGMain.Rows[i];
if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
{
urow.Activate();
break;
}
}
uNCount.Value = validLoadSumWt();
GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] {
ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"]
});
}
}
DataTable dtLine = new DataTable();
///
/// 线路明细总数据源,DataTable2
///
DataTable saveLine = new DataTable();
///
/// 交货信息总数据源,DataTable1
///
DataTable orderDelivery = new DataTable();
///
/// 新增运输线路
///
private void addOrderDeliveryTransit(string deliveryNo)
{
if (dtLine.Rows.Count > 0)
{
ArrayList paramS = new ArrayList();
foreach (DataRow row in dtLine.Rows)
{
ArrayList parms = new ArrayList();
parms.Add(ManageNo);
parms.Add(OrderNo);
parms.Add(OrderSeq);
parms.Add(row["DELIVERY_NO"].ToString());
parms.Add(row["INDEX_SEQ"].ToString());
//代办标识
if (Convert.ToBoolean(row["AGENCY_FL"]))
{
parms.Add(1);
}
else
{
parms.Add(0);
}
parms.Add(row["LV_FACTY_TYP"].ToString());
parms.Add(row["TRANSIT_TYP"].ToString());
parms.Add(row["DESTINATION"].ToString());
parms.Add(row["STATION_NO"].ToString());
parms.Add(row["STATION_NM"].ToString());
parms.Add(row["SPCL_LN_NO"].ToString());
parms.Add(row["SPCL_LN_NM"].ToString());
parms.Add(row["PORT_NO"].ToString());
parms.Add(row["PORT_DESC"].ToString());
parms.Add(row["CARRIER_UNIT"].ToString());
parms.Add(row["RECEIVOR"].ToString());
parms.Add(row["TRANSIT_LN_MNY"].ToString());
parms.Add(1);
parms.Add(UserInfo.GetUserName());
paramS.Add(parms);
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "addOrderDeliveryTransit";
ccp.ServerParams = new object[] { paramS };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return;
}
}
///
/// 最大交货编码
///
///
private string autoCode()
{
string maxStr = GetMaxDeliveryNo();
if ("".Equals(maxStr))
{
return "001";
}
else
{
int i = Convert.ToInt32(maxStr);
i++;
string str = i.ToString();
str = str.PadLeft(3, '0');
return str;
}
}
///
/// 获取当前合同行号下最大编号
///
///
private string GetMaxDeliveryNo()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetMaxDeliveryNo", new Object[] { this.OrderNo, fromForm }, this.ob);
return dt.Rows[0][0].ToString();
}
///
/// 查询(刷新数据)
///
private void doQuery()
{
if (this.fromForm == "2")
{
try
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getOrderDelivery", new object[] { this.ManageNo, this.OrderNo }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
GridHelper.RefreshAndAutoSize(ultraGMain);
}
catch (MESException e)
{
MessageUtil.ShowWarning(e.ExceptionInfo);
}
SetpanelDlyChangeValue();
}
else
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.doQuery", new Object[] { OrderNo }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
foreach (UltraGridRow row in ultraGMain.Rows)
{
if ("1".Equals(row.Cells["AGENCY_FL"].Value))
{
row.Cells["AGENCY_FL"].Value = true;
}
else
{
row.Cells["AGENCY_FL"].Value = false;
}
}
//列自适应
GridHelper.RefreshAndAutoSize(ultraGMain);
ultraGMain.UpdateData();
}
}
private void frmOrderDelivery_Load(object sender, EventArgs e)
{
ultraLabel18.Text = LenUnit;
BindDw();
InitTransitUi();
//从主界面接收过来的单位参数。
cmbDw.Text = OrderUnit;
//收货单位。
BindUnit();
//交货地点
BindAddress();
doQuery();
uNCount.Value = validIntSumWt();
uDTDeliveryEnd.Value = Convert.ToDateTime(this.DlyTime).ToString("yyyy-MM-dd");
if (this.FromForm == "2") //合同变更时
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getMaxOrdLnDlyPk", new object[] { this.OrderNo }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
this.maxOrdLnDlyPk = dt.Rows[0][0].ToString();
}
//2016.12.26
//if (NumWt == "0")
//{
// chkAdd.Checked = true;
// chkAdd.Enabled = false;
//}
}
else
{
ultraGMain.DisplayLayout.Bands[0].Columns["RCMD_DELVRY_EDATE"].Hidden = true;
ultraGMain.DisplayLayout.Bands[0].Columns["PRDCYC_MEET"].Hidden = true;
panelDlyChange.Visible = false;
}
//临时口子
if (FromForm == "4")
{
// 合同管理科
if (!"admin".Equals(UserInfo.GetUserName()) && !"002001042003005".Equals(UserInfo.GetDeptid()))
{
uDTDeliveryEnd.Enabled = false;
uNCount.Enabled = false;
}
//cmbFactoryType.Enabled = false;
this.ultraToolbarsManager1.Toolbars[0].Tools["doAdd"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False;
this.ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False;
}
}
///
/// 绑定单位
///
private void BindDw()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.base.CoreBuyerOrder.GetQueryBaseInfo", new Object[] { "1215" }, ob);
cmbDw.DataSource = dt;
cmbDw.DisplayMember = "BASENAME";
cmbDw.ValueMember = "BASECODE";
}
///
/// 刷新DataTable1数据源。
///
private void BindOrderDelivery()
{
//依据管理卡号、合同号、合同行号,展示对应的信息。
DataView orderDv = new DataView(orderDelivery);
orderDv.RowFilter = "MANAG_NO=" + ManageNo + " AND ORDER_NO=" + OrderNo + " AND ORDER_SEQ=" + OrderSeq;
DataTable orderDt = orderDv.ToTable();
GridHelper.CopyDataToDatatable(ref orderDt, ref this.dataTable1, true);
}
private string ValidState()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdLnState",
new object[] { OrderNo }, ob);
if (dt.Rows.Count > 0)
{
string ordLnState = dt.Rows[0][0].ToString();
try
{
if (Convert.ToInt32(ordLnState) >= 12020301)
{
return "当前合同行已经生效或者提报,不能进行此操作!";
}
}
catch (Exception e)
{
return e.Message;
}
}
return "";
}
///
/// 验证非空项。
///
///
private bool ValidInput()
{
if (string.IsNullOrEmpty(uDTDeliveryEnd.Value.ToString()))
{
MessageBox.Show("请输入最迟交货日期!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
uDTDeliveryEnd.Focus();
return false;
}
if (string.IsNullOrEmpty(uNCount.Value.ToString()))
{
MessageBox.Show("请输入交货量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
uNCount.Focus();
return false;
}
//交货量、保总长必须大于0.
if (Convert.ToDouble(uNCount.Value) <= 0)
{
MessageBox.Show("交货量必须大于0!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
uNCount.Focus();
return false;
}
if (string.IsNullOrEmpty(uNEstimate.Value.ToString()))
{
MessageBox.Show("请输入估算重量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
uNEstimate.Focus();
return false;
}
if (cmbUnit.Value == System.DBNull.Value || cmbUnit.Value == null)
{
MessageBox.Show("请输入收货单位!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
cmbUnit.Focus();
return false;
}
if (cmbUnit.IsItemInList(cmbUnit.Text) == false)
{
MessageUtil.ShowWarning("输入的收货单位不存在,请选择收货单位!");
cmbUnit.Focus();
return false;
}
if (cmbDeliveryAddress.Value == null || string.IsNullOrEmpty(cmbDeliveryAddress.Value.ToString()))
{
MessageBox.Show("请输入交货地点!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
cmbDeliveryAddress.Focus();
return false;
}
////自提,则交货地址必填
if ("110603".Equals(cmbDeliveryAddress.Value.ToString()))
{
if ("".Equals(utxtAddress.Text))
{
MessageBox.Show("请输入地址!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
utxtAddress.Focus();
return false;
}
}
if ("110603".Equals(cmbDeliveryAddress.Value.ToString()))
{
if ("".Equals(utxtAddress.Text))
{
MessageBox.Show("请输入地址!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
utxtAddress.Focus();
return false;
}
}
if (cmbFactoryType.Value == null || cmbFactoryType.Value.ToString() == "")
{
MessageUtil.ShowWarning("请选择出厂类型!");
cmbFactoryType.Focus();
return false;
}
int validCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").Count();
if (ckbTpcoAgency.Checked == false)
{
if (validCnt > 0)
{
MessageUtil.ShowWarning("系统已存在Tpco代办(运输线路),不能取消Tpco代办!");
ckbTpcoAgency.Focus();
return false;
}
}
return true;
}
///
/// 交货地点
///
private void BindAddress()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.BindAddress", new object[] { orderNo }, this.ob);
cmbDeliveryAddress.DataSource = dt;
cmbDeliveryAddress.DisplayMember = "BASENAME";
cmbDeliveryAddress.ValueMember = "BASECODE";
cmbDeliveryAddress.DataBind();
cmbDeliveryAddress.SelectedIndex = 0;
if (this.DlyAddress == "")
{
cmbDeliveryAddress.SelectedIndex = 0;
}
else
{
cmbDeliveryAddress.Text = this.DlyAddress;
}
foreach(DataRow dr in dt.Rows){
if (dr["BASECODE"].ToString() == "110610")
{
cmbDeliveryAddress.Value = "110610";
}
}
if (saleOrg == "100102")
{
cmbDeliveryAddress.Text = "TPCO库房车板";
}
}
///
/// 绑定收货单位,需要传递参数,隶属于哪个销售组织,类型是收货单位还是最终用户。
///
private void BindUnit()
{
string custmUse = "100203";
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.BindUnit", new Object[] { saleOrg, custmUse }, this.ob);
//起始地数据源绑定
cmbUnit.DataSource = dt;
cmbUnit.DisplayMember = "CUSTOMER_NM";
cmbUnit.ValueMember = "CUSTOMER_NO";
cmbUnit.DataBind();
cmbUnit.Text = shRow;
}
///
/// 指定地点,utxtAddress非只读。
///
///
///
private void cmbDeliveryAddress_ValueChanged(object sender, EventArgs e)
{
if (cmbDeliveryAddress.Value == null)
return;
if ("110603".Equals(cmbDeliveryAddress.Value.ToString()))
{
utxtAddress.ReadOnly = false;
}
else
{
utxtAddress.ReadOnly = true;
utxtAddress.Text = "";
}
if ("110601".Equals(cmbDeliveryAddress.Value.ToString()))
{
if (ckbTpcoAgency.Checked)
{
chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
chkExtra.Enabled = true;
chkExtra.Checked = true;
}
else
{
chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False;
chkExtra.Enabled = true;
chkExtra.Checked = false;
}
}
else
{
chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False;
chkExtra.Enabled = false;
chkExtra.Checked = false;
}
lblDeliveryType.Text = cmbDeliveryAddress.Text;
}
///
/// 总运费
///
private string transitMny = "";
///
/// 验证两次交货日期之前必须大于31天
///
private bool delEnd()
{
//两次交货日期必须大于31天。
//获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。
string delEnd = GetDelEnd();
if (!"".Equals(delEnd))
{
DateTime delEndDt = Convert.ToDateTime(delEnd);
TimeSpan tSpan = uDTDeliveryEnd.DateTime - delEndDt;
if (tSpan.Days < 31)
{
MessageBox.Show("两次交货日期之间必须大于31天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return false;
}
}
return true;
}
///
/// 验证两次交货日期之前必须大于45天
///
private bool delUpEnd()
{
//两次交货日期必须大于45天。
//获取最近的交货信息,按日期降序,取第一条记录的交货日期。如果没有记录,则不需要进行比较。
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetDelEnd", new Object[] { OrderNo }, this.ob);
for (int i = 0; i < dt.Rows.Count; i++)
{
string delEnd = dt.Rows[i][0].ToString();
if (!"".Equals(delEnd))
{
DateTime delEndDt = Convert.ToDateTime(delEnd);
DateTime deletoDt = Convert.ToDateTime(dt.Rows[0][0].ToString());
TimeSpan tSpans = uDTDeliveryEnd.DateTime - deletoDt; //最迟交货期
TimeSpan tSpan = uDTDeliveryEnd.DateTime - delEndDt;
if (i == 0 && tSpans.Days > 0)
{
continue;
}
if (tSpan.Days == 0)
{
continue;
}
if (tSpan.Days >= -31 && tSpan.Days <= 31)
{
MessageBox.Show("两次交货日期之前必须大于45天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return false;
}
if (tSpan.Days >= 0 && tSpan.Days <= 31)
{
MessageBox.Show("两次交货日期之前必须大于45天。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return false;
}
}
}
return true;
}
///
/// 更新单击弹出运输线路窗体时,新增或修改交货信息行的吨运费和运输线路描述信息。
///
///
///
///
///
///
private void UpdateTransitMnyDesc(string ManageNo, string OrderNo, string OrderSeq, string deliveryNo, string transitMny, string transitDesc)
{
ArrayList parms = new ArrayList();
//总运费
parms.Add(transitMny);
//运输方案。长沙-北京 方案1.
parms.Add(transitDesc);
if ("".Equals(transitDesc))
{
parms.Add(0);
}
else
{
parms.Add(1);
}
//合同行号
parms.Add(OrderNo);
//合同行号流水
parms.Add(OrderSeq);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "UpdateTransitMnyDesc";
ccp.ServerParams = new object[] { parms };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return;
//刷新数据源
doQuery();
Infragistics.Win.UltraWinGrid.UltraGridRow urow = null;
for (int i = 0; i < ultraGMain.Rows.Count; i++)
{
urow = ultraGMain.Rows[i];
if (urow.Cells["DELIVERY_NO"].Value.ToString().Equals(deliveryNo))
{
urow.Activate();
break;
}
}
GridHelper.RefreshAndAutoSizeExceptRows(ultraGMain, new UltraGridColumn[] {
ultraGMain.DisplayLayout.Bands[0].Columns["TRANSIT_PLAN"]
});
}
///
/// 主UltraGrid行点击触发事件。
///
///
///
private void ultraGMain_AfterRowActivate(object sender, EventArgs e)
{
UltraGridRow row = ultraGMain.ActiveRow;
if (row == null)
{
return;
}
if (row.Cells["IS_ADD_CODE"].Value.ToString() == "1")
{
chkAdd.Checked = true;
ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True;
if (FromForm != "4")
{
ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True;
}
}
else
{
chkAdd.Checked = false;
if (numWt == "0")
{
ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False;
ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False;
}
else
{
ultraToolbarsManager1.Toolbars[0].Tools["doUpdate"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True;
if (FromForm != "4")
{
ultraToolbarsManager1.Toolbars[0].Tools["doDelete"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.True;
}
}
}
//交货开始日期
//uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value;
//交货结束日期,改为最迟交货日期
uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value);
//交货量
uNCount.Value = row.Cells["DELVRY_QTY"].Value;
//保总长
uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value;
//收货单位编码
cmbUnit.Value = row.Cells["RECEIV_NO"].Value;
if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString()))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob);
if (dt.Rows.Count > 0)
{
utxtAddress.Text = dt.Rows[0][0].ToString();
}
}
//交货方式
//cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString();
//交货地点
cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString();
lblDeliveryType.Text = row.Cells["DELVRY_ADDR"].Value.ToString();
//地点,允许为空。
utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString();
lblAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString();
//交货编码
string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString();
//估算重量(留空)
//uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString();
cmbFactoryType.Value = row.Cells["TRANSIT_TYP"].Value.ToString();
cmbDeliveryAddress_ValueChanged(null, null);
ckbTpcoAgency.Checked = bool.Parse(row.Cells["AGENCY_FL"].Value.ToString());
if (row.Cells["EXTRA_FLAG"].Value.ToString() == "是")
chkExtra.Checked = true;
else
chkExtra.Checked = false;
//运输方案。长沙-北京 方案1.
SlmOrderDeliveryTransitEntity deliveryTransit = new SlmOrderDeliveryTransitEntity();
deliveryTransit.OrdPk = row.GetValue("ORD_PK");
deliveryTransit.OrdLnPk = row.GetValue("ORD_LN_PK");
deliveryTransit.OrdLnDlyPk = row.GetValue("ORD_LN_DLY_PK");
QueryTransit(deliveryTransit);
}
private void uNCount_ValueChanged(object sender, EventArgs e)
{
//if ("米".Equals(cmbDw.Text.Trim()))
//{
// uNLen.Value = Convert.ToInt32(uNCount.Value);
//}
//else if ("毫米".Equals(cmbDw.Text.Trim()))
//{
// uNLen.Value = Convert.ToInt32(uNCount.Value);
//}
//else if ("英尺".Equals(cmbDw.Text.Trim()))
//{
// uNLen.Value = (Convert.ToInt32(uNCount.Value));
//}
//else
//{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrdQtyAndEnLen", new object[] { this.OrderNo }, this.ob);
decimal qty = 0;
decimal enLen = 0;
if (dt != null && dt.Rows.Count > 0)
{
qty = Convert.ToDecimal(dt.Rows[0][0]);
enLen = Convert.ToDecimal(dt.Rows[0][1].ToString() == "" ? "0" : dt.Rows[0][1]);
}
//uNLen.Value = Convert.ToInt32(uNCount.Value);
if (enLen != 0)
{
uNLen.Value = (Convert.ToDecimal(uNCount.Value) * enLen) / qty;
}
//}
double lenWgt = 0;
OrderFunction.GetPrdctWgt(ref lenWgt, Convert.ToDouble(uNCount.Value), cmbDw.Text, spec_code, ob);
if (this.Produc_code.Equals("S000012"))
{
uNEstimate.Value = Convert.ToDouble(uNCount.Value) * this.Jg_weight;
}
else
{
uNEstimate.Value = Math.Round(lenWgt, 3);
}
}
private void cmbUnit_ValueChanged(object sender, EventArgs e)
{
//if (cmbUnit.Value!=null && !string.IsNullOrEmpty(cmbUnit.Value.ToString()))
//{
// DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob);
// if (dt.Rows.Count > 0)
// {
// utxtAddress.Text = dt.Rows[0][0].ToString();
// }
//}
}
private void cmbUnit_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
FrmOrderCustomer spec = new FrmOrderCustomer(ob);
spec.SaleOrg = saleOrg;
spec.GetOrderCustomers += new FrmOrderCustomer.GetOrderCustomer(spec_GetOrderCustomers);
spec.ShowDialog();
}
void spec_GetOrderCustomers(string specName, UltraGridRow retunSpecRow)
{
BindUnit();
cmbUnit.Value = specName;
}
private void ultraGMain_DoubleClick(object sender, EventArgs e)
{
UltraGridRow row = ultraGMain.ActiveRow;
if (row == null)
return;
//交货开始日期
//uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value;
//交货结束日期,改为最迟交货日期
uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value);
//交货量
uNCount.Value = row.Cells["DELVRY_QTY"].Value;
//保总长
uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value;
//收货单位编码
cmbUnit.Value = row.Cells["RECEIV_NO"].Value;
if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString()))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob);
if (dt.Rows.Count > 0)
{
utxtAddress.Text = dt.Rows[0][0].ToString();
}
}
//交货方式
//cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString();
//交货地点
cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString();
//地点,允许为空。
utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString();
//交货编码
string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString();
//估算重量(留空)
uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString();
}
private void ultraGMain_ClickCell(object sender, ClickCellEventArgs e)
{
UltraGridRow row = ultraGMain.ActiveRow;
if (row == null)
return;
//交货开始日期
//uDTDeliveryStart.Value = row.Cells["DELVRY_BDATE"].Value;
//交货结束日期,改为最迟交货日期
if (row.Cells["DELVRY_EDATE"].Value != null)
uDTDeliveryEnd.DateTime = Convert.ToDateTime(row.Cells["DELVRY_EDATE"].Value);
//交货量
uNCount.Value = row.Cells["DELVRY_QTY"].Value;
//保总长
uNLen.Value = row.Cells["ENSU_TOTL_LEN"].Value;
//收货单位编码
cmbUnit.Value = row.Cells["RECEIV_NO"].Value;
if (cmbUnit.Value != null && !string.IsNullOrEmpty(cmbUnit.Value.ToString()))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.GetBindUnitAddRess", new Object[] { cmbUnit.Value.ToString(), saleOrg }, this.ob);
if (dt.Rows.Count > 0)
{
utxtAddress.Text = dt.Rows[0][0].ToString();
}
}
//交货方式
//cmbDeliveryAddress.Text = row.Cells["DELVRY_TPE"].Value.ToString();
//交货地点
cmbDeliveryAddress.Text = row.Cells["DELVRY_ADDR"].Value.ToString();
//地点,允许为空。
utxtAddress.Text = row.Cells["RECEIV_ADDR"].Value.ToString();
//交货编码
string deliveryNo = row.Cells["DELIVERY_NO"].Value.ToString();
//估算重量(留空)
//uNEstimate.Value = row.Cells["WGT_ESTMT"].Value.ToString();
}
private UltraComboEditor cmbCydw = new UltraComboEditor();
private UltraComboEditor cmbWater = new UltraComboEditor();
private UltraComboEditor cmbCollege = new UltraComboEditor();
private UltraComboEditor cmbStationName = new UltraComboEditor();
private UltraComboEditor cmbYsfs = new UltraComboEditor();
private void InitTransitUi()
{
cmbCydw.Visible = false;
this.Controls.Add(cmbCydw);
cmbWater.Visible = false;
this.Controls.Add(cmbWater);
cmbCollege.Visible = false;
this.Controls.Add(cmbCollege);
cmbStationName.Visible = false;
this.Controls.Add(cmbStationName);
cmbYsfs.Visible = false;
this.Controls.Add(cmbYsfs);
ultraGrid2.DisplayLayout.Bands[0].Columns["CarrierUnit"].EditorComponent = cmbCydw;
ultraGrid2.DisplayLayout.Bands[0].Columns["CarrierUnit"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid2.DisplayLayout.Bands[0].Columns["PortNo"].EditorComponent = cmbWater;
ultraGrid2.DisplayLayout.Bands[0].Columns["PortNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid2.DisplayLayout.Bands[0].Columns["SpclLnNo"].EditorComponent = cmbCollege;//SPCL_LN_NM
ultraGrid2.DisplayLayout.Bands[0].Columns["SpclLnNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid2.DisplayLayout.Bands[0].Columns["StationNo"].EditorComponent = cmbStationName;
ultraGrid2.DisplayLayout.Bands[0].Columns["StationNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid2.DisplayLayout.Bands[0].Columns["TransitTyp"].EditorComponent = cmbYsfs;
ultraGrid2.DisplayLayout.Bands[0].Columns["TransitTyp"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid3.DisplayLayout.Bands[0].Columns["CarrierUnit"].EditorComponent = cmbCydw;
ultraGrid3.DisplayLayout.Bands[0].Columns["CarrierUnit"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid3.DisplayLayout.Bands[0].Columns["PortNo"].EditorComponent = cmbWater;
ultraGrid3.DisplayLayout.Bands[0].Columns["PortNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid3.DisplayLayout.Bands[0].Columns["SpclLnNo"].EditorComponent = cmbCollege;//SPCL_LN_NM
ultraGrid3.DisplayLayout.Bands[0].Columns["SpclLnNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid3.DisplayLayout.Bands[0].Columns["StationNo"].EditorComponent = cmbStationName;
ultraGrid3.DisplayLayout.Bands[0].Columns["StationNo"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
ultraGrid3.DisplayLayout.Bands[0].Columns["TransitTyp"].EditorComponent = cmbYsfs;
ultraGrid3.DisplayLayout.Bands[0].Columns["TransitTyp"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
bindCydw();
bindCmbWater();
bindCmbCollege();
bindCmbStation();
bindYsfs();
bindFactoryType();
EntityHelper.ShowGridCaption(ultraGrid2.DisplayLayout.Bands[0]);
ultraGrid2.DisplayLayout.Bands[0].Columns["AgencyFl2"].Header.Caption = "客户代办";
EntityHelper.ShowGridCaption(ultraGrid3.DisplayLayout.Bands[0]);
ultraGrid3.DisplayLayout.Bands[0].Columns["AgencyFl2"].Header.Caption = " TPCO代办";
}
///
/// 承运单位
///
private void bindCydw()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetCydw", null, this.ob);
//起始地数据源绑定
cmbCydw.DataSource = dt;
cmbCydw.DisplayMember = "BASENAME";
cmbCydw.ValueMember = "BASECODE";
ClsBaseInfo.SetComboItemHeight(cmbCydw);
}
///
/// 港口、码头
///
private void bindCmbWater()
{
//港口码头
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetPort", null, this.ob);
ComboBoxHelper.FillUlcmItemsAddEmpty(cmbWater, dt);
cmbWater.SelectedIndex = 0;
ClsBaseInfo.SetComboItemHeight(cmbWater);
}
///
/// 专用线
///
private void bindCmbCollege()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetSpclNo", null, this.ob);
ComboBoxHelper.FillUlcmItemsAddEmpty(cmbCollege, dt);
cmbCollege.SelectedIndex = 0;
ClsBaseInfo.SetComboItemHeight(cmbCollege);
}
///
/// 铁路到站
///
private void bindCmbStation()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.base.CoreSpeclLine.GetStation", null, this.ob);
ComboBoxHelper.FillUlcmItemsAddEmpty(cmbStationName, dt);
cmbStationName.SelectedIndex = 0;
ClsBaseInfo.SetComboItemHeight(cmbStationName);
}
///
/// 运输方式
///
private void bindYsfs()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetYsfs", null, this.ob);
cmbYsfs.DataSource = dt;
cmbYsfs.DisplayMember = "BASENAME";
cmbYsfs.ValueMember = "BASECODE";
cmbYsfs.SelectedIndex = 0;
ClsBaseInfo.SetComboItemHeight(cmbYsfs);
}
private void bindFactoryType()
{
DataTable dt = ClsBaseInfo.GetComBaseInfo("1105", ob);
dt.DefaultView.RowFilter = "BASECODE IN ('110501', '110502')";
cmbFactoryType.DataSource = dt;
cmbFactoryType.DisplayMember = "BASENAME";
cmbFactoryType.ValueMember = "BASECODE";
if (cmbFactoryType.Items.Count > 0)
{
cmbFactoryType.SelectedIndex = 0;
}
ClsBaseInfo.SetComboItemHeight(cmbFactoryType);
}
private void ultraToolbarsManager2_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "保存":
SaveTranSit();
break;
case "删除":
DeleteTransit();
break;
}
}
private void SaveTranSit()
{
ultraGrid2.UpdateData();
ultraGrid3.UpdateData();
if (ultraGMain.ActiveRow == null) return;
UltraGridRow[] rows = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'").ToArray();
UltraGridRow[] rows2 = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").ToArray();
if (rows.Length == 0 && rows2.Length == 0)
{
MessageUtil.ShowWarning("请选择一条运输线路!");
return;
}
UltraGridRow[] userValidRows = ultraGrid2.Rows.AsQueryable().Where("Validflag = '1'").ToArray();
UltraGridRow[] tpcoValidRows = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").ToArray();
int userValidCnt = userValidRows.Length;
int tpcoValidCnt = tpcoValidRows.Length;
if (ckbTpcoAgency.Checked == true)
{
if ((tpcoValidCnt + rows2.Length) == 0)
{
MessageUtil.ShowWarning("请至少维护一条两票制运输线路!");
return;
}
}
if (CheckStation() == false) return;
string transitType = ultraGMain.ActiveRow.GetValue("TRANSIT_TYP");
if ((userValidCnt + rows.Length) > 0)
{
if (userValidCnt > 0)
{
SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)userValidRows[0].ListObject;
if (deliveryTransit.TransitTyp.ToString() != transitType)
{
MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!");
userValidRows[0].Activate();
return;
}
}
else
{
SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)rows[0].ListObject;
if (deliveryTransit.TransitTyp.ToString() != transitType)
{
MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!");
rows[0].Activate();
return;
}
}
}
else if ((tpcoValidCnt + rows2.Length) > 0)
{
if (tpcoValidCnt > 0)
{
SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)tpcoValidRows[0].ListObject;
if (deliveryTransit.TransitTyp.ToString() != transitType)
{
MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!");
tpcoValidRows[0].Activate();
return;
}
}
else
{
SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)rows2[0].ListObject;
if (deliveryTransit.TransitTyp.ToString() != transitType)
{
MessageUtil.ShowWarning("第一条运输线路,必须和交货行中的出厂类型保持一致!");
rows2[0].Activate();
return;
}
}
}
if (ultraGMain.GetActiveRowValue("AGENCY_FL") == "0" && rows2.Length > 0)
{
MessageUtil.ShowWarning("当前交货行未勾选Tpco代办,不能新增两票制运输线路!");
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow row in rows)
{
SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity(row.ListObject);
bool result = CheckTransit(deliveryTransit, row, 2);
if (result == false) return;
string strJSON = JSONFormat.Format(deliveryTransit);
list.Add(strJSON);
}
ArrayList list2 = new ArrayList();
foreach (UltraGridRow row in rows2)
{
SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity(row.ListObject);
bool result = CheckTransit(deliveryTransit, row, 1);
if (result == false) return;
string strJSON = JSONFormat.Format(deliveryTransit);
list2.Add(strJSON);
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == DialogResult.No) return;
ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.setDeliveryTransit", new object[] { list, list2, this.FromForm }, ob);
MessageUtil.ShowTips("保存成功!");
if (this.FromForm == "2")
{
string seq = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString();
if (list.Count > 0)
{
if (dic.ContainsKey(seq))
{
chanVal = dic[seq] + "\n保存了买方运输线路";
dic[seq] = chanVal;
}
else
{
dic.Add(seq, chanVal);
}
}
if (list2.Count > 0)
{
if (dic.ContainsKey(seq))
{
chanVal = dic[seq] + "\n保存了TPCO代办运输线路";
dic[seq] = chanVal;
}
else
{
dic.Add(seq, chanVal);
}
}
}
SlmOrderDeliveryTransitEntity deliveryTransit2 = new SlmOrderDeliveryTransitEntity();
deliveryTransit2.OrdPk = ultraGMain.ActiveRow.GetValue("ORD_PK");
deliveryTransit2.OrdLnPk = ultraGMain.ActiveRow.GetValue("ORD_LN_PK");
deliveryTransit2.OrdLnDlyPk = ultraGMain.ActiveRow.GetValue("ORD_LN_DLY_PK");
QueryTransit(deliveryTransit2);
}
private bool CheckStation()
{
if (utxtAddress.ReadOnly == false)
{
int userValidAdrCnt = ultraGrid2.Rows.AsQueryable().Where("Validflag = '1'").Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count();
int userChkAdrCnt = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'")
.Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count();
int tpcoValidAdrCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'")
.Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count();
int tpcoChkAdrCnt = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'")
.Where("Destination = '" + utxtAddress.Text.Trim() + "'").Count();
if ((userValidAdrCnt + userChkAdrCnt + tpcoValidAdrCnt + tpcoChkAdrCnt) == 0)
{
MessageUtil.ShowWarning("请维护一条目的地为[" + utxtAddress.Text.Trim() + "]的运输线路!");
return false;
}
}
return true;
}
private bool CheckTransit(SlmOrderDeliveryTransitEntity deliveryTransit, UltraGridRow row, int tansitType)
{
UltraGridRow delivertyRow = ultraGMain.ActiveRow;
deliveryTransit.CreateName = UserInfo.GetUserName();
deliveryTransit.UpdateName = UserInfo.GetUserName();
deliveryTransit.DeleteName = UserInfo.GetUserName();
deliveryTransit.OrdPk = delivertyRow.GetValue("ORD_PK");
deliveryTransit.OrdLnPk = delivertyRow.GetValue("ORD_LN_PK");
deliveryTransit.OrdLnDlyPk = delivertyRow.GetValue("ORD_LN_DLY_PK");
if (deliveryTransit.TransitTyp.ToString() == "")
{
MessageUtil.ShowWarning("请选择运输方式!");
row.SetCellActive("TransitTyp");
return false;
}
switch (deliveryTransit.TransitTyp.ToString())
{
case "110501":
if (deliveryTransit.Destination.ToString() == "")
{
MessageUtil.ShowWarning("请输入目的地!");
row.SetCellActive("Destination");
return false;
}
break;
case "110502":
if (deliveryTransit.StationNo.ToString() == "")
{
MessageUtil.ShowWarning("请选择到站!");
row.SetCellActive("StationNo");
return false;
}
break;
case "110503":
if (deliveryTransit.PortNo.ToString() == "")
{
MessageUtil.ShowWarning("请选择港口/码头!");
row.SetCellActive("PortNo");
return false;
}
break;
case "110504":
if (deliveryTransit.Destination.ToString() == "")
{
MessageUtil.ShowWarning("请输入目的地!");
row.SetCellActive("Destination");
return false;
}
//if (deliveryTransit.SpclLnNo.ToString() == "")
//{
// MessageUtil.ShowWarning("请选择专用线!");火车
// row.SetCellActive("SpclLnNo");
// return false;
//}
break;
}
if (tansitType == 1)
{
deliveryTransit.AgencyFl = deliveryTransit.AgencyFl2 == true ? "1" : "0";
}
else
{
deliveryTransit.AgencyFl = deliveryTransit.AgencyFl2 == true ? "2" : "0";
}
return true;
}
private void DeleteTransit()
{
ultraGrid2.UpdateData();
ultraGrid3.UpdateData();
if (ultraGMain.ActiveRow == null) return;
UltraGridRow[] rows = ultraGrid2.Rows.AsQueryable().Where("Chk = 'True'").ToArray();
UltraGridRow[] rows2 = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").ToArray();
if (rows.Length == 0 && rows2.Length == 0)
{
MessageUtil.ShowWarning("请选择一条运输线路!");
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow row in rows)
{
SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity(row.ListObject);
deliveryTransit.DeleteName = UserInfo.GetUserName();
string strJSON = JSONFormat.Format(deliveryTransit);
list.Add(strJSON);
}
ArrayList list2 = new ArrayList();
foreach (UltraGridRow row in rows2)
{
SlmOrderDeliveryTransitEntity deliveryTransit = EntityHelper.CopyEntity(row.ListObject);
deliveryTransit.DeleteName = UserInfo.GetUserName();
string strJSON = JSONFormat.Format(deliveryTransit);
list2.Add(strJSON);
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认删除?") == DialogResult.No) return;
ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderDelivery.deleteDeliveryTransit", new object[] { list, list2, this.FromForm }, ob);
MessageUtil.ShowTips("删除成功!");
if (this.FromForm == "2")
{
string seq = ultraGMain.ActiveRow.Cells["DELIVERY_NO"].Value.ToString();
if (list.Count > 0)
{
if (dic.ContainsKey(seq))
{
chanVal = dic[seq] + "\n删除了买方运输线路";
dic[seq] = chanVal;
}
else
{
dic.Add(seq, chanVal);
}
}
if (list2.Count > 0)
{
if (dic.ContainsKey(seq))
{
chanVal = dic[seq] + "\n删除了TPCO代办运输线路";
dic[seq] = chanVal;
}
else
{
dic.Add(seq, chanVal);
}
}
}
SlmOrderDeliveryTransitEntity deliveryTransit2 = new SlmOrderDeliveryTransitEntity();
deliveryTransit2.OrdPk = ultraGMain.ActiveRow.GetValue("ORD_PK");
deliveryTransit2.OrdLnPk = ultraGMain.ActiveRow.GetValue("ORD_LN_PK");
deliveryTransit2.OrdLnDlyPk = ultraGMain.ActiveRow.GetValue("ORD_LN_DLY_PK");
QueryTransit(deliveryTransit2);
}
private void QueryTransit(SlmOrderDeliveryTransitEntity deliveryTransit)
{
if (this.fromForm == "2") //合同变更流程 在CoreOrderChangeManage文件中
{
deliveryTransit.AgencyFl = "2";
string strJSON = JSONFormat.Format(deliveryTransit);
List listSource = EntityHelper.GetData(
"com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryTransit", new object[] { strJSON }, ob);
deliveryTransitTpcoSrc.DataSource = listSource;
deliveryTransit.AgencyFl = "1";
strJSON = JSONFormat.Format(deliveryTransit);
List listSource2 = EntityHelper.GetData(
"com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryTransit", new object[] { strJSON }, ob);
deliveryTransitUserSrc.DataSource = listSource2;
foreach (UltraGridRow row in ultraGrid2.Rows)
{
ControlGrid2Edit(row);
SetColor(row);
}
foreach (UltraGridRow row in ultraGrid3.Rows)
{
ControlGrid3Edit(row);
SetColor(row);
}
}
else
{
deliveryTransit.AgencyFl = "2";
string strJSON = JSONFormat.Format(deliveryTransit);
List listSource = EntityHelper.GetData(
"com.steering.pss.sale.order.CoreOrderDelivery.getDeliveryTransit", new object[] { strJSON }, ob);
deliveryTransitTpcoSrc.DataSource = listSource;
deliveryTransit.AgencyFl = "1";
strJSON = JSONFormat.Format(deliveryTransit);
List listSource2 = EntityHelper.GetData(
"com.steering.pss.sale.order.CoreOrderDelivery.getDeliveryTransit", new object[] { strJSON }, ob);
deliveryTransitUserSrc.DataSource = listSource2;
foreach (UltraGridRow row in ultraGrid2.Rows)
{
ControlGrid2Edit(row);
SetColor(row);
}
foreach (UltraGridRow row in ultraGrid3.Rows)
{
ControlGrid3Edit(row);
SetColor(row);
}
}
}
private void ControlGrid2Edit(UltraGridRow row)
{
if (row.GetValue("Chk") == "True")
{
foreach (UltraGridCell cell in row.Cells)
{
cell.Activation = Activation.AllowEdit;
}
}
else
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.Key == "Chk") continue;
cell.Activation = Activation.ActivateOnly;
}
}
}
private void ControlGrid3Edit(UltraGridRow row)
{
if (row.GetValue("Chk") == "True")
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.Key == "AgencyFl2") continue;
cell.Activation = Activation.AllowEdit;
}
}
else
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.Key == "Chk") continue;
cell.Activation = Activation.ActivateOnly;
}
}
}
private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
{
SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Row.ListObject;
deliveryTransit.TransitTyp = ultraGMain.ActiveRow.GetValue("TRANSIT_TYP");
ControlGrid2Edit(e.Row);
}
private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e)
{
//ultraGrid3.UpdateData();
//SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Row.ListObject;
ControlGrid3Edit(e.Row);
}
private void ControlGridEditByTransitTyp(UltraGridCell cell)
{
UltraGridRow row = cell.Row;
if (row.GetValue("Chk") == "False") return;
switch (row.GetValue("TransitTyp"))
{
case "110501":
row.Cells["Destination"].Activation = Activation.AllowEdit;
row.Cells["StationNo"].Activation = Activation.ActivateOnly;//到站
row.Cells["PortNo"].Activation = Activation.ActivateOnly;//码头
row.Cells["SpclLnNo"].Activation = Activation.ActivateOnly;//专线
row.Cells["StationNo"].Value = "";
//row.Cells["PortNo"].Value = "";
//row.Cells["SpclLnNo"].Value = "";
break;
case "110502":
row.Cells["Destination"].Activation = Activation.AllowEdit;
row.Cells["StationNo"].Activation = Activation.AllowEdit;
row.Cells["PortNo"].Activation = Activation.ActivateOnly;
row.Cells["SpclLnNo"].Activation = Activation.AllowEdit;
//row.Cells["Destination"].Value = "";
row.Cells["PortNo"].Value = "";
//row.Cells["SpclLnNo"].Value = "";
break;
case "110503":
row.Cells["Destination"].Activation = Activation.AllowEdit;
row.Cells["StationNo"].Activation = Activation.ActivateOnly;
row.Cells["PortNo"].Activation = Activation.AllowEdit;
row.Cells["SpclLnNo"].Activation = Activation.ActivateOnly;
//row.Cells["Destination"].Value = "";
row.Cells["StationNo"].Value = "";
//row.Cells["SpclLnNo"].Value = "";
break;
case "110504":
row.Cells["Destination"].Activation = Activation.AllowEdit;
row.Cells["StationNo"].Activation = Activation.ActivateOnly;
row.Cells["PortNo"].Activation = Activation.ActivateOnly;
row.Cells["SpclLnNo"].Activation = Activation.AllowEdit;
//row.Cells["Destination"].Value = "";
//row.Cells["StationNo"].Value = "";
row.Cells["PortNo"].Value = "";
break;
}
}
private void SetColor(UltraGridRow row)
{
switch (row.GetValue("TransitTyp"))
{
case "110501":
row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
row.Cells["StationNo"].Appearance.BackColor = Color.White;
row.Cells["PortNo"].Appearance.BackColor = Color.White;
row.Cells["SpclLnNo"].Appearance.BackColor = Color.White;
break;
case "110502":
row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
row.Cells["StationNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
row.Cells["PortNo"].Appearance.BackColor = Color.White;
row.Cells["SpclLnNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
break;
case "110503":
row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
row.Cells["StationNo"].Appearance.BackColor = Color.White;
row.Cells["PortNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
row.Cells["SpclLnNo"].Appearance.BackColor = Color.White;
break;
case "110504":
row.Cells["Destination"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
row.Cells["StationNo"].Appearance.BackColor = Color.White;
row.Cells["PortNo"].Appearance.BackColor = Color.White;
row.Cells["SpclLnNo"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
break;
}
}
private void ultraGrid2_CellChange(object sender, CellEventArgs e)
{
ultraGrid2.UpdateData();
ControlGrid2Edit(e.Cell.Row);
ControlGridEditByTransitTyp(e.Cell);
SetColor(e.Cell.Row);
ultraGrid2.UpdateData();
}
private void ultraGrid3_CellChange(object sender, CellEventArgs e)
{
ultraGrid3.UpdateData();
SlmOrderDeliveryTransitEntity deliveryTransit = (SlmOrderDeliveryTransitEntity)e.Cell.Row.ListObject;
deliveryTransit.AgencyFl2 = true;
ControlGrid3Edit(e.Cell.Row);
ControlGridEditByTransitTyp(e.Cell);
SetColor(e.Cell.Row);
ultraGrid3.UpdateData();
}
private void ultraGrid2_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e)
{
if (ultraGMain.ActiveRow == null)
{
e.Cancel = true;
MessageUtil.ShowWarning("请先维护交货行!");
}
else
{
//-----------------2015-11-18-----------------------新增发货运输控制------------------
string ordDlyLnPk = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString();
SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(ordDlyLnPk);
if (sol == null)
{
e.Cancel = true;
MessageUtil.ShowWarning("您选择的交货行已不存在!");
return;
}
// 这里之所以比较中文 当初数据库没有存代码(只能将错就错)
if (sol.DelvryAddr.ToString() == "指定地点")
{
}
else
{
e.Cancel = true;
MessageUtil.ShowWarning("交货地点不是指定地点,不能维护一票制运输路线!");
}
}
}
private void ultraGrid3_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e)
{
if (ultraGMain.ActiveRow == null)
{
e.Cancel = true;
MessageUtil.ShowWarning("请先维护交货行!");
}
else
{
string ordDlyLnPk = ultraGMain.ActiveRow.Cells["ORD_LN_DLY_PK"].Value.ToString();
SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(ordDlyLnPk);
if (sol == null)
{
e.Cancel = true;
MessageUtil.ShowWarning("您选择的交货行已不存在!");
return;
}
if (sol.AgencyFl.ToString().Equals("1"))
{
if (sol.DelvryAddr.ToString() != "指定地点" && sol.DelvryAddr.ToString() != "TPCO库房" && sol.DelvryAddr.ToString() != "TPCO库房车板")
{
e.Cancel = true;
MessageUtil.ShowWarning("交货地点只有指定地点、TPCO库房、TPCO库房车板才可以维护二票制运输路线!");
}
}
else
{
e.Cancel = true;
MessageUtil.ShowWarning("您选择的交货行不是TPCO代办,不能新增两票制运输线路!");
return;
}
}
}
private void ckbTpcoAgency_BeforeCheckStateChanged(object sender, CancelEventArgs e)
{
//int validCnt = ultraGrid3.Rows.AsQueryable().Where("Validflag = '1'").Count();
//int chkCnt = ultraGrid3.Rows.AsQueryable().Where("Chk = 'True'").Count();
//if (ckbTpcoAgency.Checked == true)
//{
// if (chkCnt > 0)
// {
// e.Cancel = true;
// MessageUtil.ShowWarning("已选择Tpco代办(运输线路),不能取消Tpco代办!");
// }
// else if (validCnt > 0)
// {
// e.Cancel = true;
// MessageUtil.ShowWarning("系统已存在Tpco代办(运输线路),不能取消Tpco代办!");
// }
//}
}
///
/// 窗体关闭
///
///
///
private void frmOrderDelivery_FormClosing(object sender, FormClosingEventArgs e)
{
string err = CheckDlyTransit();
if (err != "")
{
MessageUtil.ShowWarning(err);
e.Cancel = true;
return;
}
if (e.CloseReason == CloseReason.UserClosing)
{
if (this.FromForm == "1")
{
if (ultraGMain.Rows.Count <= 0)
{
MessageUtil.ShowWarning("必须保留至少一行交货行!");
e.Cancel = true;
}
}
string errMsg = validSumWtNew();
if (isAffect == true)
errMsg = "";
if (errMsg != "")
{
if (MessageBox.Show(errMsg + "\n是否要退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
{
e.Cancel = true;
}
else
{
if (this.FromForm == "2")
{
if (isAdd == true || isDelete == true || isUpdate == true)
{
if (MessageBox.Show("检测到您做出了修改,若不生成变更单,将放弃修改,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
e.Cancel = true;
else
DeleteDlyChangeTable();
}
}
e.Cancel = false;
}
}
else
{
if (this.FromForm == "2")
{
if (isAdd == true || isDelete == true || isUpdate == true)
{
if (MessageBox.Show("检测到您做出了修改,若不生成变更单,将放弃修改,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
e.Cancel = true;
else
DeleteDlyChangeTable();
}
}
e.Cancel = false;
}
}
}
private String validSumWtNew()
{
//if (Convert.ToDouble(uNCount.Value) > Convert.ToDouble(numWt))
//{
// return "交货量不允许大于:" + numWt;
//}
decimal JHwt = 0;
foreach (UltraGridRow urow in ultraGMain.Rows)
{
if (!urow.Cells["DELVRY_QTY"].Value.ToString().Equals("") && urow.Cells["IS_ADD_CODE"].Value.ToString() != "1")
{
JHwt += Convert.ToDecimal(urow.Cells["DELVRY_QTY"].Value);
}
}
decimal sumWtx = (JHwt - Convert.ToDecimal(numWt));
if (sumWtx < 0)
{
return "交货总量不满足:" + numWt;
}
if (sumWtx > 0)
{
return "交货总量超过:" + numWt;
}
return "";
}
private void frmOrderDelivery_Shown(object sender, EventArgs e)
{
if (this.fromForm == "2")
{
ultraToolbarsManager1.Toolbars[0].Tools["doOk"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; //确认
}
else
{
ultraToolbarsManager1.Toolbars[0].Tools["GenerateCh"].InstanceProps.Visible = Infragistics.Win.DefaultableBoolean.False; //生成变更单
}
}
private void SetpanelDlyChangeValue()
{
labOrdQty.Text = this.NumWt;
decimal dty = ultraGMain.Rows.AsQueryable().Where(a => a.Cells["IS_ADD_CODE"].Value.ToString() != "1").Sum(a => Convert.ToDecimal(a.Cells["DELVRY_QTY"].Value));
decimal oty = Convert.ToDecimal(this.NumWt == "" ? "0" : this.NumWt);
labDlyQty.Text = dty.ToString();
if (dty < oty)
{
labTips.Text = "总交货量小于合同订单量";
labTips.Appearance.BackColor = Color.Red;
}
else if (dty == oty)
{
labTips.Text = "总交货量等于合同订单量";
labTips.Appearance.BackColor = Color.FromArgb(255, 255, 128);
}
else
{
labTips.Text = "总交货量大于合同订单量";
labTips.Appearance.BackColor = Color.Red;
}
}
//---------------------this.FromForm==2 来自合同变更管理的请求---------------------------------
bool isAffect = false; //是否影响合同的订单量
private void GenerateChangeTable()
{
if (isUpdate == false && isAdd == false && isDelete == false)
{
MessageUtil.ShowWarning("没有做出任何改变或者变更单已生成!");
return;
}
string err = CheckDlyTransit();
if (err != "")
{
MessageUtil.ShowWarning(err);
return;
}
string errMsg = validSumWtNew();
if (errMsg != "")
{
if (MessageUtil.ShowYesNoAndQuestion(errMsg + " 这将会影响合同行的订单量!\n您是否需要改变合同行的订单量?") == DialogResult.No)
return;
}
//是否满足交货期 不满足者不给生成变更单
if (ultraGMain.Rows.Count <= 0)
{
MessageUtil.ShowWarning("交货量将影响订单量,订单量不能为0!");
return;
}
isAffect = true;
chanVal = "";
foreach (var item in dic)
{
chanVal = chanVal + item.Value.ToString() + "\r\n";
}
MessageBox.Show(chanVal, "变更内容", MessageBoxButtons.OK, MessageBoxIcon.Information);
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.orderchange.CoreOrderChangeManage";
ccp.MethodName = "castWell";
ccp.ServerParams = new object[] { this.OrderNo };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1) //直接报错
{
MessageBox.Show(ccp.ReturnInfo + "交货期不满足,不能生成变更单!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
doQuery();
return;
}
}
//查询状态表是否满足
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getDeliveryPrdcycleMeet", new object[] { this.OrderNo }, this.ob);
List list = new List();
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
list.Add(dt.Rows[i][0].ToString());
}
if (!list.Contains("W") && !list.Contains("F") && !list.Contains("") && list.Contains("S"))
{
//不做处理 生成变更单
}
else
{
MessageUtil.ShowWarning("交货期不满足,不能生成变更单!");
doQuery();
return;
}
}
else
{
MessageUtil.ShowWarning("交货期不满足,不能生成变更单!");
doQuery();
return;
}
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 3;
dlg.ReviewSatus = "合同变更说明";
dlg.ShowDialog();
if (dlg.DialogResult != DialogResult.OK)
return;
string reviewMemo = dlg.ReviewMemo;
ChgeSlmApplyMEntity csm = new ChgeSlmApplyMEntity();
csm.OrdPk = this.ManageNo;
csm.OrdLnPk = this.OrderNo;
csm.OrderNo = this.OrdNo;
csm.OrderSeq = this.OrdSeq;
csm.ChgeRsn = reviewMemo;
csm.ChgeType = "交货行变更";
csm.UnitCode = UserInfo.GetDeptid();
csm.UnitDesc = UserInfo.GetDepartment();
csm.DepartmentCode = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), this.ob);
csm.DepartmentDesc = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob);
csm.Chger = UserInfo.GetUserName();
csm.ChgeVal = chanVal;
csm.CreateName = UserInfo.GetUserName();
string json = JSONFormat.Format(csm);
try
{
int count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.generateSlmApply", new object[] { json }, this.ob);
if (count > 0)
{
MessageUtil.ShowTips("变更单生成成功!");
isAdd = false;
isUpdate = false;
isDelete = false;
this.Close();
}
}
catch (MESException e)
{
MessageUtil.ShowWarning(e.ExceptionInfo);
return;
}
}
private void DeleteDlyChangeTable()
{
foreach (UltraGridRow row in ultraGMain.Rows)
{
string deliveryNo = row.Cells["ORD_LN_DLY_PK"].Value.ToString();
clearTransit(deliveryNo);
DeleteDly(deliveryNo);
}
}
private void DeleteDesignMscSts(string ordLnDlyPk)
{
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "deleteDesignMscSts";
ccp.ServerParams = new object[] { ordLnDlyPk };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
}
}
private void DeleteDly(string deliveryNo)
{
ArrayList parms = new ArrayList();
parms.Add(deliveryNo);
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderDelivery";
ccp.MethodName = "deleteDelivery";
ccp.ServerParams = new object[] { parms, UserInfo.GetUserName(), this.ManageNo, this.FromForm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
//MessageUtil.ShowTips("删除成功!");
}
}
///
/// 获取变更表下合同行的最大交货行PK值
///
///
private string GetMaxOrdLnPk()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getMaxOrdLnDlyPkCh", new object[] { this.OrderNo }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0][0].ToString();
}
return "";
}
///
/// 是否存在指定合同行的交货期变更单并取得其状态
///
///
///
private string GetExistsApplyNo(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.getExistsApplyNo", new object[] { ordLnPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0][0].ToString();
}
return "";
}
///
/// 删除已存在的变更单
///
///
///
private int DeleteApplyNo(string ordLnPk)
{
int count = 0;
count = ServerHelper.SetData("com.steering.pss.sale.order.orderchange.CoreOrderChangeManage.deleteApplyNo", new object[] { ordLnPk }, this.ob);
return count;
}
private void ckbTpcoAgency_CheckedChanged(object sender, EventArgs e)
{
if (ckbTpcoAgency.Checked)
{
if (cmbDeliveryAddress.Value != null && cmbDeliveryAddress.Value.ToString() == "110601")
{
chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
chkExtra.Enabled = true;
chkExtra.Checked = true;
}
}
else
{
if (cmbDeliveryAddress.Value != null && cmbDeliveryAddress.Value.ToString() == "110601")
{
chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
chkExtra.Enabled = true;
}
else
{
chkExtra.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.False;
chkExtra.Enabled = false;
chkExtra.Checked = false;
}
}
}
private void utxtAddress_ValueChanged(object sender, EventArgs e)
{
lblAddress.Text = utxtAddress.Text;
}
///
/// 获取交货行实体类
///
/// 交货行PK值
///
private SlmOrderLineDeliveryEntity GetOrderDlyLine(string ordDlyLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrderDlyLine", new object[] { ordDlyLnPk, this.FromForm }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
SlmOrderLineDeliveryEntity sol = new SlmOrderLineDeliveryEntity();
sol.OrdPk = dt.Rows[0]["ORD_PK"].ToString();
sol.OrdLnPk = dt.Rows[0]["ORD_LN_PK"].ToString();
sol.OrdLnDlyPk = dt.Rows[0]["ORD_LN_DLY_PK"].ToString();
sol.DeliveryNo = dt.Rows[0]["DELIVERY_NO"].ToString();
sol.DelvryQty = dt.Rows[0]["DELVRY_QTY"].ToString();
sol.OrderUnit = dt.Rows[0]["ORDER_UNIT"].ToString();
sol.WgtEstmt = dt.Rows[0]["WGT_ESTMT"].ToString();
sol.EnsuTotlLen = dt.Rows[0]["ENSU_TOTL_LEN"].ToString();
sol.ReceivNo = dt.Rows[0]["RECEIV_NO"].ToString();
sol.ReceivNm = dt.Rows[0]["RECEIV_NM"].ToString();
sol.DelvryAddr = dt.Rows[0]["DELVRY_ADDR"].ToString();
sol.AgencyFl = dt.Rows[0]["AGENCY_FL"].ToString();
sol.ReceivAddr = dt.Rows[0]["RECEIV_ADDR"].ToString();
sol.TransitTyp = dt.Rows[0]["TRANSIT_TYP"].ToString();
sol.ExtraFlag = dt.Rows[0]["EXTRA_FLAG"].ToString();
return sol;
}
else
{
return null;
}
}
///
/// 获取交货行的运输线路
///
///
///
private List GetOrderDlyTransit(string ordDlyLnPk)
{
List list = new List();
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderDelivery.getOrderDlyLineTransit", new object[] { ordDlyLnPk, this.FromForm }, this.ob);
foreach (DataRow dr in dt.Rows)
{
if (!list.Contains(dr["AGENCY_FL"].ToString()))
{
list.Add(dr["AGENCY_FL"].ToString());
}
}
return list;
}
///
/// 验证交货行的运输路线的合理性
///
///
private string CheckDlyTransit()
{
ultraGMain.UpdateData();
string errMsg = "";
foreach (UltraGridRow uRow in ultraGMain.Rows)
{
SlmOrderLineDeliveryEntity sol = GetOrderDlyLine(uRow.Cells["ORD_LN_DLY_PK"].Value.ToString());
if (sol == null)
{
errMsg = "您确认的数据中存在无效数据,请刷新数据确保数据无误!";
return errMsg;
}
List list = GetOrderDlyTransit(sol.OrdLnDlyPk.ToString());
if (sol.DelvryAddr.ToString() == "TPCO库房" || sol.DelvryAddr.ToString() == "TPCO库房车板")
{
if (sol.AgencyFl.ToString() == "1")
{
if (!list.Contains("1"))
{
errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且勾选了TPCO代办的必须维护两票制运输路线!";
return errMsg;
}
}
}
else if (sol.DelvryAddr.ToString() == "指定地点")
{
if (sol.AgencyFl.ToString() == "1")
{
if (!list.Contains("0") && !list.Contains("2") && !list.Contains("1"))
{
errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且勾选了TPCO代办的必须同时维护一票制运输路线和两票制运输路线!";
return errMsg;
}
}
else
{
if (!list.Contains("0") && !list.Contains("2"))
{
errMsg = "交货地点是" + sol.DelvryAddr.ToString() + "且无TPCO代办的必须维护一票制运输路线";
return errMsg;
}
}
}
}
return errMsg;
}
}
}