|
|
|
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;
|
|
|
|
using QMAPP.FJC.Entity.Operation;
|
|
|
|
using QMAPP.ServicesAgent;
|
|
|
|
using QMAPP.MD.Entity;
|
|
|
|
using QMAPP.Entity;
|
|
|
|
using QMAPP.FJC.Entity;
|
|
|
|
|
|
|
|
namespace QMAPP.WinForm.Forms.Mend
|
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// </summary>
|
|
|
|
public partial class DPLabelReplace : Form
|
|
|
|
{
|
|
|
|
|
|
|
|
QMAPP.ServicesAgent.ServiceAgent _agent = ClientContext.GetServiceAgent();
|
|
|
|
private Product _product;
|
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// </summary>
|
|
|
|
public DPLabelReplace()
|
|
|
|
{
|
|
|
|
InitializeComponent();
|
|
|
|
}
|
|
|
|
private void btnSubmit_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (txtFISCode.Enabled)
|
|
|
|
{
|
|
|
|
LoadProduct();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (txtNewFISCode.Enabled)
|
|
|
|
{
|
|
|
|
ReplaceFIS();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void txtFISCodeLabel_KeyDown(object sender, KeyEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.KeyCode != Keys.Enter)//如果输入的是回车键
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
LoadProduct();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private void ReplaceFIS()
|
|
|
|
{
|
|
|
|
infolabel.ForeColor = Color.Red;
|
|
|
|
if (string.IsNullOrWhiteSpace(txtNewFISCode.Text.Trim()))
|
|
|
|
{
|
|
|
|
infolabel.Text = "请扫描新的门板FIS标签!";
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
string newfiscode=txtNewFISCode.Text.Trim().ToUpper();
|
|
|
|
if (string.Equals(newfiscode, _product.PLAN_NO))
|
|
|
|
{
|
|
|
|
infolabel.Text = "请扫描新的门板FIS标签!";
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (!(newfiscode.StartsWith("D01") || newfiscode.StartsWith("DP2") || newfiscode.StartsWith("D04")))
|
|
|
|
{
|
|
|
|
infolabel.Text = "输入条码格式不正确!";
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
Product nproduct = _agent.InvokeServiceFunction<Product>("ProductBLL_GetProductByAssembleCode", newfiscode);
|
|
|
|
if (nproduct != null)
|
|
|
|
{
|
|
|
|
if (cbType.SelectedIndex == 0) //新FIS码替换 新条码应为未使用状态
|
|
|
|
{
|
|
|
|
infolabel.Text = string.Format("此FIS码已与产品“{0}”绑定,不可重复使用!", nproduct.PRODUCTCODE);
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if (cbType.SelectedIndex == 1) //备件替换 备件信息需要存在
|
|
|
|
{
|
|
|
|
infolabel.Text = string.Format("未查询到备件信息!", nproduct.PRODUCTCODE);
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var oplan = _agent.InvokeServiceFunction<DataResult<FJC.Entity.FIS.OrderPlan>>("OrderPlanBLL_GetPlanWithOrderNo", _product.PLAN_NO,false);
|
|
|
|
if (!oplan.IsSuccess)
|
|
|
|
{
|
|
|
|
infolabel.Text = oplan.Ex.Message;
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
var nplan = _agent.InvokeServiceFunction<DataResult<FJC.Entity.FIS.OrderPlan>>("OrderPlanBLL_GetPlanWithOrderNo", newfiscode,false);
|
|
|
|
if (!nplan.IsSuccess)
|
|
|
|
{
|
|
|
|
infolabel.Text = nplan.Ex.Message;
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (cbType.SelectedIndex == 0) //新FIS码替换必须保证与原FIS码计划物料号一致
|
|
|
|
{
|
|
|
|
|
|
|
|
List<MD.Entity.PbomItem> SubItems = _agent.InvokeServiceFunction<List<MD.Entity.PbomItem>>("PbomBLL_GetSubItem", nplan.Result.MATERIAL_CODE);
|
|
|
|
|
|
|
|
if (!SubItems.Exists(p => p.MATERIAL_CODE == _product.MATERIAL_CODE))
|
|
|
|
{
|
|
|
|
infolabel.Text = "原FIS码产品物料号与新FIS码物料号不匹配!";
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (cbType.SelectedIndex == 1)
|
|
|
|
{
|
|
|
|
if (!string.Equals(oplan.Result.MATERIAL_CODE, nplan.Result.MATERIAL_CODE))
|
|
|
|
{
|
|
|
|
infolabel.Text = "原件FIS码产品物料号与备件FIS码物料号不匹配!";
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
DataResult result=new DataResult();
|
|
|
|
if (cbType.SelectedIndex == 0)
|
|
|
|
{
|
|
|
|
result = _agent.InvokeServiceFunction<DataResult>("MainCodeChangeBLL_ReplacePlanNo", _product, newfiscode);
|
|
|
|
}
|
|
|
|
else if (cbType.SelectedIndex == 1)
|
|
|
|
{
|
|
|
|
result = _agent.InvokeServiceFunction<DataResult>("MainCodeChangeBLL_ExchangePlanNo", _product, nproduct);
|
|
|
|
}
|
|
|
|
if (result.IsSuccess)
|
|
|
|
{
|
|
|
|
txtNewFIS.Text = newfiscode;
|
|
|
|
infolabel.Text = "替换成功";
|
|
|
|
infolabel.ForeColor = Color.Black;
|
|
|
|
txtFISCode.Enabled = true;
|
|
|
|
txtFISCode.SelectAll();
|
|
|
|
txtFISCode.Focus();
|
|
|
|
txtNewFISCode.Text = "";
|
|
|
|
txtNewFISCode.Enabled = false;
|
|
|
|
cbType.Enabled = true;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
infolabel.Text = result.Msg;
|
|
|
|
infolabel.ForeColor = Color.Red;
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void LoadProduct()
|
|
|
|
{
|
|
|
|
infolabel.ForeColor = Color.Red;
|
|
|
|
txtNewFIS.Text = "";
|
|
|
|
txtMaterialCode.Text = "";
|
|
|
|
txtMaterialName.Text = "";
|
|
|
|
txtOldFIS.Text = "";
|
|
|
|
txtMaterialCode.Text = "";
|
|
|
|
infolabel.Text = "";
|
|
|
|
txtProductCode.Text = "";
|
|
|
|
if (string.IsNullOrWhiteSpace(txtFISCode.Text.Trim()))
|
|
|
|
{
|
|
|
|
infolabel.Text = "请扫描门板FIS标签!";
|
|
|
|
txtFISCode.SelectAll();
|
|
|
|
txtFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
//1.判断扫描条形码是否存在
|
|
|
|
string Code = txtFISCode.Text.Trim().ToUpper();
|
|
|
|
|
|
|
|
|
|
|
|
Product product = _agent.InvokeServiceFunction<Product>("ProductBLL_GetProductByAssembleCode",Code);
|
|
|
|
if (product == null)
|
|
|
|
{
|
|
|
|
infolabel.Text = "未能查询到FIS码绑定的产品信息!";
|
|
|
|
txtFISCode.SelectAll();
|
|
|
|
txtFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(product.PLAN_NO))
|
|
|
|
{
|
|
|
|
infolabel.Text = "此产品未绑定FIS码!";
|
|
|
|
txtFISCode.SelectAll();
|
|
|
|
txtFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (product.OUTFLAG != "0")
|
|
|
|
{
|
|
|
|
infolabel.Text = "此产品码已出库!";
|
|
|
|
txtFISCode.SelectAll();
|
|
|
|
txtFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (product.STATUS != "0")
|
|
|
|
{
|
|
|
|
infolabel.Text = "此产品为不合格状态!";
|
|
|
|
txtFISCode.SelectAll();
|
|
|
|
txtFISCode.Focus();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var mcresult = _agent.InvokeServiceFunction<DataResult<MaterialClass>>("MaterialClassBLL_Get", new MaterialClass { MATERIAL_TYPE_CODE = product.MATERIAL_TYPE });
|
|
|
|
var mc = mcresult.IsSuccess ? mcresult.Result : new MaterialClass { };
|
|
|
|
|
|
|
|
var mresult = _agent.InvokeServiceFunction<DataResult<Material>>("MaterialBLL_Get", new Material { MATERIAL_CODE = product.MATERIAL_CODE });
|
|
|
|
var m = mresult.IsSuccess ? mresult.Result : new Material { };
|
|
|
|
|
|
|
|
//if(cbType.SelectedIndex==0)
|
|
|
|
|
|
|
|
//if (!string.Equals(mc.MATERIAL_ATTRIBUTE, "2"))
|
|
|
|
//{
|
|
|
|
// infolabel.Text = "输入的产品码不是总成件!";
|
|
|
|
// txtFISCode.SelectAll();
|
|
|
|
// txtFISCode.Focus();
|
|
|
|
// return;
|
|
|
|
//}
|
|
|
|
//FJC.Entity.ProductIn.ProductIn inrecord = _agent.InvokeServiceFunction<FJC.Entity.ProductIn.ProductIn>("ProductInBLL_GetInRecord", product.PRODUCTCODE);
|
|
|
|
//if (inrecord == null)
|
|
|
|
//{
|
|
|
|
// infolabel.Text = "无此产品的退返入库记录!";
|
|
|
|
// txtPlanLabel.SelectAll();
|
|
|
|
// txtPlanLabel.Focus();
|
|
|
|
// return;
|
|
|
|
//}
|
|
|
|
|
|
|
|
_product = product;
|
|
|
|
txtNewFIS.Text = "";
|
|
|
|
txtMaterialCode.Text = product.MATERIAL_CODE;
|
|
|
|
txtMaterialName.Text = m.MATERIAL_NAME;//; product.MATERIAL_NAME;
|
|
|
|
txtOldFIS.Text = product.PLAN_NO;
|
|
|
|
txtProductCode.Text = product.PRODUCTCODE;
|
|
|
|
txtFISCode.Text = "";
|
|
|
|
txtFISCode.SelectAll();
|
|
|
|
//txtFISCode.Focus();
|
|
|
|
txtFISCode.Enabled = false;
|
|
|
|
txtNewFISCode.Enabled = true;
|
|
|
|
cbType.Enabled = false;
|
|
|
|
txtNewFISCode.SelectAll();
|
|
|
|
txtNewFISCode.Focus();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void btnReset_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
txtProductCode.Text = "";
|
|
|
|
txtNewFIS.Text = "";
|
|
|
|
txtMaterialCode.Text = "";
|
|
|
|
txtMaterialName.Text = "";
|
|
|
|
txtOldFIS.Text = "";
|
|
|
|
txtMaterialCode.Text = "";
|
|
|
|
infolabel.Text = "";
|
|
|
|
txtFISCode.Enabled = true;
|
|
|
|
txtFISCode.SelectAll();
|
|
|
|
txtFISCode.Focus();
|
|
|
|
txtNewFISCode.Text = "";
|
|
|
|
txtNewFISCode.Enabled = false;
|
|
|
|
cbType.Enabled = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void txtNewFISCode_KeyDown(object sender, KeyEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.KeyCode != Keys.Enter)//如果输入的是回车键
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
ReplaceFIS();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void DPLabelReplace_Load(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
cbType.SelectedIndex = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void cbType_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (cbType.SelectedIndex == 0)
|
|
|
|
{
|
|
|
|
lblOriginalTitle.Text = "原门板FIS码:";
|
|
|
|
lblNewTitle.Text = "新门板FIS码:";
|
|
|
|
}
|
|
|
|
else if (cbType.SelectedIndex == 1)
|
|
|
|
{
|
|
|
|
lblOriginalTitle.Text = "原件门板FIS码:";
|
|
|
|
lblNewTitle.Text = "备件门板FIS码:";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|