using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using QM.Common;
using QMAPP.FJC.Entity;
using QMAPP.FJC.Entity.Basic;
using QMAPP.FJC.Entity.Injection;
using QMAPP.ServicesAgent;
using QMAPP.WinForm.Common;
using QMAPP.Entity;
using QMAPP.MD.Entity;
namespace QMAPP.WinForm.Forms.Injection
{
///
/// 模块编号:M12-1
/// 作 用:投料记录
/// 作 者:王庆男
/// 编写日期:2015年06月08日
///
public partial class InjectionMoldingEditForm : Form
{
InjectionRecorder recorder = new InjectionRecorder();//编辑保存实体
///
/// 新建
///
public InjectionMoldingEditForm()
{
InitializeComponent();
}
///
/// 编辑
///
///
public InjectionMoldingEditForm(string pid)
{
recorder.PID = pid;
InitializeComponent();
}
///
/// 窗体加载
///
///
///
private void Form_Load(object sender, EventArgs e)
{
new KeyEvent().SetKeyToTxt(this);
#region 绑定下拉列表
BasicData basicData = new BasicData();
//加载是否有条码列表
//加载注塑设备列表
this.comMachineCode.DataSource = basicData.GetMachineInfoList(new string[] { EnumGeter.ProcessType_M.Injection.GetHashCode().ToString()}, false);
this.comMachineCode.DisplayMember = "MACHINENAME";
this.comMachineCode.ValueMember = "MACHINECODDE";
if (ClientContext.MachineInfo != null)
this.comMachineCode.SelectedValue = ClientContext.MachineInfo.MACHINECODDE;
//this.comMachineCode.SelectedValue = ClientContext.MachineInfo.MACHINECODDE;//默认当前设备
//加载物料列表
this.comMaterialCode.DataSource = basicData.GetMaterielInfoList("RAW_INJECT", true);
this.comMaterialCode.DisplayMember = "MATERIAL_NAME";
this.comMaterialCode.ValueMember = "MATERIAL_CODE";
//加载物料类别列表
this.comMaterialType.DataSource = basicData.GetMaterialTypeList(new MD.Entity.MaterialClass { UpTypeCodes = "('IP_PLASTICPART','DP_PLASTICPART')" }, false);
this.comMaterialType.DisplayMember = "MATERIAL_TYPE_NAME";
this.comMaterialType.ValueMember = "MATERIAL_TYPE_CODE";
//加载产品列表
this.cbProject.DataSource = basicData.GetProjectList(false);
this.cbProject.DisplayMember = "PROJECT_NAME";
this.cbProject.ValueMember = "PROJECT_CODE";
#endregion
#region 加载编辑
//判断是否为编辑加载编辑数据
if (string.IsNullOrEmpty(recorder.PID) == false)
{
QMAPP.ServicesAgent.ServiceAgent agent = ClientContext.GetServiceAgent();
recorder = agent.InvokeServiceFunction(B9BasicService.InjectionRecorderBLL_Get.ToString(), recorder);
//一定是存在的物料
//this.comIsHadNo.SelectedIndex = 1;
//this.txtMaterialCode.Visible = false;
this.comMaterialCode.Visible = true;
//this.txtMaterialCode.Text = "";
this.comMaterialCode.SelectedValue = recorder.MATERIALCODE;
//this.comMaterialType.SelectedValue = recorder.MATERIALTYPE;
this.txtMeterialWeight.Text = recorder.METERIALWEIGHT.ToString("0");
this.comOpreator.SelectedValue = recorder.CREATEUSER.Trim();
this.txtMaterialBatch.Text = recorder.MATERIALBATCH;
foreach (var m in (recorder.MACHINECODDE + "").Split(','))
{
var machinelist = comMachineCode.Items.Cast();
var machine = machinelist.FirstOrDefault(p => p.MACHINECODDE == m);
var index = comMachineCode.Items.IndexOf(machine);
if (index >= 0)
{
this.comMachineCode.SetItemChecked(index, true);
}
}
var project_A_mtypes = (recorder.MATERIALTYPE + "").Split(';');
if (project_A_mtypes.Length == 2)
{
foreach (var p in project_A_mtypes[0].Split(','))
{
var projectlist = cbProject.Items.Cast();
var project = projectlist.FirstOrDefault(o => o.PROJECT_CODE == p);
var index = cbProject.Items.IndexOf(project);
if (index >= 0)
{
this.cbProject.SetItemChecked(index, true);
}
}
foreach (var t in project_A_mtypes[1].Split(','))
{
var typelist = comMaterialType.Items.Cast();
var mtype = typelist.FirstOrDefault(o => o.MATERIAL_TYPE_NAME == t);
var index = comMaterialType.Items.IndexOf(mtype);
if (index >= 0)
{
this.comMaterialType.SetItemChecked(index, true);
}
}
}
}
#endregion
}
///
/// 窗体保存事件
///
///
///
private void tsbSave_Click(object sender, EventArgs e)
{
//窗体数据校验
string errorMessae = ErrorCheck();
if (errorMessae != "")
{
MessageBox.Show(errorMessae, Resource1.ConfirmTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
#region 加载保存信息
//判断是否有物料号
recorder.MATERIALCODE = this.comMaterialCode.SelectedValue.ToString();
//原材料信息
var mateial = (this.comMaterialCode.DataSource as List).Where(m => m.MATERIAL_CODE == recorder.MATERIALCODE);
if (mateial.Count() > 0)
{
MD.Entity.Material materielInfo = mateial.First();
recorder.MATERIALNAME = materielInfo.MATERIAL_NAME;
}
string projects = string.Join(",", cbProject.CheckedItems.Cast().Select(p => p.PROJECT_CODE).ToArray());
string materialtypes = string.Join(",", comMaterialType.CheckedItems.Cast().Select(p => p.MATERIAL_TYPE_NAME).ToArray());
recorder.MATERIALTYPE = projects + ";" + materialtypes;
//获取设备信息
var selectmachines = this.comMachineCode.CheckedItems.Cast();
recorder.MACHINECODDE = string.Join(",", selectmachines.Select(p => p.MACHINECODDE));
recorder.MACHINENAME = string.Join(",", selectmachines.Select(p => p.MACHINENAME_SHORT));
recorder.MACHINETYPE = EnumGeter.MACHINETYPE.zhusu.GetHashCode().ToString();
//工序类别
recorder.PROCESSTYPE = EnumGeter.MACHINETYPE.zhusu.GetHashCode().ToString();
//投料信息
//recorder.MATERIALTYPE = this.comMaterialType.SelectedValue.ToString();
//重量
recorder.METERIALWEIGHT = Convert.ToInt32(this.txtMeterialWeight.Text);
//批次
recorder.MATERIALBATCH = this.txtMaterialBatch.Text;
recorder.PRODUCELINE = EnumGeter.PRODUCELINE.B9.ToString();
//操作人
recorder.CREATEUSER = this.comOpreator.SelectedValue.ToString().Trim();
recorder.PRODUCESHIFTNAME = ClientContext.produceShift.PRODUCESHIFTNAME;//班组
recorder.PRODUCESHIFTTCODE = ClientContext.produceShift.PRODUCESHIFTTCODE;//班组
#endregion
#region 保存
QMAPP.ServicesAgent.ServiceAgent agent = ClientContext.GetServiceAgent();
DataResult result;//判断是否成功
if (string.IsNullOrEmpty(recorder.PID) == true)
{
result = agent.InvokeServiceFunction>(B9BasicService.InjectionRecorderBLL_Insert.ToString(), recorder);
}
else
{
result = agent.InvokeServiceFunction>(B9BasicService.InjectionRecorderBLL_Update.ToString(), recorder);
}
//保存成功
MessageBox.Show(result.Msg);
if (result.IsSuccess)
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
#endregion
}
///
/// 窗体关闭
///
///
///
private void tsbClose_Click(object sender, EventArgs e)
{
this.Close();
}
///
///错误检测
///
///
private string ErrorCheck()
{
#region 校验
string strMessage = "";
//物料号
if (this.comMaterialCode.SelectedValue == null || this.comMaterialCode.SelectedValue == string.Empty)
{
strMessage += Resource1.MaterialCodeNullValidate + "\r\n";
}
//设备
if (this.comMachineCode.CheckedItems.Count <= 0)
{
strMessage += Resource1.InjectionMachineNullValidate + "\r\n";
}
//物料类别
if (this.comMaterialType.CheckedItems.Count <= 0)
{
strMessage += "零件类别不能为空!" + "\r\n";
}
//产品
if (this.cbProject.CheckedItems.Count <= 0)
{
strMessage += "请选择产品!" + "\r\n";
}
//重量
if (this.txtMeterialWeight.Text == string.Empty)
{
strMessage += Resource1.NumNullValidate + "\r\n";
}
else
{
if (SysValidate.IsInt(txtMeterialWeight.Text.Trim()) == false)
{
strMessage += Resource1.NumFormatValidate + "\r\n";
}
}
//操作人
if (this.comOpreator.SelectedValue == null || this.comOpreator.SelectedValue == string.Empty)
{
strMessage += Resource1.OpreatorNullValidate + "\r\n";
}
//批次
if (this.txtMaterialBatch.Text == string.Empty)
{
strMessage += Resource1.MaterialBatchNullValidate + "\r\n";
}
return strMessage;
#endregion
}
private void comMaterialCode_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.comMaterialCode.SelectedValue != null && this.comMaterialCode.SelectedValue != string.Empty)
{
this.txtMeterialWeight.Text = (this.comMaterialCode.SelectedItem as MD.Entity.Material).WEIGHT.ToString();
}
}
private void comMaterialType_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.comMaterialType.SelectedValue != null && this.comMaterialType.SelectedValue.Equals(EnumGeter.MATERIALTYPE.jinshuzhijia.GetHashCode().ToString()))
{
//this.comIsHadNo.SelectedIndex = 0;
//this.comIsHadNo.Enabled = false;
this.label13.Visible = false;
this.txtMaterialBatch.Visible = false;
this.label9.Text = "数量(个):";
this.label12.Visible = false;
}
else
{
//this.comIsHadNo.Enabled = true;
this.label13.Visible = true;
this.txtMaterialBatch.Visible = true;
this.label9.Text = "重量(KG):";
this.label12.Visible = true;
}
}
}
}