123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867 |
- using ComponentFactory.Krypton.Toolkit;
- using NXWMS.Client.Code.Extends;
- using NXWMS.Client.Model.AppModels.Condition;
- using NXWMS.Client.Model.AppModels.Condition.Base;
- using NXWMS.Client.Model.AppModels.Condition.Common;
- using NXWMS.Client.Model.AppModels.Condition.OutStock;
- using NXWMS.Client.Model.AppModels.Result;
- using NXWMS.Client.Model.AppModels.Result.Base;
- using NXWMS.Client.Model.AppModels.Result.Common;
- using NXWMS.Client.Model.AppModels.Result.OutStock;
- using NXWMS.Client.Model.CoreModels;
- using NXWMS.Commons;
- using NXWMS.Forms.OutStock.frmOutstockChild;
- using NXWMS.Services;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Web.UI.WebControls;
- using System.Windows.Forms;
- namespace NXWMS.Forms.OutStock
- {
- /// <summary>
- /// 发货单窗体
- /// </summary>
- public partial class frmWmsOutInvoice : KryptonForm
- {
- /// <summary>
- /// 窗体构造函数
- /// </summary>
- public frmWmsOutInvoice()
- {
- InitializeComponent();
- // 获取窗体的全类名
- _CrrentClassName = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;
- }
- #region 全局变量
- /// <summary>
- /// 客户端字段排序列表(发货单主表)
- /// </summary>
- private List<ClientFieldOrderResult> _clientFieldOrderList;
- /// <summary>
- /// 客户端字段排序列表(发货单单明细表)
- /// </summary>
- private List<ClientFieldOrderResult> _clientFieldOrderDtlList;
- /// <summary>
- /// 当前窗体类名
- /// </summary>
- private string _CrrentClassName;
- /// <summary>
- /// 发货单主键ID,用于记录主表选中行的主键信息。
- /// 目前由于 加载控件不能传递具有参数的函数,所以临时使用全局变量。
- /// ToDo:后续修改优化加载控件的实现方式,支持传递具有参数的函数。
- /// 孙亚龙 舍弃于2020年9月7日
- /// </summary>
- //string InvoiceId = string.Empty;
- /// <summary>
- /// 用于控制明细表数据的加载时机。
- /// 由于主表DataGridView数据加载时,会默认触发选中项更改事件。这时候加载明细表数据会发生异常。
- /// 使用全局变量,控制明细表的数据的加载时机,只能在主表数据全部初始化完成后,并且选中了一行主表数据的时候。
- /// </summary>
- bool isControlInvoiceDtlShow = false;
- /// <summary>
- /// 定义委托
- /// 用于执行刷新页面数据的函数
- /// </summary>
- public delegate void dlgRefreshFrmHost();
- /// <summary>
- /// 定义委托变量
- /// 用于绑定刷新页面数据的函数
- /// </summary>
- public static dlgRefreshFrmHost RefreshFrmHost;
-
- #endregion
- #region 初始化数据
- /// <summary>
- /// 窗体加载事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void frmWmsOutInvoice_Load(object sender, EventArgs e)
- {
- #region 获取主、明细表的显示列信息
- //获取发货单主表数据源配置
- var result = ConfigServices.configService.GetDataViewOrderList(new ClientFieldOrderCondition { SourceCode = $"{_CrrentClassName}" });
- if (result.Status == OperateStatus.Success)
- {
- _clientFieldOrderList = result.Data;
- }
- //获取发货单明细表表数据源配置
- var resultDtl = ConfigServices.configService.GetDataViewOrderList(new ClientFieldOrderCondition { SourceCode = $"{_CrrentClassName}_Dtl" });
- if (resultDtl.Status == OperateStatus.Success)
- {
- _clientFieldOrderDtlList = resultDtl.Data;
- }
- #endregion
- InitComboBoxItemData();
- kdtp_startInvoiceEndTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
- kdtp_endInvoiceEndTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
- kdtp_startInvoiceEndTime.Checked = false;
- kdtp_endInvoiceEndTime.Checked = false;
- kdtp_startCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
- kdtp_endCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
- kdtp_startCreateTime.Checked = false;
- kdtp_endCreateTime.Checked = false;
-
- RefreshFrmHost = new dlgRefreshFrmHost(RefreshInvoiceSearchData);
-
- }
- /// <summary>
- /// 初始化下拉列表数据
- /// </summary>
- private void InitComboBoxItemData()
- {
- /*
- ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。1:WMS创建;2:ERP接口导入;3:MES叫料出库;
- */
- List<BasDictionaryResult> results = new List<BasDictionaryResult>();
- #region 单据类型
- results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "InvoiceTypeDesc");
- if (results.Count > 0)
- {
- kcmb_invoiceTypeMsg.Items.Clear();
- kcmb_invoiceTypeMsg.Items.Add(new ListItem
- {
- Value = "",
- Text = "请选择",
- });
- foreach (var item in results)
- {
- kcmb_invoiceTypeMsg.Items.Add(new ListItem
- {
- Value = item.DICTIONARY_ITEM_CODE,
- Text = item.DICTIONARY_ITEM_NAME,
- });
- }
- kcmb_invoiceTypeMsg.SelectedIndex = 0;
- }
- else
- {
- KryptonMessageBox.Show("未找到发货单类型的字典项数据!");
- }
- #endregion
- #region 单据状态
- results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "InvoiceOrderStatusDesc");
- if (results.Count > 0)
- {
- kcmb_invoiceTypeMsg.Items.Clear();
- kcmb_invoiceTypeMsg.Items.Add(new ListItem
- {
- Value = "",
- Text = "请选择",
- });
- foreach (var item in results)
- {
- kcmb_invoiceTypeMsg.Items.Add(new ListItem
- {
- Value = item.DICTIONARY_ITEM_CODE,
- Text = item.DICTIONARY_ITEM_NAME,
- });
- }
- kcmb_invoiceTypeMsg.SelectedIndex = 0;
- }
- else
- {
- KryptonMessageBox.Show("未找到发货单类型的字典项数据!");
- }
- #endregion
- #region 供应商信息
- var result = BaseServices.supplierService.GetList(new SupplierSearchCondition
- {
- IsUsed = true,
- PageIndex = 1,
- PageSize = 10000
- });
- if (result.Status == OperateStatus.Success)
- {
- kcmb_supplierMsg.Items.Clear();
- kcmb_supplierMsg.Items.Add(new ListItem
- {
- Value = "",
- Text = "请选择",
- });
- foreach (SupplierResult item in result.Data.RowData.ToList())
- {
- kcmb_supplierMsg.Items.Add(new ListItem
- {
- Value = item.SUPPLIER_CODE,
- Text = item.SUPPLIER_NAME,
- });
- }
- kcmb_supplierMsg.SelectedIndex = 0;
- }
- else
- {
- kcmb_supplierMsg.Items.Clear();
- KryptonMessageBox.Show(result.Message);
- }
- //kcmb_supplierMsg.Items.Clear();
- //kcmb_supplierMsg.Items.Add(new ListItem
- //{
- // Value = "",
- // Text = "请选择",
- //});
- //kcmb_supplierMsg.Items.Add(new ListItem
- //{
- // Value = "WX_NXZB_001",
- // Text = "无锡南兴装备",
- //});
- //kcmb_supplierMsg.Items.Add(new ListItem
- //{
- // Value = "WX_NXZB_002",
- // Text = "东莞南兴装备",
- //});
- //kcmb_supplierMsg.SelectedIndex = 0;
- #endregion
- }
-
- #endregion
- #region 查询发货单数据
- /// <summary>
- /// 查询发货单数据
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kbtnSearch_Click(object sender, EventArgs e)
- {
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message = loadfrm.EventCalExec(LoadWmsOutInvoiceData);
-
- }
- /// <summary>
- /// 刷新发货单的查询数据
- /// </summary>
- private void RefreshInvoiceSearchData()
- {
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message = loadfrm.EventCalExec(LoadWmsOutInvoiceData);
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- /// <summary>
- /// 调用服务端接口,请求发货单主表数据
- /// </summary>
- /// <returns></returns>
- private string LoadWmsOutInvoiceData()
- {
- var result = WmsInvoiceService.wmsOutInvoiceService.GetWmsOutInvoiceListForPage(new WmsOutInvoiceSearchMd
- {
- //InvoiceNoMsg = ktb_invoiceNo.Text,
- //SourceNoMsg = ktb_sourceNo.Text,
- //MaterielMsg = ktb_materielMsg.Text,
- //InvoiceType = ((ListItem)kcmb_invoiceTypeMsg.SelectedItem).Value,
- //InvoiceStatus = ((ListItem)kcmb_invoiceStatusMsg.SelectedItem).Value,
- //SupplierMsg = ((ListItem)kcmb_supplierMsg.SelectedItem).Value,
- //StartCreateTime = kdtp_startInvoiceEndTime.Checked ? kdtp_startInvoiceEndTime.Value.ToString() : null,
- //EndCreateTime = kdtp_endInvoiceEndTime.Checked ? kdtp_endInvoiceEndTime.Value.ToString() : null,
- //StartInvoiceEndTime = kdtp_startInvoiceEndTime.Checked ? kdtp_startInvoiceEndTime.Value.ToString() : null,
- //EndInvoiceEndTime = kdtp_endInvoiceEndTime.Checked ? kdtp_endInvoiceEndTime.Value.ToString() : null,
- PageNum =this.pageToolbar1.PageIndex,
- EveryPageQty =this.pageToolbar1.PageSize,
- });
- if (result.Status == OperateStatus.Success)
- {
- kdgv_WmsOutInvoice.Columns.Clear();
- kdgv_WmsOutInvoiceDtl.DataSource = null;
- //InvoiceId = string.Empty;
- isControlInvoiceDtlShow = false;
- kdgv_WmsOutInvoice.DataSource = result.Data;
- kdgv_WmsOutInvoice.BuildDataGridView(_clientFieldOrderList.GetFieldOrderDic());
- kdgv_WmsOutInvoice.ClearSelection();
- isControlInvoiceDtlShow = true;
- SetStatusCellBackColor(kdgv_WmsOutInvoice, "INVOICE_STATUS");
- this.pageToolbar1.DataCount = result.DataCount;
- ktb_invoiceNo.Focus();
- return string.Empty;
- }
- else
- {
- ktb_invoiceNo.Focus();
- return result.Message;
- }
- }
- #endregion
- #region 查询发货单明细表数据
- /// <summary>
- /// 发货单主表选中行事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kdgv_WmsOutInvoice_SelectionChanged(object sender, EventArgs e)
- {
- if (kdgv_WmsOutInvoice.SelectedRows.Count > 0 && isControlInvoiceDtlShow)
- {
- //InvoiceId = kdgv_WmsOutInvoice.SelectedRows[0].Cells[1].Value.ToString();
- int mainTableId = Convert.ToInt32(kdgv_WmsOutInvoice.SelectedRows[0].Cells[1].Value);
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message = loadfrm.EventCalExecExt1(LoadWmsOutInvoiceDtlData, mainTableId);
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- }
- /// <summary>
- /// 调用服务端接口,请求发货单明细表数据
- /// </summary>
- /// <returns></returns>
- private string LoadWmsOutInvoiceDtlData(int mainTableId)
- {
- //if (string.IsNullOrEmpty(InvoiceId))
- //{
- // return "请选择记录!";
- //}
- var result = WmsInvoiceService.wmsOutInvoiceService.GetWmsOutInvoiceDtlListForId(new WmsOutInvoiceResult { INVOICE_ID = Convert.ToInt32(mainTableId), REMARKS1 = "查询已删除明细数据" });
- if (result.Status == OperateStatus.Success)
- {
- kdgv_WmsOutInvoiceDtl.Columns.Clear();
- kdgv_WmsOutInvoiceDtl.DataSource = result.Data.WmsOutInvoiceDtlList;
- kdgv_WmsOutInvoiceDtl.BuildDataGridView(_clientFieldOrderDtlList.GetFieldOrderDic(), true, false);
- kdgv_WmsOutInvoiceDtl.ClearSelection();
- SetStatusCellBackColor(kdgv_WmsOutInvoiceDtl, "INVOICE_DTL_STATUS");
- return string.Empty;
- }
- else
- {
- return result.Message;
- }
- }
- #endregion
- #region 发货单增、删、改、强制完成、发货审核等操作
- /// <summary>
- /// 发货审核
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kbtn_InvoiceCheck_Click(object sender, EventArgs e)
- {
- int rowsSelectedNum = 0;
- string invoiceId = string.Empty;
- int rowSelectIndex = 0;
- foreach (DataGridViewRow item in kdgv_WmsOutInvoice.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- rowsSelectedNum++;
- invoiceId = item.Cells[1].Value.ToString();
- rowSelectIndex = item.Index;
- }
- }
- if (rowsSelectedNum > 0)
- {
- if (rowsSelectedNum == 1)
- {
- int invoiceStatus = Convert.ToInt32(kdgv_WmsOutInvoice.Rows[rowSelectIndex].Cells["INVOICE_STATUS"].Value);
- if (invoiceStatus == (int)InvoiceStatus.初始创建)
- {
- frmChildInvoiceCheck frm = new frmChildInvoiceCheck();
- frm.InvoiceId = invoiceId;
- frm.ShowDialog();
- }
- else if (invoiceStatus < (int)InvoiceStatus.已完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单不处于【初始创建】状态,无法发货审核!");
- }
- else if (invoiceStatus == (int)InvoiceStatus.强制完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单已被【强制完成】,无法发货审核!");
- }
- else if (invoiceStatus == (int)InvoiceStatus.已删除)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单【已被删除】,无法发货审核!");
- }
- else if (invoiceStatus == (int)InvoiceStatus.已完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单【已完成】,无法发货审核!");
- }
- else
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单状态【{invoiceStatus}】是未知的,无法发货审核!");
- }
- }
- else
- {
- KryptonMessageBox.Show("不能对勾选的多行数据进行发货审核,请重新勾选一行数据!");
- }
- }
- else
- {
- KryptonMessageBox.Show("请勾选要编辑的数据行!");
- }
- }
- /// <summary>
- /// 新增发货单
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kbtnAdd_Click(object sender, EventArgs e)
- {
- frmChildAddWmsOutInvoice frm = new frmChildAddWmsOutInvoice();
- frm.ShowDialog();
- }
- /// <summary>
- /// 编辑发货单
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kbtnEdit_Click(object sender, EventArgs e)
- {
- int rowsSelectedNum = 0;
- string invoiceId = string.Empty;
- int rowSelectIndex = 0;
- foreach (DataGridViewRow item in kdgv_WmsOutInvoice.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- rowsSelectedNum++;
- invoiceId = item.Cells[1].Value.ToString();
- rowSelectIndex = item.Index;
- }
- }
- if (rowsSelectedNum > 0)
- {
- if (rowsSelectedNum == 1)
- {
- int invoiceStatus = Convert.ToInt32(kdgv_WmsOutInvoice.Rows[rowSelectIndex].Cells["INVOICE_STATUS"].Value);
- if (invoiceStatus == (int)InvoiceStatus.初始创建)
- {
- frmChildEditWmsOutInvoice frm = new frmChildEditWmsOutInvoice();
- frm.InvoiceId = invoiceId;
- frm.ShowDialog();
- }
- else if (invoiceStatus < (int)InvoiceStatus.已完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单不处于【初始创建】状态,无法再次进行编辑!");
- }
- else if (invoiceStatus == (int)InvoiceStatus.强制完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单已被【强制完成】,无法再次进行编辑!");
- }
- else if (invoiceStatus == (int)InvoiceStatus.已删除)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单【已被删除】,无法再次进行编辑!");
- }
- else if (invoiceStatus == (int)InvoiceStatus.已完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单【已完成】,无法再次进行编辑!");
- }
- else
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的发货单状态【{invoiceStatus}】是未知的,无法进行编辑!");
- }
- }
- else
- {
- KryptonMessageBox.Show("不能对勾选的多行数据进行编辑,请重新勾选一行数据!");
- }
- }
- else
- {
- KryptonMessageBox.Show("请勾选要编辑的数据行!");
- }
- }
- /// <summary>
- /// 删除发货单
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kbtnRemove_Click(object sender, EventArgs e)
- {
- int rowsSelected = 0;
- string invoiceId = string.Empty;
- Dictionary<int, int> dic_IndexAndInvoiceStatus = new Dictionary<int, int>();
- foreach (DataGridViewRow item in kdgv_WmsOutInvoice.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- rowsSelected++;
- invoiceId += item.Cells[1].Value.ToString() + ",";
- int invoiceStatus = Convert.ToInt32(item.Cells["INVOICE_STATUS"].Value);
- dic_IndexAndInvoiceStatus.Add(item.Index, invoiceStatus);
- }
- }
- if (rowsSelected > 0)
- {
- DialogResult dr = KryptonMessageBox.Show("确定要删除所勾选的发货单数据吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
- if (dr == DialogResult.OK)
- {
- foreach (var item in dic_IndexAndInvoiceStatus)
- {
- if (item.Value == (int)InvoiceStatus.初始创建)
- {
- }
- else if (item.Value < (int)InvoiceStatus.已完成)
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行不处于【初始创建】状态的发货单,执行删除操作!");
- return;
- }
- else if (item.Value == (int)InvoiceStatus.强制完成)
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【强制完成】状态的发货单,执行删除操作!");
- return;
- }
- else if (item.Value == (int)InvoiceStatus.已删除)
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【已删除】状态的发货单,执行删除操作!");
- return;
- }
- else if (item.Value == (int)InvoiceStatus.已完成)
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【已完成】状态的发货单,执行删除操作!");
- return;
- }
- else
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于未知状态【{item.Value}】的发货单,执行删除操作!");
- return;
- }
- }
- invoiceId = invoiceId.Substring(0, invoiceId.Length - 1);
- var result = WmsInvoiceService.wmsOutInvoiceService.DeleteWmsOutInvoiceData(new WmsOutInvoiceResult { INVOICE_NO = invoiceId, UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId });
- if (result.Status == OperateStatus.Success)
- {
- KryptonMessageBox.Show(result.Message);
- RefreshInvoiceSearchData();
- }
- else
- {
- KryptonMessageBox.Show(result.Message);
- }
- }
- }
- else
- {
- KryptonMessageBox.Show("请勾选要删除的发货单数据行!");
- }
- }
- /// <summary>
- /// 强制完成发货单
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kbtn_ForceFinish_Click(object sender, EventArgs e)
- {
- }
- #endregion
- #region 导入、导出、打印、重置条件发货单数据
- /// <summary>
- /// 重置发货单查询条件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kbtnReset_Click(object sender, EventArgs e)
- {
- ktb_invoiceNo.Text = "";
- ktb_sourceNo.Text = "";
- ktb_materielMsg.Text = "";
- kcmb_invoiceTypeMsg.SelectedIndex = 0;
- kcmb_invoiceStatusMsg.SelectedIndex = 0;
- kcmb_supplierMsg.SelectedIndex = 0;
- kdtp_startInvoiceEndTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
- kdtp_startInvoiceEndTime.Checked = false;
- kdtp_endInvoiceEndTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
- kdtp_endInvoiceEndTime.Checked = false;
- kdtp_startCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
- kdtp_startCreateTime.Checked = false;
- kdtp_endCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
- kdtp_endCreateTime.Checked = false;
- }
- /// <summary>
- /// 导出发货单数据
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kbtnExport_Click(object sender, EventArgs e)
- {
- List<string> invoiceIdList = new List<string>();
- foreach (DataGridViewRow item in kdgv_WmsOutInvoice.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- invoiceIdList.Add(item.Cells[1].Value.ToString());
- }
- }
- if (invoiceIdList.Count > 0)
- {
- List<WmsOutInvoiceResult> wmsOutInvoiceList = new List<WmsOutInvoiceResult>();
- foreach (string item in invoiceIdList)
- {
- var result = WmsInvoiceService.wmsOutInvoiceService.GetWmsOutInvoiceDtlListForId(new WmsOutInvoiceResult { INVOICE_ID = Convert.ToInt32(item) });
- if (result.Status == OperateStatus.Success)
- {
- wmsOutInvoiceList.Add(result.Data);
- }
- }
- NxExcelHelper.ExportToExcel(GetWmsInvoiceExportExcelData(wmsOutInvoiceList), "发货单数据");
- }
- else
- {
- KryptonMessageBox.Show("请勾选要导出的数据行!");
- }
- }
- private DataTable GetWmsInvoiceExportExcelData(List<WmsOutInvoiceResult> wmsOutInvoiceList)
- {
- DataTable dt = new DataTable();
- #region 准备导出列名
- DataColumn dc = new DataColumn("发货单号");
- dt.Columns.Add(dc);
- dc = new DataColumn("发货单类型");
- dt.Columns.Add(dc);
- dc = new DataColumn("来源单号");
- dt.Columns.Add(dc);
- dc = new DataColumn("发货优先级");
- dt.Columns.Add(dc);
- dc = new DataColumn("发货截止时间");
- dt.Columns.Add(dc);
- dc = new DataColumn("物料类型编码");
- dt.Columns.Add(dc);
- dc = new DataColumn("物料类型名称");
- dt.Columns.Add(dc);
- dc = new DataColumn("物料编码");
- dt.Columns.Add(dc);
- dc = new DataColumn("物料名称");
- dt.Columns.Add(dc);
- dc = new DataColumn("物料条码");
- dt.Columns.Add(dc);
- dc = new DataColumn("规格");
- dt.Columns.Add(dc);
- dc = new DataColumn("单位");
- dt.Columns.Add(dc);
- dc = new DataColumn("批次号");
- dt.Columns.Add(dc);
- dc = new DataColumn("包装");
- dt.Columns.Add(dc);
- dc = new DataColumn("发货需求数量");
- dt.Columns.Add(dc);
- dc = new DataColumn("发货确认数量");
- dt.Columns.Add(dc);
- dc = new DataColumn("下架数量");
- dt.Columns.Add(dc);
- dc = new DataColumn("供应商编码");
- dt.Columns.Add(dc);
- dc = new DataColumn("供应商名称");
- dt.Columns.Add(dc);
- dc = new DataColumn("生产日期");
- dt.Columns.Add(dc);
- dc = new DataColumn("失效日期");
- dt.Columns.Add(dc);
- dc = new DataColumn("发货单明细状态");
- dt.Columns.Add(dc);
- dc = new DataColumn("质检结果");
- dt.Columns.Add(dc);
- dc = new DataColumn("物品状态");
- dt.Columns.Add(dc);
- #endregion
- foreach (WmsOutInvoiceResult retreatMd in wmsOutInvoiceList)
- {
- foreach (WmsOutInvoiceDtlResult retreatDtlMd in retreatMd.WmsOutInvoiceDtlList)
- {
- DataRow dr = dt.NewRow();
- dr["发货单号"] = retreatMd.INVOICE_NO;
- dr["发货单类型"] = retreatMd.INVOICE_TYPE_NAME;
- dr["来源单号"] = retreatMd.SOURCE_BILL_NO;
- dr["发货优先级"] = retreatMd.INVOICE_PRIORITY;
- dr["发货截止时间"] = retreatMd.INVOICE_END_TIME;
- dr["物料类型编码"] = retreatDtlMd.MATERIEL_TYPE_CODE;
- dr["物料类型名称"] = retreatDtlMd.MATERIEL_TYPE_NAME;
- dr["物料编码"] = retreatDtlMd.MATERIEL_CODE;
- dr["物料名称"] = retreatDtlMd.MATERIEL_NAME;
- dr["物料条码"] = retreatDtlMd.MATERIEL_BARCODE;
- dr["规格"] = retreatDtlMd.MATERIEL_SPEC;
- dr["单位"] = retreatDtlMd.UNIT_CODE;
- dr["批次号"] = retreatDtlMd.BATCH_NO;
- dr["包装"] = retreatDtlMd.PACKAGE_CODE;
- dr["发货需求数量"] = retreatDtlMd.INVOICE_DEMAND_QTY;
- dr["发货确认数量"] = retreatDtlMd.INVOICE_CONFIRM_QTY;
- dr["下架数量"] = retreatDtlMd.PUTDOWN_QTY;
- dr["供应商编码"] = retreatDtlMd.SUPPLIER_CODE;
- dr["供应商名称"] = retreatDtlMd.SUPPLIER_NAME;
- dr["生产日期"] = retreatDtlMd.PRODUCT_DATE;
- dr["失效日期"] = retreatDtlMd.EXP_DATE;
- dr["发货单明细状态"] = retreatDtlMd.INVOICE_DTL_STATUS_NAME;
- dr["质检结果"] = retreatDtlMd.INSPECTION_RESULT_NAME;
- dr["物品状态"] = retreatDtlMd.ITEM_STATUS_NAME;
- dt.Rows.Add(dr);
- }
- }
- return dt;
- }
- private void kbtnImport_Click(object sender, EventArgs e)
- {
- }
- private void kbtnPrint_Click(object sender, EventArgs e)
- {
- }
- #endregion
- #region DataGridView 相关事件
- /// <summary>
- /// 设置DatatGridView的第一列复选框的背景色
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void kdgv_WmsOutInvoice_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- if (e.ColumnIndex == 0)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)kdgv_WmsOutInvoice.CurrentCell;
- if (Convert.ToBoolean(checkCell.EditedFormattedValue))
- {
- kdgv_WmsOutInvoice.CurrentCell.Style.BackColor = Color.FromArgb(51, 153, 255);
- }
- else
- {
- kdgv_WmsOutInvoice.CurrentCell.Style.BackColor = Color.Transparent;
- }
- }
- }
- /// <summary>
- /// 设置状态列的背景色
- /// </summary>
- /// <param name="dataGridView">dataGridView控件</param>
- /// <param name="columnName">状态列的列名称</param>
- private void SetStatusCellBackColor(KryptonDataGridView dataGridView, string columnName)
- {
- foreach (DataGridViewRow item in dataGridView.Rows)
- {
- string invoiceDtlStatus = item.Cells[columnName].Value.ToString();
- switch (Enum.Parse(typeof(InvoiceStatus), invoiceDtlStatus))
- {
- case InvoiceStatus.初始创建:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.FromArgb(214, 228, 243);
- break;
- case InvoiceStatus.发货审核:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.LightYellow;
- break;
- case InvoiceStatus.生成出库任务:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.LightGreen;
- break;
- case InvoiceStatus.出库任务执行中:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.LightBlue;
- break;
- case InvoiceStatus.已完成:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.LightGray;
- break;
- case InvoiceStatus.强制完成:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.DarkGray;
- break;
- case InvoiceStatus.已删除:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.FromArgb(255, 69, 0);
- break;
- default:
- break;
- }
- }
- }
- private void kdgv_WmsOutInvoice_DataError(object sender, DataGridViewDataErrorEventArgs e)
- {
- }
- private void kdgv_WmsOutInvoiceDtl_DataError(object sender, DataGridViewDataErrorEventArgs e)
- {
- }
- #endregion
- #region 鼠标右键单击事件
- /// <summary>
- /// 刷新明细表数据
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void 刷新ToolStripMenuItem1_Click(object sender, EventArgs e)
- {
- if (kdgv_WmsOutInvoiceDtl.Rows.Count > 0)
- {
- if (kdgv_WmsOutInvoice.SelectedRows.Count > 0 && isControlInvoiceDtlShow)
- {
- //InvoiceId = kdgv_WmsOutInvoice.SelectedRows[0].Cells[1].Value.ToString();
- int mainTableId = Convert.ToInt32(kdgv_WmsOutInvoice.SelectedRows[0].Cells[1].Value);
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message = loadfrm.EventCalExecExt1(LoadWmsOutInvoiceDtlData, mainTableId);
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- }
- }
- /// <summary>
- /// 刷新主表数据
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (kdgv_WmsOutInvoice.Rows.Count > 0)
- {
- RefreshInvoiceSearchData();
- }
- }
- #endregion
- private void pageToolbar1_OnPageChange(int PageIndex, int PageSzie)
- {
- this.kbtnSearch_Click(null, null);
- }
- }
- }
|