123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592 |
- using ComponentFactory.Krypton.Toolkit;
- using NXWMS.Client.Model.AppModels.Condition.Balance;
- using NXWMS.Client.Model.AppModels.Condition.Common;
- using NXWMS.Client.Model.AppModels.Result.Balance;
- using NXWMS.Client.Model.AppModels.Result.Common;
- using NXWMS.Client.Model.AppModels.Result.OutStock;
- using NXWMS.Client.Model.CoreModels;
- using NXWMS.Commons;
- 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.frmOutstockChild
- {
- /// <summary>
- /// 编辑发货单窗体
- /// </summary>
- public partial class frmChildEditWmsOutInvoice : KryptonForm
- {
- /// <summary>
- /// 窗体构造函数
- /// </summary>
- public frmChildEditWmsOutInvoice()
- {
- InitializeComponent();
- InitmaterielBalanceDataControl();
- }
- #region 全局变量
- /// <summary>
- /// 库存物料数据的浮动DataGridView数据表
- /// </summary>
- private KryptonDataGridView kdgv_materielBalanceData = new KryptonDataGridView();
- /// <summary>
- /// 发货单主键ID
- /// </summary>
- public string InvoiceId { get; set; }
- /// <summary>
- /// 数据库中的发货单所有数据(包括主、明细表)。
- /// 未进行编辑过。
- /// </summary>
- private WmsOutInvoiceResult InvoiceDataNotEdit = new WmsOutInvoiceResult();
- #endregion
- #region 初始化数据
- /// <summary>
- /// 窗体加载函数
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void frmChildEditWmsOutInvoice_Load(object sender, EventArgs e)
- {
- InitComboBoxItemData();
- kdtp_InvoiceEndTime.Checked = false;
- LoadWmsOutInvoiceDtlData();
- }
- /// <summary>
- /// 初始化下拉列表数据
- /// </summary>
- private void InitComboBoxItemData()
- {
- /*
- ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。
- */
- List<BasDictionaryResult> results = new List<BasDictionaryResult>();
- #region 单据类型
- results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "InvoiceTypeDesc");
- if (results.Count > 0)
- {
- kcmb_InvoiceType.Items.Clear();
- foreach (var item in results)
- {
- kcmb_InvoiceType.Items.Add(new ListItem
- {
- Value = item.DICTIONARY_ITEM_CODE,
- Text = item.DICTIONARY_ITEM_NAME,
- });
- }
- kcmb_InvoiceType.SelectedIndex = 0;
- }
- else
- {
- KryptonMessageBox.Show("未找到发货单类型的字典项数据!");
- }
- #endregion
- }
- /// <summary>
- /// 调用服务端接口,请求发货单明细表数据
- /// </summary>
- /// <returns></returns>
- private string LoadWmsOutInvoiceDtlData()
- {
- var result = WmsInvoiceService.wmsOutInvoiceService.GetWmsOutInvoiceDtlListForId(new WmsOutInvoiceResult { INVOICE_ID = Convert.ToInt32(this.InvoiceId) });
- if (result.Status == OperateStatus.Success)
- {
- kcmb_InvoiceType.Text = result.Data.INVOICE_TYPE_NAME;
- kcmb_InvoiceType.Enabled = false;
- knud_InvoicePriority.Value = result.Data.INVOICE_PRIORITY;
- //knud_InvoicePriority.Enabled = false;
- ktb_Describe.Text = result.Data.DESCRIBE;
- if (result.Data.INVOICE_END_TIME != new DateTime())
- {
- kdtp_InvoiceEndTime.Value = result.Data.INVOICE_END_TIME;
- }
- InvoiceDataNotEdit = result.Data;
- kdgv_InvoiceDtlData.Rows.Clear();
- foreach (WmsOutInvoiceDtlResult item in result.Data.WmsOutInvoiceDtlList)
- {
- int index = kdgv_InvoiceDtlData.Rows.Add();
- kdgv_InvoiceDtlData.Rows[index].Cells[0].Value = index + 1;
- kdgv_InvoiceDtlData.Rows[index].Cells[1].Value = item.MATERIEL_CODE;
- kdgv_InvoiceDtlData.Rows[index].Cells[2].Value = item.MATERIEL_NAME;
- kdgv_InvoiceDtlData.Rows[index].Cells[3].Value = item.MATERIEL_BARCODE;
- kdgv_InvoiceDtlData.Rows[index].Cells[4].Value = item.MATERIEL_SPEC;
- kdgv_InvoiceDtlData.Rows[index].Cells[5].Value = item.BATCH_NO;
- kdgv_InvoiceDtlData.Rows[index].Cells[6].Value = item.INVOICE_DEMAND_QTY;
- kdgv_InvoiceDtlData.Rows[index].Cells[7].Value = item.UNIT_CODE;
- kdgv_InvoiceDtlData.Rows[index].Cells[8].Value = item.PACKAGE_CODE;
- }
- return string.Empty;
- }
- else
- {
- return result.Message;
- }
- }
- #region 初始化浮动DataGridView控件和数据
- /// <summary>
- /// 初始化库存物料数据的浮动DataGridView数据表
- /// </summary>
- private void InitmaterielBalanceDataControl()
- {
- this.Controls.Add(kdgv_materielBalanceData);
- kdgv_materielBalanceData.Visible = false;
- kdgv_materielBalanceData.AllowUserToAddRows = false;
- kdgv_materielBalanceData.AllowUserToDeleteRows = false;
- kdgv_materielBalanceData.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
- kdgv_materielBalanceData.MultiSelect = false;
- kdgv_materielBalanceData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
- kdgv_materielBalanceData.ScrollBars = System.Windows.Forms.ScrollBars.None;
- kdgv_materielBalanceData.BorderStyle = System.Windows.Forms.BorderStyle.None;
- kdgv_materielBalanceData.BackgroundColor = this.BackColor;
- kdgv_materielBalanceData.BringToFront();
- kdgv_materielBalanceData.ReadOnly = true;
- kdgv_materielBalanceData.CellDoubleClick += kdgv_materielBalanceData_CellDoubleClick;
- }
- private void kdgv_materielBalanceData_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
- {
- int rowIndex = e.RowIndex;
- if (rowIndex >= 0)
- {
- string idX = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["序号"].Value.ToString();
- string materielCode = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["物料编码"].Value.ToString();
- string materielName = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["物料名称"].Value.ToString();
- string materielBarCode = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["物料条码"].Value.ToString();
- string materielSpec = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["物料规格"].Value.ToString();
- string batchNo = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["批次号"].Value.ToString();
- string balanceQty = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["库存数量"].Value.ToString();
- string unitCode = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["单位"].Value.ToString();
- string packageCode = this.kdgv_materielBalanceData.Rows[rowIndex].Cells["包装"].Value.ToString();
- if (kdgv_InvoiceDtlData.Rows.Count > 0)
- {
- foreach (DataGridViewRow item in kdgv_InvoiceDtlData.Rows)
- {
- string tmpBatchNo = item.Cells[5].Value == null ? "" : item.Cells[5].Value.ToString();
- string tmpMateriel = item.Cells[1].Value == null ? "" : item.Cells[1].Value.ToString();
- if (batchNo == tmpBatchNo && materielCode == tmpMateriel && !item.IsNewRow)
- {
- KryptonMessageBox.Show($"物料条码:【{tmpMateriel}】,批次号:【{tmpBatchNo}】 已经被添加到发货单明细,不允许重复添加。");
- return;
- }
- }
- }
-
- int index = kdgv_InvoiceDtlData.Rows.Add();
- kdgv_InvoiceDtlData.Rows[index].Cells[0].Value = index + 1;
- kdgv_InvoiceDtlData.Rows[index].Cells[1].Value = materielCode;
- kdgv_InvoiceDtlData.Rows[index].Cells[2].Value = materielName;
- kdgv_InvoiceDtlData.Rows[index].Cells[3].Value = materielBarCode;
- kdgv_InvoiceDtlData.Rows[index].Cells[4].Value = materielSpec;
- kdgv_InvoiceDtlData.Rows[index].Cells[5].Value = batchNo;
- WmsOutInvoiceDtlResult invoiceDtlMd = InvoiceDataNotEdit.WmsOutInvoiceDtlList.Find(x => x.MATERIEL_CODE == materielCode && x.BATCH_NO == batchNo);
- if (invoiceDtlMd != null)
- {
- kdgv_InvoiceDtlData.Rows[index].Cells[6].Value = balanceQty;
- }
- kdgv_InvoiceDtlData.Rows[index].Cells[7].Value = unitCode;
- kdgv_InvoiceDtlData.Rows[index].Cells[8].Value = packageCode;
- this.kdgv_materielBalanceData.Visible = false;
- this.kdgv_materielBalanceData.DataSource = null;
- this.ktb_BatchNoMsg.Text = "";
- this.ktb_MaterielMsg.Text = "";
- }
- }
- private void Delay(int milliseconds)
- {
- var timer = new System.Timers.Timer(milliseconds) { AutoReset = false };
- timer.Elapsed += delegate {
- Invoke(new Action(() => {
- DataGridViewCellEventArgs evta = new DataGridViewCellEventArgs(1, 0);
- kdgv_materielBalanceData_CellDoubleClick(this.kdgv_materielBalanceData, evta);
- timer.Dispose();
- }));
- };
- timer.Start();
- }
- /// <summary>
- /// 物料信息输入内容变化事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ktb_MaterielMsg_TextChanged(object sender, EventArgs e)
- {
- if (!string.IsNullOrEmpty(this.ktb_MaterielMsg.Text))
- {
- Point pot = this.ktb_MaterielMsg.Location;
- pot.X = pot.X + 2;
- pot.Y = pot.Y + this.ktb_MaterielMsg.Height * 2 + 2;
- DataTable dt = CreateTable(new WmsStkBalanceDtlSearchMd
- {
- MaterielMsg = this.ktb_MaterielMsg.Text
- //BatchNoMsg = this.ktb_BatchNoMsg.Text
- });
- if (dt.Rows.Count == 1 && this.ktb_MaterielMsg.Text == dt.Rows[0]["物料编码"].ToString())
- {
- this.kdgv_materielBalanceData.Location = pot;
- this.kdgv_materielBalanceData.DataSource = dt;
- int cWidth = 0;
- for (int i = 0; i < this.kdgv_materielBalanceData.Columns.Count; i++)
- {
- cWidth = cWidth + this.kdgv_materielBalanceData.Columns[i].Width;
- }
- this.kdgv_materielBalanceData.Width = cWidth + 40;
- this.kdgv_materielBalanceData.Height = this.kdgv_materielBalanceData.Rows.Count * this.kdgv_materielBalanceData.RowTemplate.Height + this.kdgv_materielBalanceData.ColumnHeadersHeight;
- this.kdgv_materielBalanceData.Visible = true;
- this.kdgv_materielBalanceData.Invalidate();
- this.kdgv_materielBalanceData.CurrentCell = this.kdgv_materielBalanceData.Rows[0].Cells[0];
- Delay(300);
- }
- else
- {
- this.kdgv_materielBalanceData.Location = pot;
- this.kdgv_materielBalanceData.DataSource = dt;
- int cWidth = 0;
- for (int i = 0; i < this.kdgv_materielBalanceData.Columns.Count; i++)
- {
- cWidth = cWidth + this.kdgv_materielBalanceData.Columns[i].Width;
- }
- this.kdgv_materielBalanceData.Width = cWidth + 40;
- this.kdgv_materielBalanceData.Height = this.kdgv_materielBalanceData.Rows.Count * this.kdgv_materielBalanceData.RowTemplate.Height + this.kdgv_materielBalanceData.ColumnHeadersHeight;
- this.kdgv_materielBalanceData.Visible = true;
- this.kdgv_materielBalanceData.Invalidate();
- }
- }
- else
- {
- this.kdgv_materielBalanceData.Visible = false;
- this.kdgv_materielBalanceData.DataSource = null;
- }
- }
- /// <summary>
- /// 批次号输入内容变化事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ktb_BatchNoMsg_TextChanged(object sender, EventArgs e)
- {
- if (!string.IsNullOrEmpty(this.ktb_BatchNoMsg.Text))
- {
- Point pot = this.ktb_BatchNoMsg.Location;
- pot.X = pot.X + 2;
- pot.Y = pot.Y + this.ktb_BatchNoMsg.Height * 2 + 2;
- DataTable dt = CreateTable(new WmsStkBalanceDtlSearchMd
- {
- //MaterielMsg = this.ktb_MaterielMsg.Text,
- BatchNoMsg = this.ktb_BatchNoMsg.Text
- });
- if (dt.Rows.Count == 1 && this.ktb_BatchNoMsg.Text == dt.Rows[0]["物料编码"].ToString())
- {
- this.kdgv_materielBalanceData.Location = pot;
- this.kdgv_materielBalanceData.DataSource = dt;
- int cWidth = 0;
- for (int i = 0; i < this.kdgv_materielBalanceData.Columns.Count; i++)
- {
- cWidth = cWidth + this.kdgv_materielBalanceData.Columns[i].Width;
- }
- this.kdgv_materielBalanceData.Width = cWidth + 40;
- this.kdgv_materielBalanceData.Height = this.kdgv_materielBalanceData.Rows.Count * this.kdgv_materielBalanceData.RowTemplate.Height + this.kdgv_materielBalanceData.ColumnHeadersHeight;
- this.kdgv_materielBalanceData.Visible = true;
- this.kdgv_materielBalanceData.Invalidate();
- this.kdgv_materielBalanceData.CurrentCell = this.kdgv_materielBalanceData.Rows[0].Cells[0];
- Delay(300);
- }
- else
- {
- this.kdgv_materielBalanceData.Location = pot;
- this.kdgv_materielBalanceData.DataSource = dt;
- int cWidth = 0;
- for (int i = 0; i < this.kdgv_materielBalanceData.Columns.Count; i++)
- {
- cWidth = cWidth + this.kdgv_materielBalanceData.Columns[i].Width;
- }
- this.kdgv_materielBalanceData.Width = cWidth + 40;
- this.kdgv_materielBalanceData.Height = this.kdgv_materielBalanceData.Rows.Count * this.kdgv_materielBalanceData.RowTemplate.Height + this.kdgv_materielBalanceData.ColumnHeadersHeight;
- this.kdgv_materielBalanceData.Visible = true;
- this.kdgv_materielBalanceData.Invalidate();
- }
- }
- else
- {
- this.kdgv_materielBalanceData.Visible = false;
- this.kdgv_materielBalanceData.DataSource = null;
- }
- }
- private DataTable CreateTable(WmsStkBalanceDtlSearchMd SearchMd)
- {
- DataTable dt = new DataTable();
- 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);
- var result = WmsInvoiceService.wmsOutInvoiceService.GetBalanceForInvoice(new WmsStkBalanceDtlSearchMd
- {
- MaterielMsg = ktb_MaterielMsg.Text,
- BatchNoMsg = ktb_BatchNoMsg.Text
- });
- if (result.Status == OperateStatus.Success)
- {
- if (result.Data.Count > 0)
- {
- int index = 0;
- foreach (WmsStkBalanceDtlResult item in result.Data)
- {
- index++;
- DataRow dr = dt.NewRow();
- dr["序号"] = index;
- dr["物料编码"] = item.MATERIEL_CODE;
- dr["物料名称"] = item.MATERIEL_NAME;
- dr["物料规格"] = item.MATERIEL_SPEC;
- dr["物料条码"] = item.MATERIEL_BARCODE;
- dr["批次号"] = item.BATCH_NO;
- dr["库存数量"] = item.QTY;
- dr["单位"] = item.UNIT_CODE;
- dr["包装"] = item.PACKAGE_CODE;
- dt.Rows.Add(dr);
- }
- }
- }
- return dt;
- }
- #endregion
- #endregion
- #region 按钮事件
- private void btnConfirm_Click(object sender, EventArgs e)
- {
- WmsOutInvoiceResult mdInvoice = new WmsOutInvoiceResult();
- mdInvoice.INVOICE_ID = InvoiceDataNotEdit.INVOICE_ID;
- mdInvoice.INVOICE_NO = InvoiceDataNotEdit.INVOICE_NO;
- mdInvoice.INVOICE_TYPE = ((ListItem)kcmb_InvoiceType.SelectedItem).Value;
- mdInvoice.INVOICE_TYPE_NAME = kcmb_InvoiceType.Text;
- if (kdtp_InvoiceEndTime.Checked)
- {
- mdInvoice.INVOICE_END_TIME = kdtp_InvoiceEndTime.Value;
- }
- else
- {
- mdInvoice.INVOICE_END_TIME = new DateTime();
- }
- mdInvoice.INVOICE_STATUS = InvoiceDataNotEdit.INVOICE_STATUS;
- mdInvoice.INVOICE_PRIORITY = Convert.ToInt32(knud_InvoicePriority.Value);
- mdInvoice.DESCRIBE = ktb_Describe.Text.Trim();
- mdInvoice.CREATE_BY = AppConfig.UserLoginResult.UserInfo.UserId;
- mdInvoice.UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId;
- List<WmsOutInvoiceDtlResult> mdInvoiceDtlList = new List<WmsOutInvoiceDtlResult>();
- if (kdgv_InvoiceDtlData.Rows.Count > 0 && !kdgv_InvoiceDtlData.Rows[0].IsNewRow)
- {
- foreach (DataGridViewRow dvr in kdgv_InvoiceDtlData.Rows)
- {
- if (!dvr.IsNewRow)
- {
- #region 校验每一行数据的完整性
- string RowCheckMsg = string.Empty;
- if (!CheckDataGridViewRowFormat(dvr, ref RowCheckMsg))
- {
- KryptonMessageBox.Show(RowCheckMsg);
- return;
- }
- #endregion
- string materielCode = dvr.Cells[1].Value.ToString();
- string materielName = dvr.Cells[2].Value.ToString();
- string materielBarcode = dvr.Cells[3].Value == null ? null : dvr.Cells[3].Value.ToString();
- string materielSpec = dvr.Cells[4].Value == null ? null : dvr.Cells[4].Value.ToString();
- string batchNo = dvr.Cells[5].Value == null ? null : dvr.Cells[5].Value.ToString();
- decimal invoiceQty = Convert.ToDecimal(dvr.Cells[6].Value.ToString());
- string unitCode = dvr.Cells[7].Value == null ? null : dvr.Cells[7].Value.ToString();
- string packageCode = dvr.Cells[8].Value == null ? null : dvr.Cells[8].Value.ToString();
- WmsOutInvoiceDtlResult invoiceDtlMd = InvoiceDataNotEdit.WmsOutInvoiceDtlList.Find(x => x.MATERIEL_CODE == materielCode && x.BATCH_NO == batchNo);
- mdInvoiceDtlList.Add(new WmsOutInvoiceDtlResult
- {
- INVOICE_DTL_ID = invoiceDtlMd == null ? 0 : invoiceDtlMd.INVOICE_DTL_ID,
- MATERIEL_CODE = materielCode,
- MATERIEL_NAME = materielName,
- MATERIEL_BARCODE = materielBarcode,
- BATCH_NO = batchNo,
- INVOICE_DEMAND_QTY = invoiceQty,
- UNIT_CODE = unitCode,
- PACKAGE_CODE = packageCode,
- CREATE_BY = AppConfig.UserLoginResult.UserInfo.UserId,
- UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId,
- DESCRIBE = null
- });
- }
- }
- #region 校验明细行 不能存在相同批次、物料条码的数据行
- var strList = mdInvoiceDtlList.GroupBy(x => new { x.MATERIEL_CODE, x.BATCH_NO }).Select(x => new { Key = x.Count(), MATERIEL_CODE = x.Key.MATERIEL_CODE, BATCH_NO = x.Key.BATCH_NO }).ToList();
- foreach (var item in strList)
- {
- if (item.Key > 1)
- {
- KryptonMessageBox.Show($"相同的物料:【{item.MATERIEL_CODE}】,批次号:【{item.BATCH_NO}】只能添加一行数据,请修正输入数据行!");
- return;
- }
- }
- #endregion
- List<WmsOutInvoiceDtlResult> finalInvoiceDtlList = new List<WmsOutInvoiceDtlResult>();
- foreach (WmsOutInvoiceDtlResult itemOld in InvoiceDataNotEdit.WmsOutInvoiceDtlList)
- {
- WmsOutInvoiceDtlResult arrDtlNew = mdInvoiceDtlList.Find(x => x.MATERIEL_CODE == itemOld.MATERIEL_CODE && x.BATCH_NO == itemOld.BATCH_NO);
- if (arrDtlNew != null)
- {
- arrDtlNew.INVOICE_DTL_STATUS = itemOld.INVOICE_DTL_STATUS;
- arrDtlNew.REMARKS1 = "更新";
- finalInvoiceDtlList.Add(arrDtlNew);
- }
- else
- {
- itemOld.INVOICE_DTL_STATUS = (int)InvoiceStatus.已删除;
- itemOld.REMARKS1 = "删除";
- finalInvoiceDtlList.Add(itemOld);
- }
- }
- foreach (WmsOutInvoiceDtlResult itemNew in mdInvoiceDtlList)
- {
- if (itemNew.INVOICE_DTL_ID == 0)
- {
- itemNew.REMARKS1 = "添加";
- finalInvoiceDtlList.Add(itemNew);
- }
- }
- mdInvoice.WmsOutInvoiceDtlList = finalInvoiceDtlList;
- var result = WmsInvoiceService.wmsOutInvoiceService.EditWmsOutInvoiceData(mdInvoice);
- if (result.Status == OperateStatus.Success)
- {
- KryptonMessageBox.Show(result.Message);
- frmWmsOutInvoice.RefreshFrmHost();
- this.Close();
- }
- else
- {
- KryptonMessageBox.Show(result.Message);
- }
- }
- else
- {
- DialogResult dr = KryptonMessageBox.Show("由于明细为空,确定要删除发货单所有数据吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
- if (dr == DialogResult.OK)
- {
- var result = WmsInvoiceService.wmsOutInvoiceService.DeleteWmsOutInvoiceData(new WmsOutInvoiceResult { INVOICE_NO = InvoiceDataNotEdit.INVOICE_ID.ToString(), UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId });
- if (result.Status == OperateStatus.Success)
- {
- KryptonMessageBox.Show(result.Message);
- frmWmsOutInvoice.RefreshFrmHost();
- this.Close();
- }
- else
- {
- KryptonMessageBox.Show(result.Message);
- }
- }
- }
- }
- /// <summary>
- /// 校验DataGridView输入行数据的正确性
- /// </summary>
- /// <param name="dvr">DataGridView输入行</param>
- /// <param name="OutMssg">校验结果信息</param>
- /// <returns></returns>
- private bool CheckDataGridViewRowFormat(DataGridViewRow dvr, ref string OutMssg)
- {
- if (dvr.Cells[6].Value == null)
- {
- OutMssg = $"第【{dvr.Index + 1}】行未输入发货数量!";
- return false;
- }
- else
- {
- if (!Regex.IsMatch(dvr.Cells[6].Value.ToString(), @"([1-9]\d*(\.\d*[1-9])?)"))
- {
- OutMssg = $"第【{dvr.Index + 1}】行输入的发货数量不是合法的数字类型,请检查!";
- return false;
- }
- }
- OutMssg = "校验成功!";
- return true;
- }
- private void btnCancel_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- #endregion
- #region DataGridView相关事件
- #endregion
- #region 鼠标右键单击事件
- private void 删除选中行ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (!kdgv_InvoiceDtlData.CurrentRow.IsNewRow)
- {
- kdgv_InvoiceDtlData.Rows.Remove(kdgv_InvoiceDtlData.CurrentCell.OwningRow);
- //foreach (DataGridViewRow item in kdgv_InvoiceDtlData.Rows)
- //{
- // int index = item.Index;
- // kdgv_InvoiceDtlData.Rows[index].Cells[0].Value = index + 1;
- //}
- }
- }
- private void 全部删除ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- kdgv_InvoiceDtlData.Rows.Clear();
- }
- private void 重新加载ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var loadfrm = new frmLoading();
- loadfrm.Show();
- var message = loadfrm.EventCalExec(LoadWmsOutInvoiceDtlData);
- if (!string.IsNullOrWhiteSpace(message))
- {
- KryptonMessageBox.Show($"查询失败!\r\n{message}", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- }
- #endregion
- }
- }
|