public long ProcessCustomerInvoice(CustomerInvoiceObject customerInvoice) { try { if (customerInvoice == null) { return(-2); } using (var db = _db) { var customerInvoices = db.CustomerInvoices.Where(p => p.CustomerId == customerInvoice.CustomerId).ToList(); var invoice = customerInvoices.Any() ? customerInvoices[0] : new CustomerInvoice(); if (invoice.Id < 1) { var totalVat = customerInvoice.TotalVATAmount + invoice.TotalVATAmount; var discount = customerInvoice.TotalDiscountAmount + invoice.TotalDiscountAmount; var totalDue = customerInvoice.AmountDue + invoice.TotalAmountDue; var totalPaid = invoice.TotalAmountPaid + customerInvoice.AmountPaid; invoice.InvoiceBalance = ((totalDue - discount) + totalVat) - totalPaid; invoice.CustomerId = customerInvoice.CustomerId; db.CustomerInvoices.Add(invoice); db.SaveChanges(); } else { invoice.TotalAmountPaid += customerInvoice.AmountPaid; invoice.TotalVATAmount += customerInvoice.TotalVATAmount; invoice.TotalDiscountAmount += customerInvoice.TotalDiscountAmount; invoice.TotalAmountDue += customerInvoice.AmountDue; invoice.InvoiceBalance = ((invoice.TotalAmountDue - invoice.TotalDiscountAmount) + invoice.TotalVATAmount) - invoice.TotalAmountPaid; db.Entry(invoice).State = EntityState.Modified; db.SaveChanges(); } return(5); } } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); return(0); } }
public long BalanceCustomerInvoice(CustomerInvoiceObject customerInvoice) { try { if (customerInvoice == null) { return(-2); } using (var db = _db) { var customerInvoices = db.CustomerInvoices.Where(p => p.CustomerId == customerInvoice.CustomerId).ToList(); if (!customerInvoices.Any()) { return(-2); } var invoice = customerInvoices[0]; invoice.TotalAmountPaid -= customerInvoice.AmountPaid; invoice.TotalAmountDue -= customerInvoice.AmountDue; invoice.TotalVATAmount -= customerInvoice.TotalVATAmount; invoice.TotalDiscountAmount -= customerInvoice.TotalDiscountAmount; invoice.InvoiceBalance = ((invoice.TotalAmountDue - invoice.TotalDiscountAmount) + invoice.TotalVATAmount) - invoice.TotalAmountPaid; //if (customerInvoice.TotalAmountDue > customerInvoice.TotalAmountPaid) //{ // invoice.InvoiceBalance -= customerInvoice.TotalAmountDue - customerInvoice.TotalAmountPaid; //} db.Entry(invoice).State = EntityState.Modified; db.SaveChanges(); return(5); } } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); return(0); } }
public long BalanceCustomerInvoice(CustomerInvoiceObject customerInvoice) { return(_salePaymentRepository.BalanceCustomerInvoice(customerInvoice)); }
public long ProcessCustomerInvoice(CustomerInvoiceObject customerInvoice) { return(_salePaymentRepository.ProcessCustomerInvoice(customerInvoice)); }