示例#1
0
        /// <summary>
        /// 暂停组别文本改变事件。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lueHoldGroup_EditValueChanged(object sender, EventArgs e)
        {
            LotOperationEntity entity      = new LotOperationEntity();
            string             categoryKey = Convert.ToString(this.lueHoldGroup.EditValue);
            DataSet            ds          = entity.GetReasonCode(categoryKey);

            if (!string.IsNullOrEmpty(entity.ErrorMsg))
            {
                MessageService.ShowMessage(entity.ErrorMsg, "提示");
                this.lueHoldCode.Properties.DataSource = null;
            }
            else
            {
                if (ds != null)
                {
                    this.lueHoldCode.Properties.DataSource    = ds.Tables[0];
                    this.lueHoldCode.Properties.DisplayMember = "REASON_CODE_NAME";
                    this.lueHoldCode.Properties.ValueMember   = "REASON_CODE_KEY";
                }
                else
                {
                    this.lueHoldCode.Properties.DataSource = null;
                }
            }
        }
示例#2
0
        /// <summary>
        /// 绑定HOLD原因代码组数据。
        /// </summary>
        private void BindReasonCodeGroupDataToControl()
        {
            LotOperationEntity entity = new LotOperationEntity();
            DataSet            ds     = entity.GetHoldReasonCodeCategory();

            if (!string.IsNullOrEmpty(entity.ErrorMsg))
            {
                MessageService.ShowError(entity.ErrorMsg);
                this.lueHoldGroup.Properties.DataSource = null;
            }
            else
            {
                if (ds != null)
                {
                    this.lueHoldGroup.Properties.DataSource    = ds.Tables[0];
                    this.lueHoldGroup.Properties.DisplayMember = "REASON_CODE_CATEGORY_NAME";
                    this.lueHoldGroup.Properties.ValueMember   = "REASON_CODE_CATEGORY_KEY";
                }
                else
                {
                    this.lueHoldGroup.Properties.DataSource = null;
                }
            }
        }
示例#3
0
        private void txtPallet_NO_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                LotQueryEntity     queryEntity     = new LotQueryEntity();
                LotOperationEntity workOrderEntity = new LotOperationEntity();
                DataSet            dsLotInfo       = new DataSet();
                dsLotInfo = queryEntity.GetLotInfoByPallet_No(txtPallet_NO.Text);
                if (!string.IsNullOrEmpty(queryEntity.ErrorMsg))
                {
                    MessageService.ShowError(queryEntity.ErrorMsg);
                    return;
                }
                //该托盘号有数据
                if (dsLotInfo.Tables[0].Rows.Count > 0)
                {
                    //获得该托盘号对应的料号
                    string partNumber = dsLotInfo.Tables[0].Rows[0][POR_LOT_FIELDS.FIELD_PART_NUMBER].ToString();
                    //获得该托盘号对应的工单号
                    string workOrder = dsLotInfo.Tables[0].Rows[0][POR_LOT_FIELDS.FIELD_WORK_ORDER_NO].ToString();

                    string ocrCode = "";

                    //获取该工单号的数据
                    DataSet dsProductData = workOrderEntity.GetWoProductData(workOrder);
                    if (string.IsNullOrEmpty(workOrderEntity.ErrorMsg))
                    {
                        //查到工单对应的数据
                        if (dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows.Count > 0)
                        {
                            //工单号对应的料号与托盘号对应的料号一致,执行第二次请求,需回填新工单号字段
                            if (dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows[0][POR_WORK_ORDER_FIELDS.FIELD_PART_NUMBER].ToString() == partNumber)
                            {
                                //执行第二次请求
                                ReceiveSecondDataObject receiveSecondDataObject = new ReceiveSecondDataObject();
                                receiveSecondDataObject = InvokeSecondAPI(DateTime.Now, "", "",
                                                                          Convert.ToInt32(workOrder), dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows.Count, 0);

                                //receiveSecondDataObject = InvokeSecondAPI(DateTime.Now, "", "",
                                //    41, 1, 0);

                                //调用成功
                                if (receiveSecondDataObject != null && receiveSecondDataObject.Code == "0")
                                {
                                    int newInWarehouseOrder = 0;
                                    newInWarehouseOrder = receiveSecondDataObject.Data.DocEntry;

                                    //回填por_lot表新工单号
                                    bool isUpdatePor_lot = workOrderEntity.UpdatePor_Lot(workOrder.ToString(), txtPallet_NO.Text);
                                    if (!isUpdatePor_lot)
                                    {
                                        MessageService.ShowError("新工单号写入失败");
                                        return;
                                    }
                                    MessageService.ShowMessage("新工单号填入成功");
                                    //回填Wip_consignment表入库单号
                                    bool isUpdateWip_consignment = workOrderEntity.UpdateWip_consignment(newInWarehouseOrder.ToString(), txtPallet_NO.Text);
                                    if (!isUpdateWip_consignment)
                                    {
                                        MessageService.ShowError("入库单号写入失败");
                                        return;
                                    }
                                    MessageService.ShowMessage("入库单号写入成功");
                                    dtgc.Clear();
                                    DataRow dr = dtgc.NewRow();
                                    dr["gcWorkOrder"]    = workOrder;
                                    dr["gcProductCode"]  = partNumber;
                                    dr["gcQty"]          = dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows.Count;
                                    dr["gcNewWorkOrder"] = workOrder;
                                }
                                else
                                {
                                    MessageService.ShowError("调用第二次接口失败");
                                }
                            }
                            //不一致,执行第一次请求,再执行第二次请求,需回填por_lot新工单号字段
                            else
                            {
                                ReceiveFirstDataObject receiveFirstDataObject = new ReceiveFirstDataObject();
                                //receiveFirstDataObject = InvokeFirstAPI("2010005103", 1,
                                //      "301", DateTime.Now, DateTime.Now, DateTime.Now, "41",
                                //     dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows[0][POR_WORK_ORDER_FIELDS.FIELD_OCRCODE].ToString(), "");
                                receiveFirstDataObject = InvokeFirstAPI(partNumber, dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows.Count,
                                                                        dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows[0][POR_WORK_ORDER_FIELDS.FIELD_STOCK_LOCATION].ToString(), DateTime.Now, DateTime.Now, DateTime.Now, workOrder,
                                                                        dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows[0][POR_WORK_ORDER_FIELDS.FIELD_OCRCODE].ToString(), "");
                                //调用成功
                                if (receiveFirstDataObject != null && receiveFirstDataObject.Code == "0")
                                {
                                    int newWorkOrder = 0;
                                    try
                                    {
                                        newWorkOrder = Convert.ToInt32(receiveFirstDataObject.Data.DocEntry);
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageService.ShowError("新工单号格式错误");
                                        return;
                                    }

                                    //回填por_lot表新工单号
                                    bool isUpdatePor_lot = workOrderEntity.UpdatePor_Lot(newWorkOrder.ToString(), txtPallet_NO.Text);
                                    if (!isUpdatePor_lot)
                                    {
                                        MessageService.ShowError("新工单号写入失败");
                                        return;
                                    }
                                    else
                                    {
                                        MessageService.ShowMessage("新工单号写入成功");
                                    }

                                    //执行第二次请求
                                    ReceiveSecondDataObject receiveSecondDataObject = new ReceiveSecondDataObject();
                                    receiveSecondDataObject = InvokeSecondAPI(DateTime.Now, "", "",
                                                                              Convert.ToInt32(receiveFirstDataObject.Data.DocEntry), dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows.Count, 0);

                                    //receiveSecondDataObject = InvokeSecondAPI(DateTime.Now, "", "",
                                    //    41, 1, 0);
                                    //调用成功
                                    if (receiveSecondDataObject.Code == "0")
                                    {
                                        int newInWarehouseOrder = 0;
                                        newInWarehouseOrder = receiveSecondDataObject.Data.DocEntry;
                                        //回填Wip_consignment表入库单号
                                        bool isUpdateWip_consignment = workOrderEntity.UpdateWip_consignment(newInWarehouseOrder.ToString(), txtPallet_NO.Text);
                                        if (!isUpdateWip_consignment)
                                        {
                                            MessageService.ShowError("入库单号写入失败");
                                            return;
                                        }
                                        else
                                        {
                                            MessageService.ShowMessage("入库单写入成功");
                                            dtgc.Clear();
                                            DataRow dr = dtgc.NewRow();
                                            dr["gcWorkOrder"]    = workOrder;
                                            dr["gcProductCode"]  = partNumber;
                                            dr["gcQty"]          = dsProductData.Tables[POR_WORK_ORDER_FIELDS.DATABASE_TABLE_NAME].Rows.Count;
                                            dr["gcNewWorkOrder"] = newWorkOrder;
                                            dtgc.Rows.Add(dr);
                                        }
                                    }
                                    else
                                    {
                                        MessageService.ShowError("调用第二次接口失败");
                                    }
                                }
                                else
                                {
                                    MessageService.ShowError("调用第一次接口失败");
                                    return;
                                }
                            }
                        }
                        else
                        {
                            MessageService.ShowError("托盘号对应的工单没有明细");
                            return;
                        }
                    }
                    else
                    {
                        MessageService.ShowError(workOrderEntity.ErrorMsg);
                        return;
                    }
                }
                else
                {
                    MessageService.ShowError("托盘号不存在!");
                    return;
                }
            }
        }