Example #1
0
        private void 修改单据ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus),
                                                                       dataGridView1.SelectedRows[0].Cells["单据状态"].Value.ToString());

            if (status != HomemadeBillStatus.回退_编制单据有误)
            {
                MessageDialog.ShowPromptMessage("当前状态不允许修改单据");
                return;
            }

            if (!CheckDataItem())
            {
                return;
            }

            S_HomemadePartBill bill = new S_HomemadePartBill();

            bill.Bill_ID              = txtBill_ID.Text;
            bill.Bill_Time            = ServerModule.ServerTime.Time;           // 报检日期
            bill.BillStatus           = HomemadeBillStatus.等待质检.ToString();
            bill.DeclarePersonnelCode = BasicInfo.LoginID;                      // 自制件员编码
            bill.DeclarePersonnel     = BasicInfo.LoginName;                    // 自制件员签名
            bill.DeclareCount         = Convert.ToInt32(numDeclareCount.Value); // 自制件数
            bill.Provider             = txtProvider.Tag.ToString();             // 供应商编码
            bill.ProviderBatchNo      = txtProviderBatchNo.Text;                // 供应商批次
            bill.GoodsID              = (int)txtCode.Tag;
            bill.Remark    = txtRemark.Text;
            bill.BatchNo   = txtBatchNo.Text;
            bill.StorageID = UniversalFunction.GetStorageID(cmbStorage.Text);

            if (!m_billServer.UpdateBill(bill, out m_findBill, out m_err))
            {
                MessageDialog.ShowErrorMessage(m_err);
                return;
            }

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("物品【{0}】,批次号【{1}】  ※※※ 等待【检验员】处理", txtName.Text, txtBatchNo.Text);
            PassFlowMessage(sb.ToString(), CE_RoleEnum.自制件检验组长);
            RefreshDataGridView(m_findBill);
            PositioningRecord(bill.Bill_ID);

            MessageDialog.ShowPromptMessage("成功提交,等待重新质检!");
        }
Example #2
0
        /// <summary>
        /// 报表(包含金额)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 表单打印ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count == 0)
            {
                MessageDialog.ShowPromptMessage("请选择一条已入库记录后再行此操作");
                return;
            }

            HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus),
                                                                       dataGridView1.SelectedRows[0].Cells["单据状态"].Value.ToString());

            if (status != HomemadeBillStatus.已入库)
            {
                MessageDialog.ShowPromptMessage("当前单据没有入库不允许进行打印");
                return;
            }

            报表_自制件入库单       report = new 报表_自制件入库单(dataGridView1.CurrentRow.Cells[0].Value.ToString(), labelTitle.Text);
            PrintReportBill print  = new PrintReportBill(21.8, 9.31, report);

            print.DirectPrintReport();
        }
        /// <summary>
        /// 逐级回退单据
        /// </summary>
        /// <param name="billID">单据号</param>
        /// <param name="rebackReason">回退原因</param>
        /// <param name="returnBill">返回的单据查询结果集</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>操作是否成功的标志</returns>
        public bool RebackBill(string billID, string rebackReason, out IQueryResult returnBill, out string error)
        {
            returnBill = null;
            error      = null;

            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            var result = from r in dataContxt.S_HomemadePartBill
                         where r.Bill_ID == billID
                         select r;

            if (result.Count() == 0)
            {
                error = string.Format("找不到编号为 [{0}] 的自制件入库单号", billID);
                return(false);
            }

            S_HomemadePartBill bill = result.Single();

            HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus), bill.BillStatus);

            bool needReback = false;

            if (status == HomemadeBillStatus.等待质检 || status == HomemadeBillStatus.回退_质检信息有误)
            {
                needReback                  = true;
                bill.BillStatus             = HomemadeBillStatus.回退_编制单据有误.ToString();
                bill.CheckoutJoinGoods_Time = null;
                bill.CheckoutReport_ID      = "";
                bill.EligibleCount          = 0;
                bill.ConcessionCount        = 0;
                bill.ReimbursementCount     = 0;
                bill.QualityInfo            = "";
                bill.Checker                = "";
                bill.QualityInputer         = "";
            }
            else if (status == HomemadeBillStatus.等待入库)
            {
                needReback      = true;
                bill.BillStatus = HomemadeBillStatus.回退_质检信息有误.ToString();
                bill.DepotManagerAffirmCount = 0;
                bill.InDepotCount            = 0;
                bill.ShelfArea    = "";
                bill.ColumnNumber = "";
                bill.LayerNumber  = "";
            }

            if (needReback)
            {
                try
                {
                    bill.RebackReason = rebackReason;
                    dataContxt.SubmitChanges();

                    return(GetAllBill(out returnBill, out error));
                }
                catch (Exception exce)
                {
                    error = exce.Message;
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Example #4
0
        private void 提交质检信息ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!CheckSelectedRow())
            {
                return;
            }

            HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus),
                                                                       dataGridView1.SelectedRows[0].Cells["单据状态"].Value.ToString());

            if (status != HomemadeBillStatus.等待质检 && status != HomemadeBillStatus.回退_质检信息有误)
            {
                MessageDialog.ShowPromptMessage("请选择等待质检的记录后再进行此操作");
                return;
            }

            dateTime_CheckTime.Value = ServerTime.Time;

            if (dateTime_CheckTime.Value < dateTime_BillTime.Value)
            {
                dateTime_CheckTime.Focus();
                MessageDialog.ShowPromptMessage("检验入库时间必须 >= 自制件时间");
                return;
            }

            if (txtQualityInfo.Text == "")
            {
                txtQualityInfo.Focus();
                MessageDialog.ShowPromptMessage("质量信息不能为空");
                return;
            }

            if (txtCheckoutReportID.Text == "")
            {
                txtCheckoutReportID.Focus();
                MessageDialog.ShowPromptMessage("检验报告编号不能为空");
                return;
            }

            if (numEligibleCount.Value + numConcessionCount.Value + numReimbursementCount.Value
                + numDeclareWastrelCount.Value != numDeclareCount.Value)
            {
                numEligibleCount.Focus();
                MessageDialog.ShowPromptMessage("合格数 + 让步数 + 退货数 + 报废数 之和不等于自制件数量");
                return;
            }

            if (txtChecker.Text == "")
            {
                txtChecker.Focus();
                MessageDialog.ShowPromptMessage("检验人员不能为空");

                return;
            }

            S_HomemadePartBill qualityInfo = new S_HomemadePartBill();

            qualityInfo.Checker                = txtChecker.Text;
            qualityInfo.QualityInputer         = BasicInfo.LoginName;
            qualityInfo.CheckoutJoinGoods_Time = dateTime_CheckTime.Value;
            qualityInfo.CheckoutReport_ID      = txtCheckoutReportID.Text;
            qualityInfo.QualityInfo            = txtQualityInfo.Text;
            qualityInfo.EligibleCount          = Convert.ToInt32(numEligibleCount.Value);
            qualityInfo.ConcessionCount        = Convert.ToInt32(numConcessionCount.Value);
            qualityInfo.ReimbursementCount     = Convert.ToInt32(numReimbursementCount.Value);
            qualityInfo.DeclareWastrelCount    = Convert.ToInt32(numDeclareWastrelCount.Value);
            qualityInfo.BillStatus             = HomemadeBillStatus.等待入库.ToString();

            string billNo = txtBill_ID.Text;

            if (!m_billServer.SubmitQualityInfo(billNo, qualityInfo, out m_findBill, out m_err))
            {
                MessageDialog.ShowErrorMessage(m_err);
                return;
            }

            MessageDialog.ShowPromptMessage("成功提交,等待仓管将零件入库!");

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("物品【{0}】,批次号【{1}】  ※※※ 等待【仓管员】处理", txtName.Text, txtBatchNo.Text);

            PassFlowMessage(sb.ToString(),
                            m_msgPromulgator.GetRoleStringForStorage(cmbStorage.Text));
            RefreshDataGridView(m_findBill);
            PositioningRecord(billNo);
        }
Example #5
0
        private void 回退ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            HomemadeBillStatus status = (HomemadeBillStatus)Enum.Parse(typeof(HomemadeBillStatus),
                                                                       dataGridView1.SelectedRows[0].Cells["单据状态"].Value.ToString());

            if (dataGridView1.SelectedRows.Count == 0 || status == HomemadeBillStatus.已入库)
            {
                MessageDialog.ShowPromptMessage("请选择没有入库的记录后再进行此操作!");
                return;
            }
            else if (dataGridView1.SelectedRows.Count > 1)
            {
                MessageDialog.ShowPromptMessage("系统不支持多条记录同时回退,请逐条操作!");
                return;
            }

            string billID    = dataGridView1.SelectedRows[0].Cells["入库单号"].Value.ToString();
            bool   validInfo = false;

            if (status == HomemadeBillStatus.等待质检 || status == HomemadeBillStatus.回退_质检信息有误)
            {
                if (!BasicInfo.ListRoles.Contains(CE_RoleEnum.自制件检验组长.ToString()))
                {
                    MessageDialog.ShowPromptMessage("您无权回退单据的当前步骤");
                    return;
                }

                validInfo = true;
            }
            else if (status == HomemadeBillStatus.等待入库)
            {
                if (!BasicInfo.ListRoles.Contains(
                        m_msgPromulgator.GetRoleStringForStorage(cmbStorage.Text).ToString()))
                {
                    MessageDialog.ShowPromptMessage("您无权回退单据的当前步骤");
                    return;
                }

                validInfo = true;
            }
            else if (status.ToString().Contains("回退"))
            {
                MessageDialog.ShowPromptMessage("当前记录已经处于回退状态,不能重复回退");
                return;
            }

            if (validInfo)
            {
                string reason = InputBox.ShowDialog("请输入回退原因", "原因:", "");

                if (reason == null || reason == "")
                {
                    MessageDialog.ShowPromptMessage("请输入回退原因");
                    return;
                }

                if (!m_billServer.RebackBill(billID, reason, out m_findBill, out m_err))
                {
                    MessageDialog.ShowErrorMessage(m_err);
                    return;
                }

                RebackFlowMessage(reason);
                RefreshDataGridView(m_findBill);

                MessageDialog.ShowPromptMessage("成功回退!");
            }
        }