/// <summary> /// The ChargePayment field has changed or not /// </summary> /// <param name="prevTenantLease"></param> /// <param name="curTenantLease"></param> /// <returns></returns> private bool HasChangedChargePayment(TenantLeaseCharge tenantLeaseCharge, TenantLeaseChargeModel model) { var changed = model.IsNew == false && (tenantLeaseCharge.ChargeTypeId != model.ChargeTypeId || tenantLeaseCharge.ChargeAmount != model.ChargeAmount || tenantLeaseCharge.ChargeDueType != (int?)model.ChargeDueType || tenantLeaseCharge.ChargeDueDate != model.ChargeDueDate || tenantLeaseCharge.ChargeDueDay != model.ChargeDueDay || tenantLeaseCharge.ValidFrom != model.ValidFrom || tenantLeaseCharge.ValidTo != model.ValidTo); return(changed); }
protected virtual void PrepareTenantLeaseChargeModel(TenantLeaseChargeModel model) { //Charge Due Days for (int i = 1; i <= daysOfMonth.Length; i++) { model.AvailableChargeDueDays.Add(new SelectListItem { Value = i.ToString(), Text = daysOfMonth[i - 1].ToString(), Selected = model.ChargeDueDay == i }); } }
public ActionResult SaveTenantLeaseCharge(TenantLeaseChargeModel model) { if (ModelState.IsValid) { var tenantLease = _tenantLeaseRepository.GetById(model.TenantLeaseId); var tenantLeaseCharge = _tenantLeaseChargeRepository.GetById(model.Id); var changed = HasChangedChargePayment(tenantLeaseCharge, model); //always set IsNew to false when saving tenantLeaseCharge.IsNew = false; tenantLeaseCharge = model.ToEntity(tenantLeaseCharge); _tenantLeaseChargeRepository.UpdateAndCommit(tenantLeaseCharge); if (changed) { var tenantPayments = _tenantPaymentRepository.GetAll() .Where(p => p.TenantLeaseChargeId.HasValue && p.TenantLeaseId == model.TenantLeaseId && p.ChargeTypeId == model.ChargeTypeId) .ToList(); var hasNotAnyPaymentCollectionOrDaysLateInTenantPayment = HasNotAnyPaymentCollectionOrDaysLateInTenantPayment(tenantPayments); if (hasNotAnyPaymentCollectionOrDaysLateInTenantPayment) { foreach (var tenantPayment in tenantPayments) { _tenantPaymentService.DeletePayment(tenantPayment); } var dueDate = _tenantLeaseService.GetDueDate(tenantLease, tenantLeaseCharge); _tenantLeaseService.CreateChargePayment(tenantLeaseCharge, dueDate); this._dbContext.SaveChanges(); } else { return(Json(new { Errors = _localizationService.GetResource("TenantLease.CannotGeneratePayment") })); } } return(new NullJsonResult()); } else { return(Json(new { Errors = ModelState.Errors().ToHtmlString() })); } }
public ActionResult CreateTenantLeaseCharge(long tenantLeaseId) { //need to get tenantLease here to assign to new tenantLeaseCharge //so when mapping to Model, we will have StoreId as defined //in AutoMapper configuration var tenantLease = _tenantLeaseRepository.GetById(tenantLeaseId); var tenantLeaseCharge = new TenantLeaseCharge { IsNew = true, TenantLease = tenantLease }; _tenantLeaseChargeRepository.Insert(tenantLeaseCharge); this._dbContext.SaveChanges(); var model = new TenantLeaseChargeModel(); model = tenantLeaseCharge.ToModel(); PrepareTenantLeaseChargeModel(model); var html = this.TenantLeaseChargePanel(model); return(Json(new { Id = tenantLeaseCharge.Id, Html = html, ChargeDueType = model.ChargeDueType })); }
public string TenantLeaseChargePanel(TenantLeaseChargeModel model) { var html = this.RenderPartialViewToString("_TenantLeaseChargeDetails", model); return(html); }