470 lines
16 KiB
C#
470 lines
16 KiB
C#
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 System.Collections;
|
|
using System.IO;
|
|
using DevExpress.XtraEditors.Repository;
|
|
using DevExpress.XtraReports.UI;
|
|
using System.Threading;
|
|
using WMS.Ctrl;
|
|
using WMS.Business;
|
|
using WMS.Business.Base;
|
|
using WMS.Frm;
|
|
|
|
namespace WMS.FrmBaseData
|
|
{
|
|
public partial class FrmGoodsInfo : FormBase
|
|
{
|
|
/// <summary>
|
|
/// 商品编号
|
|
/// </summary>
|
|
static string strGoodsId = string.Empty;
|
|
private List<JWGoodsInfoModel> list = new List<JWGoodsInfoModel>();
|
|
private bool importing = false;
|
|
|
|
#region 构造方法
|
|
public FrmGoodsInfo()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
#endregion
|
|
|
|
#region 窗体加载
|
|
private void FrmGoodsInfo_Load(object sender, EventArgs e)
|
|
{
|
|
FrmSelectModle = new JWGoodsInfoModel();
|
|
//获取商品信息
|
|
GetGoodsList("", "", "", "");
|
|
|
|
if (frmButtonItem.ContainsKey("SaveImport")) { frmButtonItem["SaveImport"].Enabled = false; }
|
|
}
|
|
#endregion
|
|
|
|
#region 获取商品信息
|
|
/// <summary>
|
|
/// 获取商品信息
|
|
/// </summary>
|
|
/// <param name="strGoodsID">商品编号</param>
|
|
/// <param name="strGoodsName">商品名称</param>
|
|
/// <param name="strPyName">助记码</param>
|
|
/// <param name="strProviderName">供应商</param>
|
|
private void GetGoodsList(string strGoodsID, string strGoodsName, string strPyName, string strProviderName)
|
|
{
|
|
WMS.Ctrl.LoadForm load = new WMS.Ctrl.LoadForm();
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 70);
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("数据加载中...");
|
|
|
|
new Thread(delegate ()
|
|
{
|
|
try
|
|
{
|
|
if (!importing)
|
|
{
|
|
|
|
//获取商品信息
|
|
|
|
list = IBussFactory<BussGoods>.Instance().GetGoodsList(strGoodsID, strGoodsName, strPyName, strProviderName);
|
|
}
|
|
this.Invoke(new MethodInvoker(delegate ()
|
|
{
|
|
JWGoodsInfoBindingSource.DataSource = list;
|
|
GvGoods.RefreshData();
|
|
// if( DevExpress.XtraSplashScreen.SplashScreenManager.ActivateParentOnSplashFormClosing)
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm();
|
|
}));
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!");
|
|
|
|
}
|
|
}).Start();
|
|
|
|
//GvGoods.FocusedRowHandle = list.FindIndex(p => p.INVENTORY_ITEM_ID == strGoodsId);
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 获取商品单位
|
|
/// <summary>
|
|
/// 获取商品单位
|
|
/// </summary>
|
|
private void GetGoodsMeasure(string strGoodsID)
|
|
{
|
|
//获取商品单位
|
|
|
|
List<GoodsMeasureModel> listMeasure = IBussFactory<BussGoods>.Instance().GetGoodsMeasureDataTable(strGoodsID);
|
|
goodsMeasureModelBindingSource.DataSource = listMeasure;
|
|
gdvMeasure.RefreshData();
|
|
}
|
|
#endregion
|
|
|
|
#region 获取商品供应商
|
|
/// <summary>
|
|
/// 获取商品供应商
|
|
/// </summary>
|
|
private void GetGoodsPrivider(string strGoodsID)
|
|
{
|
|
//获取商品供应商
|
|
|
|
List<GoodsProviderModel> listGoodsProvider = IBussFactory<BussGoods>.Instance().GetGoodsPrividerDataTale(strGoodsID);
|
|
goodsProviderModelBindingSource.DataSource = listGoodsProvider;
|
|
}
|
|
#endregion
|
|
|
|
#region 按钮事件
|
|
/// <summary>
|
|
/// 增加
|
|
/// </summary>
|
|
public override void Add()
|
|
{
|
|
FrmGoodsInfoDet.IFlag = 0;
|
|
|
|
DialogResult dia = FrmGoodsInfoDet.GetInstance().ShowDialog();
|
|
if (dia == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
GetGoodsList("", "", "", "");
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 编辑
|
|
/// </summary>
|
|
public override void Edit()
|
|
{
|
|
if (!frmButtonItem.ContainsKey("Edit"))
|
|
{
|
|
return;
|
|
}
|
|
else if (frmButtonItem["Edit"].Enabled == false)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (strGoodsId == "")
|
|
{
|
|
SystemCommon.ShowErrorMessageBox("请选择一条商品信息!");
|
|
return;
|
|
}
|
|
if (!importing)
|
|
{
|
|
FrmGoodsInfoDet.IFlag = 1;
|
|
FrmGoodsInfoDet.goodsModel = GvGoods.GetFocusedRow() as JWGoodsInfoModel;
|
|
//FrmGoodsInfoDet.StrGoodsID = strGoodsId;
|
|
}
|
|
else
|
|
{
|
|
FrmGoodsInfoDet.IFlag = 3;
|
|
|
|
FrmGoodsInfoDet.goodsModel = GvGoods.GetFocusedRow() as JWGoodsInfoModel;
|
|
}
|
|
|
|
DialogResult dia = FrmGoodsInfoDet.GetInstance().ShowDialog();
|
|
if (dia == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
GetGoodsList("", "", "", "");
|
|
// goodsInfoModelBindingSource.DataSource = list;
|
|
GvGoods.RefreshData();
|
|
GetGoodsMeasure(strGoodsId);
|
|
GetGoodsPrivider(strGoodsId);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除
|
|
/// </summary>
|
|
public override void Del()
|
|
{
|
|
if (strGoodsId == "")
|
|
{
|
|
SystemCommon.ShowErrorMessageBox("请选择一条商品信息!");
|
|
return;
|
|
}
|
|
|
|
if (DevExpress.XtraEditors.XtraMessageBox.Show("是否删除此信息?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
|
{
|
|
if (!importing)
|
|
{
|
|
strGoodsId = GvGoods.GetRowCellValue(GvGoods.FocusedRowHandle, "INVENTORY_ITEM_ID").ToString();
|
|
|
|
string errText = IBussFactory<BussGoods>.Instance().DeleteGoodsInfo(strGoodsId);
|
|
if (!string.IsNullOrEmpty(errText))
|
|
{
|
|
SystemCommon.ShowErrorMessageBox("删除失败:"+errText);
|
|
}
|
|
else
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("删除成功!");
|
|
GetGoodsList("", "", "", "");
|
|
GetGoodsMeasure(strGoodsId);
|
|
GetGoodsPrivider(strGoodsId);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
JWGoodsInfoModel goods = new JWGoodsInfoModel();
|
|
goods = GvGoods.GetFocusedRow() as JWGoodsInfoModel;
|
|
list.RemoveAll(p => p.INVENTORY_ITEM_ID == goods.INVENTORY_ITEM_ID && p.ITEM_DESCRIPTION == goods.ITEM_DESCRIPTION);//.RemoveAt(GvGoods.GetFocusedDataSourceRowIndex());
|
|
GetGoodsList("", "", "", "");
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 刷新
|
|
/// </summary>
|
|
public override void Refresh()
|
|
{
|
|
|
|
importing = false;
|
|
GetGoodsList("", "", "", "");
|
|
if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true; }
|
|
if (frmButtonItem.ContainsKey("UpdateImport")) { frmButtonItem["UpdateImport"].Enabled = true; }
|
|
if (frmButtonItem.ContainsKey("SaveImport")) { frmButtonItem["SaveImport"].Enabled = false; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询
|
|
/// </summary>
|
|
public override void Search()
|
|
{
|
|
FrmSelect frm = new FrmSelect(this.FrmSelectModle);
|
|
if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
this.LoadListData(frm.SelectData);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Grid行事件
|
|
private void GvGoods_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
|
{
|
|
if (e.FocusedRowHandle < 1)
|
|
return;
|
|
|
|
strGoodsId = GvGoods.GetRowCellValue(e.FocusedRowHandle, "INVENTORY_ITEM_ID").ToString();
|
|
GetGoodsMeasure(strGoodsId);
|
|
GetGoodsPrivider(strGoodsId);
|
|
}
|
|
#endregion
|
|
|
|
#region
|
|
|
|
/// <summary>
|
|
/// 双击进编辑
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void GvGoods_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
Edit();
|
|
}
|
|
#endregion
|
|
|
|
|
|
/// <summary>
|
|
/// 通用查询
|
|
/// </summary>
|
|
/// <param name="table"></param>
|
|
public override void LoadListData(DataTable table)
|
|
{
|
|
|
|
list = ConvertHelper<JWGoodsInfoModel>.ConvertToList(table);
|
|
goodsInfoModelBindingSource.DataSource = list;
|
|
GvGoods.RefreshData();
|
|
|
|
}
|
|
|
|
|
|
private bool fuGaiSave = false;
|
|
/// <summary>
|
|
/// 保存导入
|
|
/// </summary>
|
|
public void SaveImport()
|
|
{
|
|
//将list存入数据库
|
|
if (list != null && list.Count > 0)
|
|
{
|
|
string errText = string.Empty;
|
|
List<int> errorIndex = new List<int>();
|
|
int hadNum = 0;
|
|
int lengthNum = 0;
|
|
string error = string.Empty;
|
|
|
|
try
|
|
{
|
|
LoadForm load = new LoadForm();
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 0);
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在保存商品请稍候....");
|
|
errorIndex =IBussFactory<BussGoods>.Instance().AddGoodsInfoList(list, ref hadNum, ref lengthNum, ref error, fuGaiSave);
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
SystemCommon.ShowErrorMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!");
|
|
fuGaiSave = false;
|
|
return;
|
|
}
|
|
fuGaiSave = false;
|
|
if (errorIndex.Count == 0)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("所有记录已保存成功");
|
|
Refresh();
|
|
}
|
|
else
|
|
{
|
|
List<JWGoodsInfoModel> goods = new List<JWGoodsInfoModel>();
|
|
for (int i = errorIndex.Count - 1; i >= 0; i--)
|
|
{
|
|
goods.Add(list[i]);
|
|
}
|
|
list = goods;
|
|
goodsInfoModelBindingSource.DataSource = list;
|
|
GvGoods.RefreshData();
|
|
|
|
string fileName = @"D:\WMS\保存导入商品错误日志" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
|
|
SystemCommon.WriteFile(fileName, error);///写文件
|
|
|
|
/*错误提示*/
|
|
string info = string.Empty;
|
|
if (errorIndex.Count > (hadNum + lengthNum))
|
|
{
|
|
info += ((errorIndex.Count - hadNum - lengthNum) + "个商品导入时遇到未知错误,");
|
|
}
|
|
if (hadNum > 0)
|
|
{
|
|
info += (hadNum + "个商品编号已存在,");
|
|
}
|
|
if (lengthNum > 0)
|
|
{
|
|
info += (lengthNum + "条商品记录数据长度过长,");
|
|
}
|
|
info += "日志已写入" + fileName + ",未出错记录已写入数据库并从窗体中移除。";
|
|
SystemCommon.ShowErrorMessageBox(info);
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
SystemCommon.ShowErrorMessageBox("没有等待保存的导入数据,请刷新页面");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 导出
|
|
/// </summary>
|
|
public void Export()
|
|
{
|
|
gridControlCustom1.ShowExportDialog();
|
|
}
|
|
|
|
//#region 点击GridView显示图片
|
|
//int x = 0;
|
|
//int y = 0;
|
|
//private void GvGoods_MouseUp(object sender, MouseEventArgs e)
|
|
//{
|
|
// x = 0;
|
|
// y = 0;
|
|
// //获取GridView
|
|
// DevExpress.XtraGrid.Views.Grid.GridView gv = ((DevExpress.XtraGrid.Views.Grid.GridView)(sender));
|
|
// if (gv.FocusedRowHandle < 0)
|
|
// return;
|
|
|
|
// x = e.X;
|
|
// y = e.Y;
|
|
// //获取GridView当前行的JWGoodsInfoModel
|
|
// JWGoodsInfoModel model = gv.GetRow(gv.FocusedRowHandle) as JWGoodsInfoModel;
|
|
// if (model.IMG != null)
|
|
// {
|
|
// //二进制图片转换
|
|
// MemoryStream ms = new System.IO.MemoryStream(model.IMG);
|
|
// pictureBox1.Image = System.Drawing.Image.FromStream(ms);
|
|
// }
|
|
// else
|
|
// {
|
|
// return;
|
|
// }
|
|
|
|
// panelControl1.Location = new System.Drawing.Point(x, y);
|
|
// panelControl1.Visible = true;
|
|
//}
|
|
|
|
//private void GvGoods_MouseMove(object sender, MouseEventArgs e)
|
|
//{
|
|
// //鼠标移动出范围后 隐藏panel
|
|
// if (e.Location.Y >= y + 9)
|
|
// {
|
|
// panelControl1.Visible = false;
|
|
// }
|
|
// if (e.Location.Y <= y - 9)
|
|
// {
|
|
// panelControl1.Visible = false;
|
|
// }
|
|
//}
|
|
//#endregion
|
|
|
|
|
|
//批量打印选中的商品的条码
|
|
public void PrintBarCode()
|
|
{
|
|
if (DialogResult.No == SystemCommon.ShowMessageBoxResult("是否打印选中的商品条码"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
List<JWGoodsInfoModel> listLoc = new List<JWGoodsInfoModel>();
|
|
|
|
foreach (int handle in GvGoods.GetSelectedRows())
|
|
{
|
|
JWGoodsInfoModel loc = new JWGoodsInfoModel();
|
|
loc = GvGoods.GetRow(handle) as JWGoodsInfoModel;
|
|
listLoc.Add(loc);
|
|
}
|
|
//listLoc.RemoveAll(p=>p.LOCATION_ID == null||p.LOCATION_ID == string.Empty);
|
|
|
|
if (listLoc.Count == 0)
|
|
{
|
|
SystemCommon.ShowInfoMessageBox("请选择商品");
|
|
return;
|
|
}
|
|
|
|
int count = 0;
|
|
LoadForm load = new LoadForm();
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 0);
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在打印商品条码请稍候....");
|
|
foreach (var item in listLoc)
|
|
{
|
|
//if (!string.IsNullOrEmpty(item.BARCODE))
|
|
//{
|
|
// //DialogResult printResult =
|
|
// //BarCodeReport.GetInstance(item.BARCODE, 6).Print();
|
|
// //if (printResult == DialogResult.OK)
|
|
// //{
|
|
// count++;
|
|
// //}
|
|
//}
|
|
|
|
}
|
|
DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm();
|
|
SystemCommon.ShowInfoMessageBox("您选择了" + listLoc.Count + "条商品," + count + "条打印成功");
|
|
}
|
|
|
|
private void FrmGoodsInfo_FormClosed(object sender, FormClosedEventArgs e)
|
|
{
|
|
DialogResult = DialogResult.Cancel;
|
|
}
|
|
|
|
|
|
}
|
|
}
|