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
{
///
/// 到货通知单窗体
///
public partial class frmWmsInArrival : KryptonForm
{
///
/// 窗体构造函数
///
public frmWmsInArrival()
{
InitializeComponent();
// 获取窗体的全类名
_CrrentClassName = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;
}
#region 全局变量
///
/// 客户端字段排序列表(到货通知单主表)
///
private List _clientFieldOrderList;
///
/// 客户端字段排序列表(到货通知单明细表)
///
private List _clientFieldOrderDtlList;
///
/// 当前窗体类名
///
private string _CrrentClassName;
///
/// 到货通知单主键ID,用于记录主表选中行的主键信息。
/// 目前由于 加载控件不能传递具有参数的函数,所以临时使用全局变量。
/// ToDo:后续修改优化加载控件的实现方式,支持传递具有参数的函数。
/// 孙亚龙 舍弃于2020年9月7日
///
//string arrivalId = string.Empty;
///
/// 用于控制明细表数据的加载时机。
/// 由于主表DataGridView数据加载时,会默认触发选中项更改事件。这时候加载明细表数据会发生异常。
/// 使用全局变量,控制明细表的数据的加载时机,只能在主表数据全部初始化完成后,并且选中了一行主表数据的时候。
///
bool isControlArrivalDtlShow = false;
///
/// 定义委托
/// 用于执行刷新页面数据的函数
///
public delegate void dlgRefreshFrmHost();
///
/// 定义委托变量
/// 用于绑定刷新页面数据的函数
///
public static dlgRefreshFrmHost RefreshFrmHost;
#region 分页控件
///
/// 每页标签
///
KryptonLabel lbEveryPage;
///
/// 每页记录数列表控件
///
KryptonComboBox cmbEveryPageRecordNum;
///
/// 记录标签
///
KryptonLabel lbRecordsNum;
///
/// 分割线
///
KryptonSeparator separator;
///
/// 首页按钮
///
KryptonButton btFirstPage;
///
/// 上一页按钮
///
KryptonButton btPrePage;
///
/// 当前页标签
///
KryptonLabel lbCurrentPage;
///
/// 总页数标签
///
KryptonLabel lbTotalPage;
///
/// 数据记录总数标签
///
KryptonLabel lbTotalDataRecords;
///
/// 下一页按钮
///
KryptonButton btNextPage;
///
/// 尾页按钮
///
KryptonButton btLastPage;
///
/// 分割线
///
KryptonSeparator separator1;
///
/// 页码标签控件
///
KryptonLabel lbPageNum;
///
/// 页码列表控件
///
KryptonComboBox cmbPageNumEnum;
///
/// 分割线
///
KryptonSeparator separator2;
///
/// 跳转页码按钮
///
KryptonButton btGotoPage;
#endregion
#endregion
#region 初始化数据
private bool isIniData;
///
/// 窗体加载事件函数
///
///
///
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;
}
///
/// 初始化下拉列表数据
///
private void InitComboBoxItemData()
{
/*
ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。
*/
List results = new List();
#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 查询到货通知单数据
///
/// 查询按钮事件函数
///
///
///
private void btnSearch_Click(object sender, EventArgs e)
{
var loadfrm = new frmLoading();
loadfrm.Show();
var message = loadfrm.EventCalExec(LoadWmsInArrivalData);
// setButtonEnable();
}
///
/// 刷新到货通知单的查询数据
///
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);
}
}
///
/// 调用服务端接口,请求到货通知单主表数据
///
///
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 查询到货通知单明细表数据
///
/// 到货通知单主表选中行事件
///
///
///
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);
}
}
}
///
/// 调用服务端接口,请求到货通知单明细表数据
///
///
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 到货通知单增、删、改、重置条件操作
///
/// 新增到货通知单事件函数
///
///
///
private void btnAdd_Click(object sender, EventArgs e)
{
frmChildAddWmsInArrival frm = new frmChildAddWmsInArrival();
frm.ShowDialog();
}
///
/// 编辑到货通知单事件
///
///
///
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("请勾选要编辑的数据行!");
}
}
///
/// 删除到货通知单按钮事件
///
///
///
private void btnRemove_Click(object sender, EventArgs e)
{
int rowsSelected = 0;
string arrivalId = string.Empty;
Dictionary dic_IndexAndArrivalStatus = new Dictionary();
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("请勾选要删除的到货通知单数据行!");
}
}
///
/// 重置查询条件
///
///
///
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 导入、导出、打印到货通知单数据
///
/// 导出到货通知单数据
///
///
///
private void btnExport_Click(object sender, EventArgs e)
{
List arrIdList = new List();
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 wmsInArrivalList = new List();
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 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;
}
///
/// Excel导入到货通知单数据
///
///
///
private void btnImport_Click(object sender, EventArgs e)
{
}
///
/// 打印到货通知单
///
///
///
private void btnPrint_Click(object sender, EventArgs e)
{
}
#endregion
#region DatatGridView 事件
///
/// 设置DatatGridView的第一列复选框的背景色
///
///
///
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;
}
}
}
///
/// 设置状态列的背景色
///
/// dataGridView控件
/// 状态列的列名称
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);
}
}
}