示例#1
0
        public ProductRateViewModel ToViewModelProductRate(Mst_ProductRate product, ICollection <Mst_ProductRateDetails> ProductTrnList)
        {
            var rateviewmodel = new ProductRateViewModel
            {
                Product         = product.Pr_Product,
                ProductRateDate = product.Pr_Date.ToShortDateString(),
                ID = product.Pr_Id,
            };
            List <ProductRateDetailsVM> ProductTrnViewModelList = new List <ProductRateDetailsVM>();

            foreach (var c in ProductTrnList)
            {
                var rateTrnViewModel = new ProductRateDetailsVM();
                rateTrnViewModel.ID     = c.Prd_Id;
                rateTrnViewModel.Purity = c.Prd_Purity;
                var puritystr = _context.Mst_PurityMaster.Where(x => x.id == c.Prd_Purity).Select(x => x.PurityName).FirstOrDefault();
                rateTrnViewModel.PurityStr       = puritystr;
                rateTrnViewModel.GrossRate       = c.Prd_GrossRate;
                rateTrnViewModel.DeductionsType  = c.Prd_Deductions;
                rateTrnViewModel.DeductionAmount = c.Prd_DeductionsAmount;
                rateTrnViewModel.NetRate         = c.Prd_NetRate;
                ProductTrnViewModelList.Add(rateTrnViewModel);
            }
            rateviewmodel.ProductRateList = ProductTrnViewModelList;
            return(rateviewmodel);
        }
示例#2
0
        public void SaveRecord(ProductRateViewModel productratevm)
        {
            Mst_ProductRate        tblProductRate        = new Mst_ProductRate();
            Mst_ProductRateDetails tblProductRateDetails = new Mst_ProductRateDetails();

            if (productratevm.ID <= 0)
            {
                tblProductRate.Pr_Date            = Convert.ToDateTime(productratevm.ProductRateDate);
                tblProductRate.Pr_Product         = productratevm.Product;
                tblProductRate.Pr_RecordCreated   = DateTime.Now;
                tblProductRate.Pr_RecordCreatedBy = productratevm.CreatedBy;
                tblProductRate.Pr_RecordUpdated   = DateTime.Now;
                tblProductRate.Pr_RecordUpdatedBy = productratevm.UpdatedBy;
                _context.Mst_ProductRate.Add(tblProductRate);
                _context.SaveChanges();

                int PID = _context.Mst_ProductRate.Max(x => x.Pr_Id);

                foreach (var p in productratevm.ProductRateList)
                {
                    var prdrate = new Mst_ProductRateDetails
                    {
                        Prd_FkId             = PID,
                        Prd_Purity           = p.Purity,
                        Prd_GrossRate        = p.GrossRate,
                        Prd_Deductions       = p.DeductionsType,
                        Prd_DeductionsAmount = p.DeductionAmount,
                        Prd_NetRate          = p.NetRate,
                        Prd_RecordCreatedBy  = productratevm.CreatedBy,
                        Prd_RecordCreated    = DateTime.Now,
                        Prd_RecordUpdatedBy  = productratevm.UpdatedBy,
                        Prd_RecordUpdated    = DateTime.Now,
                    };
                    _context.Mst_ProductRateDetails.Add(prdrate);
                    _context.SaveChanges();
                }
            }
            else
            {
                //update the data in Charge Details table
                var productObj = _context.Mst_ProductRate.Where(x => x.Pr_Id == productratevm.ID).FirstOrDefault();
                //update the data in product rate table
                productObj.Pr_Date            = Convert.ToDateTime(productratevm.ProductRateDate);
                productObj.Pr_Product         = productratevm.Product;
                productObj.Pr_RecordUpdatedBy = productratevm.UpdatedBy;
                productObj.Pr_RecordUpdated   = DateTime.Now;

                List <Mst_ProductRateDetails> NewProductRateList = new List <Mst_ProductRateDetails>();

                //update the data in Charge Details table
                foreach (var p in productratevm.ProductRateList)
                {
                    var FindRateobject = _context.Mst_ProductRateDetails.Where(x => x.Prd_Id == p.ID && x.Prd_FkId == productratevm.ID).FirstOrDefault();
                    if (FindRateobject == null)
                    {
                        var ratetrnnew = new Mst_ProductRateDetails
                        {
                            Prd_FkId             = productratevm.ID,
                            Prd_Purity           = p.Purity,
                            Prd_GrossRate        = p.GrossRate,
                            Prd_Deductions       = p.DeductionsType,
                            Prd_DeductionsAmount = p.DeductionAmount,
                            Prd_NetRate          = p.NetRate,
                            Prd_RecordCreated    = DateTime.Now,
                            Prd_RecordCreatedBy  = productratevm.CreatedBy,
                            Prd_RecordUpdatedBy  = productratevm.UpdatedBy,
                            Prd_RecordUpdated    = DateTime.Now
                        };
                        _context.Mst_ProductRateDetails.Add(ratetrnnew);
                    }
                    else
                    {
                        FindRateobject.Prd_Purity           = p.Purity;
                        FindRateobject.Prd_GrossRate        = p.GrossRate;
                        FindRateobject.Prd_Deductions       = p.DeductionsType;
                        FindRateobject.Prd_DeductionsAmount = p.DeductionAmount;
                        FindRateobject.Prd_NetRate          = p.NetRate;
                        FindRateobject.Prd_RecordUpdatedBy  = productratevm.UpdatedBy;
                        FindRateobject.Prd_RecordUpdated    = DateTime.Now;
                    }
                    NewProductRateList.Add(FindRateobject);
                }
                #region product rate details remove
                //take the loop of table and check from list if found in list then not remove else remove from table itself
                var trnobjlist = _context.Mst_ProductRateDetails.Where(x => x.Prd_FkId == productratevm.ID).ToList();
                if (trnobjlist != null)
                {
                    foreach (Mst_ProductRateDetails item in trnobjlist)
                    {
                        if (NewProductRateList.Contains(item))
                        {
                            continue;
                        }
                        else
                        {
                            _context.Mst_ProductRateDetails.Remove(item);
                        }
                    }
                    _context.SaveChanges();
                }
                #endregion product trn remove
            }
        }