コード例 #1
0
ファイル: ProjectPPCBL.cs プロジェクト: Klutzdon/PBIMSN
        /// <summary>
        /// 
        /// </summary>
        /// <param name="project">生產工程</param>
        /// <param name="shiftProject">班次內工程</param>
        /// <param name="reason">原因</param>
        /// <param name="CorrectQTY">糾正數量</param>
        /// <returns></returns>
        public ReturnValueInfo CorrectProjectQTY(PrintProject_ppj_Info project, ShiftProjList_spl_Info shiftProject, CodeMaster_cmt_Info reason, int CorrectQTY)
        {
            ReturnValueInfo result = new ReturnValueInfo();
            try
            {
                using (DBContext uow = DBContext.Begin())
                {
                    try
                    {
                        //保存糾正數量記錄
                        CorrectRecord_ctr_Info ctr = new CorrectRecord_ctr_Info();
                        ctr.ctr_RecordID = Guid.NewGuid();
                        ctr.ctr_cType = CustEnum.KEY2.CORRECTQTY.ToString();
                        ctr.ctr_cReasonID = reason.cmt_cValue;
                        ctr.ctr_cReason = reason.cmt_cRemark;
                        ctr.ctr_dLastDate = ctr.ctr_dAddDate = DateTime.Now;
                        ctr.ctr_iAdjustProdQTY = shiftProject.spl_iQTY + CorrectQTY;
                        ctr.ctr_iProdQTY = shiftProject.spl_iQTY;
                        ctr.ctr_lSync = false;
                        ctr.ctr_PPJID = shiftProject.spl_PPJID;
                        ctr.ctr_SPLID = shiftProject.spl_RecordID;
                        uow.CurrentSession.Save(ctr);

                        //更新班次內工程生產數量
                        shiftProject.spl_iQTY += CorrectQTY;
                        shiftProject.spl_dLastDate = DateTime.Now;
                        uow.CurrentSession.Update(shiftProject);

                        //更新工程生產數量
                        project.ppj_iActualProdNum += CorrectQTY;
                        uow.CurrentSession.Update(project);
                    }
                    catch (Exception)
                    {
                        uow.CanCommit = false;
                        throw;
                    }

                }

                result.boolValue = true;
            }
            catch (Exception ex)
            {
                result.boolValue = false;
                result.messageText = Resource.B0025 + ":" + ex.Message;
            }
            return result;
        }
コード例 #2
0
ファイル: ProjectPPCBL.cs プロジェクト: Klutzdon/PBIMSN
        public ReturnValueInfo ClearProjectQTY(PrintProject_ppj_Info data, CodeMaster_cmt_Info reason)
        {
            ReturnValueInfo result = new ReturnValueInfo();
            try
            {
                using (DBContext uow = DBContext.Begin())
                {

                    try
                    {
                        //清空工程生產數量相關數據
                        data.ppj_fProdSpeed = 0;
                        data.ppj_iActualProdNum = 0;
                        data.ppj_iSpeed = 0;
                        data.ppj_iCountWastNum = 0;
                        data.ppj_iCountProdNum = 0;
                        uow.CurrentSession.Update(data);

                        IList<ShiftProjList_spl_Info> shiftProjects = null;
                        var query = uow.CurrentSession.QueryOver<ShiftProjList_spl_Info>();
                        query.And(d => d.spl_PPJID == data.ppj_RecordID);
                        shiftProjects = query.List<ShiftProjList_spl_Info>();

                        //清空班次內工程生產數量相關數據
                        foreach (var sp in shiftProjects)
                        {
                            //保存消數記錄
                            CorrectRecord_ctr_Info ctr = new CorrectRecord_ctr_Info();
                            ctr.ctr_RecordID = Guid.NewGuid();
                            ctr.ctr_cType = CustEnum.KEY2.CLEARQTY.ToString();
                            ctr.ctr_cReasonID = reason.cmt_cValue;
                            ctr.ctr_cReason = reason.cmt_cRemark;
                            ctr.ctr_dAddDate = DateTime.Now;
                            ctr.ctr_iAdjustProdQTY = 0;
                            ctr.ctr_iProdQTY = sp.spl_iQTY;
                            ctr.ctr_lSync = false;
                            ctr.ctr_PPJID = data.ppj_RecordID;
                            ctr.ctr_SPLID = sp.spl_RecordID;
                            uow.CurrentSession.Save(ctr);

                            sp.spl_iBeginQTY = 0;
                            sp.spl_iEndQTY = 0;
                            sp.spl_iCalQTY = 0;
                            sp.spl_iQTY = 0;
                            sp.spl_iWastQTY = 0;

                            uow.CurrentSession.Update(sp);
                        }

                        data.ShiftProjects = shiftProjects;
                    }
                    catch (Exception)
                    {
                        uow.CanCommit = false;
                        throw;
                    }
                }

                result.boolValue = true;
            }
            catch (Exception ex)
            {
                result.boolValue = false;
                result.messageText = Resource.B0024 + ":" + ex.Message;
            }
            return result;
        }