public Invoice Add(Invoice entity) { using (var db = new KoontabiDBEntities()) { try { db.Database.BeginTransaction(); db.Invoices.Add(entity); if (entity.TypeOfPayID == 2) { decimal subtotal = 0; decimal discount = 0; decimal itbis = 0; foreach (var item in entity.InvoiceDetails) { subtotal += item.Quantity * item.UnitPrice; } if (entity.DisCount.HasValue) { discount = ((decimal)entity.DisCount.Value * 100) * subtotal / 100; } if (entity.TaxID.HasValue) { Tax t = db.Taxes.Find(entity.TaxID.Value); itbis = (t.TaxValue * subtotal) / 100; } subtotal -= discount; subtotal += itbis; PaidAccount p = new PaidAccount(); p.InvoiceID = entity.InvoiceID; p.DateEmit = entity.InvoiceDate; p.ExpirationDate = entity.ExpirationInvoiceDate; p.Amount = subtotal; p.AmountPending = subtotal; p.DayDelay = Convert.ToInt32((entity.InvoiceDate - entity.ExpirationInvoiceDate).TotalDays); p.State = db.SP_GET_STATUS(1).FirstOrDefault().STATUS; db.PaidAccounts.Add(p); } db.SaveChanges(); db.Database.CurrentTransaction.Commit(); return(new Invoice() { InvoiceID = entity.InvoiceID }); } catch (Exception) { db.Database.CurrentTransaction.Rollback(); throw; } } }
public static PaidAccountDTO FactoryMethod(PaidAccount paidAccount) { return(new PaidAccountDTO() { Nome = paidAccount.PayableAccount.Name, ValorOriginal = paidAccount.PayableAccount.Value, ValorCorrigido = paidAccount.AmountPaid, QuantidadeDeDiasDeAtraso = paidAccount.DelayedDays, DataDePagamento = paidAccount.PayDay }); }
public void Update(PaidAccount entity) { throw new NotImplementedException(); }
public PaidAccount Add(PaidAccount entity) { throw new NotImplementedException(); }