public void InsertOrUpdate(UurRegistratieDetail uurregistratiedetail)
 {
     if (uurregistratiedetail.Id == default(int)) {
         // New entity
         context.UurRegistratieDetails.Add(uurregistratiedetail);
     } else {
         // Existing entity
         context.Entry(uurregistratiedetail).State = EntityState.Modified;
     }
 }
        public void UpdateDetail(UurRegistratieDetail uurRegistratieDetail)
        {
            if (uurRegistratieDetail == null)
            {
                throw new NullReferenceException("Geen uurregistratiedetail geselecteerd");
            }

            UurRegistratieDetail dbVersie = uow.UurRegistratieDetailRepository.Find(uurRegistratieDetail.Id);
            if (dbVersie.isGefactureerd())
            {
                throw new InvalidOperationException("Dit uurregistratiedetail kan niet aangepast worden omdat er reeds factuurgegevens aan gekoppeld zijn");
            }
                        
            dbVersie.EindTijd = uurRegistratieDetail.EindTijd;
            dbVersie.StartTijd = uurRegistratieDetail.StartTijd;
            dbVersie.TeFactureren = uurRegistratieDetail.TeFactureren;

            Tarief nieuwTarief = uow.TariefRepository.Find(uurRegistratieDetail.TariefId);
            dbVersie.Tarief = nieuwTarief;
            uurRegistratieDetail = null;

            uow.UurRegistratieDetailRepository.InsertOrUpdate(dbVersie);
            uow.saveChanges();
        }
        public void NieuwDetail(int uurRegistratieId, UurRegistratieDetail uurRegistratieDetail, int tariefId)
        {
            UurRegistratie uurRegistratie = uow.UurRegistratieRepository.Find(uurRegistratieId);
            if (uurRegistratie.isGefactureerd())
            {
                throw new InvalidOperationException("Kan geen nieuw detail toevoegen aan deze uurregistratie omdat ze reeds gefactureerd is");
            }

            Tarief tarief = uow.TariefRepository.Find(tariefId);

            if (uurRegistratie != null && uurRegistratieDetail != null && tarief != null)
            {
                uurRegistratieDetail.Tarief = tarief;
                uurRegistratie.UurRegistratieDetails.Add(uurRegistratieDetail);
                uow.saveChanges();
            }
            else
            {
                throw new Exception("Ongeldige operatie: geen uurregistratie gespecifieerd en/of ongeldige uurregistratiedetail");
            }
        }
 public JsonResult UpdateDetail(UurRegistratieDetail uurRegistratieDetail)
 {
     try
     {
         uurRegistratieService.UpdateDetail(uurRegistratieDetail);
         return Json(new { Result = "OK" });
     }
     catch (Exception ex)
     {
         return Json(new { Result = "ERROR", Message = "Kon uurregistratiedetail niet aanpassen: " + ex.Message });
     }
 }
 public JsonResult DeleteDetail(UurRegistratieDetail uurRegistratieDetail)
 {
     try
     {
         uurRegistratieService.DeleteDetail(uurRegistratieDetail.Id);
         return Json(new { Result = "OK" });
     }
     catch (Exception ex)
     {
         return Json(new { Result = "ERROR", Message = "Kon uurregistratiedetail niet verwijderen: " + ex.Message });
     }
 }
        public JsonResult NieuwUurRegistratieDetail(int? uurRegistratieId, UurRegistratieDetail uurRegistratieDetail, int? TariefId)
        {
            if (!uurRegistratieId.HasValue)
            {
                return Json(new { Result = "ERROR", Message = "Geen uurregistratie geselecteerd" });
            }
            if (!TariefId.HasValue)
            {
                return Json(new { Result = "ERROR", Message = "Geen tarief gespecifieerd" });
            }

            int uurRegId = uurRegistratieId.Value;
            int tarId = TariefId.Value;

            try
            {
                uurRegistratieService.NieuwDetail(uurRegId, uurRegistratieDetail, tarId);
                return Json(new { Result = "OK", Record = new {
                    Id = uurRegistratieDetail.Id,
                    StartTijd = uurRegistratieDetail.StartTijd,
                    EindTijd = uurRegistratieDetail.EindTijd,
                    TeFactureren = uurRegistratieDetail.TeFactureren,
                    TypeWerk = uurRegistratieDetail.Tarief.TypeWerk,
                    UurWaarde = uurRegistratieDetail.Tarief.TariefUurWaarde,
                    TariefId = tarId
                } });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }