Ejemplo n.º 1
0
        public void UpdatePayment()
        {
            try
            {
                var tenantId = Payments.ElementAt(0).TenantId;
                Tenant = _tenantService.GetTenant(tenantId);
                foreach (var Payment in Payments)
                {
                    if (Payment.BillFormat != null)
                    {
                        var payment = _tenantService.GetPayment(tenantId, Payment.Format, Payment.FinalBillDate);
                        Payment.TenantId = tenantId;
                        Reading          = _readingService.GetReadingOfTenant(tenantId, Payment.FinalBillDate.AddMonths(-1));
                        ValidateAmountWithTotalCalCulation(tenantId, Payment.FinalBillDate, Payment.Format, Payment.PaymentAmount);

                        if (payment == null)
                        {
                            Payment.DueAmount = Total - Payment.PaymentAmount;
                            if (Payment.DueAmount < 1)
                            {
                                Payment.DueAmount = 0;
                            }
                            _tenantService.AddPayment(Payment);
                        }
                        else
                        {
                            if (payment.DueAmount != 0)
                            {
                                payment.DueAmount = payment.DueAmount - Payment.PaymentAmount;
                                if (payment.DueAmount < 1)
                                {
                                    payment.DueAmount = 0;
                                }
                                Payment.DueAmount = payment.DueAmount;
                            }

                            payment.PaymentAmount    = Payment.PaymentAmount;
                            payment.PaymentMethod    = Payment.PaymentMethod;
                            payment.DocumentsDetails = Payment.DocumentsDetails;
                            _tenantService.EditPayment(payment);
                        }
                    }
                }
            }
            catch (InvalidOperationException ex)
            {
                {
                    Notification = new NotificationModel(
                        "Failed!",
                        "Your amount is greater than total amountof bill",
                        NotificationModel.NotificationType.Fail);
                }
            }
        }