diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml b/src/Khd.Core.Wpf/Form/FormBoardT.xaml
index 613d140..67970a0 100644
--- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml
+++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml
@@ -2240,48 +2240,52 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
index 924abe0..8d7a4da 100644
--- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
+++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
@@ -26,6 +26,7 @@ using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
+using System.Windows.Media.Media3D;
using System.Windows.Threading;
using Z.EntityFramework.Plus;
@@ -2047,6 +2048,9 @@ namespace Khd.Core.Wpf.Form
try
{
string containerCode = txtOutBox.Text;
+
+ if (containerCode.Length < 15)
+ return;
if (!string.IsNullOrEmpty(containerCode))
{
using var scope = _host.Services.CreateScope();
@@ -2078,8 +2082,11 @@ namespace Khd.Core.Wpf.Form
{
try
{
+ outMaterialNameTxt.Text ="";
+ outMaterialSpecTxt.Text = "";
string barCode = txtOutBarCode.Text;
string containerCode = txtOutBox.Text;
+ if (barCode.Length < 19) return;
if (!string.IsNullOrEmpty(containerCode))
{
if (!string.IsNullOrEmpty(barCode))
@@ -2104,8 +2111,16 @@ namespace Khd.Core.Wpf.Form
txtOutScan.Text = string.Empty;
txtOutBarCode.Focus();
}
+
+
else
{
+ var materialInfo = dbContext.MesBaseMaterialInfo.FirstOrDefault(t => t.MaterialId == wmsRawStock.materialId);
+ if (materialInfo != null)
+ {
+ outMaterialNameTxt.Text = materialInfo.MaterialName;
+ outMaterialSpecTxt.Text = materialInfo.MaterialSpec;
+ }
txtOutScan.Text = (mesBaseMaterialInfo.batchFlag == "1" ? (wmsRawStock.totalAmount - wmsRawStock.frozenAmount) : 1).ToString();
if (mesBaseMaterialInfo.batchFlag == "1")
{
@@ -2141,125 +2156,143 @@ namespace Khd.Core.Wpf.Form
///
private void OutRawBaseLocaltion_Click(object sender, RoutedEventArgs e)
{
- if (!string.IsNullOrEmpty(txtOutBox.Text) && !string.IsNullOrEmpty(txtOutBarCode.Text))
- {
- using var scope = _host.Services.CreateScope();
- using var dbContext = scope.ServiceProvider.GetRequiredService();
- var wmsRawStock = dbContext.WmsRawStock
- .FirstOrDefault(t => t.instockBatch == txtOutBarCode.Text && t.palletInfoCode == txtOutBox.Text);
- if (wmsRawStock == null)
- {
- HandyControl.Controls.MessageBox.Error("库存已经被清空!");
- return;
- }
- decimal outScan = Convert.ToDecimal(this.txtOutScan.Text);
- if (outScan != 1 && outScan > wmsRawStock.totalAmount - wmsRawStock.frozenAmount)
- {
- HandyControl.Controls.MessageBox.Error("出库数量不能大于库存数量!");
- return;
- }
- var wcsTask = dbContext.WcsTask.Where(t => t.containerNo == txtOutBox.Text).FirstOrDefault();
- if (wcsTask == null)
- {
- HandyControl.Controls.MessageBox.Error("出库失败,非CTU出库任务,无法出库!");
- return;
- }
- else
- {
- var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == txtOutBarCode.Text);
- if (mesBaseBarcodeInfo != null)
- {
- WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock
- .Where(t => t.materialId == mesBaseBarcodeInfo.materialId && t.realOutstockAmount < t.outstockAmount && t.saleOrderId == (mesBaseBarcodeInfo.saleOrderId == null ? 0 : mesBaseBarcodeInfo.saleOrderId)).FirstOrDefault();
- if (wmsRawOutstock != null)
- {
- wmsRawOutstock.realOutstockAmount += outScan;
- if (wmsRawOutstock.outstockAmount == wmsRawOutstock.realOutstockAmount)
- {
- wmsRawOutstock.executeStatus = "2";
- }
- else if (wmsRawOutstock.realOutstockAmount > wmsRawOutstock.outstockAmount)
- {
- HandyControl.Controls.MessageBox.Error("出库数量不能大于申请单数量,当前出库数量为:" + (wmsRawOutstock.realOutstockAmount - outScan) + ",申请单数量为:" + wmsRawOutstock.outstockAmount + "!");
- return;
- }
- wmsRawStock.totalAmount -= outScan;
- if (wmsRawStock.totalAmount <= 0)
- {
- dbContext.Remove(wmsRawStock);
- dbContext.Update(wmsRawOutstock);
- }
- else
- {
- dbContext.Update(wmsRawStock);
- dbContext.Update(wmsRawOutstock);
- }
- if (mesBaseBarcodeInfo != null)
- {
- WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail()
- {
- rawOutstockDetailId = Global.SnowId.NextId(),
- rawOutstockId = wmsRawOutstock.rawOutstockId,
- materialId = mesBaseBarcodeInfo.materialId,
- createDate = DateTime.Now,
- createBy = "WCS",
- taskCode = wcsTask.objid.ToString(),
- executeStatus = "2",
- locationCode = wcsTask.currPointNo,
- outstockAmount = outScan,
- planAmount = outScan,
- warehouseId = 512,
- materialBarcode = mesBaseBarcodeInfo.barcodeInfo,
- instockBatch = mesBaseBarcodeInfo.batchCode,
- stackAmount = outScan,
- outstockPerson = "WCS",
- outstockTime = DateTime.Now,
- outstockWay = "2",
- materialProductionDate = mesBaseBarcodeInfo.productionDate
- };
- dbContext.WmsRawOutstockDetail.Add(wmsProductOutstockDetail);
- }
- dbContext.SaveChanges();
- }
- else
- {
- if (mesBaseBarcodeInfo.PurchaseOrderId == null)
- {
- wmsRawStock.totalAmount -= outScan;
- if (wmsRawStock.totalAmount == 0)
- {
- dbContext.WmsRawStock.Remove(wmsRawStock);
- dbContext.SaveChanges();
- }
- else
- {
- dbContext.WmsRawStock.Update(wmsRawStock);
- dbContext.SaveChanges();
- }
- }
- else
- {
- HandyControl.Controls.MessageBox.Error("该条码的销售订单不正确");
- txtOutScan.Text = string.Empty;
- txtOutBarCode.Text = string.Empty;
- return;
- }
- }
+ OutRaw();
+ }
- HandyControl.Controls.MessageBox.Success("出库成功!");
- txtOutScan.Text = string.Empty;
- txtOutBarCode.Text = string.Empty;
- txtOutBarCode.Focus();
+ private void OutRaw()
+ {
+ try
+ {
+ if (!string.IsNullOrEmpty(txtOutBox.Text) && !string.IsNullOrEmpty(txtOutBarCode.Text))
+ {
+ using var scope = _host.Services.CreateScope();
+ using var dbContext = scope.ServiceProvider.GetRequiredService();
+ var wmsRawStock = dbContext.WmsRawStock
+ .FirstOrDefault(t => t.instockBatch == txtOutBarCode.Text && t.palletInfoCode == txtOutBox.Text);
+ if (wmsRawStock == null)
+ {
+ HandyControl.Controls.MessageBox.Error("库存已经被清空!");
+ return;
+ }
+ decimal outScan = Convert.ToDecimal(this.txtOutScan.Text);
+ if (outScan != 1 && outScan > wmsRawStock.totalAmount - wmsRawStock.frozenAmount)
+ {
+ HandyControl.Controls.MessageBox.Error("出库数量不能大于库存数量!");
+ return;
+ }
+ var wcsTask = dbContext.WcsTask.Where(t => t.containerNo == txtOutBox.Text).FirstOrDefault();
+ if (wcsTask == null)
+ {
+ HandyControl.Controls.MessageBox.Error("出库失败,非CTU出库任务,无法出库!");
+ return;
}
else
{
- HandyControl.Controls.MessageBox.Error("未查询到该条码信息!");
+ var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == txtOutBarCode.Text);
+ if (mesBaseBarcodeInfo != null)
+ {
+ WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock
+ .Where(t => t.materialId == mesBaseBarcodeInfo.materialId && t.realOutstockAmount < t.outstockAmount && t.saleOrderId == (mesBaseBarcodeInfo.saleOrderId == null ? 0 : mesBaseBarcodeInfo.saleOrderId)).FirstOrDefault();
+ if (wmsRawOutstock != null)
+ {
+ wmsRawOutstock.realOutstockAmount += outScan;
+ if (wmsRawOutstock.outstockAmount == wmsRawOutstock.realOutstockAmount)
+ {
+ wmsRawOutstock.executeStatus = "2";
+ }
+ else if (wmsRawOutstock.realOutstockAmount > wmsRawOutstock.outstockAmount)
+ {
+ HandyControl.Controls.MessageBox.Error("出库数量不能大于申请单数量,当前出库数量为:" + (wmsRawOutstock.realOutstockAmount - outScan) + ",申请单数量为:" + wmsRawOutstock.outstockAmount + "!");
+ return;
+ }
+ wmsRawStock.totalAmount -= outScan;
+ if (wmsRawStock.totalAmount <= 0)
+ {
+ dbContext.Remove(wmsRawStock);
+ dbContext.Update(wmsRawOutstock);
+ }
+ else
+ {
+ dbContext.Update(wmsRawStock);
+ dbContext.Update(wmsRawOutstock);
+ }
+ if (mesBaseBarcodeInfo != null)
+ {
+ WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail()
+ {
+ rawOutstockDetailId = Global.SnowId.NextId(),
+ rawOutstockId = wmsRawOutstock.rawOutstockId,
+ materialId = mesBaseBarcodeInfo.materialId,
+ createDate = DateTime.Now,
+ createBy = "WCS",
+ taskCode = wcsTask.objid.ToString(),
+ executeStatus = "2",
+ locationCode = wcsTask.currPointNo,
+ outstockAmount = outScan,
+ planAmount = outScan,
+ warehouseId = 512,
+ materialBarcode = mesBaseBarcodeInfo.barcodeInfo,
+ instockBatch = mesBaseBarcodeInfo.batchCode,
+ stackAmount = outScan,
+ outstockPerson = "WCS",
+ outstockTime = DateTime.Now,
+ outstockWay = "2",
+ materialProductionDate = mesBaseBarcodeInfo.productionDate
+ };
+ dbContext.WmsRawOutstockDetail.Add(wmsProductOutstockDetail);
+ }
+ dbContext.SaveChanges();
+ }
+ else
+ {
+ if (mesBaseBarcodeInfo.PurchaseOrderId == null)
+ {
+ wmsRawStock.totalAmount -= outScan;
+ if (wmsRawStock.totalAmount == 0)
+ {
+ dbContext.WmsRawStock.Remove(wmsRawStock);
+ dbContext.SaveChanges();
+ }
+ else
+ {
+ dbContext.WmsRawStock.Update(wmsRawStock);
+ dbContext.SaveChanges();
+ }
+ }
+ else
+ {
+ HandyControl.Controls.MessageBox.Error("该条码的销售订单不正确");
+ txtOutScan.Text = string.Empty;
+ txtOutBarCode.Text = string.Empty;
+ outMaterialSpecTxt.Text = string.Empty;
+ outMaterialNameTxt.Text = string.Empty;
+ txtOutBox.Focus();
+ return;
+ }
+ }
+
+ HandyControl.Controls.MessageBox.Success("出库成功!");
+ txtOutScan.Text = string.Empty;
+ txtOutBarCode.Text = string.Empty;
+ outMaterialSpecTxt.Text = string.Empty;
+ outMaterialNameTxt.Text = string.Empty;
+ txtOutBarCode.Focus();
+ txtOutBox.Focus();
+ }
+ else
+ {
+ HandyControl.Controls.MessageBox.Error("未查询到该条码信息!");
+ }
}
}
+ else
+ {
+ HandyControl.Controls.MessageBox.Info("请先扫描容器号和条码!");
+ }
}
- else
+ catch(Exception ex)
{
- HandyControl.Controls.MessageBox.Info("请先扫描容器号和条码!");
+ MessageBox.Show(ex.Message);
}
}
///
@@ -4029,6 +4062,13 @@ namespace Khd.Core.Wpf.Form
}
}
+
#endregion
+
+
+ private void OutEnter(object sender, KeyEventArgs e)
+ {
+ OutRaw();
+ }
}
}