BaoKai_202508_Wms_Jingwang_.../WMS.FrmStock/FrmCountingDet.cs
2025-08-24 21:52:42 +08:00

525 lines
16 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.Stock;
using WMS.Common;
using WMS.Ctrl;
using WMS.Model.Base;
using WMS.Frm;
using WMS.FrmBaseData;
using WMS.Business.Stock;
using WMS.Business;
namespace WMS.FrmStock
{
public partial class FrmCountingDet : FormBase
{
/// <summary>
/// 盘点任务MODEL
/// </summary>
CountingModel countingModel = new CountingModel();
/// <summary>
/// 盘点任务MODEL集合
/// </summary>
List<CountingModel> countList = new List<CountingModel>();
/// <summary>
/// 盘点任务MODEL
/// </summary>
CountingInfoModel countingInfoModel = new CountingInfoModel();
/// <summary>
/// 盘点任务MODEL集合
/// </summary>
List<CountingInfoModel> infoList = new List<CountingInfoModel>();
/// <summary>
/// 盘点单号
/// </summary>
public string pdsheet = string.Empty;
/// <summary>
/// 业务类型
/// </summary>
int workflag = 3;//0 增加 1 修改 2 删除 ;
public FrmCountingDet()
{
InitializeComponent();
}
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void FrmCountingDet_Load(object sender, EventArgs e)
{
try
{
FrmSelectModle = new CountingModel();
DateTime dt = DateTime.Now;
if (string.IsNullOrEmpty(pdsheet))
{
BSCountingTab.DataSource = new CountingModel() { PLAN_DATE_STAR = dt.AddDays(1 - dt.Day), PLAN_DATE_END = dt.AddDays(1 - dt.Day).AddMonths(1).AddDays(-1) };
PageInfo.PageEnabled = false;
bindCountGrid();
}
else
{
CountingModel strmodel = new CountingModel()
{
COUNT_ID = pdsheet
};
countList = IBussFactory<BussCounting>.Instance().GetCountingList(strmodel);
if (countList != null)
{
GCCounting.DataSource = countList;
GVCounting.RefreshData();
bindCountInfoGrid(new CountingInfoModel() { COUNT_ID = pdsheet });
if (countList.Count > 0)
{
DateCount.EditValue = countList[0].COUNT_DATE;
noteData1.SelectedValue = countList[0].REMARK;
DicCountMan.TextBoxFlag = countList[0].COUNT_MAN;
DicCountMan.TextBoxValue = countList[0].COUNT_MAN_NAME;
}
xtraTabInfo.SelectedTabPage = PageCount;
}
}
frmButtonItem["Save"].Enabled = false;
}catch(Exception ex)
{ }
}
/// <summary>
/// 通用查询
/// </summary>
/// <param name="table"></param>
public override void LoadListData(DataTable table)
{
countList = ConvertHelper<CountingModel>.ConvertToList(table);
GCCounting.DataSource = countList;
GVCounting.RefreshData();
}
/// <summary>
/// 绑定盘点任务
/// </summary>
private void bindCountGrid()
{
BSCountingTab.EndEdit();
CountingModel smodel = BSCountingTab.DataSource as CountingModel;
smodel.COUNT_STATUS = "1";
try
{
// = Newtonsoft.Json.JsonConvert.DeserializeObject<List<CountingInfoModel>>(strlist);
countList = IBussFactory<BussCounting>.Instance().GetCountingList(smodel);
if(countList!=null)
{
GCCounting.DataSource = countList;
GVCounting.RefreshData();
}
}
catch (Exception e)
{
SystemCommon.ShowErrorMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!");
}
}
/// <summary>
/// 绑定明细
/// </summary>
/// <param name="model"></param>
private void bindCountInfoGrid(CountingInfoModel model)
{
try
{
infoList = IBussFactory<BussCountingInfo>.Instance().GetList(model);
if (infoList != null)
{
GCCountInfo.DataSource = infoList.OrderBy(r => r.STO_SEAT);
GVCountInfo.RefreshData();
}
}
catch(Exception e)
{
SystemCommon.ShowErrorMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!");
}
}
/// <summary>
/// 盘点单双击
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GCCounting_DoubleClick(object sender, EventArgs e)
{
if (GVCounting.FocusedRowHandle < 0)
{
return;
}
countingModel = GVCounting.GetFocusedRow() as CountingModel;
countingInfoModel.COUNT_ID = countingModel.COUNT_ID;
bindCountInfoGrid(countingInfoModel);
PageInfo.PageEnabled = true;
xtraTabInfo.SelectedTabPage = PageInfo;
DateCount.EditValue = DateTime.Now;
DicCountMan.TextBoxFlag = userData.USER_ID;
DicCountMan.TextBoxValue = userData.NAME;
if (!string.IsNullOrEmpty(countingModel.COUNT_MAN))
{
DicCountMan.TextBoxFlag = countingModel.COUNT_MAN;
}
else
{
DicCountMan.TextBoxFlag = userData.USER_ID;
}
if (countingModel.COUNT_DATE.ToString("yyyyMMdd") != "00010101")
{
DateCount.EditValue = countingModel.COUNT_DATE;
}
else
{
DateCount.EditValue = DateTime.Now;
}
}
/// <summary>
/// 盘点任务显示转换
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GVCounting_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
{
if (e.Value == null || e.Value == DBNull.Value)
{
return;
}
if (e.Column.FieldName == "COUNT_TYPE")
{
switch (e.Value.ToString().Trim())
{
case "0":
e.DisplayText = "全盘";
break;
case "1":
e.DisplayText = "动盘";
break;
case "2":
e.DisplayText = "自定义";
break;
default:
e.DisplayText = "其它";
break;
}
}
else if (e.Column.FieldName == "COUNT_STATUS")
{
switch (e.Value.ToString().Trim())
{
case "0":
e.DisplayText = "未确认";
break;
case "1":
e.DisplayText = "已确认";
break;
case "2":
e.DisplayText = "已盘点";
break;
case "3":
e.DisplayText = "已复核";
break;
default:
e.DisplayText = "其它";
break;
}
}
}
#region
/// <summary>
/// 新增按钮
/// </summary>
public void Add()
{
workflag = 0;
frmButtonItem["Save"].Enabled = true;
frmButtonItem["Edit"].Enabled = false;
GCCounting_DoubleClick(null, null);
}
/// <summary>
/// 保存按钮
/// </summary>
public void Save()
{
FrmOperator(workflag);
}
/// <summary>
/// 删除按钮
/// </summary>
public void Del()
{
}
/// <summary>
/// 修改按钮
/// </summary>
public void Edit()
{
if (countingModel.COUNT_STATUS != "2")
{
SystemCommon.ShowInfoMessageBox("该盘点单不能修改!");
return;
}
workflag = 1;
frmButtonItem["Save"].Enabled = true;
}
/// <summary>
/// 刷新按钮
/// </summary>
public void RefreshDataButton()
{
}
/// <summary>
/// 确定按钮
/// </summary>
public void Confirm()
{
}
/// <summary>
/// 查询按钮
/// </summary>
public void Search()
{
FrmSelect frm = new FrmSelect(FrmSelectModle);
if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.LoadListData(frm.SelectData);
}
}
/// <summary>
/// 导出按钮
/// </summary>
public void ExportDataButton()
{
}
/// <summary>
/// 打印按钮
/// </summary>
public void PrintDataButton()
{
}
/// <summary>
/// 备注
/// </summary>
protected new void NoteDataButton(FormBase fBase)
{
}
/// <summary>
/// 审核
/// </summary>
public void AuditDataButton()
{
}
/// <summary>
/// 反审核
/// </summary>
public void ReturnAuditDataButton()
{
}
#endregion
#region
/// <summary>
/// 操作(增、改、删)
/// </summary>
/// <param name="flag">0 新增 1修改 2删除 3停用 4启用/param>
private void FrmOperator(int flag)
{
try
{
GVCountInfo.CloseEditor();
GVCountInfo.UpdateCurrentRow();
string err = "";
countingModel.COUNT_MAN = DicCountMan.TextBoxFlag;
countingModel.COUNT_DATE = Convert.ToDateTime(DateCount.EditValue);
if (!string.IsNullOrEmpty(countingModel.REMARK))
{
countingModel.REMARK += ";" + noteData1.Text;
}
countingModel.COUNT_STATUS = "2";
if (flag == 0)
{
if (infoList.Count == 0)
{
SystemCommon.ShowInfoMessageBox("请先完善盘点信息!");
return;
}
bool back = true;
foreach (CountingInfoModel cim in infoList)
{
if (cim.STATUS != "0")
{
back = false;
}
}
if (back)
{
countingModel.COUNT_BACK = "0";
}
else
{
countingModel.COUNT_BACK = "1";
}
err = IBussFactory<BussCounting>.Instance().UpdateAndInfo(countingModel, infoList);
}
else if (flag == 1)
{
if (infoList.Count == 0)
{
SystemCommon.ShowInfoMessageBox("请先完善盘点信息!");
return;
}
bool back = true;
foreach (CountingInfoModel cim in infoList)
{
if (cim.STATUS != "0")
{
back = false;
}
}
if (back)
{
countingModel.COUNT_BACK = "0";
}
else
{
countingModel.COUNT_BACK = "1";
}
err = IBussFactory<BussCounting>.Instance().UpdateAndInfo(countingModel, infoList);
}
if (!string.IsNullOrEmpty(err))
{
SystemCommon.ShowErrorMessageBox(err);
}
else
{
SystemCommon.ShowInfoMessageBox("操作成功!");
frmButtonItem["Save"].Enabled = false;
}
}
catch (Exception e)
{
SystemCommon.ShowInfoMessageBox("您的操作出错:" + Environment.NewLine + e.Message);
}
}
#endregion
/// <summary>
/// GRID修改完成时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GVCountInfo_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.Column.Name == "colSTO_NUM")
{
decimal num = 0;
try
{
num = Convert.ToDecimal(e.Value);
}
catch
{
SystemCommon.ShowInfoMessageBox("请输入有效数量!");
return;
}
CountingInfoModel model = GVCountInfo.GetFocusedRow() as CountingInfoModel;
if (num == model.BOOK_NUM)
{
model.STATUS = "0";
}
else if (num > model.BOOK_NUM)
{
model.STATUS = "1";
}
else
{
model.STATUS = "2";
}
model.DIFF_NUM = (num - model.BOOK_NUM);
}
}
/// <summary>
/// 超链接点击
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void repositoryItemHyperLinkEdit1_Click(object sender, EventArgs e)
{
CountingInfoModel model = GVCountInfo.GetFocusedRow() as CountingInfoModel;
if (model != null && !string.IsNullOrEmpty(model.GOODS_ID))
{
FrmGoodsInfoDet.IFlag = 2;
FrmGoodsInfoDet.StrGoodsID = model.GOODS_ID;
LoadForm load = new LoadForm();
DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 0);
DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在读取商品信息....");
FrmGoodsInfoDet.GetInstance().Show();
}
}
}
}