public ActionResult AddTenantPayment(TenantPayment payment) { if (ModelState.IsValid) { var tenant = _db.Tenant.Find(payment.TenantId); var meterReading = tenant.MeterReading .OrderByDescending(x => x.Id) .Where(y => y.DoesBillGenerated == true) .FirstOrDefault(); if (meterReading.PaymentId > 0) { throw new Exception("payment already made"); } tenant.Payments.Add(payment); _db.SaveChanges(); meterReading.PaymentId = tenant.Payments .OrderByDescending(x => x.Id) .Select(y => y.Id).FirstOrDefault(); _db.SaveChanges(); } return(RedirectToAction("AddTenantPayment")); }
public void UpdatePayment(TenantPayment payment) { using (var db = new ApartmentManagerContext()) { db.Payment.Update(payment.Payment); db.SaveChanges(); } }
public void AddPayment(TenantPayment payment) { using (var db = new ApartmentManagerContext()) { payment.Tenant.Apartment.Address = db.Address.Find(payment.Tenant.Apartment.Address.Id); payment.Tenant.Apartment = db.Apartment.Find(payment.Tenant.Apartment.Id); payment.Tenant = db.Tenant.Find(payment.Tenant.Id); payment.Payment.PaymentMethod = db.PaymentMethod.Find(payment.Payment.PaymentMethod.Id); payment.Payment.BillingCyclePaid = db.BillingCycle.Find(payment.Payment.BillingCyclePaidId); db.Payment.Add(payment.Payment); db.TenantPayment.Update(payment); db.SaveChanges(); } }
public List <TenantPayment> GetPayments(int billingCycleId) { var data = new PaymentData().GetPayments(billingCycleId); var tenants = data.GroupBy(p => p.TenantId).ToList(); var tenantPayments = new List <TenantPayment>(); tenants.ForEach(t => { var payments = t.ToList(); var tenantPayment = new TenantPayment() { Payment = new Payment() { Amount = 0, Balance = 0 }, Tenant = new Tenant() }; payments.ForEach(p => { if (p.Payment == null) { p.Payment = new Payment() { Amount = 0, BillingCyclePaidId = 0 }; } tenantPayment.Tenant = p.Tenant; tenantPayment.Payment.BillingCyclePaidId = p.Payment.BillingCyclePaidId; if (tenantPayment.Payment.BillingCyclePaidId == billingCycleId) { tenantPayment.Payment.Amount += p.Payment.Amount; } }); tenantPayments.Add(tenantPayment); }); tenantPayments.ForEach(tp => { tp.Payment.Balance = Convert.ToDecimal(tp.Tenant.Apartment.RentCost) - tp.Payment.Amount; }); return(tenantPayments); }
public void AddTenant(Tenant tenant) { using (var db = new ApartmentManagerContext()) { tenant.Apartment.Address = db.Address.Find(tenant.Apartment.Address.Id); tenant.Apartment = db.Apartment.Find(tenant.Apartment.Id); tenant.StartBillingCycle = db.BillingCycle.Find(tenant.StartBillingCycleId); tenant.EndBillingCycle = db.BillingCycle.Find(tenant.EndBillingCycleId); tenant.Apartment.Available = false; db.Tenant.Add(tenant); var tenantPayment = new TenantPayment() { TenantId = tenant.Id }; db.TenantPayment.Add(tenantPayment); db.SaveChanges(); } }
public virtual void CreateRentPayment(TenantLeasePaymentSchedule paymentSchedule, DateTime?startDate) { var tenantLease = paymentSchedule.TenantLease; var chargeType = _valueItemRepository.GetAll().Where(v => v.Name == "Rent Fee").FirstOrDefault(); var tenantPayment = new TenantPayment { SiteId = tenantLease.SiteId, TenantId = tenantLease.TenantId, PropertyId = tenantLease.PropertyId, TenantLeaseId = tenantLease.Id, TenantLeasePaymentScheduleId = paymentSchedule.Id, DueDate = startDate, DueAmount = paymentSchedule.DueAmount, ChargeTypeId = chargeType.Id, CollectedAmount = 0, BalanceAmount = paymentSchedule.DueAmount }; _tenantPaymentRepository.Insert(tenantPayment); }
public virtual void CreateChargePayment(TenantLeaseCharge tenantLeaseCharge, DateTime?dueDate) { var tenantLease = tenantLeaseCharge.TenantLease; var tenantPayment = new TenantPayment { SiteId = tenantLease.SiteId, TenantId = tenantLease.TenantId, PropertyId = tenantLease.PropertyId, TenantLeaseId = tenantLease.Id, TenantLeaseChargeId = tenantLeaseCharge.Id, DueDate = dueDate, ChargeTypeId = tenantLeaseCharge.ChargeTypeId, DueAmount = tenantLeaseCharge.ChargeAmount, CollectedAmount = 0, BalanceAmount = tenantLeaseCharge.ChargeAmount }; //Will create payment only when has DueDate if (tenantPayment.DueDate.HasValue) { _tenantPaymentRepository.Insert(tenantPayment); } }
public void UpdatePayment([FromBody] TenantPayment payment) { new PaymentLogic().UpdatePayment(payment); }
public void AddPayment([FromBody] TenantPayment payment) { new PaymentLogic().AddPayment(payment); }
public void UpdatePayment(TenantPayment payment) { new PaymentData().UpdatePayment(payment); }
public void AddPayment(TenantPayment payment) { new PaymentData().AddPayment(payment); }
public virtual void DeletePayment(TenantPayment tenantPayment) { _tenantPaymentRepository.Delete(tenantPayment); }
public virtual decimal?GetTotalReceiveAmount(TenantPayment tenantPayment) { var totalReceiveAmount = _tenantPaymentCollectionRepository.GetAll().Where(p => p.TenantPaymentId == tenantPayment.Id).Sum(c => c.ReceivedAmount); return(totalReceiveAmount ?? 0); }
public virtual void UpdatePayment(TenantPayment tenantPayment) { _tenantPaymentRepository.Update(tenantPayment); }