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.
383 lines
19 KiB
383 lines
19 KiB
using SSWMS.Common;
|
|
using System;
|
|
using System.Windows;
|
|
using System.Windows.Input;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
|
|
namespace SSWMS.Client
|
|
{
|
|
public partial class PLAN_IN_STATION : AvalonDock.DocumentContent
|
|
{
|
|
private readonly int PlanID = 0;
|
|
|
|
public PLAN_IN_STATION(int iPlanID)
|
|
{
|
|
InitializeComponent();
|
|
this.PlanID = iPlanID;
|
|
this.Title = $"暂存入库-[{this.PlanID}]";
|
|
DocumentContent_Loaded(null, null);
|
|
}
|
|
|
|
private void DocumentContent_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
//this.cbCellModel.ItemsSource = SystemCodeData.DicDataView["CELL_MODEL"];
|
|
//if (this.cbCellModel.Items.Count > 0)
|
|
//{
|
|
// this.cbCellModel.SelectedIndex = 0;
|
|
//}
|
|
//this.cbStartDevice.ItemsSource = SystemCodeData.DicDataView["CELL_CODE_IN"];
|
|
////if (this.cbStartDevice.Items.Count > 0)
|
|
////{
|
|
//// this.cbStartDevice.SelectedIndex = 0;
|
|
////}
|
|
|
|
this.dgPlan.U_WindowName = "COMMON";
|
|
this.dgPlan.U_XmlTableName = "V_PLAN_LIST";
|
|
this.dgPlan.U_TableName = "V_PLAN_LIST";
|
|
this.dgPlan.U_Where = $"PLAN_ID={this.PlanID}";
|
|
this.dgPlan.U_OrderField = "PLAN_LIST_ID";
|
|
this.dgPlan.U_AllowOperatData = false;
|
|
this.dgPlan.gridApp.MouseDoubleClick += new MouseButtonEventHandler((a, b) => {
|
|
DataRowView drvSelected = this.dgPlan.gridApp.SelectedItem as DataRowView;
|
|
if (drvSelected != null)
|
|
{
|
|
if (AppSettings.IsStockSingleGoods)
|
|
{
|
|
this.dgStorageList.U_DataTable.Rows.Clear();
|
|
}
|
|
int iGoodsID = Convert.ToInt32(drvSelected["GOODS_ID"]);
|
|
if (AppSettings.IsStockUniqueGoods)
|
|
{
|
|
foreach (DataRowView drv in this.dgStorageList.gridApp.Items)
|
|
{
|
|
if (iGoodsID == Convert.ToInt32(drv["GOODS_ID"]))
|
|
{
|
|
MessageDialog.ShowException($"托盘物料已存在物料编码 {drv["GOODS_CODE"]}");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
DataRow dr = this.dgStorageList.U_DataTable.NewRow();
|
|
dr["GOODS_ID"] = iGoodsID;
|
|
dr["GOODS_CLASS"] = drvSelected["GOODS_CLASS"].ToString();
|
|
dr["GOODS_CODE"] = drvSelected["GOODS_CODE"].ToString();
|
|
dr["GOODS_NAME"] = drvSelected["GOODS_NAME"].ToString();
|
|
dr["GOODS_PROPERTY_01"] = drvSelected["GOODS_PROPERTY_01"].ToString();
|
|
dr["GOODS_PROPERTY_02"] = drvSelected["GOODS_PROPERTY_02"].ToString();
|
|
dr["GOODS_PROPERTY_03"] = drvSelected["GOODS_PROPERTY_03"].ToString();
|
|
dr["GOODS_PROPERTY_04"] = drvSelected["GOODS_PROPERTY_04"].ToString();
|
|
dr["STORAGE_PROPERTY_01"] = drvSelected["STORAGE_PROPERTY_01"].ToString();
|
|
dr["STORAGE_PROPERTY_02"] = drvSelected["STORAGE_PROPERTY_02"].ToString();
|
|
dr["STORAGE_PROPERTY_03"] = drvSelected["STORAGE_PROPERTY_03"].ToString();
|
|
dr["STORAGE_PROPERTY_04"] = drvSelected["STORAGE_PROPERTY_04"].ToString();
|
|
dr["STORAGE_PROPERTY_05"] = drvSelected["STORAGE_PROPERTY_05"].ToString();
|
|
dr["STORAGE_PROPERTY_06"] = drvSelected["STORAGE_PROPERTY_06"].ToString();
|
|
dr["STORAGE_PROPERTY_07"] = drvSelected["STORAGE_PROPERTY_07"].ToString();
|
|
dr["STORAGE_PROPERTY_08"] = drvSelected["STORAGE_PROPERTY_08"].ToString();
|
|
dr["STORAGE_PROPERTY_09"] = drvSelected["STORAGE_PROPERTY_09"].ToString();
|
|
dr["STORAGE_PROPERTY_10"] = drvSelected["STORAGE_PROPERTY_10"].ToString();
|
|
dr["BOX_BARCODE"] = string.Empty;
|
|
dr["GOODS_BARCODE"] = string.Empty;
|
|
dr["STORAGE_LIST_QUANTITY"] = drvSelected["GOODS_QUANTITY"] is DBNull ? Convert.ToDecimal("1.00") : Convert.ToDecimal(drvSelected["GOODS_QUANTITY"]);
|
|
this.dgStorageList.U_DataTable.Rows.Add(dr);
|
|
}
|
|
});
|
|
this.dgPlan.U_InitControl();
|
|
this.dgStorageList.U_WindowName = "COMMON";
|
|
this.dgStorageList.U_XmlTableName = "V_STORAGE_LIST_EDIT";
|
|
this.dgStorageList.U_TableName = "V_STORAGE_LIST";
|
|
this.dgStorageList.U_OrderField = "STORAGE_LIST_ID";
|
|
this.dgStorageList.U_Where = "1<>1";
|
|
this.dgStorageList.U_AllowOperatData = true;
|
|
this.dgStorageList.U_AllowAdd = false;
|
|
this.dgStorageList.U_AllowSave = false;
|
|
this.dgStorageList.U_InitControl();
|
|
|
|
PLAN_MAIN pm = WCFChannel._I_PlanService.GetPlanMain(this.PlanID);
|
|
if (pm == null)
|
|
{
|
|
MessageDialog.ShowException(string.Format("未找到计划 {0}", this.PlanID));
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
this.cbPlanType.ItemsSource = SystemCodeData.DicDataView["PLAN_TYPE"];
|
|
this.cbPlanType.SelectedValue = pm.PLAN_TYPE;
|
|
//if (pm.PLAN_TYPE == SystemCode.PLAN_TYPE.PlanIn)
|
|
//{
|
|
// this.cbPlanStation.ItemsSource = SystemCodeData.DicDataView["CELL_CODE_IN"];
|
|
//}
|
|
//else if (pm.PLAN_TYPE == SystemCode.PLAN_TYPE.PlanOut)
|
|
//{
|
|
// this.cbPlanStation.ItemsSource = SystemCodeData.DicDataView["CELL_CODE_OUT"];
|
|
//}
|
|
//this.cbPlanStation.SelectedValue = pm.PLAN_STATION;
|
|
this.tbPlanCode.Text = pm.PLAN_CODE;
|
|
this.tbRemark.Text = pm.PLAN_REMARK;
|
|
}
|
|
this.Dispatcher.BeginInvoke(new Action(() =>
|
|
{
|
|
this.tbStockBarcode.Focus();
|
|
}));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageDialog.ShowException(ex);
|
|
}
|
|
}
|
|
|
|
private void tbStockBarcode_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (e.Key != Key.Enter || string.IsNullOrWhiteSpace(this.tbStockBarcode.Text))
|
|
{
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
string sStockBarcode = this.tbStockBarcode.Text.Trim().ToUpper();
|
|
if (StringUtils.StockBarcodeValidate(sStockBarcode))
|
|
{
|
|
IList<STORAGE_LIST> lStorageList = WCFChannel._I_StorageService.GetStorageList(sStockBarcode);
|
|
if (this.dgStorageList.gridApp.Items.Count > 0)
|
|
{
|
|
foreach (STORAGE_LIST sl in lStorageList)
|
|
{
|
|
if (sl.GOODS_ID > SystemCode.GOODS_ID.MaxStock)
|
|
{
|
|
MessageDialog.ShowException($"托盘条码 {sStockBarcode} 已存在库存");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
foreach (STORAGE_LIST sl in lStorageList)
|
|
{
|
|
if (sl.GOODS_ID < SystemCode.GOODS_ID.MaxStock)
|
|
{
|
|
continue;
|
|
}
|
|
GOODS_MAIN gm = WCFChannel._I_StorageService.GetGoodsMain(sl.GOODS_ID);
|
|
DataRow dr = this.dgStorageList.U_DataTable.NewRow();
|
|
dr["GOODS_ID"] = gm.GOODS_ID;
|
|
dr["GOODS_CLASS"] = gm.GOODS_CLASS;
|
|
dr["GOODS_CODE"] = gm.GOODS_CODE;
|
|
dr["GOODS_NAME"] = gm.GOODS_NAME;
|
|
dr["GOODS_PROPERTY_01"] = gm.GOODS_PROPERTY_01;
|
|
dr["GOODS_PROPERTY_02"] = gm.GOODS_PROPERTY_02;
|
|
dr["GOODS_PROPERTY_03"] = gm.GOODS_PROPERTY_03;
|
|
dr["GOODS_PROPERTY_04"] = gm.GOODS_PROPERTY_04;
|
|
dr["STORAGE_PROPERTY_01"] = sl.STORAGE_PROPERTY_01;
|
|
dr["STORAGE_PROPERTY_02"] = sl.STORAGE_PROPERTY_02;
|
|
dr["STORAGE_PROPERTY_03"] = sl.STORAGE_PROPERTY_03;
|
|
dr["STORAGE_PROPERTY_04"] = sl.STORAGE_PROPERTY_04;
|
|
dr["STORAGE_PROPERTY_05"] = sl.STORAGE_PROPERTY_05;
|
|
dr["STORAGE_PROPERTY_06"] = sl.STORAGE_PROPERTY_06;
|
|
dr["STORAGE_PROPERTY_07"] = sl.STORAGE_PROPERTY_07;
|
|
dr["STORAGE_PROPERTY_08"] = sl.STORAGE_PROPERTY_08;
|
|
dr["STORAGE_PROPERTY_09"] = sl.STORAGE_PROPERTY_09;
|
|
dr["STORAGE_PROPERTY_10"] = sl.STORAGE_PROPERTY_10;
|
|
dr["STORAGE_PROPERTY_11"] = sl.STORAGE_PROPERTY_11;
|
|
dr["STORAGE_PROPERTY_12"] = sl.STORAGE_PROPERTY_12;
|
|
dr["BOX_BARCODE"] = sl.BOX_BARCODE;
|
|
dr["GOODS_BARCODE"] = sl.GOODS_BARCODE;
|
|
dr["STORAGE_LIST_QUANTITY"] = sl.STORAGE_LIST_QUANTITY;
|
|
this.dgStorageList.U_DataTable.Rows.Add(dr);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//MessageDialog.ShowException($"托盘条码 {sStockBarcode} 格式错误");
|
|
string[] aBarcode = sStockBarcode.Split('-');
|
|
if (aBarcode.Length != 2)
|
|
{
|
|
MessageDialog.ShowException($"托盘条码 {sStockBarcode} 格式错误");
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
if (AppSettings.IsStockSingleGoods)
|
|
{
|
|
this.dgStorageList.U_DataTable.Rows.Clear();
|
|
}
|
|
GOODS_MAIN gm = WCFChannel._I_StorageService.GetGoodsMainByGoodsCode(aBarcode[0]);
|
|
if (gm == null)
|
|
{
|
|
MessageDialog.ShowException($"物料编码 {aBarcode[0]} 不存在");
|
|
return;
|
|
}
|
|
if (AppSettings.IsStockUniqueGoods)
|
|
{
|
|
foreach (DataRowView drv in this.dgStorageList.gridApp.Items)
|
|
{
|
|
if (gm.GOODS_ID == Convert.ToInt32(drv["GOODS_ID"]))
|
|
{
|
|
MessageDialog.ShowException($"托盘物料已存在物料编码 {drv["GOODS_CODE"]}");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
DataRow dr = this.dgStorageList.U_DataTable.NewRow();
|
|
dr["GOODS_ID"] = gm.GOODS_ID;
|
|
dr["GOODS_CLASS"] = gm.GOODS_CLASS;
|
|
dr["GOODS_CODE"] = gm.GOODS_CODE;
|
|
dr["GOODS_NAME"] = gm.GOODS_NAME;
|
|
dr["GOODS_PROPERTY_01"] = gm.GOODS_PROPERTY_01;
|
|
dr["GOODS_PROPERTY_02"] = gm.GOODS_PROPERTY_02;
|
|
dr["GOODS_PROPERTY_03"] = gm.GOODS_PROPERTY_03;
|
|
dr["GOODS_PROPERTY_04"] = gm.GOODS_PROPERTY_04;
|
|
dr["STORAGE_PROPERTY_01"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_02"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_03"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_04"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_05"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_06"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_07"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_08"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_09"] = string.Empty;
|
|
dr["STORAGE_PROPERTY_10"] = string.Empty;
|
|
dr["BOX_BARCODE"] = string.Empty;
|
|
dr["GOODS_BARCODE"] = string.Empty;
|
|
dr["STORAGE_LIST_QUANTITY"] = Convert.ToDecimal(aBarcode[1]);
|
|
this.dgStorageList.U_DataTable.Rows.Add(dr);
|
|
this.tbStockBarcode.Text = string.Empty;
|
|
}
|
|
catch
|
|
{
|
|
MessageDialog.ShowException($"托盘条码 {sStockBarcode} 格式错误");
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageDialog.ShowException(ex);
|
|
}
|
|
}
|
|
|
|
private void bEndDevice_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string sCellCode = string.Empty;
|
|
DataView dv = null;
|
|
if (WAREHOUSE_CELL_SELECT.GetSelectedCell(true, SystemCode.WAREHOUSE_CODE.Warehouse, out sCellCode, out dv))
|
|
{
|
|
this.cbEndDevice.ItemsSource = dv;
|
|
this.cbEndDevice.SelectedValue = sCellCode;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageDialog.ShowException(ex);
|
|
}
|
|
}
|
|
|
|
private void bInPlan_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string sStockBarcode = this.tbStockBarcode.Text.Trim().ToUpper();
|
|
if (string.IsNullOrWhiteSpace(sStockBarcode))
|
|
{
|
|
MessageDialog.ShowException("请输入托盘条码");
|
|
return;
|
|
}
|
|
if (!StringUtils.StockBarcodeValidate(sStockBarcode))
|
|
{
|
|
MessageDialog.ShowException($"托盘条码 {this.tbStockBarcode.Text} 格式错误");
|
|
return;
|
|
}
|
|
//if (this.cbCellModel.SelectedIndex == -1)
|
|
//{
|
|
// MessageDialog.ShowException("请选择物料高度");
|
|
// return;
|
|
//}
|
|
//if (this.cbStartDevice.SelectedIndex == -1)
|
|
//{
|
|
// MessageDialog.ShowException("请选择起始位置");
|
|
// return;
|
|
//}
|
|
if (this.dgStorageList.gridApp.Items.Count == 0)
|
|
{
|
|
MessageDialog.ShowException("请输入托盘物料");
|
|
return;
|
|
}
|
|
List<STORAGE_LIST> lStorageList = new List<STORAGE_LIST>();
|
|
foreach (DataRowView drv in this.dgStorageList.gridApp.Items)
|
|
{
|
|
if (drv.IsEdit)
|
|
{
|
|
MessageDialog.ShowException($"请输入托盘物料信息 物料编码 {drv["GOODS_CODE"]}");
|
|
return;
|
|
}
|
|
//decimal dQuantity = Convert.ToDecimal(drv["STORAGE_LIST_QUANTITY"]);
|
|
int dQuantity = Convert.ToInt32(drv["STORAGE_LIST_QUANTITY"]);
|
|
if (dQuantity <= 0)
|
|
{
|
|
MessageDialog.ShowException($"请输入物料数量 物料编码 {drv["GOODS_CODE"]}");
|
|
return;
|
|
}
|
|
lStorageList.Add(new STORAGE_LIST()
|
|
{
|
|
GOODS_ID = Convert.ToInt32(drv["GOODS_ID"]),
|
|
STORAGE_PROPERTY_01 = drv["STORAGE_PROPERTY_01"].ToString().Trim(),
|
|
STORAGE_PROPERTY_02 = drv["STORAGE_PROPERTY_02"].ToString().Trim(),
|
|
STORAGE_PROPERTY_03 = drv["STORAGE_PROPERTY_03"].ToString().Trim(),
|
|
STORAGE_PROPERTY_04 = drv["STORAGE_PROPERTY_04"].ToString().Trim(),
|
|
STORAGE_PROPERTY_05 = drv["STORAGE_PROPERTY_05"].ToString().Trim(),
|
|
STORAGE_PROPERTY_06 = drv["STORAGE_PROPERTY_06"].ToString().Trim(),
|
|
STORAGE_PROPERTY_07 = drv["STORAGE_PROPERTY_07"].ToString().Trim(),
|
|
STORAGE_PROPERTY_08 = drv["STORAGE_PROPERTY_08"].ToString().Trim(),
|
|
STORAGE_PROPERTY_09 = drv["STORAGE_PROPERTY_09"].ToString().Trim(),
|
|
STORAGE_PROPERTY_10 = drv["STORAGE_PROPERTY_10"].ToString().Trim(),
|
|
STORAGE_PROPERTY_11 = drv["STORAGE_PROPERTY_11"].ToString().Trim(),
|
|
STORAGE_PROPERTY_12 = drv["STORAGE_PROPERTY_12"].ToString().Trim(),
|
|
BOX_BARCODE = drv["BOX_BARCODE"].ToString().Trim(),
|
|
GOODS_BARCODE = drv["GOODS_BARCODE"].ToString().Trim(),
|
|
STORAGE_LIST_QUANTITY = dQuantity
|
|
});
|
|
}
|
|
if (MessageDialog.ShowDialog("确认执行暂存入库"))
|
|
{
|
|
string sResult = string.Empty;
|
|
bool bResult = WCFChannel._I_ManageService.ManageInStation(
|
|
new STORAGE_MAIN()
|
|
{
|
|
PLAN_ID = this.PlanID,
|
|
STOCK_BARCODE = sStockBarcode,
|
|
CELL_MODEL = SystemCode.CELL_MODEL.Low,
|
|
CELL_CODE = SystemCode.WH_CELL_CODE.GroupDeviceCode
|
|
}, lStorageList, MainApp._USER.USER_NAME, out sResult);
|
|
//bool bResult = WCFChannel._I_ManageService.ManageInCell(
|
|
// new STORAGE_MAIN()
|
|
// {
|
|
// PLAN_ID = this.PlanID,
|
|
// STOCK_BARCODE = sStockBarcode,
|
|
// CELL_MODEL = this.cbCellModel.SelectedValue as string,
|
|
// CELL_CODE = this.cbStartDevice.SelectedValue as string
|
|
// }, lStorageList, this.cbEndDevice.SelectedValue as string, MainApp._USER.USER_NAME, out sResult);
|
|
if (bResult)
|
|
{
|
|
sResult = $"托盘条码 {sStockBarcode} 入库成功";
|
|
this.bRefresh_Click(null, null);
|
|
}
|
|
MessageDialog.ShowResult(bResult, sResult);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageDialog.ShowException(ex);
|
|
}
|
|
}
|
|
|
|
private void bRefresh_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
this.dgPlan.U_InitControl();
|
|
this.dgStorageList.U_DataTable.Rows.Clear();
|
|
this.tbStockBarcode.Text = string.Empty;
|
|
//this.cbCellModel.SelectedIndex = -1;
|
|
this.cbEndDevice.SelectedIndex = -1;
|
|
}
|
|
}
|
|
}
|