using Stone.Common; using Stone.Entity; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Stone.WinModule.Standard { public partial class frmASNScan : Form { public frmASNScan() { InitializeComponent(); } private void frmPasswordVerify_Load(object sender, EventArgs e) { this.lblName.Text = $"请扫描ASN号进行发运"; } private void txtPassword_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { try { string asnNumber = this.txtAsnNumber.Text.Trim(); Entity_t_JIS_VDA t_jis_vda = new Entity_t_JIS_VDA(); DataSet dsAsn = t_jis_vda.GetData("", "[AsnNumber]='" + asnNumber + "'", "ID asc"); if (dsAsn.Tables[0].Rows.Count == 0) throw new Exception("扫描的ASN无效!"); var dtAsn = dsAsn.Tables[0]; if (dtAsn.Select("[IsShipingVerification]=0").Length > 0) { //取未校验的 var needCheck = dtAsn.Select("IsPackingVerification = 0"); //允许设置零件号不进行校验,判断未校验的零件是否在清单中 Entity_t_PartPO t_partpo = new Entity_t_PartPO(); DataSet dsPartPO = t_partpo.GetData("", "1 = 1", "ID asc"); if (dsPartPO.Tables[0].Rows.Count == 0) { throw new Exception("ASN中有未进行装箱校验的明细,禁止操作发货!"); } var dtpartPO = dsPartPO.Tables[0]; foreach (var row in needCheck) { var partCode = row["PartNumber"].ToString(); var partRow = dtpartPO.Select("Code = '" + partCode + "'"); if (partRow.Length != 1) { throw new Exception("系统未定义唯一的零件号 " + partCode + " !"); } else { if (bool.Parse(partRow[0]["IsCheck"].ToString())) { throw new Exception("零件号 " + partCode + " 未通过装箱校验,禁止操作发货!"); } } } } else { throw new Exception("扫描的ASN已发运!"); } //保存数据 var db = new Gm_WMS.DataAccess.DataService.LocalDBService(); db.BeginTrans(); Entity_v_JIS_VDA t_JIS_VDA = new Entity_v_JIS_VDA(db); t_JIS_VDA.Edit($"UpLoadTime='" + DateTime.Now + "',IsShipingVerification = 1", $"[AsnNumber]='{asnNumber}'"); db.Commit(); this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { MyMessageBox.ShowErrorMessage(ex.Message); } } } private void btnClose_Click(object sender, EventArgs e) { this.Close(); } } }