123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915 |
- using ComponentFactory.Krypton.Toolkit;
- using NXWMS.Client.Code.Extends;
- using NXWMS.Client.Interface.Instock;
- 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.Instock;
- 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.Instock;
- using NXWMS.Client.Model.CoreModels;
- using NXWMS.Client.WebApiService.Routers.Instock;
- using NXWMS.Commons;
- using NXWMS.Forms.Instock.frmInstockChild;
- 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.Instock
- {
- /// <summary>
- /// 到货通知单窗体
- /// </summary>
- public partial class frmWmsInArrival : KryptonForm
- {
- /// <summary>
- /// 窗体构造函数
- /// </summary>
- public frmWmsInArrival()
- {
- 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 arrivalId = string.Empty;
- /// <summary>
- /// 用于控制明细表数据的加载时机。
- /// 由于主表DataGridView数据加载时,会默认触发选中项更改事件。这时候加载明细表数据会发生异常。
- /// 使用全局变量,控制明细表的数据的加载时机,只能在主表数据全部初始化完成后,并且选中了一行主表数据的时候。
- /// </summary>
- bool isControlArrivalDtlShow = false;
- /// <summary>
- /// 定义委托
- /// 用于执行刷新页面数据的函数
- /// </summary>
- public delegate void dlgRefreshFrmHost();
- /// <summary>
- /// 定义委托变量
- /// 用于绑定刷新页面数据的函数
- /// </summary>
- public static dlgRefreshFrmHost RefreshFrmHost;
- #region 分页控件
- /// <summary>
- /// 每页标签
- /// </summary>
- KryptonLabel lbEveryPage;
- /// <summary>
- /// 每页记录数列表控件
- /// </summary>
- KryptonComboBox cmbEveryPageRecordNum;
- /// <summary>
- /// 记录标签
- /// </summary>
- KryptonLabel lbRecordsNum;
- /// <summary>
- /// 分割线
- /// </summary>
- KryptonSeparator separator;
- /// <summary>
- /// 首页按钮
- /// </summary>
- KryptonButton btFirstPage;
- /// <summary>
- /// 上一页按钮
- /// </summary>
- KryptonButton btPrePage;
- /// <summary>
- /// 当前页标签
- /// </summary>
- KryptonLabel lbCurrentPage;
- /// <summary>
- /// 总页数标签
- /// </summary>
- KryptonLabel lbTotalPage;
- /// <summary>
- /// 数据记录总数标签
- /// </summary>
- KryptonLabel lbTotalDataRecords;
- /// <summary>
- /// 下一页按钮
- /// </summary>
- KryptonButton btNextPage;
- /// <summary>
- /// 尾页按钮
- /// </summary>
- KryptonButton btLastPage;
- /// <summary>
- /// 分割线
- /// </summary>
- KryptonSeparator separator1;
- /// <summary>
- /// 页码标签控件
- /// </summary>
- KryptonLabel lbPageNum;
- /// <summary>
- /// 页码列表控件
- /// </summary>
- KryptonComboBox cmbPageNumEnum;
- /// <summary>
- /// 分割线
- /// </summary>
- KryptonSeparator separator2;
- /// <summary>
- /// 跳转页码按钮
- /// </summary>
- KryptonButton btGotoPage;
- #endregion
- #endregion
- #region 初始化数据
- private bool isIniData;
- /// <summary>
- /// 窗体加载事件函数
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void frmWmsInArrival_Load(object sender, EventArgs e)
- {
- this.isIniData = true;
- #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();
- dtp_startTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
- dtp_endTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
- dtp_startTime.Checked = false;
- dtp_endTime.Checked = false;
- //InitPageControl();
- RefreshFrmHost = new dlgRefreshFrmHost(RefreshArrivalSearchData);
-
- #region 分页按钮
- //btFirstPage.Enabled = false;
- //btPrePage.Enabled = false;
- //btNextPage.Enabled = false;
- //btLastPage.Enabled = false;
- //btGotoPage.Enabled = false;
- #endregion
- this.isIniData = false;
- }
- /// <summary>
- /// 初始化下拉列表数据
- /// </summary>
- private void InitComboBoxItemData()
- {
- /*
- ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。
- */
- List<BasDictionaryResult> results = new List<BasDictionaryResult>();
- #region 单据类型
- results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "ArrivalTypeDesc");
- if (results.Count > 0)
- {
- cmb_arrivalType.Items.Clear();
- cmb_arrivalType.Items.Add(new ListItem
- {
- Value = "",
- Text = "请选择",
- });
- foreach (var item in results)
- {
- cmb_arrivalType.Items.Add(new ListItem
- {
- Value = item.DICTIONARY_ITEM_CODE,
- Text = item.DICTIONARY_ITEM_NAME,
- });
- }
- cmb_arrivalType.SelectedIndex = 0;
- }
- else
- {
- KryptonMessageBox.Show("未找到到货通知单类型的字典项数据!");
- }
- #endregion
- #region 单据状态
- results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "ArrivalOrderStatusDesc");
- if (results.Count > 0)
- {
- cmb_arrivalStatus.Items.Clear();
- cmb_arrivalStatus.Items.Add(new ListItem
- {
- Value = "",
- Text = "请选择",
- });
- foreach (var item in results)
- {
- cmb_arrivalStatus.Items.Add(new ListItem
- {
- Value = item.DICTIONARY_ITEM_CODE,
- Text = item.DICTIONARY_ITEM_NAME,
- });
- }
- cmb_arrivalStatus.SelectedIndex = 0;
- }
- else
- {
- KryptonMessageBox.Show("未找到到货通知单状态的字典项数据!");
- }
- #endregion
- #region 仓库信息
- var warehouseResult = BaseServices.warehouseService.GetList(new WarehouseSearchCondition { IsUsed = true, ItemSQL = "WAREHOUSE_CODE,WAREHOUSE_NAME" });
- if (warehouseResult.Status == OperateStatus.Success)
- {
- cmb_targetWarehouse.Items.Clear();
- cmb_targetWarehouse.Items.Add(new ListItem
- {
- Value = "",
- Text = "请选择",
- });
- foreach (WarehouseResult item in warehouseResult.Data.RowData.ToList())
- {
- cmb_targetWarehouse.Items.Add(new ListItem
- {
- Value = item.WAREHOUSE_CODE,
- Text = item.WAREHOUSE_NAME,
- });
- }
- cmb_targetWarehouse.SelectedIndex = 0;
- }
- else
- {
- cmb_targetWarehouse.Items.Clear();
- KryptonMessageBox.Show(warehouseResult.Message);
- }
- #endregion
- #region 供应商信息
- var result = BaseServices.supplierService.GetList(new SupplierSearchCondition
- {
- IsUsed = true,
- PageIndex = 1,
- PageSize = 10000
- });
- if (result.Status == OperateStatus.Success)
- {
- cmb_supplierMsg.Items.Clear();
- cmb_supplierMsg.Items.Add(new ListItem
- {
- Value = "",
- Text = "请选择",
- });
- foreach (SupplierResult item in result.Data.RowData.ToList())
- {
- cmb_supplierMsg.Items.Add(new ListItem
- {
- Value = item.SUPPLIER_CODE,
- Text = item.SUPPLIER_NAME,
- });
- }
- cmb_supplierMsg.SelectedIndex = 0;
- }
- else
- {
- cmb_supplierMsg.Items.Clear();
- KryptonMessageBox.Show(result.Message);
- }
- #endregion
- }
-
- #endregion
- #region 查询到货通知单数据
- /// <summary>
- /// 查询按钮事件函数
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnSearch_Click(object sender, EventArgs e)
- {
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message = loadfrm.EventCalExec(LoadWmsInArrivalData);
- // setButtonEnable();
- }
- /// <summary>
- /// 刷新到货通知单的查询数据
- /// </summary>
- private void RefreshArrivalSearchData()
- {
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message =loadfrm.EventCalExec(LoadWmsInArrivalData);
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- /// <summary>
- /// 调用服务端接口,请求到货通知单主表数据
- /// </summary>
- /// <returns></returns>
- private string LoadWmsInArrivalData()
- {
- var result = WmsInstockService.wmsInArrivalService.GetWmsInArrivalListForPage(new WmsInArrivalSearchMd
- {
- ArrivalNoMsg = tb_arrivalNo.Text,
- SourceNoMsg = tb_sourceNo.Text,
- PurchaseStaffMsg = tb_purchaseStaffMsg.Text,
- MaterialMsg = tb_materialMsg.Text,
- ArrivalTypeMsg = ((ListItem)cmb_arrivalType.SelectedItem).Value,
- ArrivalStatus = ((ListItem)cmb_arrivalStatus.SelectedItem).Value,
- SupplierMsg = ((ListItem)cmb_supplierMsg.SelectedItem).Value,
- WarehouseMsg = ((ListItem)cmb_targetWarehouse.SelectedItem).Value,
- StartCreateTime = dtp_startTime.Checked ? dtp_startTime.Value.ToString() : null,
- EndCreateTime = dtp_endTime.Checked ? dtp_endTime.Value.ToString() : null,
- PageNum = this.pageToolbar1.PageIndex, //Convert.ToInt32(lbCurrentPage.Tag),
- EveryPageQty = this.pageToolbar1.PageSize// Convert.ToInt32(cmbEveryPageRecordNum.Text),
- });
- if (result.Status == OperateStatus.Success)
- {
- dgv_WmsInArrival.Columns.Clear();
- dgv_WmsInArrivalDtl.DataSource = null;
- //arrivalId = string.Empty;
- isControlArrivalDtlShow = false;
- dgv_WmsInArrival.DataSource = result.Data;
- dgv_WmsInArrival.BuildDataGridView(_clientFieldOrderList.GetFieldOrderDic());
- dgv_WmsInArrival.ClearSelection();
- isControlArrivalDtlShow = true;
- SetStatusCellBackColor(dgv_WmsInArrival, "ARRIVAL_STATUS_NAME");
- #region 分页赋值
- this.pageToolbar1.DataCount = result.DataCount;
- //if (result.Data.Count > 0)
- //{
- // lbTotalPage.Tag = result.DataCount % Convert.ToInt32(cmbEveryPageRecordNum.Text) != 0 ? result.DataCount / Convert.ToInt32(cmbEveryPageRecordNum.Text) + 1 : result.DataCount / Convert.ToInt32(cmbEveryPageRecordNum.Text);
- // cmbPageNumEnum.Items.Clear();
- // cmbPageNumEnum.Text = lbCurrentPage.Tag.ToString();
- // for (int i = 0; i < Convert.ToInt32(lbTotalPage.Tag); i++)
- // {
- // cmbPageNumEnum.Items.Add(i + 1);
- // }
- // lbCurrentPage.Text = "第" + Convert.ToInt32(lbCurrentPage.Tag) + "页";
- // lbTotalPage.Text = "共" + Convert.ToInt32(lbTotalPage.Tag) + "页";
- // lbTotalDataRecords.Text = "总计:" + result.DataCount + "条数据记录";
- //}
- //else
- //{
- // lbCurrentPage.Text = "第" + Convert.ToInt32(lbCurrentPage.Tag) + "页";
- // //lbCurrentPage.Tag = 1;
- // //lbTotalPage.Tag = 0;
- // //lbTotalPage.Text = "共0页";
- // lbTotalDataRecords.Text = "总计:0条数据记录";
- // cmbPageNumEnum.Items.Clear();
- // cmbPageNumEnum.Text = string.Empty;
- //}
- #endregion
- tb_arrivalNo.Focus();
- return string.Empty;
- }
- else
- {
- tb_arrivalNo.Focus();
- return result.Message;
- }
-
- }
- #endregion
- #region 查询到货通知单明细表数据
- /// <summary>
- /// 到货通知单主表选中行事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void dgv_WmsInArrival_SelectionChanged(object sender, EventArgs e)
- {
-
- if (dgv_WmsInArrival.SelectedRows.Count > 0 && isControlArrivalDtlShow)
- {
- //int rowIndec = dgv_WmsInArrival.CurrentCell.RowIndex;
- //int columnIndex = dgv_WmsInArrival.CurrentCell.RowIndex;
- //arrivalId = dgv_WmsInArrival.SelectedRows[0].Cells[1].Value.ToString();
- int mainTableId = Convert.ToInt32(dgv_WmsInArrival.SelectedRows[0].Cells[1].Value);
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message = loadfrm.EventCalExecExt1(LoadWmsInArrivalDtlData, mainTableId);
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- }
- /// <summary>
- /// 调用服务端接口,请求到货通知单明细表数据
- /// </summary>
- /// <returns></returns>
- private string LoadWmsInArrivalDtlData(int mainTableId)
- {
- //if (string.IsNullOrEmpty(arrivalId))
- //{
- // return "请选择记录!";
- //}
- var result = WmsInstockService.wmsInArrivalService.GetWmsInArrivalDtlListForId(new WmsInArrivalResult { ARRIVAL_ID = Convert.ToInt32(mainTableId), REMARKS1 = "查询已删除明细数据" });
- if (result.Status == OperateStatus.Success)
- {
- dgv_WmsInArrivalDtl.Columns.Clear();
- dgv_WmsInArrivalDtl.DataSource = result.Data.WmsInArrivalDtlList;
- dgv_WmsInArrivalDtl.BuildDataGridView(_clientFieldOrderDtlList.GetFieldOrderDic(), true, false);
- dgv_WmsInArrivalDtl.ClearSelection();
- SetStatusCellBackColor(dgv_WmsInArrivalDtl, "ARRIVAL_DTL_STATUS_NAME");
- return string.Empty;
- }
- else
- {
- return result.Message;
- }
- }
- #endregion
- #region 到货通知单增、删、改、重置条件操作
- /// <summary>
- /// 新增到货通知单事件函数
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnAdd_Click(object sender, EventArgs e)
- {
- frmChildAddWmsInArrival frm = new frmChildAddWmsInArrival();
- frm.ShowDialog();
- }
- /// <summary>
- /// 编辑到货通知单事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnEdit_Click(object sender, EventArgs e)
- {
- int rowsSelectedNum = 0;
- string arrivalId = string.Empty;
- int rowSelectIndex = 0;
- foreach (DataGridViewRow item in dgv_WmsInArrival.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- rowsSelectedNum++;
- arrivalId = item.Cells[1].Value.ToString();
- rowSelectIndex = item.Index;
- }
- }
- if (rowsSelectedNum > 0)
- {
- if (rowsSelectedNum == 1)
- {
- int arrivalStatus = Convert.ToInt32(dgv_WmsInArrival.Rows[rowSelectIndex].Cells["ARRIVAL_STATUS"].Value);
- if (arrivalStatus == (int)ArrivalStatus.初始创建)
- {
- frmChildEditWmsInArrival frm = new frmChildEditWmsInArrival();
- frm.ArrivalId = arrivalId;
- frm.ShowDialog();
- }
- else if (arrivalStatus < (int)ArrivalStatus.已完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单不处于【初始创建】状态,无法再次进行编辑!");
- }
- else if (arrivalStatus == (int)ArrivalStatus.强制完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单已被【强制完成】,无法再次进行编辑!");
- }
- else if (arrivalStatus == (int)ArrivalStatus.已删除)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单【已被删除】,无法再次进行编辑!");
- }
- else if (arrivalStatus == (int)ArrivalStatus.已完成)
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单【已完成】,无法再次进行编辑!");
- }
- else
- {
- KryptonMessageBox.Show($"第【{rowSelectIndex + 1}】行的到货通知单状态【{arrivalStatus}】是未知的,无法进行编辑!");
- }
- }
- else
- {
- KryptonMessageBox.Show("不能对勾选的多行数据进行编辑,请重新勾选一行数据!");
- }
- }
- else
- {
- KryptonMessageBox.Show("请勾选要编辑的数据行!");
- }
- }
- /// <summary>
- /// 删除到货通知单按钮事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnRemove_Click(object sender, EventArgs e)
- {
- int rowsSelected = 0;
- string arrivalId = string.Empty;
- Dictionary<int, int> dic_IndexAndArrivalStatus = new Dictionary<int, int>();
- foreach (DataGridViewRow item in dgv_WmsInArrival.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- rowsSelected++;
- arrivalId += item.Cells[1].Value.ToString() + ",";
- int arrivalStatus = Convert.ToInt32(item.Cells["ARRIVAL_STATUS"].Value);
- dic_IndexAndArrivalStatus.Add(item.Index, arrivalStatus);
- }
- }
- if (rowsSelected > 0)
- {
- DialogResult dr = KryptonMessageBox.Show("确定要删除所勾选的到货通知单数据吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
- if (dr == DialogResult.OK)
- {
- foreach (var item in dic_IndexAndArrivalStatus)
- {
- if (item.Value == (int)ArrivalStatus.初始创建)
- {
- }
- else if (item.Value < (int)ArrivalStatus.已完成)
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行不处于【初始创建】状态的到货通知单,执行删除操作!");
- return;
- }
- else if (item.Value == (int)ArrivalStatus.强制完成)
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【强制完成】状态的到货通知单,执行删除操作!");
- return;
- }
- else if (item.Value == (int)ArrivalStatus.已删除)
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【已删除】状态的到货通知单,执行删除操作!");
- return;
- }
- else if (item.Value == (int)ArrivalStatus.已完成)
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于【已完成】状态的到货通知单,执行删除操作!");
- return;
- }
- else
- {
- KryptonMessageBox.Show($"不能对第【{item.Key + 1}】行处于未知状态【{item.Value}】的到货通知单,执行删除操作!");
- return;
- }
- }
- arrivalId = arrivalId.Substring(0, arrivalId.Length - 1);
- var result = WmsInstockService.wmsInArrivalService.DeleteWmsInArrivalData(new WmsInArrivalResult { ARRIVAL_NO = arrivalId, UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId });
- if (result.Status == OperateStatus.Success)
- {
- KryptonMessageBox.Show(result.Message);
- RefreshArrivalSearchData();
- }
- else
- {
- KryptonMessageBox.Show(result.Message);
- }
- }
- }
- else
- {
- KryptonMessageBox.Show("请勾选要删除的到货通知单数据行!");
- }
- }
- /// <summary>
- /// 重置查询条件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnReset_Click(object sender, EventArgs e)
- {
- tb_arrivalNo.Text = "";
- tb_sourceNo.Text = "";
- tb_materialMsg.Text = "";
- tb_purchaseStaffMsg.Text = "";
- cmb_arrivalStatus.SelectedIndex = 0;
- cmb_arrivalType.SelectedIndex = 0;
- cmb_supplierMsg.SelectedIndex = 0;
- cmb_targetWarehouse.SelectedIndex = 0;
- dtp_startTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
- dtp_startTime.Checked = false;
- dtp_endTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
- dtp_endTime.Checked = false;
- }
- #endregion
- #region 导入、导出、打印到货通知单数据
- /// <summary>
- /// 导出到货通知单数据
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnExport_Click(object sender, EventArgs e)
- {
- List<string> arrIdList = new List<string>();
- foreach (DataGridViewRow item in dgv_WmsInArrival.Rows)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)item.Cells[0];
- object obj = checkCell.EditedFormattedValue;
- if (Convert.ToBoolean(obj))
- {
- arrIdList.Add(item.Cells[1].Value.ToString());
- }
- }
- if (arrIdList.Count > 0)
- {
- List<WmsInArrivalResult> wmsInArrivalList = new List<WmsInArrivalResult>();
- foreach (string item in arrIdList)
- {
- var result = WmsInstockService.wmsInArrivalService.GetWmsInArrivalDtlListForId(new WmsInArrivalResult { ARRIVAL_ID = Convert.ToInt32(item) });
- if (result.Status == OperateStatus.Success)
- {
- wmsInArrivalList.Add(result.Data);
- }
- }
- NxExcelHelper.ExportToExcel(GetWmsArrivalExportExcelData(wmsInArrivalList), "到货通知单数据");
- }
- else
- {
- KryptonMessageBox.Show("请勾选要导出的数据行!");
- }
- }
- private DataTable GetWmsArrivalExportExcelData(List<WmsInArrivalResult> wmsInArrivalList)
- {
- 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 (WmsInArrivalResult arrivalMd in wmsInArrivalList)
- {
- foreach (WmsInArrivalDtlResult arrivalDtlMd in arrivalMd.WmsInArrivalDtlList)
- {
- DataRow dr = dt.NewRow();
- dr["到货通知单号"] = arrivalMd.ARRIVAL_NO;
- dr["参考单号"] = arrivalMd.SOURCE_BILL_NO;
- dr["单据类型"] = arrivalMd.ARRIVAL_TYPE_NAME;
- dr["采购单号"] = arrivalMd.PURCHASE_ORDER_NO;
- dr["采购人员"] = arrivalMd.PURCHASE_STAFF;
- dr["采购时间"] = arrivalMd.PURCHASE_TIME;
- dr["仓库编码"] = arrivalMd.WAREHOUSE_CODE;
- dr["仓库名称"] = arrivalMd.WAREHOUSE_NAME;
- dr["预计到货时间"] = arrivalMd.EXPECT_ARRIVAL_TIME;
- dr["实际到货时间"] = arrivalMd.ACTUAL_ARRIVAL_TIME;
- dr["物料类型编码"] = arrivalDtlMd.MATERIEL_TYPE_CODE;
- dr["物料类型名称"] = arrivalDtlMd.MATERIEL_TYPE_NAME;
- dr["物料编码"] = arrivalDtlMd.MATERIEL_CODE;
- dr["物料名称"] = arrivalDtlMd.MATERIEL_NAME;
- dr["物料条码"] = arrivalDtlMd.MATERIEL_BARCODE;
- dr["规格"] = arrivalDtlMd.MATERIEL_SPEC;
- dr["单位"] = arrivalDtlMd.UNIT_CODE;
- dr["批次号"] = arrivalDtlMd.BATCH_NO;
- dr["到货数量"] = arrivalDtlMd.ARRIVAL_QTY;
- dr["已收货数量"] = arrivalDtlMd.RECEIPT_QTY;
- dr["供应商编码"] = arrivalDtlMd.SUPPLIER_CODE;
- dr["供应商名称"] = arrivalDtlMd.SUPPLIER_NAME;
- dr["生产日期"] = arrivalDtlMd.PRODUCT_DATE;
- dr["失效日期"] = arrivalDtlMd.EXP_DATE;
- dt.Rows.Add(dr);
- }
- }
- return dt;
- }
- /// <summary>
- /// Excel导入到货通知单数据
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnImport_Click(object sender, EventArgs e)
- {
-
- }
- /// <summary>
- /// 打印到货通知单
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnPrint_Click(object sender, EventArgs e)
- {
- }
- #endregion
- #region DatatGridView 事件
- /// <summary>
- /// 设置DatatGridView的第一列复选框的背景色
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void dgv_WmsInArrival_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- #region 由于删除,导出可能存在多行勾选,所以注释掉下面的代码
- // 由于删除,导出可能存在多行勾选,所以注释掉下面的代码
- //if (e.ColumnIndex == 0)
- //{
- // DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgv_WmsInArrival.CurrentCell;
- // if (Convert.ToBoolean(checkCell.EditedFormattedValue))
- // {
- // foreach (DataGridViewRow item in dgv_WmsInArrival.Rows)
- // {
- // if (!item.IsNewRow && item != dgv_WmsInArrival.CurrentRow)
- // {
- // item.Cells[0].Value = false;
- // }
- // }
- // }
- //}
- #endregion
- if (e.ColumnIndex == 0)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgv_WmsInArrival.CurrentCell;
- if (Convert.ToBoolean(checkCell.EditedFormattedValue))
- {
- dgv_WmsInArrival.CurrentCell.Style.BackColor = Color.FromArgb(51, 153, 255);
- }
- else
- {
- dgv_WmsInArrival.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 arrivalDtlStatus = item.Cells[columnName].Value.ToString();
- switch (Enum.Parse(typeof(ArrivalStatus), arrivalDtlStatus))
- {
- case ArrivalStatus.初始创建:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.FromArgb(214, 228, 243);
- break;
- case ArrivalStatus.已生成收货单:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.LightYellow;
- break;
- case ArrivalStatus.收货中:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.LightGreen;
- break;
- case ArrivalStatus.已完成:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.LightGray;
- break;
- case ArrivalStatus.强制完成:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.DarkGray;
- break;
- case ArrivalStatus.已删除:
- //item.Cells[columnName].Style.ForeColor = Color.White;
- item.Cells[columnName].Style.BackColor = Color.FromArgb(255, 69, 0);
- break;
- default:
- break;
- }
- }
- }
- private void dgv_WmsInArrival_DataError(object sender, DataGridViewDataErrorEventArgs e)
- {
- }
- private void dgv_WmsInArrivalDtl_DataError(object sender, DataGridViewDataErrorEventArgs e)
- {
- }
- #endregion
- #region 鼠标右键单击事件
- private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (dgv_WmsInArrival.Rows.Count > 0)
- {
- RefreshArrivalSearchData();
- }
- }
- private void 刷新ToolStripMenuItem1_Click(object sender, EventArgs e)
- {
- if (dgv_WmsInArrivalDtl.Rows.Count > 0)
- {
- if (dgv_WmsInArrival.SelectedRows.Count > 0 && isControlArrivalDtlShow)
- {
- //arrivalId = dgv_WmsInArrival.SelectedRows[0].Cells[1].Value.ToString();
- int mainTableId = Convert.ToInt32(dgv_WmsInArrival.SelectedRows[0].Cells[1].Value);
- var loadfrm = new frmLoading();
- loadfrm.Show();
- loadfrm.EventCalExecExt1(LoadWmsInArrivalDtlData, mainTableId);
- }
- }
- }
- #endregion
- private void pageToolbar1_OnPageChange(int PageIndex, int PageSzie)
- {
- this.btnSearch_Click(null, null);
- }
- }
- }
|