public void InsertOrUpdate(Factuur factuur) { if (factuur.Id == default(int)) { // New entity context.Factuurs.Add(factuur); } else { // Existing entity context.Entry(factuur).State = EntityState.Modified; } }
public Factuur Factureer(int[] ids, int departementKlantId) { DepartementKlant departementKlant = uow.DepartementKlantRepository.Find(departementKlantId); Factuur factuur = null; if (departementKlant != null && ids.Length > 0) { factuur = new Factuur() { FactuurJaar = DateTime.Today.Year, FactuurDatum = DateTime.Today, FactuurNummer = String.Format("FAC{0}{1}{2}.{3}", DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, departementKlant.Id ) }; uow.FactuurRepository.InsertOrUpdate(factuur); departementKlant.Facturen.Add(factuur); } else { throw new Exception("Ongeldige uurregistratieIds of departementKlantId"); } UurRegistratie uurRegistratie; foreach (int id in ids) { uurRegistratie = uow.UurRegistratieRepository.Find(id); if (uurRegistratie != null) { FactuurDetail facDetail = new FactuurDetail() { Factuur = factuur, FactuurId = factuur.Id, Omschrijving = uurRegistratie.Omschrijving, UurRegistratie = uurRegistratie, UurRegistratieId = uurRegistratie.Id }; facDetail.BerekenLijnWaarde(); factuur.FactuurDetails.Add(facDetail); } } factuur.BerekenTotaal(); uow.saveChanges(); // Factuurnummer uniek maken factuur.FactuurNummer += "." + factuur.Id; uow.saveChanges(); return factuur; }