Beispiel #1
0
        public ServiceResult UpdateMaterialReject(Material_Reject pRej, Material_Reject_Form pForm = null)
        {
            try
            {
                using (var db = new AgnosDBContext())
                {
                    var current = db.Material_Reject.Where(w => w.Material_Reject_ID == pRej.Material_Reject_ID).FirstOrDefault();
                    if (current != null)
                    {
                        if (string.IsNullOrEmpty(pRej.RMR_No))
                        {
                            //------------- Start Running Number-----------------//
                            var runningNumber = db.Running_Number_Config.Where(w => w.Running_Number_Type == Running_Number_Type.RMR).FirstOrDefault();
                            if (runningNumber == null)
                            {
                                runningNumber = new Running_Number_Config()
                                {
                                    Ref_Count           = 1,
                                    Number_Of_Digit     = 2,
                                    Running_Number_Type = Running_Number_Type.RMR,
                                    Create_On           = currentdate,
                                    Create_By           = userlogin.Email_Address,
                                    Running_Year        = currentdate.Year
                                };
                            }
                            else
                            {
                                if (!(runningNumber.Running_Year.HasValue && runningNumber.Running_Year == currentdate.Year))
                                {
                                    // reset Ref_Count
                                    runningNumber.Ref_Count    = 1;
                                    runningNumber.Running_Year = currentdate.Year;
                                    runningNumber.Update_On    = currentdate;
                                    runningNumber.Update_By    = userlogin.Email_Address;
                                }
                            }
                            string RMR_No = runningNumber.Ref_Count.ToString().PadLeft(runningNumber.Number_Of_Digit.Value, '0') + "/" + currentdate.Year.ToString().Substring(2, 2);
                            var    rcri   = new MaterialRejectCriteria();
                            rcri.RMR_No = RMR_No;
                            bool validNo = false;
                            while (!validNo)
                            {
                                var rej    = new Material_Reject();
                                var result = GetMaterialReject(rcri);
                                if (result.Code == ReturnCode.SUCCESS)
                                {
                                    var rejs = result.Object as List <Material_Reject>;
                                    if (rejs.Count() == 0)
                                    {
                                        validNo = true;
                                    }
                                    else
                                    {
                                        if (runningNumber.Ref_Count == 0)
                                        {
                                            runningNumber.Ref_Count = 1;
                                        }

                                        runningNumber.Update_On = currentdate;
                                        runningNumber.Update_By = userlogin.Email_Address;
                                        runningNumber.Ref_Count++;
                                        RMR_No = runningNumber.Ref_Count.ToString().PadLeft(runningNumber.Number_Of_Digit.Value, '0') + "/" + currentdate.Year.ToString().Substring(2, 2);
                                    }
                                }
                            }
                            runningNumber.Ref_Count++;
                            pRej.RMR_No = RMR_No;
                            if (runningNumber.Running_Number_Config_ID == 0)
                            {
                                db.Running_Number_Config.Add(runningNumber);
                            }
                            //------------- End Running Number-----------------//
                        }

                        if (pForm != null)
                        {
                            var form = db.Material_Reject_Form.Where(w => w.Material_Reject_ID == current.Material_Reject_ID).FirstOrDefault();
                            if (form != null)
                            {
                                db.Material_Reject_Form.Remove(form);
                            }

                            db.Material_Reject_Form.Add(pForm);
                        }

                        SaveProductMaping(db, pRej.Product_Code, pRej.Product_Name);
                        pRej.Update_On = currentdate;
                        pRej.Update_By = userlogin.Email_Address;
                        db.Entry(current).CurrentValues.SetValues(pRej);
                        db.SaveChanges();
                    }

                    return(new ServiceResult()
                    {
                        Code = ReturnCode.SUCCESS,
                        Msg = Success.GetMessage(ReturnCode.SUCCESS_UPDATE),
                        Field = Resource.Material_Reject
                    });
                }
            }
            catch (Exception ex)
            {
                return(new ServiceResult()
                {
                    Code = ReturnCode.ERROR_UPDATE,
                    Msg = Error.GetMessage(ReturnCode.ERROR_UPDATE),
                    Field = Resource.Material_Reject,
                    Exception = ex
                });
            }
        }
Beispiel #2
0
        public ServiceResult GetMaterialReject(MaterialRejectCriteria cri = null)
        {
            var result = new ServiceResult();

            try
            {
                using (var db = new AgnosDBContext())
                {
                    var raws = db.Material_Reject
                               .Include(w => w.Global_Lookup_Data)
                               .Include(w => w.Global_Lookup_Data1)
                               .Include(w => w.User_Profile)
                               .Include(w => w.User_Profile1)
                               .Include(w => w.User_Profile2)
                               .Include(w => w.User_Profile3)
                               .Include(w => w.User_Profile4)
                               .Include(i => i.Raw_Material)
                               .Where(w => 1 == 1 && w.Record_Status != Record_Status.Delete);

                    if (cri != null)
                    {
                        if (!string.IsNullOrEmpty(cri.Overall_Status))
                        {
                            raws = raws.Where(w => w.Overall_Status == cri.Overall_Status);
                        }

                        if (cri.Material_Reject_ID.HasValue)
                        {
                            raws = raws.Where(w => w.Material_Reject_ID == cri.Material_Reject_ID);
                        }

                        if (cri.Raw_Material_ID.HasValue)
                        {
                            raws = raws.Where(w => w.Raw_Material_ID == cri.Raw_Material_ID);
                        }

                        if (!string.IsNullOrEmpty(cri.Product_Code))
                        {
                            raws = raws.Where(w => w.Product_Code.Contains(cri.Product_Code));
                        }

                        if (!string.IsNullOrEmpty(cri.Product_Name))
                        {
                            raws = raws.Where(w => w.Product_Name.Contains(cri.Product_Name));
                        }

                        if (!string.IsNullOrEmpty(cri.Product_Search))
                        {
                            raws = raws.Where(w => w.Product_Code.Contains(cri.Product_Search) | w.Product_Name.Contains(cri.Product_Search));
                        }

                        if (!string.IsNullOrEmpty(cri.Date_From))
                        {
                            var date = DateUtil.ToDate(cri.Date_From);
                            if (date.HasValue)
                            {
                                raws = raws.Where(w => w.Raw_Material.Receiving_Date >= date);
                            }
                        }
                        if (!string.IsNullOrEmpty(cri.Date_To))
                        {
                            var date = DateUtil.ToDate(cri.Date_To);
                            if (date.HasValue)
                            {
                                raws = raws.Where(w => w.Raw_Material.Receiving_Date <= date);
                            }
                        }

                        if (cri.Top.HasValue)
                        {
                            raws = raws.Take(cri.Top.Value);
                        }
                        else
                        {
                            //raws = raws.Skip(cri.Start_Index).Take(cri.Page_Size);
                            //result.Start_Index = cri.Start_Index;
                            //result.Page_Size = cri.Page_Size;
                        }

                        if (!string.IsNullOrEmpty(cri.RMR_No))
                        {
                            raws = raws.Where(w => w.RMR_No.Contains(cri.RMR_No));
                        }
                    }

                    result.Object = raws.OrderByDescending(o => o.Material_Reject_ID).ToList();
                    result.Code   = ReturnCode.SUCCESS;
                }
            }
            catch (Exception ex)
            {
                result.Code      = ReturnCode.ERROR_DB;
                result.Exception = ex;
            }
            return(result);
        }