宜昌华友原料库管理软件
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

311 lines
11 KiB

1 month ago
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace SSLMS.MobileUI.uc
{
public partial class ucMANAGE_PLAN_IN : UserControl
{
private ucList ucPLAN_LIST= new ucList();
private ucManagePosition ucMANAGE_POSITION = new ucManagePosition();
int intPlanID;
MANAGE_TYPE mMANAGE_TYPE = null;
public ucMANAGE_PLAN_IN()
{
InitializeComponent();
ucPLAN_LIST.Dock = DockStyle.Fill;
this.panelPLANLIST.Controls.Add(ucPLAN_LIST);
ucMANAGE_POSITION.Dock = DockStyle.Fill;
this.panelPosition.Controls.Add(ucMANAGE_POSITION);
}
public ucMANAGE_PLAN_IN(int PLAN_ID, string MANAGE_TYPE_CODE)
{
InitializeComponent();
ucPLAN_LIST.Dock = DockStyle.Fill;
this.panelPLANLIST.Controls.Add(ucPLAN_LIST);
ucMANAGE_POSITION.Dock = DockStyle.Fill;
this.ucMANAGE_POSITION.U_SaveButtonClicked += new ucManagePosition.U_SaveButtonClickHandler(ucMANAGE_POSITION_U_SaveButtonClicked);
this.panelPosition.Controls.Add(ucMANAGE_POSITION);
this.intPlanID = PLAN_ID;
this.mMANAGE_TYPE =(MANAGE_TYPE) Program._I_PDAService.GetModel("MANAGE_TYPE_SELECT_BY_MANAGE_TYPE_CODE", MANAGE_TYPE_CODE).RequestObject;
this.InitManagePosition();
this.PLAN_LIST_Bind();
}
void ucMANAGE_POSITION_U_SaveButtonClicked()
{
string strResult = string.Empty;
try
{
for (int i = 0; i < this.ucPLAN_LIST.tabGoodsType.TabPages.Count; i++)
{
MyDataGrid mdgv = (this.ucPLAN_LIST.tabGoodsType.TabPages[i].Tag as ucGrid).dgv;
DataTable dt = mdgv.DataSource as DataTable;
if (null == dt)
{
MessageBox.Show("请选择要入库的物料");
return;
}
if (dt.HasErrors)
{
string sError = string.Empty;
foreach (DataRow dr in dt.Rows)
{
sError += "\n" + dr.RowError;
}
MessageBox.Show("数据校验失败" + sError);
return;
}
}
if (!this.ucMANAGE_POSITION.U_CHECK_WAREHOUSE())
return;
if (MessageBox.Show("是否保存?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{
MANAGE_MAIN mMANAGE_MAIN = new MANAGE_MAIN();
mMANAGE_MAIN.PLAN_ID = this.intPlanID;
mMANAGE_MAIN.PLAN_IDSpecified = true;
mMANAGE_MAIN.MANAGE_TYPE_CODE = mMANAGE_TYPE.MANAGE_TYPE_CODE.TrimEnd();
mMANAGE_MAIN.STOCK_BARCODE = this.ucMANAGE_POSITION.U_STOCK_BARCODE;
mMANAGE_MAIN.CELL_MODEL = this.ucMANAGE_POSITION.U_CELL_MODEL;
mMANAGE_MAIN.START_CELL_ID = this.ucMANAGE_POSITION.U_START_POSITION_ID;
mMANAGE_MAIN.START_CELL_IDSpecified = true;
mMANAGE_MAIN.END_CELL_ID = this.ucMANAGE_POSITION.U_END_POSITION_ID;
mMANAGE_MAIN.END_CELL_IDSpecified = true;
mMANAGE_MAIN.MANAGE_OPERATOR = Program._USER.USER_NAME;
mMANAGE_MAIN.MANAGE_BEGIN_TIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
mMANAGE_MAIN.MANAGE_STATUS = Model.MANAGE_STATUS.WaitingSend.ToString();
mMANAGE_MAIN.MANAGE_LEVEL = string.Empty;
mMANAGE_MAIN.MANAGE_REMARK = string.Empty;
List<MANAGE_LIST> listMANAGE_LIST = new List<MANAGE_LIST>();
foreach (TabPage tp in this.ucPLAN_LIST.tabGoodsType.TabPages)
{
MyDataGrid dgvPLAN_LIST = (tp.Tag as ucGrid).dgv;
foreach (DataRow drPLAN_LIST in (tp.Tag as ucGrid).dt.Rows)
{
if (!drPLAN_LIST.IsNull("check") && Convert.ToBoolean(drPLAN_LIST["check"]) == true)
{
MANAGE_LIST mMANAGE_LIST = new MANAGE_LIST();
mMANAGE_LIST.GOODS_ID = Convert.ToInt32(drPLAN_LIST["GOODS_ID"]);
mMANAGE_LIST.GOODS_IDSpecified = true;
mMANAGE_LIST.GOODS_PROPERTY1 = Convert.ToString(drPLAN_LIST["GOODS_PROPERTY1"]);
mMANAGE_LIST.GOODS_PROPERTY2 = Convert.ToString(drPLAN_LIST["GOODS_PROPERTY2"]);
mMANAGE_LIST.GOODS_PROPERTY3 = Convert.ToString(drPLAN_LIST["GOODS_PROPERTY3"]);
mMANAGE_LIST.GOODS_PROPERTY4 = Convert.ToString(drPLAN_LIST["GOODS_PROPERTY4"]);
mMANAGE_LIST.GOODS_PROPERTY5 = Convert.ToString(drPLAN_LIST["GOODS_PROPERTY5"]);
mMANAGE_LIST.GOODS_PROPERTY6 = Convert.ToString(drPLAN_LIST["GOODS_PROPERTY6"]);
mMANAGE_LIST.GOODS_PROPERTY7 = Convert.ToString(drPLAN_LIST["GOODS_PROPERTY7"]);
mMANAGE_LIST.GOODS_PROPERTY8 = Convert.ToString(drPLAN_LIST["GOODS_PROPERTY8"]);
mMANAGE_LIST.PLAN_LIST_ID = Convert.ToInt32(drPLAN_LIST["PLAN_LIST_ID"]);
mMANAGE_LIST.PLAN_LIST_IDSpecified = true;
mMANAGE_LIST.MANAGE_LIST_QUANTITY = Convert.ToDecimal(drPLAN_LIST["MANAGE_LIST_QUANTITY"]);
mMANAGE_LIST.MANAGE_LIST_QUANTITYSpecified = true;
if (mMANAGE_LIST.MANAGE_LIST_QUANTITY <= 0)
{
MessageBox.Show("入库数量错误");
return;
}
mMANAGE_LIST.MANAGE_LIST_REMARK = Convert.ToString(drPLAN_LIST["PLAN_LIST_REMARK"]);
listMANAGE_LIST.Add(mMANAGE_LIST);
}
}
}
bool bResult = false;
bResult = Program._I_PDAService.ManageCreate(mMANAGE_TYPE.MANAGE_TYPE_CLASS.TrimEnd(),
"ManageCreate",
mMANAGE_MAIN,
listMANAGE_LIST.ToArray<MANAGE_LIST>(),
true,
this.ucMANAGE_POSITION.U_CheckStockExistStorage,
this.ucMANAGE_POSITION.U_AutoCompleteTask,
this.ucMANAGE_POSITION.U_AutoDownloadControlTask,
out strResult);
if (bResult)
{
this.ucMANAGE_POSITION.U_Refresh();
}
if (bResult)
MessageBox.Show("保存成功\n" + strResult);
else
MessageBox.Show("保存失败\n" + strResult);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void InitManagePosition()
{
try
{
this.ucMANAGE_POSITION.U_InitControl(mMANAGE_TYPE.MANAGE_TYPE_ID);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void PLAN_LIST_Bind()
{
this.ucPLAN_LIST.listColumn = "<Field Column=\"MANAGE_LIST_QUANTITY\" fieldType=\"text\" bedit=\"true\" dbType=\"Decimal\" Header=\"入库数量\" index=\"31\" />";
this.ucPLAN_LIST.bCheck = true;
try
{
this.ucPLAN_LIST.listTable = "V_PLAN_LIST";
this.ucPLAN_LIST.listXml = "PLAN_LIST";
this.ucPLAN_LIST.listWhere = string.Format("AND PLAN_ID ={0} /*AND PLAN_LIST_QUANTITY>PLAN_LIST_FINISHED_QUANTITY */ ", this.intPlanID);
this.ucPLAN_LIST.colGroup = "GOODS_TYPE_ID";
this.ucPLAN_LIST.colSplit = "GOODS_PROPERTY";
this.ucPLAN_LIST.Init();
foreach (TabPage tp in this.ucPLAN_LIST.tabGoodsType.TabPages)
{
DataTable dt = (tp.Tag as ucGrid).dgv.DataSource as DataTable;
if (null != dt)
{
dt.ColumnChanged += new DataColumnChangeEventHandler(this.dtIO_PLAN_LIST_ColumnChanged);
}
}
this.ucPLAN_LIST.SetEditColumns("MANAGE_LIST_QUANTITY", Color.AliceBlue);
}
catch (Exception ex)
{
MessageBox.Show("系统异常" + ex.Message);
}
}
private void dtIO_PLAN_LIST_ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
try
{
bool bResult = true;
string sResult = string.Empty;
switch (e.Column.ColumnName)
{
case "MANAGE_LIST_QUANTITY":
bResult = Convert.ToDecimal(e.Row["PLAN_LIST_QUANTITY"]) - Convert.ToDecimal(e.Row["PLAN_LIST_ORDERED_QUANTITY"]) >= Convert.ToDecimal(e.ProposedValue);
sResult = string.Format("入库数量错误");
if (!bResult)
{
break;
}
break;
}
if (bResult)
{
e.Row.RowError = null;
e.Row.SetColumnError(e.Column, null);
}
else
{
e.Row.RowError = sResult;
e.Row.SetColumnError(e.Column, sResult);
}
}
catch (Exception ex)
{
MessageBox.Show("系统异常" + ex.Message);
}
}
}
}