Exemple #1
0
 private void dgv_show_SelectionChanged(object sender, EventArgs e)
 {
     if (dgv_show.SelectedRows != null && dgv_show.SelectedRows.Count > 0)
     {
         if (dgv_show.SelectedRows[0].Cells["MATERIALNODataGridViewTextBoxColumn"].Value.ToString().Length > 0)
         {
             txt_mateno.Text   = dgv_show.SelectedRows[0].Cells["MATERIALNODataGridViewTextBoxColumn"].Value.ToString();
             txt_matename.Text = dgv_show.SelectedRows[0].Cells["MATERIALDESCDataGridViewTextBoxColumn"].Value.ToString();
             WebService.TaskDetails_Model tdm = new WebService.TaskDetails_Model();
             tdm.MaterialNo   = txt_mateno.Text;
             tdm.MaterialDesc = txt_matename.Text;
             //tdm.TMaterialNo = dgv_show.SelectedRows[0].Cells["tTEMPMATERIALNODataGridViewTextBoxColumn"].Value.ToString();
             //tdm.TMaterialDesc = dgv_show.SelectedRows[0].Cells["tTEMPMATERIALDESCDataGridViewTextBoxColumn"].Value.ToString();
             txt_matename.Tag = tdm;
             txt_mateno.Tag   = txt_mateno.Text;
         }
         else
         {
             txt_mateno.Text   = dgv_show.SelectedRows[0].Cells["tTEMPMATERIALNODataGridViewTextBoxColumn"].Value.ToString();
             txt_matename.Text = dgv_show.SelectedRows[0].Cells["tTEMPMATERIALDESCDataGridViewTextBoxColumn"].Value.ToString();
             WebService.TempMaterial tempmaterial = new WebService.TempMaterial();
             tempmaterial.TempMaterialNo   = dgv_show.SelectedRows[0].Cells["tTEMPMATERIALNODataGridViewTextBoxColumn"].Value.ToString();
             tempmaterial.TempMaterialDesc = dgv_show.SelectedRows[0].Cells["tTEMPMATERIALDESCDataGridViewTextBoxColumn"].Value.ToString();
             txt_matename.Tag = tempmaterial;
             txt_mateno.Tag   = txt_mateno.Text;
         }
         txt_num.Text = dgv_show.SelectedRows[0].Cells["TaskQty"].Value.ToString();
         if (dgv_show.SelectedRows[0].Cells["ROWNO"].Value != null)
         {
             txt_rownum.Text = dgv_show.SelectedRows[0].Cells["ROWNO"].Value.ToString();
         }
     }
 }
Exemple #2
0
 private void txt_mateno_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.Enter)
     {
         if (txt_mateno.Text.Length < 10)
         {
             MessageBox.Show("物料编号长度不正确");
             txt_mateno.SelectAll();
             txt_mateno.Focus();
             txt_mateno.Tag   = null;
             txt_matename.Tag = null;
             return;
         }
         //先查临时物料
         string strErr = string.Empty;
         WebService.TempMaterial tempmaterial = null;
         try
         {
             bool bSucc = WMS.Common.WMSWebService.service.GetTempMaterialByTempNo(txt_mateno.Text, ref tempmaterial, ref strErr);
             if (bSucc)
             {
                 txt_matename.Text = tempmaterial.TempMaterialDesc;
                 txt_mateno.Tag    = txt_mateno.Text;
                 txt_matename.Tag  = tempmaterial;
                 txt_num.Enabled   = true;
                 txt_num.SelectAll();
                 txt_num.Focus();
                 return;
             }
             else
             {
                 //再查SAP物料
                 WebService.TaskDetails_Model tdm = null;
                 //bSucc = JingXinWMS.Common.WMSWebService.service.GetMaterialInfoForSAP(txt_mateno.Text, ref tdm, ref strErr);
                 if (bSucc)
                 {
                     txt_matename.Text = tdm.MaterialDesc;
                     txt_mateno.Tag    = txt_mateno.Text;
                     txt_matename.Tag  = tdm;
                     txt_num.Enabled   = true;
                     txt_num.SelectAll();
                     txt_num.Focus();
                     return;
                 }
             }
             MessageBox.Show("物料号错误!");
             txt_matename.Text = "";
             txt_mateno.SelectAll();
             txt_mateno.Focus();
             txt_mateno.Tag   = null;
             txt_matename.Tag = null;
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
             txt_mateno.Tag   = null;
             txt_matename.Tag = null;
         }
     }
 }
Exemple #3
0
        private void txt_VOUCHERNO_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (bhaveVoucher && sourceVoucher != null)
                {
                    MessageBox.Show("只能加载一张单据表单!");
                    return;
                }
                //判断单据号是否在其它TASK表上
                WebService.TaskVoucher temptv = null;
                string strErrMsg = string.Empty;
                bool   bSucc     = WMS.Common.WMSWebService.service.GetVoucherByNo(txt_VOUCHERNO.Text, ref temptv, ref strErrMsg);
                if (bSucc)
                {
                    MessageBox.Show("该单号已用在其它任务单上!");
                    txt_VOUCHERNO.SelectAll();
                    txt_VOUCHERNO.Focus();
                    return;
                }
                //获取采购订单
                WebService.DeliveryReceive_Model tempDM = new WebService.DeliveryReceive_Model();
                //bSucc = JingXinWMS.Common.WMSWebService.service.GetPOInfoForSAP(txt_VOUCHERNO.Text, ref tempDM, ref strErrMsg);
                //if(!bSucc)
                //{
                //    MessageBox.Show("单据号错误!");
                //    txt_VOUCHERNO.SelectAll();
                //    txt_VOUCHERNO.Focus();
                //    return;
                //}
                //匹配表体数据
                if (body != null && body.Count == tempDM.lstDeliveryDetail.Count)
                {
                    //如果是新建TASK,则自动生成Voucher表头和表体
                    if (bNewTask)
                    {
                        bhaveVoucher            = true;
                        head.VoucherNo          = txt_VOUCHERNO.Text;
                        head.SupCusNo           = tempDM.SupCode;
                        head.SupCusName         = tempDM.SupName;
                        txt_businessName.Text   = head.SupCusName;
                        txt_business.Text       = head.SupCusNo.TrimStart('0');
                        sourceVoucher           = new WebService.TaskVoucher();
                        sourceVoucher.VoucherNo = txt_VOUCHERNO.Text;
                        sourceVoucher.body      = new List <WebService.TaskVoucherDetails>();
                        foreach (WebService.DeliveryReceiveDetail_Model drdm in tempDM.lstDeliveryDetail)
                        {
                            //匹配body的物料号和数量
                            WebService.TaskDetails_Model tdm = body.Find(delegate(WebService.TaskDetails_Model v) { return(v.MaterialNo == drdm.MaterialNo && v.TaskQty == drdm.CurrentlyDeliveryNum); });
                            if (tdm == null)
                            {
                                MessageBox.Show("该任务的表单物料明细与单据表体不匹配!");
                                txt_VOUCHERNO.SelectAll();
                                txt_VOUCHERNO.Focus();
                                return;
                            }
                            tdm.RowNo      = drdm.RowNo;
                            tdm.PlantName  = drdm.PlantName;
                            tdm.StorageLoc = drdm.StorageLoc;
                            WebService.TaskVoucherDetails tvd = new WebService.TaskVoucherDetails();
                            tvd.MaterialNo   = drdm.MaterialNo;
                            tvd.MaterialDesc = drdm.MaterialDesc;
                            tvd.Factory      = drdm.Plant;
                            tvd.FactoryName  = drdm.PlantName;
                            tvd.Store        = drdm.StorageLoc;
                            tvd.Qty          = drdm.CurrentlyDeliveryNum;
                            tvd.RowNo        = drdm.RowNo;
                            sourceVoucher.body.Add(tvd);
                        }
                        bindingSource1.DataSource = body;
                        bindingSource1.ResetBindings(true);
                        this.Refresh();
                        if (sourceVoucher.body[0].Store == null || sourceVoucher.body[0].Store.Equals(""))
                        {
                            //List<WebService.StorageLoc_Model> lstStorage = null;
                            //bSucc = JingXinWMS.Common.WMSWebService.service.GetStorageLocByPlantForSAP(sourceVoucher.body[0].Factory, ref lstStorage, ref strErrMsg);
                            //if (bSucc)
                            //{
                            //    WebService.StorageLoc_Model NullStorage = new WebService.StorageLoc_Model();
                            //    NullStorage.StorageLoc = "";
                            //    lstStorage.Insert(0, NullStorage);
                            //    cmb_store.DataSource = lstStorage;
                            //    cmb_store.DisplayMember = "StorageLoc";
                            //    cmb_store.ValueMember = "StorageLoc";
                            //    //MessageBox.Show("请选择库存地点");
                            //}
                            //else
                            //{
                            //    MessageBox.Show("获取库存地点列表失败!");
                            //    return;
                            //}
                            //cmb_store.Items.Add("1101");
                            //MessageBox.Show("请选择库存地点");
                        }
                    }
                    else//否则通过SAP数据匹配已有的表体数据(原有临时物料匹配SAP物料)
                    {
                        if (sourceTask.lstTaskDetails.Count != tempDM.lstDeliveryDetail.Count)
                        {
                            MessageBox.Show("该任务的表单明细行数与单据表体行数不匹配!");
                            txt_VOUCHERNO.SelectAll();
                            txt_VOUCHERNO.Focus();
                            return;
                        }
                        if (!sourceTask.SupCusNo.TrimStart('0').Equals(txt_business.Text.TrimStart('0')))
                        {
                            MessageBox.Show("PO供应商错误,重新检查PO单号");
                            txt_VOUCHERNO.SelectAll();
                            txt_VOUCHERNO.Focus();
                            return;
                        }
                        foreach (WebService.TaskDetails_Model tdm in sourceTask.lstTaskDetails)
                        {
                            int index = tempDM.lstDeliveryDetail.FindIndex(delegate(WebService.DeliveryReceiveDetail_Model v) { return(v.MaterialNo.Equals(tdm.MaterialNo) && v.CurrentlyDeliveryNum == tdm.TaskQty); });
                            if (index < 0)
                            {
                                WebService.TempMaterial tempmaterial = null;
                                bSucc = WMS.Common.WMSWebService.service.GetTempMaterialByTempNo(tdm.TMaterialNo, ref tempmaterial, ref strErrMsg);
                                if (bSucc)
                                {
                                    index = tempDM.lstDeliveryDetail.FindIndex(delegate(WebService.DeliveryReceiveDetail_Model v) { return(v.MaterialNo.Equals(tempmaterial.MaterialNo) && v.CurrentlyDeliveryNum == tdm.TaskQty); });
                                    if (index < 0)
                                    {
                                        MessageBox.Show("该任务的表单物料明细与单据表体不匹配!");
                                        txt_VOUCHERNO.SelectAll();
                                        txt_VOUCHERNO.Focus();
                                        return;
                                    }
                                    tdm.MaterialNo    = tempDM.lstDeliveryDetail[index].MaterialNo;
                                    tdm.MaterialDesc  = tempDM.lstDeliveryDetail[index].MaterialDesc;
                                    tdm.TMaterialNo   = tempmaterial.TempMaterialNo;
                                    tdm.TMaterialDesc = tempmaterial.TempMaterialDesc;
                                    tdm.TaskQty       = tempDM.lstDeliveryDetail[index].CurrentlyDeliveryNum;
                                    tdm.RowNo         = tempDM.lstDeliveryDetail[index].RowNo;
                                    tdm.Plant         = tempDM.lstDeliveryDetail[index].Plant;
                                    tdm.PlantName     = tempDM.lstDeliveryDetail[index].PlantName;
                                    tdm.StorageLoc    = tempDM.lstDeliveryDetail[index].StorageLoc;
                                }
                                else
                                {
                                    MessageBox.Show("获取临时物料对应关系失败!");
                                    txt_VOUCHERNO.SelectAll();
                                    txt_VOUCHERNO.Focus();
                                    return;
                                }
                            }
                            else
                            {
                                tdm.MaterialNo   = tempDM.lstDeliveryDetail[index].MaterialNo;
                                tdm.MaterialDesc = tempDM.lstDeliveryDetail[index].MaterialDesc;
                                tdm.TaskQty      = tempDM.lstDeliveryDetail[index].CurrentlyDeliveryNum;
                                tdm.RowNo        = tempDM.lstDeliveryDetail[index].RowNo;
                                tdm.Plant        = tempDM.lstDeliveryDetail[index].Plant;
                                tdm.PlantName    = tempDM.lstDeliveryDetail[index].PlantName;
                                tdm.StorageLoc   = tempDM.lstDeliveryDetail[index].StorageLoc;
                            }
                        }
                        bhaveVoucher          = true;
                        head.SupCusNo         = tempDM.SupCode;
                        head.SupCusName       = tempDM.SupName;
                        txt_businessName.Text = head.SupCusName;
                        txt_business.Text     = head.SupCusNo.TrimStart('0');

                        sourceVoucher           = new WebService.TaskVoucher();
                        sourceVoucher.VoucherNo = txt_VOUCHERNO.Text;
                        sourceVoucher.body      = new List <WebService.TaskVoucherDetails>();
                        foreach (WebService.DeliveryReceiveDetail_Model drdm in tempDM.lstDeliveryDetail)
                        {
                            WebService.TaskVoucherDetails tvd = new WebService.TaskVoucherDetails();
                            tvd.MaterialNo   = drdm.MaterialNo;
                            tvd.MaterialDesc = drdm.MaterialDesc;
                            tvd.Factory      = drdm.Plant;
                            tvd.FactoryName  = drdm.PlantName;
                            tvd.Store        = drdm.StorageLoc;
                            tvd.Qty          = drdm.CurrentlyDeliveryNum;
                            tvd.RowNo        = drdm.RowNo;
                            sourceVoucher.body.Add(tvd);
                        }
                        body = sourceTask.lstTaskDetails;
                        bindingSource1.DataSource = body;
                        bindingSource1.ResetBindings(true);
                        this.Refresh();
                        if (sourceVoucher.body[0].Store == null || sourceVoucher.body[0].Store.Equals(""))
                        {
                            //List<WebService.StorageLoc_Model> lstStorage = null;
                            //bSucc = JingXinWMS.Common.WMSWebService.service.GetStorageLocByPlantForSAP(sourceVoucher.body[0].Factory, ref lstStorage, ref strErrMsg);
                            //if (bSucc)
                            //{
                            //    WebService.StorageLoc_Model NullStorage = new WebService.StorageLoc_Model();
                            //    NullStorage.StorageLoc = "";
                            //    lstStorage.Insert(0, NullStorage);
                            //    cmb_store.DataSource = lstStorage;
                            //    cmb_store.DisplayMember = "StorageLoc";
                            //    cmb_store.ValueMember = "StorageLoc";
                            //    //MessageBox.Show("请选择库存地点");
                            //}
                            //else
                            //{
                            //    MessageBox.Show("获取库存地点列表失败!");
                            //    return;
                            //}
                            //cmb_store.Items.Add("1101");
                            //MessageBox.Show("请选择库存地点");
                        }
                        else
                        {
                            cmb_store.Items.Add(sourceVoucher.body[0].Store);
                            cmb_store.SelectedItem = sourceVoucher.body[0].Store;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("单据表单数据匹配错误!");
                    txt_VOUCHERNO.SelectAll();
                    txt_VOUCHERNO.Focus();
                    return;
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// 新增记录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_add_Click(object sender, EventArgs e)
        {
            if (!txt_num.Enabled)
            {
                MessageBox.Show("请先输入物料编号");
                return;
            }
            if (bhaveVoucher)
            {
                MessageBox.Show("获取单据的表单数据不能新增记录");
                return;
            }
            //判断新增记录是否完整
            if (txt_mateno.Tag == null)
            {
                MessageBox.Show("请先输入物料编号");
                return;
            }
            Regex r = new Regex(@"^[1-9]\d*$");

            if (!r.IsMatch(txt_num.Text))
            {
                MessageBox.Show("数量格式不正确,请正确输入数量");
                txt_num.SelectAll();
                txt_num.Focus();
                return;
            }
            //判断新增记录是否已存在
            if (body.Count > 0)
            {
                int index;
                if (txt_matename.Tag.ToString().EndsWith("TempMaterial"))
                {
                    index = body.FindIndex(delegate(WebService.TaskDetails_Model v) { return(v.TMaterialNo != null && v.TMaterialNo.Equals(txt_mateno.Tag.ToString())); });
                }
                else
                {
                    index = body.FindIndex(delegate(WebService.TaskDetails_Model v) { return(v.MaterialNo != null && v.MaterialNo.Equals(txt_mateno.Tag.ToString())); });
                }
                if (index >= 0)
                {
                    body[index].TaskQty      += int.Parse(txt_num.Text);
                    bindingSource1.DataSource = body;
                    bindingSource1.ResetBindings(true);
                    this.Refresh();
                    txt_mateno.SelectAll();
                    txt_mateno.Focus();
                    txt_num.Enabled = false;
                    return;
                }
            }
            WebService.TaskDetails_Model tdm = new WebService.TaskDetails_Model();
            if (txt_matename.Tag.ToString().EndsWith("TempMaterial"))
            {
                WebService.TempMaterial tempmaterial = (WebService.TempMaterial)txt_matename.Tag;
                tdm.TMaterialNo   = tempmaterial.TempMaterialNo;
                tdm.TMaterialDesc = tempmaterial.TempMaterialDesc;
                tdm.MaterialNo    = tempmaterial.MaterialNo;
                tdm.MaterialDesc  = tempmaterial.MaterialDesc;
            }
            else
            {
                WebService.TaskDetails_Model material = (WebService.TaskDetails_Model)txt_matename.Tag;
                tdm.MaterialNo   = material.MaterialNo;
                tdm.MaterialDesc = material.MaterialDesc;
            }
            //判断和来源单据表体物料号是否匹配

            tdm.TaskQty = int.Parse(txt_num.Text);
            if (!bNewTask)
            {
                tdm.ID = -1;
            }
            body.Add(tdm);
            bindingSource1.DataSource = body;
            bindingSource1.ResetBindings(true);
            this.Refresh();
            txt_mateno.SelectAll();
            txt_mateno.Focus();
            txt_num.Enabled = false;
        }