コード例 #1
0
        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"));
        }
コード例 #2
0
 public void UpdatePayment(TenantPayment payment)
 {
     using (var db = new ApartmentManagerContext())
     {
         db.Payment.Update(payment.Payment);
         db.SaveChanges();
     }
 }
コード例 #3
0
        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();

            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
            }
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
 public void UpdatePayment([FromBody] TenantPayment payment)
 {
     new PaymentLogic().UpdatePayment(payment);
 }
コード例 #9
0
 public void AddPayment([FromBody] TenantPayment payment)
 {
     new PaymentLogic().AddPayment(payment);
 }
コード例 #10
0
 public void UpdatePayment(TenantPayment payment)
 {
     new PaymentData().UpdatePayment(payment);
 }
コード例 #11
0
 public void AddPayment(TenantPayment payment)
 {
     new PaymentData().AddPayment(payment);
 }
コード例 #12
0
 public virtual void DeletePayment(TenantPayment tenantPayment)
 {
     _tenantPaymentRepository.Delete(tenantPayment);
 }
コード例 #13
0
        public virtual decimal?GetTotalReceiveAmount(TenantPayment tenantPayment)
        {
            var totalReceiveAmount = _tenantPaymentCollectionRepository.GetAll().Where(p => p.TenantPaymentId == tenantPayment.Id).Sum(c => c.ReceivedAmount);

            return(totalReceiveAmount ?? 0);
        }
コード例 #14
0
 public virtual void UpdatePayment(TenantPayment tenantPayment)
 {
     _tenantPaymentRepository.Update(tenantPayment);
 }