using ComponentFactory.Krypton.Toolkit;
using NXWMS.Client.FrmCustom;
using NXWMS.Client.Model.AppModels.Condition.OutStock;
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.Web.UI.WebControls;
using System.Windows.Forms;
using static NXWMS.Client.FrmCustom.CustomEventMsg;
namespace NXWMS.Forms.OutStock.frmOutstockChild
{
///
/// 新增下架单
///
public partial class frmChildAddWmsOutPutDown : KryptonForm
{
///
/// 窗体构造函数
///
public frmChildAddWmsOutPutDown()
{
InitializeComponent();
}
#region 全局变量
private string CurrSourceNo { get; set; }
private string CurrTrayCode { get; set; }
#endregion
#region 初始化数据
///
/// 窗体加载函数
///
///
///
private void frmChildAddWmsOutPutDown_Load(object sender, EventArgs e)
{
InitComboBoxItemData();
InitCusPalletNoCmbMsg();
}
///
/// 初始化下拉列表数据
///
private void InitComboBoxItemData()
{
/*
ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。
1:WMS端自动下架;2:WMS端手动下架;3:手持端出库下架;4:质检出库下架;5:盘点出库下架。
*/
List results = new List();
#region 单据类型
results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "PutDownTypeDesc");
if (results.Count > 0)
{
kcmb_PutDownType.Items.Clear();
foreach (var item in results)
{
kcmb_PutDownType.Items.Add(new ListItem
{
Value = item.DICTIONARY_ITEM_CODE,
Text = item.DICTIONARY_ITEM_NAME,
});
}
kcmb_PutDownType.SelectedIndex = 0;
}
else
{
KryptonMessageBox.Show("未找到下架单类型的字典项数据!");
}
#endregion
}
///
/// 自定义到货通知单下拉列表的数据行选择事件
///
///
///
void CusPalletNo_AfterSelector(object sender, AfterSelectorEventArgs e)
{
try
{
DataGridViewRow row = e.Value as DataGridViewRow;
DataRowView dataRow = row.DataBoundItem as DataRowView;
string palletNoMsg = dataRow["托盘号"].ToString().Trim();
string billNoMsg = dataRow["单据号"].ToString().Trim();
string billTypeMsg = dataRow["单据类型"].ToString().Trim();
kdgv_PutDownDtlData.Rows.Clear();
if (billTypeMsg == "发货单")
{
var result = WmsInvoiceService.wmsOutInvoiceService.GetWmsOutInvoiceRecordListForPage(new WmsOutInvoiceRecordSearchMd
{
InvoiceNoMsg = billNoMsg,
PalletNoMsg = palletNoMsg,
InvoiceRecordStatus = "0",
PageNum = 1,
EveryPageQty = 100
});
if (result.Status == OperateStatus.Success)
{
CurrSourceNo = result.Data[0].INVOICE_NO;
CurrTrayCode = result.Data[0].TRAY_CODE;
ktb_SbinNo.Text = result.Data[0].BIN_CODE;
ktb_SbinNo.Enabled = false;
foreach (WmsOutInvoiceRecordResult item in result.Data)
{
int index = kdgv_PutDownDtlData.Rows.Add();
kdgv_PutDownDtlData.Rows[index].Cells[0].Value = index + 1;
kdgv_PutDownDtlData.Rows[index].Cells[1].Value = item.MATERIEL_CODE;
kdgv_PutDownDtlData.Rows[index].Cells[2].Value = item.MATERIEL_NAME;
kdgv_PutDownDtlData.Rows[index].Cells[3].Value = item.MATERIEL_BARCODE;
kdgv_PutDownDtlData.Rows[index].Cells[4].Value = item.MATERIEL_SPEC;
kdgv_PutDownDtlData.Rows[index].Cells[5].Value = item.BATCH_NO;
kdgv_PutDownDtlData.Rows[index].Cells[6].Value = item.INVOICE_QTY;
kdgv_PutDownDtlData.Rows[index].Cells[7].Value = item.UNIT_CODE;
kdgv_PutDownDtlData.Rows[index].Cells[8].Value = item.PACKAGE_CODE;
kdgv_PutDownDtlData.Rows[index].Cells[9].Value = item.SUPPLIER_CODE;
kdgv_PutDownDtlData.Rows[index].Cells[10].Value = item.SUPPLIER_NAME;
kdgv_PutDownDtlData.Rows[index].Cells[11].Value = item.PRODUCT_DATE;
kdgv_PutDownDtlData.Rows[index].Cells[12].Value = item.EXP_DATE;
kdgv_PutDownDtlData.Rows[index].Cells[13].Value = item.INSPECTION_RESULT_NAME;
kdgv_PutDownDtlData.Rows[index].Cells[14].Value = item.ITEM_STATUS_NAME;
kdgv_PutDownDtlData.Rows[index].Cells[15].Value = item.INVOICE_RECORD_ID;
kdgv_PutDownDtlData.Rows[index].Cells[16].Value = item.INSPECTION_RESULT;
kdgv_PutDownDtlData.Rows[index].Cells[17].Value = item.ITEM_STATUS;
}
kcmb_PutDownType.SelectedItem = new ListItem
{
Value = "1",
Text = "WMS端自动下架",
};
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
///
/// 初始化自定义到货通知单下拉列表的数据
///
private void InitCusPalletNoCmbMsg()
{
cmb_CusPalletNo.sDisplayField = "托盘号,单据类型,单据号";
cmb_CusPalletNo.DisplayMember = "托盘号";
cmb_CusPalletNo.sKeyWords = "托盘号";
cmb_CusPalletNo.DataSource = CreateCusPalletNoTable();
cmb_CusPalletNo.RowFilterVisible = true;
cmb_CusPalletNo.AfterSelector += new AfterSelectorEventHandler(CusPalletNo_AfterSelector); ;
}
///
/// 创建数据源表格
///
///
private DataTable CreateCusPalletNoTable()
{
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);
var result = WmsInvoiceService.wmsOutPutDownService.GetPutDownPalletMsgList();
if (result.Status == OperateStatus.Success)
{
DataRow dr1 = dt.NewRow();
foreach (WmsOutPutDownPalletMsgResult item in result.Data)
{
DataRow dr = dt.NewRow();
dr["托盘号"] = item.PALLET_CODE;
dr["单据类型"] = item.BillType;
dr["单据号"] = item.BillNo;
dt.Rows.Add(dr);
}
}
return dt;
}
#endregion
#region 按钮事件
///
/// 确认按钮事件
/// 提交添加完成的上架单数据
///
///
///
private void btnConfirm_Click(object sender, EventArgs e)
{
/*
* ToDo: 后续增加托盘校验: 是否已经存在下架单信息。
*/
WmsOutPutDownResult wmsOutPutDownResult = new WmsOutPutDownResult();
wmsOutPutDownResult.PALLET_CODE = cmb_CusPalletNo.Text;
wmsOutPutDownResult.PUTDOWN_TYPE = Convert.ToInt32(((ListItem)kcmb_PutDownType.SelectedItem).Value);
wmsOutPutDownResult.PUTDOWN_PRIORITY = Convert.ToInt32(knud_PutDownPriority.Value);
wmsOutPutDownResult.SBIN_CODE = ktb_SbinNo.Text;
wmsOutPutDownResult.TRAY_CODE = CurrTrayCode;
wmsOutPutDownResult.SOURCE_NO = CurrSourceNo;
wmsOutPutDownResult.DESCRIBE = ktb_Describe.Text;
wmsOutPutDownResult.CREATE_BY = AppConfig.UserLoginResult.UserInfo.UserId;
wmsOutPutDownResult.UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId;
List wmsOutPutDownDtlList = new List();
foreach (DataGridViewRow item in kdgv_PutDownDtlData.Rows)
{
wmsOutPutDownDtlList.Add(new WmsOutPutDownDtlResult
{
MATERIEL_CODE = item.Cells[1].Value.ToString(),
MATERIEL_NAME = item.Cells[2].Value.ToString(),
MATERIEL_BARCODE = item.Cells[3].Value == null ? null : item.Cells[3].Value.ToString(),
MATERIEL_SPEC = item.Cells[4].Value == null ? null : item.Cells[4].Value.ToString(),
BATCH_NO = item.Cells[5].Value.ToString(),
PUTDOWN_QTY = Convert.ToDecimal(item.Cells[6].Value),
UNIT_CODE = item.Cells[7].Value.ToString(),
PACKAGE_CODE = item.Cells[8].Value == null ? null : item.Cells[8].Value.ToString(),
SUPPLIER_CODE = item.Cells[9].Value == null ? null : item.Cells[9].Value.ToString(),
SUPPLIER_NAME = item.Cells[10].Value == null ? null : item.Cells[10].Value.ToString(),
PRODUCT_DATE = Convert.ToDateTime(item.Cells[11].Value),
EXP_DATE = Convert.ToDateTime(item.Cells[12].Value),
INSPECTION_RESULT = item.Cells[16].Value.ToString(),
ITEM_STATUS = Convert.ToInt32(item.Cells[17].Value),
CREATE_BY = AppConfig.UserLoginResult.UserInfo.UserId,
UPDATE_BY = AppConfig.UserLoginResult.UserInfo.UserId
});
}
wmsOutPutDownResult.WmsOutPutDownDtlList = wmsOutPutDownDtlList;
var result = WmsInvoiceService.wmsOutPutDownService.AddWmsOutPutDownData(wmsOutPutDownResult);
if (result.Status == OperateStatus.Success)
{
KryptonMessageBox.Show(result.Message);
frmWmsOutPutDown.RefreshFrmHost();
this.Close();
}
else
{
KryptonMessageBox.Show(result.Message);
}
}
///
/// 取消按钮事件
/// 退出新增界面
///
///
///
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
#endregion
}
}