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

389 lines
12 KiB
C#
Raw 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.Common;
using WMS.Ctrl;
using WMS.Business;
using WMS.Business.Base;
namespace WMS.FrmBaseData
{
/// <summary>
/// 窗体:仓库信息编辑
/// </summary>
public partial class FrmStorageInfoHandle : FormBase
{
#region
private StorageInfoModel storageInfoModel = new StorageInfoModel();
private List<StorageOrderModel> storageOrderList = new List<StorageOrderModel>();
private int flag = -1;//0:新增;1:修改
#endregion
#region
/// <summary>
/// 构造函数 用于新增
/// </summary>
public FrmStorageInfoHandle()
{
InitializeComponent();
storageInfoModel.STATUS = "正常";
storageInfoModel.BATCHFLAG = "否";
storageInfoModel.GOODSFLAG = "否";
storageInfoModel.RFMODEL = "否";
// storageInfoModel.VERSION = "Version 1.0";
flag = 0;
}
/// <summary>
/// 构造函数 用于修改
/// </summary>
/// <param name="storageInfo"></param>
public FrmStorageInfoHandle(StorageInfoModel storageInfo, List<StorageOrderModel> list)
{
InitializeComponent();
flag = 1;
storageInfoModel = storageInfo;
storageOrderList = list;
}
/// <summary>
/// load
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmStorageInfoHandle_Load(object sender, EventArgs e)
{
// lookUpEditDicType.LoadData();
luePro.LoadData();
lueCity.LoadData();
lueTown.LoadData();
if (string.IsNullOrEmpty(storageInfoModel.STORAGE_ID))
{
luePro.Text = storageInfoModel.PROVINCE_NAME;
lueCity.Text = storageInfoModel.CITY_NAME;
}
if(storageInfoModel!=null)
bsStorageInfo.DataSource = storageInfoModel;
if (storageOrderList != null)
bsStorageOrder.DataSource = storageOrderList;
// GVStorageOrder.RefreshData();
}
#endregion
#region
/// <summary>
/// 确定按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ctrlButtons1_Click(object sender, EventArgs e)
{
btnConfirm.Focus();
//非空验证
if (string.IsNullOrEmpty(txtStorageName.Text.Trim()))
{
SystemCommon.ShowInfoMessageBox("仓库名称不能为空");
txtStorageName.Focus();
return;
}
if (string.IsNullOrEmpty(luePro.Text.Trim()))
{
SystemCommon.ShowInfoMessageBox("请选择省份");
luePro.Focus();
return;
}
if (string.IsNullOrEmpty(lueCity.Text.Trim()))
{
SystemCommon.ShowInfoMessageBox("请选择城市");
lueCity.Focus();
return;
}
if (string.IsNullOrEmpty(lueTown.Text.Trim()))
{
SystemCommon.ShowInfoMessageBox("请选择县/市/区");
lueTown.Focus();
return;
}
//if (string.IsNullOrEmpty(txtAddress.Text.Trim()))
//{
// SystemCommon.ShowInfoMessageBox("地址不能为空");
// txtAddress.Focus();
// return;
//}
//if (storageOrderList.Count == 0)
//{
// SystemCommon.ShowInfoMessageBox("请选择订单范围");
// ctrlDicStoOrder.Focus();
// return;
//}
StorageInfoModel model = storageInfoModel;
if (rgStatus.Text == "正常")
{
model.STATUS = "0";
}
else
{
model.STATUS = "1";
}
if (rgRFMODEL.Text == "否")
{
model.RFMODEL = "0";
}
else
{
model.RFMODEL = "1";
}
if (rgGOODSFLAG.Text == "否")
{
model.GOODSFLAG = "0";
}
else
{
model.GOODSFLAG = "1";
}
if (rgBATCHFLAG.Text == "否")
{
model.BATCHFLAG = "0";
}
else
{
model.BATCHFLAG = "1";
}
model.OPERATORID = userData.USER_ID;//操作人
if (flag == 1)//修改
{
model.AUTOSTS = checkBox1.Checked;
UpdateStorage(model);
}
else if (flag == 0)//新增
{
model.AUTOSTS = checkBox1.Checked;
AddStorage(model);
}
}
public void UpdateStorage(StorageInfoModel model)
{
string errText = string.Empty;
try
{
errText = IBussFactory<BussStorageInfo>.Instance().InsOrUpdStorageInfo(model, 1, storageOrderList);
if (string.IsNullOrEmpty(errText))
{
errText = string.Empty;
try
{
errText = IBussFactory<BussStorageAreaLocation>.Instance().CloseLocationInfoByStorageInfoID(model.STORAGE_ID, int.Parse(model.STATUS));
}
catch (Exception ex)
{
SystemCommon.ShowInfoMessageBox("根据仓库停用或启用库位出错了CloseLocationInfoByStorageInfoID:" + ex.Message);
return;
}
if (!string.IsNullOrEmpty(errText))
{
SystemCommon.ShowInfoMessageBox("根据仓库停用或启用库位失败" + errText);
return;
}
errText = string.Empty;
try
{
errText = IBussFactory<BussStorageArea>.Instance().CloseAreaInfoByStorageInfoID(model.STORAGE_ID, int.Parse(model.STATUS));
if (!string.IsNullOrEmpty(errText))
{
SystemCommon.ShowInfoMessageBox("根据仓库停用或启用库区失败" + errText);
return;
}
SystemCommon.ShowInfoMessageBox("修改成功");
this.Close();
this.Dispose();
}
catch (Exception ex)
{
SystemCommon.ShowInfoMessageBox("根据仓库停用或启用库区出错了:" + ex.Message);
return;
}
}
else
{
if (errText == "ORA-00001: unique constraint (WMS.STORAGE_ORDER) violated")
{
SystemCommon.ShowInfoMessageBox("所选订单配送区域已被其它仓库占有,请重新选择");
}
else
{
SystemCommon.ShowInfoMessageBox("修改失败" + errText);
}
}
}
catch (Exception ex)
{
SystemCommon.ShowInfoMessageBox("出错了:" + ex.Message);
}
}
private void AddStorage(StorageInfoModel model)
{
string errText = string.Empty;
try
{
errText = IBussFactory<BussStorageInfo>.Instance().InsOrUpdStorageInfo(model, 0, storageOrderList);
if (string.IsNullOrEmpty(errText))
{
SystemCommon.ShowInfoMessageBox("新增成功");
this.Close();
this.Dispose();
}
}
catch (Exception ex)
{
SystemCommon.ShowInfoMessageBox("新增仓库出错了InsOrUpdStorageInfo:" + ex.Message);
}
}
/// <summary>
/// 退出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ctrlButtons2_Click(object sender, EventArgs e)
{
if (DialogResult.OK != SystemCommon.ShowMessageBoxResult("确定放弃正在编辑的数据?"))
{
return;
}
this.Close();
this.Dispose();
}
#endregion
#region
/// <summary>
/// 改变省份后 城市只显示该省份的所有城市
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void luePro_EditValueChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(luePro.EditValue.ToString()))
{
//绑定城市数据
string errText = string.Empty;
AddressAreaModel addressAreaModel = new AddressAreaModel();
try
{
addressAreaModel.Add_pid = luePro.EditValue.ToString();
DataTable tb = IBussFactory<BussAddressArea>.Instance().GetAddressArea(addressAreaModel);
if(tb!=null)
{
lueCity.Properties.DataSource = tb;
}
}
catch (Exception ex)
{
SystemCommon.ShowInfoMessageBox("查询城市出错了:" + ex.Message);
}
}
}
#endregion
#region
/// <summary>
/// 改变城市后 区县只显示该城市的所有区县
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lueCity_EditValueChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(lueCity.EditValue.ToString()) )
{
//绑定区县数据
string errText = string.Empty;
AddressAreaModel addressAreaModel = new AddressAreaModel();
addressAreaModel.Add_pid = lueCity.EditValue.ToString();
try
{
DataTable tab = IBussFactory<BussAddressArea>.Instance().GetAddressArea(addressAreaModel);
lueTown.Properties.DataSource = tab;
}
catch (Exception ex)
{
SystemCommon.ShowInfoMessageBox("出错了:" + ex.Message);
}
}
}
#endregion
/// <summary>
/// //通过地址区域编号得名称
/// </summary>
/// <param name="id">地址区域编号</param>
/// <param name="p_id">父编号</param>
/// <returns>地址区域名称</returns>
private string getAddressAreaNameByID(string id, ref string p_id)
{
string proName = string.Empty;
AddressAreaModel tempModel = new AddressAreaModel();
tempModel.Add_id = id;
List<AddressAreaModel> tResultList = new List<AddressAreaModel>();
try
{
DataTable tab = IBussFactory<BussAddressArea>.Instance().GetAddressArea(tempModel);
tResultList = ConvertHelper<AddressAreaModel>.ConvertToList(tab);
}
catch (Exception ex)
{
SystemCommon.ShowInfoMessageBox("出错了:" + ex.Message);
}
if (tResultList.Count > 0)
{
p_id = tResultList[0].Add_pid;
return tResultList[0].Add_name;
}
else
{
return string.Empty;
}
}
}
}