Esempio n. 1
0
        private static Tax getEntityByModel(TaxModel model)
        {
            if (model == null) return null;
            Tax entity = new Tax();

            if (model.Id == 0)
            {
                entity.CreateBy = AuthenticationHelper.UserId;
                entity.CreateDate = DateTime.Now;
                entity.CompanyId = AuthenticationHelper.CompanyId.Value;
            }
            else
            {
                entity.CreateBy = model.CreateBy;
                entity.CreateDate = model.CreateDate;
                entity.CompanyId = model.CompanyId;
            }

            entity.EndDate = model.EndDate;
            entity.Id = model.Id;
            entity.SOBId = model.SOBId;
            entity.StartDate = model.StartDate;
            entity.TaxName = model.TaxName;
            entity.UpdateBy = AuthenticationHelper.UserId;
            entity.UpdateDate = DateTime.Now;

            return entity;
        }
Esempio n. 2
0
        public static void Update(TaxModel model)
        {
            //tax ko entity mai lia
            Tax entity = getEntityByModel(model);

            string result = string.Empty;
            if (entity.IsValid())
            {
                //edit mode ya new mode?
                if (model.Id > 0)
                    result = service.Update(entity);
                else
                    result = service.Insert(entity);

                if (!string.IsNullOrEmpty(result))
                {
                    //database se tax ki detail uthai
                    IList<TaxDetailModel> taxDetail = getTaxDetailByTaxId(result);

                    //koi row delete tou nai ki detail mai
                    //database se utha kar check kia
                    //new detail aur db detail 
                    //k count ko match kar k
                    if (taxDetail.Count() > model.TaxDetails.Count())
                    {
                        //agar detail delete ki hai tou
                        //unko uthaya jo delete ki hain
                        var toBeDeleted = taxDetail.Take(taxDetail.Count() - model.TaxDetails.Count());
                        foreach (var item in toBeDeleted)
                        {
                            //ek ek kar k delete kia detail ko
                            detailService.Delete(item.Id.ToString(), AuthenticationHelper.CompanyId.Value);
                        }

                        //delete karne k bd db se detail utha li.
                        taxDetail = getTaxDetailByTaxId(result);
                    }

                    //tax detail ki loop chalai
                    foreach (var detailModel in model.TaxDetails)
                    {
                        //detail ki entity li
                        TaxDetail detailEntity = getEntityByModel(detailModel);
                        if (detailEntity.IsValid())
                        {
                            //tax id dali
                            detailEntity.TaxId = Convert.ToInt64(result);

                            //detail mai koi data para hua tou nai hai
                            //agar hai tou usko update kar do
                            if (taxDetail.Count() > 0)
                            {
                                //entity ki id banai
                                detailEntity.Id = taxDetail.FirstOrDefault().Id;

                                //detail se remove ki wo id.
                                //magar aisa q kia ye samajh nai aya???
                                taxDetail.Remove(taxDetail.FirstOrDefault(rec => rec.Id == detailEntity.Id));

                                //entity update kar di.
                                detailService.Update(detailEntity);
                            }
                            else
                                //nai tou insert
                                detailService.Insert(detailEntity);
                        }
                    }
                }
            }
        }
 public ActionResult Create()
 {
     TaxModel model = new TaxModel();
     model.SOBId = SessionHelper.SOBId;
     model.TaxDetails = new List<TaxDetailModel>();
     SessionHelper.Tax = model;
     return View("Edit", model);
 }