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.CA06;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Control;
using Infragistics.Win.UltraWinGrid;
using Core.Mes.Client.Comm.Format;
using System.Collections;
using Core.Mes.Client.Comm.Tool;
using Core.Mes.Client.Comm;
using Infragistics.Win.UltraWinEditors;
using System.Reflection;
using Core.StlMes.Client.SaleOrder.Dialog;
namespace Core.StlMes.Client.SaleOrder.ReviewForm
{
public partial class frmOrderReports : Core.StlMes.Client.Sale.Common.FrmStyleBase.FrmUIBase
{
public frmOrderReports()
{
InitializeComponent();
this.IsLoadUserView = true;
}
private string BALNCE_PRICE_STS = "BALNCE_PRICE_STS";
private string BALNCE_PRICE_ORG_STS = "BALNCE_PRICE_ORG_STS";
///
/// 用于查询利库数据的参数
///
ArrayList listLiku = new ArrayList();
///
/// 重写基类toolBar方法
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "doQuery":
doQuery();
break;
case "doReport":
doReport();
break;
case "doClearReport":
doClearReport();
break;
case "Export":
ExportData();
break;
case "LiKu":
ReportLiKu();
break;
case "CheckNLK":
CheckNLK();
break;
case "CheckLK":
CheckLK();
break;
case "UpdatePresentStatus":
UpdatePresentStatus();
break;
case "doClose":
this.Close();
break;
}
}
private void UpdatePresentStatus()
{
ultraGridReport.UpdateData();
UltraGridRow[] dr = GridHelper.GetRowsWithKey(ultraGridReport, new string[] { "CHK" }, new string[] { "True" });
if (dr.Length <= 0)
{
MessageBox.Show("请先选择交货行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//这里只是先在界面判断一下状态,后台会实时查询状态的。
foreach (UltraGridRow urow in ultraGridReport.Rows)
{
if (Convert.ToBoolean(urow.Cells["CHK"].Value))
{
if (urow.Cells["PORDERSTATUS"].Value.ToString() != "未提报")
{
MessageBox.Show("您选择的记录存在已经被处理的状态,不能修改提报状态,\r\n只有[未提报]可以修改提报状态!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
urow.Activate();
return;
}
if (urow.Cells["ORDERFROMCODE"].Value.ToString() != "100102")
{
MessageBox.Show("只有[国际贸易部]可以修改提报状态!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
urow.Activate();
return;
}
}
}
if (MessageBox.Show("是否确认修改提报状态选择的记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow urow in ultraGridReport.Rows)
{
if (Convert.ToBoolean(urow.Cells["CHK"].Value))
{
ArrayList parm = new ArrayList();
string ordLnDlyPk = urow.Cells["ORD_LN_DLY_PK"].Value.ToString();
parm.Add(ordLnDlyPk);
parm.Add(urow.Cells["PRESENT_STATUS"].Value.ToString());
list.Add(parm);
}
}
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReport";
ccp.MethodName = "UpdatePresentStatus";
ccp.ServerParams = new Object[] { list };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageBox.Show(ccp.ReturnObject.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
}
MessageBox.Show("修改完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
doQuery();
}
///
/// 评审不利库的原因
///
private void CheckNLK()
{
ultraGridReport.UpdateData();
UltraGridRow ugr = ultraGridReport.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择您要审核不利库愿意的交货行!");
return;
}
if (ugr.Cells["ORDER_LN_STATUS_NM"].Value.ToString() == "提报完毕")
{
MessageUtil.ShowWarning("您选择的记录已经提报完毕,此功能只针对“生效状态”的交货行!");
ugr.Activate();
return;
}
string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
string str = "合同号:" + ugr.Cells["ORDER_NO"].Value.ToString() + "/" + ugr.Cells["ORDER_SEQ"].Value.ToString() + " 交货行号:" + ugr.Cells["DELIVERY_NO"].Value.ToString();
DataTable lkDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryLKFlag", new object[] { ordLnDlyPk }, this.ob);
if (lkDt != null && lkDt.Rows.Count > 0)
{
string lkFlag = lkDt.Rows[0]["IS_LIKU"].ToString2();
string lkCheck = lkDt.Rows[0]["NLK_CHECK"].ToString2();
if (lkFlag == "1")
{
if (lkCheck != "L")
{
MessageUtil.ShowWarning("您选择的交货行没有利库原因可审核!");
return;
}
}
else
{
MessageUtil.ShowWarning("您选择的交货行没有利库原因可审核!");
return;
}
}
else
{
MessageUtil.ShowWarning("交货行已不存在,请刷新数据!");
return;
}
FrmCheckNLK fcn = new FrmCheckNLK(ordLnDlyPk, this.ob);
fcn.TipStr = str;
fcn.ShowDialog();
}
///
/// 对已经利库的数据进行评审
///
private void CheckLK()
{
ultraGridReport.UpdateData();
UltraGridRow ugr = ultraGridReport.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择您要利库的交货行!");
return;
}
if (ugr.Cells["ORDER_LN_STATUS_NM"].Value.ToString() == "提报完毕")
{
MessageUtil.ShowWarning("您选择的记录已经提报完毕,此功能只能对“生效状态”的交货行利库!");
ugr.Activate();
return;
}
string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
string saleOrg = ugr.Cells["ORDERFROMCODE"].Value.ToString();
if (!IsNeedCheckLK(ordLnDlyPk))
{
MessageUtil.ShowWarning("您选择的交货行没有利库记录需要审核!");
ugr.Activate();
return;
}
FrmReportLiKu frl = new FrmReportLiKu(this.ob, "2");
frl.DataArr = this.ValidDataPurviewIds;
frl.ListParm = listLiku;
frl.OrdSaleOrg = saleOrg;
frl.OrdLnDlyPk = ordLnDlyPk;
frl.FormClosingQueryHandle += frl_FormClosingQueryHandle;
frl.WindowState = FormWindowState.Maximized;
frl.StartPosition = FormStartPosition.CenterScreen;
frl.ShowDialog();
}
///
/// 导出
///
private void ExportData()
{
GridHelper.ulGridToExcel(ultraGridReport, "提报数据");
}
///
/// 取消提报
///
private void doClearReport()
{
ultraGridReport.UpdateData();
UltraGridRow[] dr = GridHelper.GetRowsWithKey(ultraGridReport, new string[] { "CHK" }, new string[] { "True" });
if (dr.Length <= 0)
{
MessageBox.Show("请先选择交货行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//这里只是先在界面判断一下状态,后台会实时查询状态的。
foreach (UltraGridRow urow in ultraGridReport.Rows)
{
if (Convert.ToBoolean(urow.Cells["CHK"].Value))
{
if (urow.Cells["PORDERSTATUS"].Value.ToString() == "未提报")
{
MessageBox.Show("您选择的记录还没有提报,不能取消提报!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
urow.Activate();
return;
}
else if (urow.Cells["PORDERSTATUS"].Value.ToString() != "待接收")
{
MessageBox.Show("您选择的记录存在已经被处理的状态,不能取消提报,\r\n只有[待接收]可以取消提报!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
urow.Activate();
return;
}
}
}
if (MessageBox.Show("是否确认取消提报选择的记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow urow in ultraGridReport.Rows)
{
if (Convert.ToBoolean(urow.Cells["CHK"].Value))
{
ArrayList parm = new ArrayList();
string ordPk = urow.Cells["ORD_PK"].Value.ToString();
string ordLnPk = urow.Cells["ORD_LN_PK"].Value.ToString();
string ordLnDlyPk = urow.Cells["ORD_LN_DLY_PK"].Value.ToString();
parm.Add(ordPk);
parm.Add(ordLnPk);
parm.Add(ordLnDlyPk);
parm.Add(UserInfo.GetUserName());
list.Add(parm);
}
}
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReport";
ccp.MethodName = "doClearReport";
ccp.ServerParams = new Object[] { list };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageBox.Show(ccp.ReturnObject.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
list = new ArrayList();
foreach (UltraGridRow urow in ultraGridReport.Rows)
{
if (Convert.ToBoolean(urow.Cells["CHK"].Value))
{
if (urow.Cells["ORDERFROMCODE"].Value.ToString() != "100102")
{
continue;
}
ArrayList parm = new ArrayList();
string ordLnDlyPk = urow.Cells["ORD_LN_DLY_PK"].Value.ToString();
parm.Add(ordLnDlyPk);
parm.Add(urow.Cells["PRESENT_STATUS"].Value.ToString());
list.Add(parm);
}
}
if (list.Count > 0)
{
ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReport";
ccp.MethodName = "UpdatePresentStatus";
ccp.ServerParams = new Object[] { list };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
}
}
MessageBox.Show("取消提报完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
doQuery();
}
///
/// 获取当前选中交货行数据库中的状态
///
///
///
///
///
private string GetDeliverySts(string ordPk, string ordLnPk, string ordLnDlyPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.GetDeliverySts", new Object[] { ordPk, ordLnPk, ordLnDlyPk }, this.ob);
return dt.Rows[0]["DELIVERY_STATUS"].ToString();
}
///
/// 提报
///
private void doReport()
{
ultraGridReport.UpdateData();
ArrayList craft = new ArrayList();
UltraGridRow[] dr = GridHelper.GetRowsWithKey(ultraGridReport, new string[] { "CHK" }, new string[] { "True" });
if (dr.Length <= 0)
{
MessageBox.Show("请先选择交货行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
DataTable timeDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getServerTime", null, this.ob);
int mon = Convert.ToInt16(timeDt.Rows[0][0].ToString().Substring(5, 2));
int year = Convert.ToDateTime(timeDt.Rows[0][0].ToString()).Year;
ArrayList list = new ArrayList();
UltraGridRow[] rows = ultraGridReport.Rows.AsQueryable().Where(a => a.Cells["CHK"].Value.ToString().ToUpper() == "TRUE").ToArray();
foreach (UltraGridRow urow in rows)
{
string ordStr = "合同号:" + urow.Cells["ORDER_NO"].Value.ToString() + "/" + urow.Cells["ORDER_SEQ"].Value.ToString() + " 交货行号:" + urow.Cells["DELIVERY_NO"].Value.ToString();
if (urow.Cells["ORDER_LN_STATUS_NM"].Value.ToString() == "提报完毕")
{
MessageUtil.ShowWarning(ordStr + "已经提报完毕,不必重复提报!");
urow.Activate();
return;
}
//合同行被锁定的 交货行不能提报!
DataTable lockDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getOrderLineLock", new object[] { urow.Cells["ORD_LN_PK"].Value.ToString() }, this.ob);
if (lockDt != null && lockDt.Rows.Count > 0)
{
if (lockDt.Rows[0][0].ToString() == "1")
{
MessageUtil.ShowWarning(ordStr + "所在的合同行已被锁定,合同处于合同变更中,无法提报!");
return;
}
}
else
{
MessageUtil.ShowWarning(ordStr + "所在的合同行已不存在!");
return;
}
//合同行提报锁定的!
DataTable lockDt1 = ServerHelper.GetData("com.steering.pss.sale.order.DAL.SlmOrderLineLockDAL.getOrderLineLock", new object[] { urow.Cells["ORD_LN_PK"].Value.ToString() }, this.ob);
if (lockDt1 != null && lockDt1.Rows.Count > 0)
{
if (lockDt1.Rows[0][0].ToString() == "1")
{
MessageUtil.ShowWarning(ordStr + "该合同行提报排产被锁定请重新审批合同价格!不允许提报排产! ");
return;
}
}
string ordPk = urow.Cells["ORD_PK"].Value.ToString();
//现货合同不能提报
string ordType = "";
DataTable ordTypDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getOrderType", new object[] { ordPk }, this.ob);
if (ordTypDt != null && ordTypDt.Rows.Count > 0)
{
ordType = ordTypDt.Rows[0][0].ToString();
}
if (ordType.Equals("120102") || ordType.Equals("120105"))
{
MessageUtil.ShowWarning(ordStr + "的合同类型是现货合同或者贸易合同,无法提报!");
urow.Activate();
return;
}
else if (ordType.Equals("120103")) //研发合同 所有生效方可提报
{
DataTable yfDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getAllEffect", new object[] { ordPk }, this.ob);
if(yfDt!=null && yfDt.Rows.Count>0)
{
MessageUtil.ShowWarning(ordStr + "所在的合同下,存在尚未生效的合同行,只有整个合同都生效了,方可提报!");
urow.Activate();
return;
}
}
if (urow.Cells["REVIEW_ASK_END"].Value == null || urow.Cells["REVIEW_ASK_END"].Value.ToString() == "")
{
MessageUtil.ShowWarning(ordStr + "轧制月份为空,不能提报,可以尝试退回交货期进行交货期分析\n或者进行交货行变更");
return;
}
var DateSum = new List();
for (var date = Convert.ToDateTime(timeDt.Rows[0][0].ToString()); date < Convert.ToDateTime(timeDt.Rows[0][0].ToString()).AddMonths(12); date = date.AddMonths(1))
{
DateSum.Add(date.ToString("yyyy-MM"));
}
if (!DateSum.Contains(urow.Cells["REVIEW_ASK_END"].Value.ToString()))
{
MessageUtil.ShowWarning(ordStr + "的记录轧制月份不在(" + string.Join(",", DateSum) + ")月,不能提报!");
urow.Activate();
return;
}
//if (mon < 11)
//{
// if (Convert.ToInt16(urow.Cells["REVIEW_ASK_END"].Value.ToString().Substring(5, 2)) < mon
// || Convert.ToInt16(urow.Cells["REVIEW_ASK_END"].Value.ToString().Substring(5, 2)) > mon + 2)
// {
// int mon1 = mon + 1;
// int mon2 = mon + 2;
// MessageUtil.ShowWarning(ordStr + "的记录轧制月份不在(" + mon + "," + mon1 + "," + mon2 + ")月,不能提报!");
// urow.Activate();
// return;
// }
//}
//else
//{
// int cmon = Convert.ToDateTime(urow.Cells["REVIEW_ASK_END"].Value.ToString()).Month; //10 1月
// int cyear = Convert.ToDateTime(urow.Cells["REVIEW_ASK_END"].Value.ToString()).Year; // 2015 2016年
// DateTime time = new DateTime(cyear, cmon, 1);
// DateTime time1 = new DateTime(year, mon, 1); //本月
// DateTime time2 = new DateTime(); //下下月
// int cmon1 = mon + 1;
// int cmon2 = mon + 2;
// string cmon1str = "";
// string cmon2str = "";
// if (cmon1 > 12)
// {
// cmon1str = (year + 1).ToString() + "年" + (cmon1 - 12).ToString();
// }
// else
// {
// cmon1str = (year).ToString() + "年" + (cmon1).ToString();
// }
// if (cmon2 > 12)
// {
// cmon2str = (year + 1).ToString() + "年" + (cmon2 - 12).ToString();
// time2 = new DateTime(year + 1, cmon2 - 12, 1);
// }
// else
// {
// cmon2str = (year).ToString() + "年" + (cmon2).ToString();
// time2 = new DateTime(year, cmon2, 1);
// }
// if (time < time1 || time > time2)
// {
// MessageUtil.ShowWarning(ordStr + "的记录轧制月份不在(" + year.ToString() + "年" + mon + "," + cmon1str + "," + cmon2str + ")月,不能提报!");
// urow.Activate();
// return;
// }
//}
string ordLnDlyPk = urow.Cells["ORD_LN_DLY_PK"].Value.ToString();
string ordLnPk = urow.Cells["ORD_LN_PK"].Value.ToString();
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getPrdcrIsNull", new object[] { ordLnPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
MessageUtil.ShowWarning(ordStr + "的合同没有维护监制要求!");
urow.Activate();
return;
}
DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getPrdcrNotNull", new object[] { ordLnPk }, this.ob);
if (dt1 != null && dt1.Rows.Count > 0)
{
MessageUtil.ShowWarning(ordStr + "的合同,维护的监制没有生效!");
urow.Activate();
return;
}
if (urow.Cells["ORDERFROMCODE"].Value.ToString() == "100102" && urow.Cells["PRESENT_STATUS"].Value.ToString() != "可提报")
{
MessageUtil.ShowWarning(ordStr + "的合同为不可提报状态,不能提报!");
urow.Activate();
return;
}
listLiku = new ArrayList();
listLiku.Add(urow.Cells["PRODUCCODE"].Value.ToString());
listLiku.Add(urow.Cells["STEELCODE"].Value.ToString());
listLiku.Add(urow.Cells["SPEC_CODE"].Value.ToString());
listLiku.Add(urow.Cells["MODEL_CODE"].Value.ToString());
listLiku.Add(urow.Cells["STD_STYLE_DESC"].Value.ToString());
listLiku.Add(urow.Cells["STD_STYLE_DESC"].Value.ToString());
//判断是否已经选择是否利库
bool isSelected = false;
DataTable lkDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryLKFlag", new object[] { ordLnDlyPk }, this.ob);
if (lkDt != null && lkDt.Rows.Count > 0)
{
string lkFlag = lkDt.Rows[0]["IS_LIKU"].ToString2();
string lkCheck = lkDt.Rows[0]["NLK_CHECK"].ToString2();
if (lkFlag == "1" && this.CustomInfo.Equals("120504"))
{
isSelected = true;
if (lkCheck == "L")
{
MessageUtil.ShowWarning(ordStr + "请先审核放弃利库的原因!");
return;
}
}
}
else
{
MessageUtil.ShowWarning(ordStr + "交货行已不存在,请刷新数据!");
return;
}
//是否有成品库存
bool hasMat = false;
if (!isSelected && this.CustomInfo.Equals("120504"))
{
string saleOrg = urow.Cells["ORDERFROMCODE"].Value.ToString();
//是否有利库的资源 然后判断交货行有没有利库
DataTable matDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryIsExistsMat", new object[] { listLiku, saleOrg, urow.Cells["SUPPLY_UNIT_CODE"].Value.ToString() }, this.ob);
if (matDt != null && matDt.Rows.Count > 0)
{
if (Convert.ToInt16(matDt.Rows[0][0].ToString3()) > 0)
{
hasMat = true;
}
}
DataTable liKuDt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryIsLiKu", new object[] { ordLnDlyPk }, this.ob);
if (liKuDt != null && liKuDt.Rows.Count > 0)
{
if (hasMat)
{
if (Convert.ToDecimal(liKuDt.Rows[0][0].ToString3()) < Convert.ToDecimal(urow.Cells["ORDERWEIGHT"].Value))
{
string str = ordStr + " 存在可利库的成品信息!\n请问是否利库?";
if (MessageUtil.ShowYesNoAndQuestion(str) == DialogResult.No)
{
//更新交货行状态 同时保存原因
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewSatus = "请输入有库存而不利库的原因";
dlg.ReviewFlag = 4;
dlg.ShowDialog();
if (dlg.DialogResult == DialogResult.OK)
{
string reviewMemo = dlg.ReviewMemo;
int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderReport.updateLKFlag", new object[] { ordLnDlyPk, reviewMemo }, this.ob);
if (count > 0)
{
MessageUtil.ShowTips("请审核不利库的原因!");
return;
}
}
return;
}
else
{
MessageUtil.ShowTips("请点击利库按钮进行利库操作!");
}
return;
}
}
}
}
//判断是否利库了 但利库数据尚未审核的
if (IsNeedCheckLK(ordLnDlyPk) && this.CustomInfo.Equals("120504"))
{
MessageUtil.ShowWarning(ordStr + "存在没有审核的利库数据,请审核!");
return;
}
DataRow row = null;
DataRow[] dRow = SLM_ORDER_LINE_DELIVERY.Select("ORD_LN_DLY_PK = '" + ordLnDlyPk + "'");
row = dRow[0];
//for (int i = 0; i < SLM_ORDER_LINE_DELIVERY.Rows.Count; i++)
//{
// if (ordLnDlyPk.Equals(SLM_ORDER_LINE_DELIVERY.Rows[i]["ORD_LN_DLY_PK"].ToString()))
// {
// row = SLM_ORDER_LINE_DELIVERY.Rows[i];
// break;
// }
//}
ReportOrderLineDelivery reportModel = new ReportOrderLineDelivery();
reportModel.OrdPk = row["ORD_PK"].ToString();
reportModel.OrdLnPk = row["ORD_LN_PK"].ToString();
// ORD_LN_DLY_PK VARCHAR2(40) NOT NULL,
reportModel.OrdLnDlyPk = row["ORD_LN_DLY_PK"].ToString();
// ORDER_NO VARCHAR2(20),
reportModel.OrderNo = row["ORDER_NO"].ToString();
// ORDER_SEQ VARCHAR2(3),
reportModel.OrderSeq = row["ORDER_SEQ"].ToString();
// DELIVERY_NO VARCHAR2(3),
reportModel.DeliveryNo = row["DELIVERY_NO"].ToString();
// PRD_CLS VARCHAR2(20),
reportModel.PrdCls = row["PRD_CLS"].ToString();
// PRODUCCODE VARCHAR2(20),
reportModel.Produccode = row["PRODUCCODE"].ToString();
// PRODUCNAME VARCHAR2(100),
reportModel.Producname = row["PRODUCNAME"].ToString();
// STD_CODE VARCHAR2(20),
reportModel.StdCode = row["STD_CODE"].ToString();
// STD_NAME VARCHAR2(200),
reportModel.StdName = row["STD_NAME"].ToString();
// STEELCODE VARCHAR2(10),
reportModel.Steelcode = row["STEELCODE"].ToString();
// STEELNAME VARCHAR2(100),
reportModel.Steelname = row["STEELNAME"].ToString();
// SPEC_CODE VARCHAR2(20),
reportModel.SpecCode = row["SPEC_CODE"].ToString();
string specCode = row["SPEC_CODE"].ToString();
// SPEC_NAME VARCHAR2(100),
reportModel.SpecName = row["SPEC_NAME"].ToString();
// OUTDIAMETER外径
reportModel.Outdiameter = row["OUTDIAMETER"].ToString();
// WALLTHICK NUMBER(10,3),
reportModel.Wallthick = row["WALLTHICK"].ToString();
// LEN_NO VARCHAR2(20),
reportModel.LenNo = row["LEN_NO"].ToString();
// LENGTHMAX NUMBER(10,3),
reportModel.Lengthmax = row["LENGTHMAX"].ToString();
// LENGTHMIN NUMBER(10,3),
reportModel.Lengthmin = row["LENGTHMIN"].ToString();
// LENGTHDISC VARCHAR2(100),
reportModel.Lengthdisc = row["LENGTHDISC"].ToString();
// MODEL_CODE VARCHAR2(20),
reportModel.ModelCode = row["MODEL_CODE"].ToString();
// MODEL_DESC VARCHAR2(100),
reportModel.ModelDesc = row["MODEL_DESC"].ToString();
// ORDER_UNIT VARCHAR2(20),
reportModel.OrderUnit = row["ORDER_UNIT"].ToString();
string ordUnit = row["ORDER_UNIT"].ToString();
string elimNum = ""; //脱单量
string elimWgt = "";
string elimLen = "";
string chargeNum = ""; //利库量
string chargeWgt = "";
string chargeLen = "";
decimal ordQty = Convert.ToDecimal(row["DELVRY_QTY"].ToString()); //交货行的交货量
// reportModel.OrderQty = row["DELVRY_QTY"].ToString(); 以前的提报量
//reportModel.Orderweight = row["ORDERWEIGHT"].ToString(); 估算重量
//reportModel.Totlength = row["TOTLENGTH"].ToString(); 保总长
decimal repQty = 0; //提报量 订单量-利库量+脱单量
decimal estWgt = 0; //估算重量
decimal sureLen = 0; //保总长
if ("120504".Equals(this.CustomInfo.ToString()))
{
//新增 利库量 脱单量的处理逻辑
DataTable dt2 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getProcessOrderInfo", new object[] { row["ORD_LN_DLY_PK"].ToString() }, ob);
if (dt2 != null && dt2.Rows.Count > 0)
{
elimNum = dt2.Rows[0]["ELIM_NUM"].ToString();
elimWgt = dt2.Rows[0]["ELIM_WGT"].ToString();
elimLen = dt2.Rows[0]["ELIM_LEN"].ToString();
chargeNum = dt2.Rows[0]["CHARGE_NUM"].ToString();
chargeWgt = dt2.Rows[0]["CHARGE_WGT"].ToString();
chargeLen = dt2.Rows[0]["CHARGE_LEN"].ToString();
}
}
if (ordUnit == "吨")
{
repQty = ordQty - Convert.ToDecimal(chargeWgt == "" ? "0" : chargeWgt) + Convert.ToDecimal(elimWgt == "" ? "0" : elimWgt);
estWgt = repQty;
sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
}
else if (ordUnit == "支")
{
repQty = ordQty - Convert.ToDecimal(chargeNum == "" ? "0" : chargeNum) + Convert.ToDecimal(elimNum == "" ? "0" : elimNum);
estWgt = repQty;
sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
}
else if (ordUnit == "米")
{
repQty = ordQty - Convert.ToDecimal(chargeLen == "" ? "0" : chargeLen) + Convert.ToDecimal(elimLen == "" ? "0" : elimLen);
estWgt = OrderFunction.GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
}
else if (ordUnit == "毫米")
{
repQty = ordQty - Convert.ToDecimal(chargeLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(chargeLen) * 1000)) + Convert.ToDecimal(elimLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(elimLen) * 1000));
estWgt = OrderFunction.GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
}
else if (ordUnit == "英尺")
{
repQty = ordQty - Convert.ToDecimal(chargeLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(chargeLen) / Convert.ToDecimal(0.3048))) + Convert.ToDecimal(elimLen == "" ? "0" : Convert.ToString(Convert.ToDecimal(elimLen) / Convert.ToDecimal(0.3048)));
estWgt = OrderFunction.GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
}
else if (ordUnit == "英镑")
{
repQty = ordQty - Convert.ToDecimal(chargeWgt == "" ? "0" : Convert.ToString(Convert.ToDecimal(chargeWgt) / Convert.ToDecimal(0.45359237))) + Convert.ToDecimal(elimWgt == "" ? "0" : Convert.ToString(Convert.ToDecimal(elimWgt) / Convert.ToDecimal(0.45359237)));
estWgt = OrderFunction.GetPrdctWgtNew(repQty, ordUnit, specCode, ob);
sureLen = repQty / Convert.ToDecimal(row["DELVRY_QTY"].ToString()) * Convert.ToDecimal(row["TOTLENGTH"].ToString3());
}
if (repQty <= 0)
continue;
reportModel.DelvryQty = ordQty.ToString();
reportModel.ChargeNum = chargeNum;
reportModel.ChargeWgt = chargeWgt;
reportModel.ChargeLen = chargeLen;
reportModel.ElimNum = elimNum;
reportModel.ElimWgt = elimWgt;
reportModel.ElimLen = elimLen;
// ORDER_QTY NUMBER(8,3),
reportModel.OrderQty = Convert.ToString(repQty);
// ORDERWEIGHT NUMBER(16,3),重量估算
reportModel.Orderweight = Convert.ToString(estWgt);
// ORDERNUM NUMBER(10),合同支数,无。
reportModel.Ordernum = row["ORDERNUM"].ToString();
// TOTLENGTH NUMBER(16,3),OrdEnsuTotlLen,总保长
reportModel.Totlength = Convert.ToString(sureLen);
// DELVRY_RANGE_TPE VARCHAR2(20),
reportModel.DelvryRangeTpe = row["DELVRY_RANGE_TPE"].ToString();
// DELVRY_RANGE_MIN NUMBER(2),
reportModel.DelvryRangeMin = row["DELVRY_RANGE_MIN"].ToString();
// DELVRY_RANGE_MAX NUMBER(2),
reportModel.DelvryRangeMax = row["DELVRY_RANGE_MAX"].ToString();
// BUYER_ID VARCHAR2(20), 客户编码
reportModel.BuyerId = row["BUYER_ID"].ToString();
// BUYER_NAME VARCHAR2(100),客户名称
reportModel.BuyerName = row["BUYER_NAME"].ToString();
//CUST_ALPHA_NO VARCHAR2(20),客户AlphaNo
reportModel.CustAlphaNo = row["CUST_ALPHA_NO"].ToString();
// ORDER_SPECIAL_DESC VARCHAR2(200),产品特殊要求描述 \r\n 特殊字符 导致JSON转化异常。
string specialDesc = row["ORDER_SPECIAL_DESC"].ToString().Trim();
//specialDesc = specialDesc.Replace("\r", "");
//specialDesc = specialDesc.Replace("\n", "");
reportModel.OrderSpecialDesc = specialDesc.Trim();
// ADD_ASK_NO VARCHAR2(16),
reportModel.AddAskNo = row["ADD_ASK_NO"].ToString();
// ORDER_ADD_DESC VARCHAR2(200), \r\n 特殊字符 导致JSON转化异常。
string addDesc = row["ORDER_ADD_DESC"].ToString().Trim();
//addDesc = addDesc.Replace("\r", "");
// addDesc = addDesc.Replace("\n", "");
reportModel.OrderAddDesc = addDesc.Trim();
// ORDERFROM VARCHAR2(20),合同来源,无此字段--销售组织。
reportModel.Orderfrom = row["ORDERFROMCODE"].ToString();
// FINAL_USER VARCHAR2(20),
reportModel.FinalUser = row["FINAL_USER"].ToString();
// FINAL_USER_DESC VARCHAR2(100),
reportModel.FinalUserDesc = row["FINAL_USER_DESC"].ToString();
// UPPERLIMIT NUMBER(10,3),上限
reportModel.Upperlimit = row["UPPERLIMIT"].ToString();
// LOWERLIMT NUMBER(10,3),下限,
reportModel.Lowerlimt = row["LOWERLIMT"].ToString();
// DELVRY_BDATE DATE,
reportModel.DelvryBdate = row["DELVRY_BDATE"].ToString() != "" ? Convert.ToDateTime(row["DELVRY_BDATE"].ToString()).ToString("yyyy-MM-dd") : row["DELVRY_BDATE"].ToString();
// DELVRY_EDATE DATE,
reportModel.DelvryEdate = row["DELVRY_EDATE"].ToString() != "" ? Convert.ToDateTime(row["DELVRY_EDATE"].ToString()).ToString("yyyy-MM-dd") : row["DELVRY_EDATE"].ToString();
// LATEST_PROD_DATE最迟生产日期,无此字段,上面是最迟交货日期
reportModel.LatestProdDate = row["LATEST_PROD_DATE"].ToString() != "" ? Convert.ToDateTime(row["LATEST_PROD_DATE"].ToString()).ToString("yyyy-MM-dd") : row["LATEST_PROD_DATE"].ToString();
// ORDERCONTACT VARCHAR2(20),合同联系人,无此字段。
reportModel.Ordercontact = row["ORDERCONTACT"].ToString();
// MONITORDEMAND VARCHAR2(200),监制要求
reportModel.Monitordemand = row["MONITORDEMAND"].ToString();
// SPECSTANDARD VARCHAR2(20),公差标准
//reportModel.SPECSTANDARD = row["ORD_LN_PK"].ToString();
// PACKTYPE VARCHAR2(20),包装要求
//reportModel.OrdLnPk = row["ORD_LN_PK"].ToString();
// PSC
reportModel.Psc = row["PSC"].ToString();
// PRIORITY VARCHAR2(20),合同优先级
//reportModel.OrdLnPk = row["ORD_LN_PK"].ToString();
// msc
reportModel.Msc = row["MSC"].ToString();
//
reportModel.CreateName = this.UserInfo.GetUserName();
reportModel.JzFileIfAll = string.IsNullOrEmpty(row["PRDCR_NO"].ToString()) ? "0" : "1"; //row["JZ_FILE_IF_ALL"].ToString();
//
reportModel.PrdcrNo = row["PRDCR_NO"].ToString();
reportModel.MaterialNo = row["MATERIAL_NO"].ToString();
reportModel.MaterialDesc = row["MATERIAL_DESC"].ToString();
reportModel.ShrtLenRato = row["SHRT_LEN_RATO"].ToString();
reportModel.Shortest = row["SHORTEST"].ToString();
reportModel.LongLenRato = row["LONG_LEN_RATO"].ToString();
reportModel.Longest = row["LONGEST"].ToString();
reportModel.SiglLen = row["SIGL_LEN"].ToString();
reportModel.LenUnit = row["LEN_UNIT"].ToString();
reportModel.PrdcrDesc = row["PRDCR_DESC"].ToString();
reportModel.OutsBilletFl = row["OUTS_BILLET_FL_CODE"].ToString();
reportModel.UseCode = row["USE_CODE"].ToString();
reportModel.UseDesc = row["USE_DESC"].ToString();
reportModel.EndLenSpecStd = row["ENDLEN_SPECSTD"].ToString();
reportModel.AvgLenMin = row["AVG_LEN_MIN"].ToString();
reportModel.ShrtStove = row["SHRT_STOVE"].ToString();
reportModel.DifrncLenMax = row["DIFRNC_LEN_MAX"].ToString();
reportModel.StdStyleDesc = row["STD_STYLE_DESC"].ToString();
reportModel.OutsStlPipeFl = row["OUTS_STL_PIPE_FL_CODE"].ToString();
reportModel.RollMonth = row["REVIEW_ASK_END"].ToString();
reportModel.SupplyUnitCode = row["SUPPLY_UNIT_CODE"].ToString();
reportModel.SupplyUnit = row["SUPPLY_UNIT"].ToString();
reportModel.DelvryAddr = row["DELVRY_ADDR"].ToString();
if (row["ORDER_TYP"].ToString().Equals("120108"))
reportModel.TypeFlag = "1";
else if (row["ORDER_TYP"].ToString().Equals("120109"))
reportModel.TypeFlag = "2";
else
reportModel.TypeFlag = "0";
list.Add(JSONFormat.Format(reportModel));
if (!craft.Contains(ordLnPk))
{
craft.Add(ordLnPk);
}
}
if (list.Count <= 0)
{
MessageUtil.ShowWarning("没有符合提报要求的数据!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认提报所选记录?") == DialogResult.No) return;
//执行数据库相关操作
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReport";
ccp.MethodName = "doReport";
ccp.ServerParams = new object[] { list };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
if (ccp.ReturnObject != null)
{
MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
return;
}
else
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
}
else
{
MessageBox.Show("提报完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
//工艺评审 2015-12-09新增
frmCraftReviewTechnology crt = new frmCraftReviewTechnology();
foreach (string pk in craft)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.getCraftState",
new string[] { pk }, ob);
if (dt.Rows.Count > 0 && dt.Rows[0]["VALIDFLAG"].ToString() == "1" && dt.Rows[0]["CRAFT_SOURCE"].ToString() != "人工上传")
{
continue;
}
crt.CheckQuality(pk, true, this.ob);
crt.Quality(pk, true, this.ob);
}
doQuery();
}
}
}
///
/// 查询
///
private void doQuery()
{
string orderNo = "";
string orderSts = cmbSts.Value.ToString().Trim();
string orderStart = "";
string orderEnd = "";
string reportStartTime = "";
string reportEndTime = "";
if (uchkOrderNo.Checked)
orderNo = utxtOrderNo.Text.Trim().ToLower();
if (uchkDate.Checked)
{
orderStart = udtStart.DateTime.ToString("yyyy-MM-dd") + " 00:00:01";
orderEnd = udtEnd.DateTime.ToString("yyyy-MM-dd") + " 23:59:59";
}
else
{
orderStart = "1000-01-01 00:00:01";
orderEnd = "9999-12-31 23:59:59";
}
if (rchkDate.Checked)
{
reportStartTime = rdtStart.DateTime.ToString("yyyy-MM-dd") + " 00:00:01";
reportEndTime = rdtEnd.DateTime.ToString("yyyy-MM-dd") + " 23:59:59";
}
string[] arr = this.ValidDataPurviewIds;
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.doQuery", new Object[] { orderNo, orderStart, orderEnd, arr, CustomInfo, reportStartTime, reportEndTime }, this.ob);
string strSelect = "CREATE_TIME >= '" + orderStart + "' AND CREATE_TIME <= '" + orderEnd + "'";
DataRow[] arrayDR = dt.Select(strSelect, "ORDER_NO,ORDER_SEQ,DELIVERY_NO ASC");
DataTable dtNew = dt.Clone();
ArrayList list = new ArrayList();
for (int i = 0; i < arrayDR.Length; i++)
{
dtNew.ImportRow(arrayDR[i]);
list.Add(arrayDR[i]["PRDCR_NO_GM"]);
}
GridHelper.CopyDataToDatatable(ref dtNew, ref this.SLM_ORDER_LINE_DELIVERY, true);
foreach (UltraGridRow row in ultraGridReport.Rows)
{
if (list.Contains(row.Cells["PRDCR_NO"].Value.ToString()))
{
row.Appearance.BackColor = Color.Yellow;
}
}
}
private string[] GetBalanceMainColumn()
{
return new string[]
{
"SALE_AREA_DESC",
"FORECORPCODE",
"ISPRECLOSE",
"TICKETSTATUS",
"BALANCESTATUS_ORG",
"BALANCESTATUS",
"BUYERCODE",
"BUYERNAME",
"FST_DRAWEE_UNIT",
"ASKPLAN_ID",
"ORD_NO",
"ORD_SEQ",
"ORD_LN_DLY",
"ASKPLAN_ID_SEQ",
"STEELCODEKEY",
"PACTINDEX",
"SPETKEY",
"SEND_NUM",
"ORDER_UNIT",
"QUANTITY",
"WEIGHT",
"TON_PRICE",
"PRICE",
"MONEY",
"BALNCE_PRICE",
"LEAVEMONEY",
"AFFRIMPERSON",
"AFFIRMTIME",
"INVOICENO",
"REALINVOICENO",
"REALINVOICENO_DATE1",
"REALINVOICENO_DATE",
"INVOICEPERSON",
"INVOICEDATE",
"PRICE_ORG",
"MONEY_ORG",
"AFFRIMPERSON_ORG",
"AFFIRMTIME_ORG",
"INVOICENO_ORG",
"REALINVOICENO_ORG",
"INVOICEDATE_ORG",
"REALINVOICENO_DATE_ORG1",
"REALINVOICENO_DATE_ORG",
"CONTAIN_TAX",
"CATEGORY",
"SPEC_ABBSYMNAME",
"STD_STYLE_DESC",
"MODEL_DESC",
"TRANS_TYPE_NAME",
"BASEPRICE",
"INCEPTCORPCODE",
// "BALNCE_PRICE_STS",
// "BALNCE_PRICE_ORG_STS",
"ORD_PK",
"ORD_LN_PK",
"ORD_LN_DLY_PK",
"CUSTOMER_NO",
"CUSTOMER_NM",
"SALE_AREA_NO",
"DELETE_TIME",
"BILL_STATUS_FLAG",
"INVOICE_MONTH",
"IN_TIME_F",
"CHK",
"DELVRY_WHEREABOUTS",
"IS_USE",
"MEMO",
"SUPPLY_UNIT_DESC",
"CREATE_NAME"
};
}
public Hashtable GetColumnAndCaption1()
{
Hashtable hs = new Hashtable();
hs.Add("SHIPNO", "船号");
hs.Add("BUYERCODE", "结算单位编码");
hs.Add("BUYERNAME", "结算单位");
hs.Add("INCEPTCORPCODE", "收货单位");
hs.Add("QUANTITY", "支数");
hs.Add("WEIGHT", "重量");
hs.Add("TON_PRICE", "吨价");
hs.Add("MONEY", "金额");
hs.Add("OUTSTOCKMNY", "吊装费");
hs.Add("TRANSMNY", "运费");
hs.Add("ISPRECLOSE", "是否虚单");
hs.Add("ORD_NO", "合同号");
hs.Add("ORD_SEQ", "合同行");
hs.Add("ORD_LN_DLY", "交货行");
hs.Add("SPETKEY", "规格");
hs.Add("STEELCODEKEY", "钢级(牌号)");
hs.Add("PRICE", "单价");
hs.Add("AFFRIMPERSON", "末次确认人");
hs.Add("AFFIRMTIME", "末次确认时间");
hs.Add("BASEPRICE", "订单价");
hs.Add("FORECORPCODE", "子公司");
hs.Add("STATIONCODE", "到站");
hs.Add("TALLYSHEET_NO", "理货单");
hs.Add("BATCH_NO", " 炉批号");
hs.Add("ACT_WGT", "重量");
hs.Add("TICKETTYPE", "类型");
hs.Add("TICKETNUM", "票据数");
hs.Add("TRANS_TYPE", "运输类型");
hs.Add("MOTORMANNAME", "承运公司");
hs.Add("REG_ID", "维护人");
hs.Add("REG_DTIME", "维护时间");
hs.Add("AFFRIM_ID", "确认人");
hs.Add("AFFRIM_TIME", "确认时间");
hs.Add("MONEY_TYPE", "费用类型");
hs.Add("ASKPLAN_ID", "提单号");
hs.Add("TRANS_TYPE_NAME", "运输方式");
hs.Add("REALINVOICENO_ORG", "首次真实发票号");
hs.Add("REALINVOICENO", "末次真实发票号");
hs.Add("INVOICENO", "末次结算单号");
hs.Add("MONEY_ORG", "首次结算金额");
hs.Add("PRICE_ORG", "首次单价");
hs.Add("INVOICENO_ORG", "首次结算单号");
hs.Add("INVOICENO_SEQ_ORG", "序号");
hs.Add("TICKETPERSON", "确认人");
hs.Add("TICKETDATE", "确认时间");
hs.Add("CATEGORY", "品名");
hs.Add("SPEC_ABBSYMNAME", "标准");
hs.Add("STD_STYLE_DESC", "标准类别");
hs.Add("MODEL_DESC", "扣型");
hs.Add("ORDER_UNIT", "计量单位");
hs.Add("SALE_AREA_DESC", "销售区域");
hs.Add("SEND_NUM", "实发量");
hs.Add("RECEIV_ADDR", "指定地址");
hs.Add("DELVRY_ADDR", "交货地点");
hs.Add("AGENCY_FL", "是否代办");
hs.Add("ISREALCLOSE", "虚单关闭状态");
hs.Add("TICKETSTATUS", "提单是否确认");
hs.Add("INVOICEPERSON_ORG", "首次编单人");
hs.Add("INVOICEDATE_ORG", "首次编单时间");
hs.Add("INVOICEPERSON", "末次编单人");
hs.Add("INVOICEDATE", "末次编单时间");
hs.Add("CONTAIN_TAX", "是否含税");
hs.Add("BALNCE_PRICE_STS", "首次价格有效性");
hs.Add("BALNCE_PRICE_ORG_STS", "末次价格有效性");
hs.Add("REALINVOICENO_DATE1", "末次发票时间");
hs.Add("REALINVOICENO_DATE_ORG1", "首次发票时间");
hs.Add("PACTINDEX", "钢种");
hs.Add("BALNCE_PRICE", "末次不含税单价");
hs.Add("LEAVEMONEY", "末次含税金额");
hs.Add("DELETE_TIME", "出库时间");
hs.Add("BILL_STATUS_FLAG", "是否提单关闭");
hs.Add("INVOICE_MONTH", "年月");
hs.Add("IN_TIME_F", "入库时间");
hs.Add("CHK", "选择");
hs.Add("DELVRY_WHEREABOUTS", "库存地点");
hs.Add("IS_USE", "是否使用");
hs.Add("MEMO", "备注");
hs.Add("SUPPLY_UNIT_DESC", "制造商");
hs.Add("CREATE_NAME", "业务员");
return hs;
}
private Hashtable GetColumnAndCaption()
{
Hashtable hs = new Hashtable();
hs.Add("SHIPNO", "船号");
hs.Add("WEIGHT", "重量");
hs.Add("DOCKCODE", "港口");
hs.Add("TRANSMONEYSY1", "船运费");
hs.Add("SHIPPRICE", "船运价");
hs.Add("PLY", "厚/直径/壁厚");
hs.Add("WIDTH", "宽/外径");
hs.Add("HOISTINGFEE", "吊装费");
hs.Add("TRANSMONETRAIN", "火运费");
hs.Add("ORD_NO", "合同号");
hs.Add("ORD_SEQ", "合同行");
hs.Add("ORD_LN_DLY", "交货行");
hs.Add("ASKPLAN_ID", "提单号");
hs.Add("ASKPLAN_ID_SEQ", "提单序号");
hs.Add("SPETKEY", "规格");
hs.Add("STEELCODEKEY", " 钢级(牌号)");
hs.Add("ADJUSTPRICEPERSON", "调价人");
hs.Add("ADJUSTPRICEREASON", "调价原因");
hs.Add("AFFRIMPERSON", "末次确认人");
hs.Add("AFFIRMTIME", "末次确认时间");
hs.Add("AFFRIMPERSON_ORG", "首次确认人");
hs.Add("AFFIRMTIME_ORG", "首次确认时间");
hs.Add("BASEPRICE", "订单价");
hs.Add("FORECORPCODE", "子公司");
hs.Add("STATIONCODE", "到站");
hs.Add("BUYERNAME", "结算单位名称");
hs.Add("BUYERCODE", "客户编码");
hs.Add("CUSTOMER_NM", "订货单位");
hs.Add("TRANS_TYPE_NAME", "运输方式");
hs.Add("MONEY_ORG", "首次结算金额");
hs.Add("PRICE_ORG", "首次结算价");
hs.Add("CATEGORY", "品名");
hs.Add("SPEC_ABBSYMNAME", "标准");
hs.Add("STD_STYLE_DESC", "标准类别");
hs.Add("MODEL_DESC", "扣型");
hs.Add("ORDER_UNIT", "计量单位");
hs.Add("SALE_AREA_DESC", "销售区域");
hs.Add("SEND_NUM", "实发量");
hs.Add("CONTAIN_TAX", "是否含税");
hs.Add("BALANCESTATUS_ORG", "首次结算状态");
hs.Add("FST_DRAWEE_UNIT", "首次受票人");
hs.Add("INVOICENO_ORG", "首次结算单号");
hs.Add("REALINVOICENO_ORG", "首次真实单号");
return hs;
}
///
/// 提报状态数据源绑定
///
///
private DataSet dsBalanceMain = new DataSet();
private void bindCmbSts()
{
this.dsBalanceMain = base.GetDataSetByColumnName(this.GetBalanceMainColumn(),
null, GetColumnAndCaption1());
this.ultraGrid1.DataSource = this.dsBalanceMain;
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.GetSts", null, this.ob);
//查询区域适用单位绑定,提供空值。
ComboBoxHelper.FillUlcmItemsAddEmpty(cmbSts, dt);
}
private Core.StlMes.Client.Sale.BLL.SaleBusinessMgt.Balance.SlmBalanceInfo slmBalanceInfo = null;
private void frmOrderReport_Load(object sender, EventArgs e)
{
//提报状态数据源绑定。
bindCmbSts();
cmbSts.Value = "12020301";
cmbSts.ReadOnly = false;
ClsBaseInfo.SetComboItemHeight(cmbSts);
udtStart.Value = DateTime.Now.AddDays(-31).ToShortDateString();
udtEnd.Value = DateTime.Now.ToShortDateString();
slmBalanceInfo = new Core.StlMes.Client.Sale.BLL.SaleBusinessMgt.Balance.SlmBalanceInfo(this.ob);
InitGrid();
//加载库存信息数据
InitMat();
}
///
/// 初始化库存信息
///
private void InitMat()
{
EntityHelper.ShowGridCaption(gdMat.DisplayLayout.Bands[0]);
UltraComboEditor uce = new UltraComboEditor();
uce.Items.Add("1", "封锁");
uce.Items.Add("0", "未封锁");
gdMat.DisplayLayout.Bands[0].Columns["lockFlag"].EditorComponent = uce;
gdMat.DisplayLayout.Bands[0].Columns["mngLockFlag"].EditorComponent = uce;
}
private void uchkOrderNo_CheckedChanged(object sender, EventArgs e)
{
if (uchkOrderNo.Checked)
{
utxtOrderNo.ReadOnly = false;
string orderNo = utxtOrderNo.Text.Trim();
if (orderNo != "")
{
uchkDate.Enabled = true;
uchkDate.Checked = false;
}
else
{
uchkDate.Enabled = false;
uchkDate.Checked = true;
}
}
else
{
utxtOrderNo.ReadOnly = true;
uchkDate.Enabled = false;
uchkDate.Checked = true;
}
}
private void uchkSts_CheckedChanged(object sender, EventArgs e)
{
if (uchkSts.Checked)
{
cmbSts.ReadOnly = false;
}
else
{
cmbSts.SelectedIndex = 0;
cmbSts.ReadOnly = true;
}
}
private void uchkDate_CheckedChanged(object sender, EventArgs e)
{
if (uchkDate.Checked)
{
udtStart.ReadOnly = false;
udtEnd.ReadOnly = false;
}
else
{
udtStart.ReadOnly = true;
udtEnd.ReadOnly = true;
}
}
private void ultraGridReport_AfterRowActivate(object sender, EventArgs e)
{
ultraGridReport.UpdateData();
UltraGridRow ugr = ultraGridReport.ActiveRow;
if (ugr == null)
return;
for (int i = 0; i < ugr.Cells.Count; i++)
{
if (!ugr.Cells[i].Column.Key.Equals("CHK"))
{
ugr.Cells[i].Activation = Activation.ActivateOnly;
}
else
ugr.Cells[i].Activation = Activation.AllowEdit;
}
// 查询库存信息 ORDERFROMCODE 考虑到效率问题 放在CellButton事件中查询
//string saleOrg = ugr.Cells["ORDERFROMCODE"].Value.ToString();
listLiku = new ArrayList();
listLiku.Add(ugr.Cells["PRODUCCODE"].Value.ToString());
listLiku.Add(ugr.Cells["STEELCODE"].Value.ToString());
listLiku.Add(ugr.Cells["SPEC_CODE"].Value.ToString());
listLiku.Add(ugr.Cells["MODEL_CODE"].Value.ToString());
listLiku.Add(ugr.Cells["STD_STYLE_DESC"].Value.ToString());
listLiku.Add(ugr.Cells["STD_STYLE_DESC"].Value.ToString());
//QueryMatInfo(list, saleOrg);
matZcMEntityBindingSource.Clear();
}
private void QueryMatInfo(ArrayList parm, string saleOrg, string suppUnit)
{
List listSource = EntityHelper.GetData(
"com.steering.pss.sale.order.CoreOrderReport.queryMatInfo", new object[] { parm, saleOrg, suppUnit }, this.ob);
matZcMEntityBindingSource.DataSource = listSource;
}
private void utxtOrderNo_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
doQuery();
}
private void ultraGridReport_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
{
foreach (UltraGridRow uRow in ultraGridReport.Selected.Rows)
{
if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
{
uRow.Cells["CHK"].Value = true;
}
}
}
private void btnReset_Click(object sender, EventArgs e)
{
ultraGridReport.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters();
}
private void utxtOrderNo_ValueChanged(object sender, EventArgs e)
{
string orderNo = utxtOrderNo.Text.Trim();
if (orderNo != "")
{
uchkDate.Enabled = true;
uchkDate.Checked = false;
}
else
{
uchkDate.Enabled = false;
uchkDate.Checked = true;
}
}
private void ultraGridReport_InitializeRow(object sender, InitializeRowEventArgs e)
{
if (e.Row.Cells["ORDER_TYP"].Value.ToString2() == "120103")
{
e.Row.Cells["REVIEW_ASK_END"].Value = DateTime.Now.ToString("yyyy-MM");
}
}
///
/// cellButton
///
///
///
private void ultraGridReport_ClickCellButton(object sender, CellEventArgs e)
{
if (e.Cell.Column.Key.Equals("ORDER_SEQ"))
{
ultraGridReport.UpdateData();
UltraGridRow ugr = ultraGridReport.ActiveRow;
if (ugr == null)
return;
string saleOrg = ugr.Cells["ORDERFROMCODE"].Value.ToString();
string suppUnit = ugr.Cells["SUPPLY_UNIT_CODE"].Value.ToString();
QueryMatInfo(listLiku, saleOrg, suppUnit);
string str = "合同号:" + ugr.Cells["ORDER_NO"].Value.ToString() + "/" + ugr.Cells["ORDER_SEQ"].Value.ToString()
+ " 交货行号:" + ugr.Cells["DELIVERY_NO"].Value.ToString() + " 的可利库的库存信息。";
}
}
private void ReportLiKu()
{
ultraGridReport.UpdateData();
UltraGridRow ugr = ultraGridReport.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择您要利库的交货行!");
return;
}
if (ugr.Cells["ORDER_LN_STATUS_NM"].Value.ToString() == "提报完毕")
{
MessageUtil.ShowWarning("您选择的记录已经提报完毕,此功能只能对“生效状态”的交货行利库!");
ugr.Activate();
return;
}
string ordStr = "合同号:" + ugr.Cells["ORDER_NO"].Value.ToString() + "/" + ugr.Cells["ORDER_SEQ"].Value.ToString() + " 交货行号:" + ugr.Cells["DELIVERY_NO"].Value.ToString();
//合同行提报锁定的!
DataTable lockDt1 = ServerHelper.GetData("com.steering.pss.sale.order.DAL.SlmOrderLineLockDAL.getOrderLineLock", new object[] { ugr.Cells["ORD_LN_PK"].Value.ToString() }, this.ob);
if (lockDt1 != null && lockDt1.Rows.Count > 0)
{
if (lockDt1.Rows[0][0].ToString() == "1")
{
MessageUtil.ShowWarning(ordStr + "该合同行提报排产被锁定请重新审批合同价格!不允许利库! ");
return;
}
}
string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
string saleOrg = ugr.Cells["ORDERFROMCODE"].Value.ToString();
FrmReportLiKu frl = new FrmReportLiKu(this.ob, "1",this.CustomInfo);
frl.DataArr = this.ValidDataPurviewIds;
frl.ListParm = listLiku;
frl.OrdSaleOrg = saleOrg;
frl.OrdLnDlyPk = ordLnDlyPk;
frl.FormClosingQueryHandle += frl_FormClosingQueryHandle;
frl.WindowState = FormWindowState.Maximized;
frl.StartPosition = FormStartPosition.CenterScreen;
frl.ShowDialog();
}
void frl_FormClosingQueryHandle(string ordLnDlyPk)
{
this.doQuery();
foreach (UltraGridRow row in ultraGridReport.Rows)
{
if (row.Cells["ORD_LN_DLY_PK"].Value.ToString() == ordLnDlyPk)
{
row.Activate();
break;
}
}
}
///
/// 判断交货行是否具有需要审核的利库数据
///
///
/// True 是 False 否
private bool IsNeedCheckLK(string ordLnDlyPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryDlyLkTd", new object[] { ordLnDlyPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
string lkId = dt.Rows[0]["LK_ID"].ToString2();
string tdId = dt.Rows[0]["TD_ID"].ToString2();
string[] lk = lkId.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
string[] td = tdId.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
if (lk != null && lk.Length > 0)
{
List lkList = new List(lk);
List tdList = null;
if (td != null && td.Length > 0)
{
tdList = new List(td);
}
else
{
tdList = new List { "1" }; //下面的差集函数不能跟NULL做差集,所以随便给一个值
}
var interList = lkList.Except(tdList).ToList();
for (int i = 0; i < interList.Count; i++)
{
DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReport.queryMatCheck", new object[] { ordLnDlyPk, interList[i] }, this.ob);
if (dt1 != null && dt1.Rows.Count > 0)
{
if (dt1.Rows[0][0].ToString2().Contains("1"))
return true;
}
}
}
}
return false;
}
private void gdMat_AfterRowActivate(object sender, EventArgs e)
{
var ugr = gdMat.ActiveRow;
if (ugr != null)
{
string str = "";
string productName = ugr.Cells["producname"].Text.ToString();//品名
string steelName = ugr.Cells["steelname"].Text.ToString();//钢级
string specName = ugr.Cells["specName"].Text.ToString();//规格
string modelDesc = ugr.Cells["ModelDesc"].Text.ToString();// 扣型
str += " AND k.STEELNAME = '" + steelName + "' AND k.PRODUCNAME = '" + productName + "' AND t.SPETKEY = '" + specName + "' AND t.MODEL_DESC = '" + modelDesc + "'";
DataSet ds = this.slmBalanceInfo.GetInvoiceSlmBalaneInfoByStdAndStell(str,false);
Core.StlMes.Client.Sale.Util.UtilDataSet.SetDataSetByMergeSameColumnName(ref this.dsBalanceMain, ds);
}
}
private Infragistics.Win.ValueList GetAgenCyFlList()
{
Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
lit.ValueListItems.Add("0", "否");
lit.ValueListItems.Add("1", "是");
return lit;
}
private Infragistics.Win.ValueList GetStatusList()
{
Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
lit.ValueListItems.Add("0", "未确认");
lit.ValueListItems.Add("1", "确认");
lit.ValueListItems.Add("2", "编单");
return lit;
}
private Infragistics.Win.ValueList GetPriceStatusList()
{
Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
lit.ValueListItems.Add("0", " 无效");
lit.ValueListItems.Add("1", " 有效");
return lit;
}
private Infragistics.Win.ValueList GetBalStatusList()
{
Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
lit.ValueListItems.Add("0", "未编单");
lit.ValueListItems.Add("1", "未编单");
lit.ValueListItems.Add("2", "未编单");
lit.ValueListItems.Add("3", "编单");
return lit;
}
private Infragistics.Win.ValueList GetFst_Drawee_unit()
{
Infragistics.Win.ValueList lit = new Infragistics.Win.ValueList();
lit.ValueListItems.Add("120601", "N/A");
lit.ValueListItems.Add("120602", "/");
lit.ValueListItems.Add("120603", "天津钢管集团股份有限公司");
lit.ValueListItems.Add("120604", "天津钢管钢铁贸易有限公司");
lit.ValueListItems.Add("120605", "天津钢管国际经济贸易有限公司");
lit.ValueListItems.Add("120606", "合同结算单位");
lit.ValueListItems.Add("120607", "江苏天淮钢管有限公司");
lit.ValueListItems.Add("120608", "天津钢管制造有限公司");
return lit;
}
private void InitGrid()
{
try
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["CONTAIN_TAX"].ValueList = GetAgenCyFlList();
}
catch
{ }
try
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["BALANCESTATUS_ORG"].ValueList = GetBalStatusList();
}
catch
{ }
try
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["BALANCESTATUS"].ValueList = GetBalStatusList();
}
catch
{ }
try
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["FST_DRAWEE_UNIT"].ValueList = GetFst_Drawee_unit();
}
catch
{ }
try
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["TICKETSTATUS"].ValueList = GetAgenCyFlList();
}
catch
{ }
try
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns[this.BALNCE_PRICE_STS].ValueList = GetPriceStatusList();
}
catch
{ }
try
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns[this.BALNCE_PRICE_ORG_STS].ValueList = GetPriceStatusList();
}
catch
{ }
try
{
this.ultraGrid1.DisplayLayout.Bands[0].Columns["AFFRIMPERSON_ORG"].Header.Caption = "首次确认人";
this.ultraGrid1.DisplayLayout.Bands[0].Columns["AFFIRMTIME_ORG"].Header.Caption = "首次确认时间";
this.ultraGrid1.DisplayLayout.Bands[0].Columns["BALANCESTATUS_ORG"].Header.Caption = "首次结算状态";
this.ultraGrid1.DisplayLayout.Bands[0].Columns["BALANCESTATUS"].Header.Caption = "末次结算状态";
this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRICE"].Header.Caption = "末次结算单价";
this.ultraGrid1.DisplayLayout.Bands[0].Columns["MONEY"].Header.Caption = "末次结算金额";
}
catch
{ }
}
/* public void OpenOtherAssemblyForm(Form vParentFrm, string vKey, string vAssemblyName,
string vClassName, string vCaption, OpeBase _ob)
{
//检查窗体是否已经打开
foreach (Form mdiChild in vParentFrm.MdiChildren)
{
if ((mdiChild as FrmBase).Key == vKey)
{
mdiChild.Activate();
return;
}
}
FrmBase form = null;
//实例化窗体并打开
try
{
Assembly baseFormAssembly = Assembly.Load(vAssemblyName);
Type type = baseFormAssembly.GetType(vClassName);
System.Diagnostics.Debug.Assert(type.IsSubclassOf(typeof(FrmBase)));
form = Activator.CreateInstance(type, true) as FrmBase;
PropertyInfo info = type.GetProperty("MyValidDataPurviewIds");
info.SetValue(form, this.ValidDataPurviewIds, null);
form.MdiParent = vParentFrm;
form.Text = vCaption;
form.Key = vKey;
form.ob = _ob;
form.CustomInfo = "";
form.Show();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
form.Dispose();
}
} */
}
}