public int AddPaymentRecord(DLModel.Payment modelPayment) { // var PaymentSum = _paymentRepository.GetAll(Pay => Pay.InvoiceId == modelPayment.InvoiceId).ToList().Select(Pay => Pay.PaymentAmount == null ? 0 : Pay.PaymentAmount).Sum(); //PaymentSum = PaymentSum + modelPayment.PaymentAmount; DLModel.Invoice InvoiceDetail = _IInvoiceImpl.GetInvoiceDetailsById(modelPayment.InvoiceId); //if (modelPayment.PaymentAmount <= InvoiceDetail.InvoiceBalanceAmt) //{ InvoiceDetail.InvoiceBalanceAmt = (InvoiceDetail.InvoiceBalanceAmt - modelPayment.PaymentAmount).Value; var updInvoiceBalAmt = _invoiceRepository.Update(InvoiceDetail, inv => inv.InvoiceBalanceAmt); return(_paymentRepository.Add((DLModel.Payment) new DLModel.Payment().InjectFrom(modelPayment)).PaymentId); //} //else // return -1; // Payment Sum amout can't be greater then invoice amount }
public int UpdatePaymentRecord(DLModel.Payment modelPayment) { // var PaymentSum = _paymentRepository.GetAll(Pay => Pay.InvoiceId == modelPayment.InvoiceId && Pay.PaymentId != modelPayment.PaymentId).ToList().Select(Pay => Pay.PaymentAmount == null ? 0 : Pay.PaymentAmount).Sum(); //PaymentSum = PaymentSum + modelPayment.PaymentAmount; DLModel.Invoice InvoiceDetail = _IInvoiceImpl.GetInvoiceDetailsById(modelPayment.InvoiceId); var oldPaymentAmount = _paymentRepository.GetAll(pay => pay.PaymentId == modelPayment.PaymentId).Select(inv => new DLModel.Payment().InjectFrom(inv)).Cast <DLModel.Payment>().SingleOrDefault().PaymentAmount; //if (modelPayment.PaymentAmount <= (InvoiceDetail.InvoiceBalanceAmt + oldPaymentAmount)) //{ var newInvoiceAmount = (InvoiceDetail.InvoiceBalanceAmt + oldPaymentAmount) - modelPayment.PaymentAmount; InvoiceDetail.InvoiceBalanceAmt = newInvoiceAmount.Value; var updInvoiceBalAmt = _invoiceRepository.Update(InvoiceDetail, inv => inv.InvoiceBalanceAmt); return(_paymentRepository.Update((DLModel.Payment) new DLModel.Payment().InjectFrom(modelPayment))); //} //else // return -1; // Payment Sum amout can't be greater then invoice amount }