Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 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
         });
     }
 }
Beispiel #3
0
        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() }));
            }
        }
Beispiel #4
0
        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 }));
        }
Beispiel #5
0
        public string TenantLeaseChargePanel(TenantLeaseChargeModel model)
        {
            var html = this.RenderPartialViewToString("_TenantLeaseChargeDetails", model);

            return(html);
        }