using DevComponents.DotNetBar;
|
using DevComponents.DotNetBar.Controls;
|
using HH.WMS.Client.Common;
|
using HH.WMS.Common;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace HH.WMS.Client.frm
|
{
|
public partial class frmItemRemove : frmScanParent
|
{
|
public List<TN_WM_B_TRAY_ITEM_MSTEntity> RemoveList = new List<TN_WM_B_TRAY_ITEM_MSTEntity>();
|
/// <summary>
|
/// 已扫唯一码(判断是否重复扫描)
|
/// </summary>
|
private List<string> haveAlreadyScan = new List<string>();
|
|
public frmItemRemove(List<TN_WM_B_TRAY_ITEM_MSTEntity> scanedWaitExecuteItems)
|
{
|
InitializeComponent();
|
this.KeyDown += frmItemRemove_KeyDown;
|
this.ScanEnterEvent += frmUpShelves_ScanEnterEvent;
|
this.ScanItemUniqueCodeEvent += frmItemRemove_ScanItemUniqueCodeEvent;
|
this.dgv_RemoveData.AutoGenerateColumns = false;
|
this.dgv_RemoveData.DataSource = scanedWaitExecuteItems;
|
|
}
|
|
void frmUpShelves_ScanEnterEvent(object sender, EventArgs e)
|
{
|
btnEnter_Click(sender, e);
|
}
|
|
private void btnEnter_Click(object sender, EventArgs e)
|
{
|
this.DialogResult = DialogResult.OK;
|
}
|
|
/// <summary>
|
/// 扫描唯一码
|
/// </summary>
|
void frmItemRemove_ScanItemUniqueCodeEvent(object sender, ScanItemUniqueCodeEventArgs e)
|
{
|
#region 是否重复扫码判断
|
var scanCode = e.itemInfo.CN_S_UNIQUE_CODE;
|
if (haveAlreadyScan != null && haveAlreadyScan.Contains(scanCode))
|
{
|
//该唯一码已被扫过,请勿重复扫码 ***********无法判断此编码是否已存在于原容器中
|
MessageBoxEx.Show("该唯一码已被扫过,请勿重复扫码!");
|
return;
|
}
|
|
List<TN_WM_B_TRAY_ITEM_MSTEntity> waitRemoveData = (List<TN_WM_B_TRAY_ITEM_MSTEntity>)dgv_RemoveData.DataSource;
|
|
var isHave = waitRemoveData.Where(x => x.CN_S_UNIQUE_CODE == scanCode).ToList();
|
|
if (isHave.Count > 0)
|
{
|
foreach (var item in waitRemoveData)
|
{
|
if (item.CN_S_UNIQUE_CODE == e.itemInfo.CN_S_UNIQUE_CODE && item.CN_S_ITEM_CODE == e.itemInfo.CN_S_ITEM_CODE)
|
{
|
RemoveList.Add(new TN_WM_B_TRAY_ITEM_MSTEntity() {
|
TokenId = StaticUtil.TokenId,
|
CN_GUID = Guid.NewGuid().ToString(),
|
CN_S_UNIQUE_CODE = e.itemInfo.CN_S_UNIQUE_CODE,
|
CN_S_ITEM_CODE = e.itemInfo.CN_S_ITEM_CODE,
|
CN_S_LOT_NO = e.itemInfo.CN_S_LOT_NO,
|
CN_S_ITEM_NAME = e.itemInfo.CN_S_ITEM_NAME,
|
CN_S_FIGURE_NO = e.itemInfo.CN_S_FIGURE_NO,
|
CN_F_QUANTITY = item.CN_F_QUANTITY,
|
CN_S_ITEM_STATE = Constants.ItemState_Qualified ,
|
CN_S_MODEL = e.itemInfo.CN_S_MODEL,
|
CN_S_OWNER = e.itemInfo.CN_S_OWNER
|
});
|
|
item.CN_F_QUANTITY = item.CN_F_QUANTITY - e.itemInfo.CN_F_PACKING_QTY;
|
}
|
}
|
waitRemoveData = waitRemoveData.Where(x => x.CN_F_QUANTITY > 0).ToList();
|
dgv_RemoveData.DataSource = waitRemoveData;
|
|
}
|
else
|
{
|
//判断该唯一码在不在待移除物料中
|
MessageBoxEx.Show("该条码不在待移除物料中!");
|
return;
|
}
|
|
#endregion
|
}
|
|
|
|
private void dgv_RemoveData_DataError(object sender, DataGridViewDataErrorEventArgs e)
|
{
|
//暂时不用实现此功能
|
}
|
|
private void frmItemRemove_KeyDown(object sender, KeyEventArgs e)
|
{
|
if (e.KeyCode == Keys.Enter)
|
{
|
//TextBoxX txt = ((frmit)sender).txtCode;
|
if (txtCode.Focused)
|
{
|
if (!string.IsNullOrEmpty(txtCode.Text.Trim()))
|
{
|
this.ScanCode(txtCode.Text.Trim());
|
txtCode.Clear();
|
}
|
}
|
//if(txtCode.) txtCode.Text.Trim()
|
}
|
}
|
}
|
}
|