BaoKai_202508-Wms-Jingwang..../WMS.FrmBaseData/FrmGoodsInfoDet.cs

859 lines
29 KiB
C#
Raw Permalink Normal View History

2025-08-24 09:35:55 +08:00
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 WMS.Frm.Base;
using WMS.Model.Base;
using WMS.Model.SystemManage;
using WMS.Common;
using System.IO;
using System.Data.SqlClient;
using System.Drawing.Imaging;
using DevExpress.XtraEditors;
using WMS.Ctrl;
using DevExpress.XtraGrid.Views.Grid;
using WMS.Business;
using WMS.Business.SystemManage;
using WMS.Business.Base;
namespace WMS.FrmBaseData
{
/// <summary>
/// 商品信息
/// </summary>
public partial class FrmGoodsInfoDet : FormBase
{
#region
//商品分类实体集合
List<GoodsTypeModel> listGoodsTypeModel = new List<GoodsTypeModel>();
/// <summary>
/// 当前选择的SKU
/// </summary>
SKUModel skuModel = new SKUModel();
/// <summary>
/// 当前商品的SKU集合
/// </summary>
private List<SKUModel> listskuModel = new List<SKUModel>();
/// <summary>
/// 商品信息实体
/// </summary>
public static JWGoodsInfoModel goodsModel = new JWGoodsInfoModel();
/// <summary>
/// 商品计量单位实体
/// </summary>
List<GoodsMeasureModel> ListGoodsMeasureModel = new List<GoodsMeasureModel>();
/// <summary>
/// 需要增加的类
/// </summary>
List<GoodsMeasureModel> newGoodsMeasureModel = new List<GoodsMeasureModel>();
/// <summary>
/// 商品供应商
/// </summary>
List<GoodsProviderModel> ListGoodsProviderModel = new List<GoodsProviderModel>();
List<DictionaryTabModel> ListDictionaryTabModel = new List<DictionaryTabModel>();
static FrmGoodsInfoDet frmGoodsDet;
//窗体标记 0新增 1修改 2查看 3编辑导入的数据
static int iFlag = -1;
public static int IFlag
{
get { return FrmGoodsInfoDet.iFlag; }
set { FrmGoodsInfoDet.iFlag = value; }
}
static string strGoodsID = string.Empty;
public static string StrGoodsID
{
get { return FrmGoodsInfoDet.strGoodsID; }
set { FrmGoodsInfoDet.strGoodsID = value; }
}
#endregion
#region
/// <summary>
/// 实例化窗体
/// </summary>
/// <returns></returns>
public static FrmGoodsInfoDet GetInstance()
{
if (frmGoodsDet == null || frmGoodsDet.IsDisposed)
{
frmGoodsDet = new FrmGoodsInfoDet();
}
return frmGoodsDet;
}
#endregion
#region
public FrmGoodsInfoDet()
{
InitializeComponent();
// boolCode = IBussFactory<BussSystemParams>.Instance().GetParamValue("autoGoodsID");
// boolGoodsId = IBussFactory<BussSystemParams>.Instance().GetParamValue("BarCodeGoodsID");
}
#endregion
#region
string boolCode = "1";
string boolGoodsId = "0";
private void FrmGoodsInfoDet_Load(object sender, EventArgs e)
{
#region
//if (boolCode == "0")
//{
// txt_GoodsID.Enabled = true;
//}
//else
//{
// txt_GoodsID.Enabled = false;
//}
//if (iFlag == 1)
//{
// txt_GoodsID.Enabled = false;
//}
#endregion
#region
if (boolCode == "0")
{
txtTXM.Enabled = true;
}
else
{
txtTXM.Enabled = false;
}
#endregion
//检测是否开启SKU
if (boolSku == "0")
{
RefreshSKU();
}
else
{
pageSku.PageVisible = false;
ctrlButtons3.Visible = false;
ctrlButtons4.Visible = false;
ctrlButtons5.Visible = false;
}
#region
//供应商
LueProvider.LoadData();
//ABC分类
LueABC.LoadData();
//存储类型
LueStored.LoadData();
//保质期
LueBZQ.LoadData();
//重量单位
LueZLDW.LoadData();
//商品单位
LueSPDW.LoadData();
//季节
LueJJ.LoadData();
//商品状态
LueStatus.LoadData();
#endregion
#region
ListDictionaryTabModel = IBussFactory<BussDictionaryTab>.Instance().GetDictionaryTab("vc_uom");
UNITBINGSOURCE.DataSource = ListDictionaryTabModel;
#endregion
#region
List<ProviderModel> listProvider = IBussFactory<BussProvider>.Instance().GetProviderList(new ProviderModel());
providerModelBindingSource.DataSource = listProvider;
#endregion
#region
//获取商品分类
GoodsTypeModel model = new GoodsTypeModel();
listGoodsTypeModel = IBussFactory<BussGoodsType>.Instance().GetGoodsTypeList(model);
goodsTypeModelBindingSource.DataSource = listGoodsTypeModel;
#endregion
#region
if (IFlag == 0)
{
goodsModel = new JWGoodsInfoModel();
ListGoodsMeasureModel.Clear();
ListGoodsProviderModel.Clear();
//goodsModel.STATUS = "1";
//goodsModel.SC_FLAG = "0";
//goodsModel.HAZARDOUS = "0";
}
if (IFlag == 1)
{
//GetGoodsMeasure(goodsModel.INVENTORY_ITEM_ID);
//GetGoodsPrivider(goodsModel.INVENTORY_ITEM_ID);
}
if (IFlag == 2)
{
//获取商品信息
List<JWGoodsInfoModel> list = IBussFactory<BussGoods>.Instance().GetGoodsList(strGoodsID, "", "", "");
if (list.Count == 0)
{
SystemCommon.ShowInfoMessageBox("找不到该商品");
Close();
Dispose();
return;
}
goodsModel = list[0];
GetGoodsMeasure(goodsModel.INVENTORY_ITEM_ID);
GetGoodsPrivider(goodsModel.INVENTORY_ITEM_ID);
foreach (Control item in this.Controls)
{
//item.Enabled = false;
switch (item.GetType().Name)
{
case "PictureEdit":
PictureEdit pictureEdit = item as PictureEdit;
pictureEdit.Properties.ReadOnly = true;
break;
case "WMSCtrlTextBox":
WMSCtrlTextBox textBox = item as WMSCtrlTextBox;
textBox.Properties.ReadOnly = true;
textBox.Enabled = false;
break;
case "TreeListLookUpEdit":
TreeListLookUpEdit treeListLookUpEdit = item as TreeListLookUpEdit;
treeListLookUpEdit.Properties.ReadOnly = true;
break;
case "LookUpEditSystem":
LookUpEditSystem lookUpEditSystem = item as LookUpEditSystem;
lookUpEditSystem.Properties.ReadOnly = true;
break;
case "RadioButton":
RadioButton radioButton = item as RadioButton;
radioButton.Enabled = false;
break;
case "MemoEdit":
MemoEdit memoEdit = item as MemoEdit;
memoEdit.Properties.ReadOnly = true;
break;
//case "GridControlCustom":
// GridControlCustom gridControlCustom = item as GridControlCustom;
// GridView view = gridControlCustom.MainView as GridView;
// view.OptionsBehavior.Editable = false;
// break;
default:
break;
}
}
radioGroup1.Enabled = false;
ctrlButtons1.Enabled = false;//取消关闭按钮
GvGYS.OptionsBehavior.Editable = false;
GvJLDW.OptionsBehavior.Editable = false;
}
if(goodsModel!=null)
goodsInfoModelBindingSource.DataSource = goodsModel;
// goodsInfoModelBindingSource.DataSource = goodsModel;
//if (goodsModel.HAZARDOUS == "0")
//{
// radioButton1.Checked = true;
//}
//else
//{
// radioButton2.Checked = true;
//}
//显示图片
//if (goodsModel.IMG != null && goodsModel.IMG.Length > 0)
//{
// try
// {
// MemoryStream ms = new System.IO.MemoryStream(goodsModel.IMG);
// pictureEdit.Image = System.Drawing.Image.FromStream(ms);
// }
// catch (Exception ex)
// {
// }
//}
#endregion
}
#endregion
#region
/// <summary>
/// 获取商品规格
/// </summary>
private void RefreshSKU()
{
string errText = string.Empty;
string strResult = string.Empty;
SKUModel tempSKU = new SKUModel();
//tempSKU.INVENTORY_ITEM_ID = goodsModel.INVENTORY_ITEM_ID;
try
{
listskuModel = IBussFactory<BussSKU>.Instance().GetSKUList(tempSKU);
bsSKU.DataSource = listskuModel;
gridView1.RefreshData();
}
catch (Exception)
{
SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!");
}
}
#endregion
#region
/// <summary>
/// 获取商品单位
/// </summary>
private void GetGoodsMeasure(string strGoodsID)
{
//获取商品单位
ListGoodsMeasureModel = IBussFactory<BussGoods>.Instance().GetGoodsMeasureDataTable(strGoodsID);
if(ListGoodsMeasureModel!=null)
goodsMeasureModelBindingSource.DataSource = ListGoodsMeasureModel;
}
#endregion
#region
/// <summary>
/// 获取商品供应商
/// </summary>
private void GetGoodsPrivider(string strGoodsID)
{
//获取商品供应商
List<GoodsProviderModel> listGoodsProvider = IBussFactory<BussGoods>.Instance().GetGoodsPrividerDataTale(strGoodsID);
goodsProviderModelBindingSource.DataSource = listGoodsProvider;
}
#endregion
#region
private void ctrlButtons1_Click(object sender, EventArgs e)
{
if (Validation() == false)
return;
string errText = string.Empty;
//图片
if (pictureEdit.Image != null)
{
MemoryStream Ms = new MemoryStream();
pictureEdit.Image.Save(Ms, pictureEdit.Image.RawFormat);
byte[] img = new byte[Ms.Length];
Ms.Position = 0;
Ms.Read(img, 0, Convert.ToInt32(Ms.Length));
Ms.Close();
//goodsModel.IMG = img;
}
if (iFlag == 3 || iFlag == 2)
{
FrmClose();
return;
}
//goodsModel.CREATE_MAN = userData.USER_ID;
//goodsModel.UPDATE_MAN = userData.USER_ID;
//goodsModel.STORAGE_ID = userData.STORAGE_ID;
//goodsModel.STORAGE_NAME = userData.STORAGE_NAME;
foreach (var item in ListGoodsMeasureModel)
{
item.CREATE_MAN = userData.USER_ID;
item.UPDATE_MAN = userData.USER_ID;
//item.INVENTORY_ITEM_ID = goodsModel.INVENTORY_ITEM_ID;
}
if (iFlag == 0)
{
errText = IBussFactory<BussGoods>.Instance().AddGoodsInfo(goodsModel, ListGoodsMeasureModel, ListGoodsProviderModel);
if (errText != "")
{
SystemCommon.ShowErrorMessageBox(errText);
}
else
{
SystemCommon.ShowInfoMessageBox("添加成功!");
DialogResult = DialogResult.OK;
}
}
else if (iFlag == 1)
{
errText = IBussFactory<BussGoods>.Instance().UpdateGoodsInfo(goodsModel, ListGoodsMeasureModel, ListGoodsProviderModel);
if (errText != "")
{
SystemCommon.ShowErrorMessageBox(errText);
}
else
{
SystemCommon.ShowInfoMessageBox("修改成功!");
DialogResult = DialogResult.OK;
}
}
}
#endregion
#region
private void ctrlButtons2_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
#endregion
#region
/// <summary>
/// 验证
/// </summary>
/// <returns></returns>
private bool Validation()
{
xtraTabControl1.Focus();
if (txtGoodsName.Text == "")
{
SystemCommon.ShowErrorMessageBox("请填写商品名称!");
txtGoodsName.Focus();
return false;
}
//if (txtGoodsShortName.Text == "")
//{
// SystemCommon.ShowErrorMessageBox("请填写商品简称!");
// txtGoodsShortName.Focus();
// return false;
//}
//if (txtPyName.Text == "")
//{
// SystemCommon.ShowErrorMessageBox("请填写助记码!");
// txtPyName.Focus();
// return false;
//}
//if (LueProvider.EditValue == "")
//{
// SystemCommon.ShowErrorMessageBox("请选择供应商!");
// LueProvider.Focus();
// return false;
//}
if (LueSPDW.EditValue.ToString() == "")
{
SystemCommon.ShowErrorMessageBox("请选择基本单位!");
LueSPDW.Focus();
return false;
}
//ListGoodsMeasureModel = goodsMeasureModelBindingSource.DataSource as List<GoodsMeasureModel>;
//foreach (var item in ListGoodsMeasureModel)
//{
// //if (item.UNIT_ID == goodsModel.UNIT)
// //{
// // SystemCommon.ShowErrorMessageBox("换算单位不能与最小单位相同!");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
// if (ListGoodsMeasureModel.Count(p => p.UNIT_ID == item.UNIT_ID) > 1)
// {
// SystemCommon.ShowErrorMessageBox("换算单位列表中有重复的单位:" + item.UNIT_NAME);
// xtraTabControl1.SelectedTabPageIndex = 0;
// GvJLDW.Focus();
// return false;
// }
// //if (item.CONVERSION_RATIO > 1)
// //{
// // SystemCommon.ShowErrorMessageBox(item.UNIT_NAME + "换算比率不能大于1");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
// if (item.CONVERSION_RATIO <= 0)
// {
// SystemCommon.ShowErrorMessageBox(item.UNIT_NAME + "换算比率必须大于0");
// xtraTabControl1.SelectedTabPageIndex = 0;
// GvJLDW.Focus();
// return false;
// }
// //if (item.BOX_CASES_STORED < 0)
// //{
// // SystemCommon.ShowErrorMessageBox(item.BOX_CASES_STORED + "不能小于0");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
// //if (item.CASES_STORED < 0)
// //{
// // SystemCommon.ShowErrorMessageBox(item.CASES_STORED + "不能小于0");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
// //if (item.CONVERSION_RATIO < 0)
// //{
// // SystemCommon.ShowErrorMessageBox(item.CONVERSION_RATIO + "不能小于0");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
// //if (item.GLONG < 0)
// //{
// // SystemCommon.ShowErrorMessageBox(item.GLONG + "不能小于0");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
// //if (item.GWIDTH < 0)
// //{
// // SystemCommon.ShowErrorMessageBox(item.GWIDTH + "不能小于0");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
// //if (item.GHEIGHT < 0)
// //{
// // SystemCommon.ShowErrorMessageBox(item.GHEIGHT + "不能小于0");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
// //if (item.GVOLUME < 0)
// //{
// // SystemCommon.ShowErrorMessageBox(item.GVOLUME + "不能小于0");
// // xtraTabControl1.SelectedTabPageIndex = 0;
// // GvJLDW.Focus();
// // return false;
// //}
//}
foreach (var item in ListGoodsProviderModel)
{
if (ListGoodsProviderModel.Count(p => p.PROVIDER_ID == item.PROVIDER_ID) > 1)
{
SystemCommon.ShowErrorMessageBox("供应商列表中有重复的供应商");
xtraTabControl1.SelectedTabPageIndex = 1;
GvJLDW.Focus();
return false;
}
}
return true;
}
#endregion
#region
/// <summary>
/// 关闭窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmGoodsInfoDet_FormClosing(object sender, FormClosingEventArgs e)
{
FrmClose();
}
/// <summary>
/// 关闭窗体
/// </summary>
private void FrmClose()
{
frmGoodsDet.Dispose();
frmGoodsDet.Close();
}
#endregion
/// <summary>
/// 计算体积
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtLong_TextChanged(object sender, EventArgs e)
{
if (txtLong.Text == "" || txtWidth.Text == "" || txtHeight.Text == "")
return;
decimal temp = 0;
if (!decimal.TryParse(txtLong.Text, out temp)) return;
if (!decimal.TryParse(txtWidth.Text, out temp)) return;
if (!decimal.TryParse(txtHeight.Text, out temp)) return;
decimal decVOLUME = decimal.Parse(txtLong.Text) * decimal.Parse(txtWidth.Text) * decimal.Parse(txtHeight.Text);
//goodsModel.GVOLUME = decVOLUME;
txtVOLUME.Text = decVOLUME.ToString();
}
/// <summary>
/// 计算体积
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GvJLDW_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (GvJLDW.RowCount > 0)
{
if (GvJLDW.GetRowCellValue(0, "UNIT_ID") != null)
{
LueSPDW.EditValue = GvJLDW.GetRowCellValue(0, "UNIT_ID").ToString();
}
int rowid = e.RowHandle;
if (rowid < 0)
return;
if (e.Column.Name == "colGLONG" || e.Column.Name == "colGWIDTH" || e.Column.Name == "colGHEIGHT")
{
decimal dlong = decimal.Parse(GvJLDW.GetRowCellValue(rowid, "GLONG").ToString());
decimal dwidth = decimal.Parse(GvJLDW.GetRowCellValue(rowid, "GWIDTH").ToString());
decimal dheight = decimal.Parse(GvJLDW.GetRowCellValue(rowid, "GHEIGHT").ToString());
decimal dvolumn = 0;
dvolumn = dlong * dwidth * dheight;
GvJLDW.SetRowCellValue(rowid, "GVOLUME", dvolumn);
}
}
}
private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
if (listskuModel.Count == 0)
{
return;
}
skuModel = new SKUModel();
skuModel = gridView1.GetFocusedRow() as SKUModel;
}
private void ctrlButtons3_Click(object sender, EventArgs e)
{
SKUModel addSKUModel = new SKUModel();
FrmGoodsSKUDet.IFlag = 0;
FrmGoodsSKUDet.skuModel = addSKUModel;
FrmGoodsSKUDet.GetInstance().ShowDialog();
//FrmGoodsSKUDet.skuModel.INVENTORY_ITEM_ID = goodsModel.INVENTORY_ITEM_ID;
listskuModel.Insert(0, FrmGoodsSKUDet.skuModel);
bsSKU.DataSource = listskuModel;
gridView1.RefreshData();
}
private void ctrlButtons4_Click(object sender, EventArgs e)
{
FrmGoodsSKUDet.IFlag = 1;
FrmGoodsSKUDet.skuModel = skuModel;
FrmGoodsSKUDet.GetInstance().ShowDialog();
skuModel = FrmGoodsSKUDet.skuModel;
bsSKU.DataSource = listskuModel;
gridView1.RefreshData();
}
private void ctrlButtons5_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(skuModel.SKU_ID))
{
if (DialogResult.Yes == SystemCommon.ShowMessageBoxResult("确定删除规格"))
{
string errText = string.Empty;
string strResult = string.Empty;
try
{
errText = IBussFactory<BussSKU>.Instance().DeleteSKU(skuModel.SKU_ID);
if (errText == string.Empty)
{
listskuModel.RemoveAll(p => p.SKU_ID == skuModel.SKU_ID);
bsSKU.DataSource = listskuModel;
gridView1.RefreshData();
}
else
{
SystemCommon.ShowInfoMessageBox(errText);
}
}
catch (Exception)
{
SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!");
}
}
}
}
private void txt_GoodsID_TextChanged(object sender, EventArgs e)
{
if (boolGoodsId == "1")
{
txtTXM.Text = txt_GoodsID.Text;
//goodsModel.BARCODE = txt_GoodsID.Text;
}
}
private void LueSPDW_EditValueChanged(object sender, EventArgs e)
{
if (LueSPDW.EditValue.ToString().Length > 0)
{
if (ListGoodsMeasureModel.Count > 0)
{
ListGoodsMeasureModel[0].UNIT_ID = LueSPDW.EditValue.ToString();
}
else
{
GoodsMeasureModel dtcModle = new GoodsMeasureModel();
dtcModle.UNIT_ID = LueSPDW.EditValue.ToString();
//dtcModle.INVENTORY_ITEM_ID = txt_GoodsID.Text;
dtcModle.CONVERSION_RATIO = 1;
ListGoodsMeasureModel.Insert(0, dtcModle);
}
goodsMeasureModelBindingSource.DataSource = ListGoodsMeasureModel;
GvJLDW.RefreshData();
}
}
private void txtRemark_EditValueChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
if(txt_GoodsID.Text.Trim().Length==0)
{
return;
}
//GoodsMeasureModel modleGoodsMea = new GoodsMeasureModel();
//modleGoodsMea.INVENTORY_ITEM_ID = txt_GoodsID.Text;
//ListGoodsMeasureModel.Add(modleGoodsMea);
//newGoodsMeasureModel.Add(modleGoodsMea);
//GvJLDW.RefreshData();
}
private void button2_Click(object sender, EventArgs e)
{
if(txt_GoodsID.Text.Trim().Length==0)
{
SystemCommon.ShowInfoMessageBox("请输入商品编号");
txt_GoodsID.Focus();
return;
}
if (GvJLDW.RowCount > 0)
{
int i = GvJLDW.FocusedRowHandle;
if (i > 0)
{
string goodsId = txt_GoodsID.Text.Trim();
string unitId = GvJLDW.GetFocusedRowCellValue("UNIT_ID").ToString();
IBussFactory<BussGoods>.Instance().DeleteMeasure(goodsId, unitId);
GetGoodsMeasure(goodsId);
}
}
}
private void rLueUint_EditValueChanged(object sender, EventArgs e)
{
//if (GvJLDW.RowCount > 0)
//{
// if (GvJLDW.FocusedRowHandle == 0)
// {
// LookUpEdit lookUpEdit = sender as LookUpEdit;
// string val = lookUpEdit.EditValue.ToString();// GvJLDW.GetRowCellValue(0, "UNIT_ID").ToString();
// if (val != LueSPDW.EditValue.ToString())
// {
// LueSPDW.EditValue = val;
// }
// }
//}
}
private void btnAddProvider_Click(object sender, EventArgs e)
{
GoodsProviderModel provider = new GoodsProviderModel();
//provider.INVENTORY_ITEM_ID = txt_GoodsID.Text;
ListGoodsProviderModel.Add(provider);
}
private void btnRemoveProvider_Click(object sender, EventArgs e)
{
}
private void btnRemoveUnit_Click(object sender, EventArgs e)
{
if(newGoodsMeasureModel.Count==0)
{
SystemCommon.ShowInfoMessageBox("没有新增的单位");
return;
}
if(txt_GoodsID.Text.Trim().Length==0)
{
return;
}
foreach (GoodsMeasureModel item in newGoodsMeasureModel)
{
//if(item.GOODS_MEASURE_NAME.Trim().Length==0)
//{
// continue;
//}
IBussFactory<BussGoods>.Instance().AddGoodsMeasure(item);
}
GetGoodsMeasure(txt_GoodsID.Text);
SystemCommon.ShowInfoMessageBox("增加成功");
}
}
}