public IActionResult PUT([FromBody] ContratoEditDto contrato, int id) { if (contrato.Id != id) { return(BadRequest(ModelState)); } var c = context.Contratos.FirstOrDefault(s => s.Id == id); c.Id = contrato.Id; c.Nombre = contrato.Nombre; c.Tipo = contrato.Tipo; c.AdminContratoId = contrato.AdminContrato; c.EntidadId = contrato.Entidad.Id; c.ObjetoDeContrato = contrato.ObjetoDeContrato; c.Numero = contrato.Numero; c.TerminoDePago = contrato.TerminoDePago; if (contrato.FechaDeRecepcion != null) { c.FechaDeRecepcion = contrato.FechaDeRecepcion; } else { c.FechaDeRecepcion = DateTime.Now; } if (contrato.FechaDeVenOferta != null) { c.FechaDeVenOferta = contrato.FechaDeVenOferta; } else { c.FechaDeVenOferta = DateTime.Now.AddDays(20); } context.Entry(c).State = EntityState.Modified; // Agregar monto por monedas if (contrato.Montos != null) { var montos = context.Montos.Where(s => s.ContratoId == contrato.Id); foreach (var item in montos) { context.Montos.Remove(item); } foreach (var item in contrato.Montos) { var monto = new Monto { Cantidad = item.Cantidad, Moneda = item.Moneda, ContratoId = contrato.Id }; context.Montos.Add(monto); context.SaveChanges(); } } if (contrato.FormasDePago != null) { var formasDePago = context.ContratoId_FormaPagoId.Where(s => s.ContratoId == contrato.Id); foreach (var item in formasDePago) { context.ContratoId_FormaPagoId.Remove(item); } } foreach (var item in contrato.FormasDePago) { var contratoId_FormaPagoId = new ContratoId_FormaPagoId { ContratoId = contrato.Id, FormaDePago = item }; context.ContratoId_FormaPagoId.Add(contratoId_FormaPagoId); context.SaveChanges(); } // Agregar Departamentos del contrato if (contrato.Departamentos != null) { var departamentos = context.ContratoId_DepartamentoId.Where(s => s.ContratoId == contrato.Id); foreach (var item in departamentos) { context.ContratoId_DepartamentoId.Remove(item); } foreach (var item in contrato.Departamentos) { var contratoId_DepartamentoId = new ContratoId_DepartamentoId { ContratoId = contrato.Id, DepartamentoId = item.Id }; context.ContratoId_DepartamentoId.Add(contratoId_DepartamentoId); context.SaveChanges(); } } else { return(BadRequest($"Tienen que dictaminar el contrato el económico y el jurÃdico")); } //Agregar Especialistas externos como Dictaminador/es del contrato if (contrato.EspecialistasExternos != null) { var espExternos = context.EspExternoId_ContratoId.Where(s => s.ContratoId == contrato.Id); foreach (var item in espExternos) { context.EspExternoId_ContratoId.Remove(item); } foreach (var item in contrato.EspecialistasExternos) { var espExternoId_ContratoId = new EspExternoId_ContratoId { ContratoId = contrato.Id, EspecialistaExternoId = item.Id }; context.EspExternoId_ContratoId.Add(espExternoId_ContratoId); context.SaveChanges(); } } var HistoricoEstadoContrato = new HistoricoEstadoContrato { ContratoId = contrato.Id, Estado = contrato.Estado, Fecha = DateTime.Now, Usuario = contrato.Usuario, }; context.Add(HistoricoEstadoContrato); context.SaveChanges(); return(Ok()); }
public async Task <IActionResult> POST(ContratoDto contratoDto) { if (ModelState.IsValid) { var contrato = new Contrato { Id = contratoDto.Id, Nombre = contratoDto.Nombre, Tipo = contratoDto.Tipo, AdminContratoId = contratoDto.AdminContrato, EntidadId = contratoDto.Entidad, ObjetoDeContrato = contratoDto.ObjetoDeContrato, Numero = contratoDto.Numero, TerminoDePago = contratoDto.TerminoDePago, Cliente = contratoDto.Cliente, Estado = Estado.Circulando }; if (contratoDto.FechaDeRecepcion != null) { contrato.FechaDeRecepcion = contratoDto.FechaDeRecepcion; } else { contrato.FechaDeRecepcion = DateTime.Now; } if (contratoDto.FechaDeVenOferta != null) { contrato.FechaDeVenOferta = contratoDto.FechaDeVenOferta; } else { contrato.FechaDeVenOferta = DateTime.Now.AddDays(20); } context.Contratos.Add(contrato); context.SaveChanges(); if (contratoDto.Montos != null) { foreach (var item in contratoDto.Montos) { var monto = new Monto { Cantidad = item.Cantidad, Moneda = item.Moneda, ContratoId = contrato.Id }; context.Montos.Add(monto); } context.SaveChanges(); } foreach (var item in contratoDto.FormasDePago) { var contratoId_FormaPagoId = new ContratoId_FormaPagoId { ContratoId = contrato.Id, FormaDePago = item }; context.ContratoId_FormaPagoId.Add(contratoId_FormaPagoId); context.SaveChanges(); } // Subir el Fichero del Contrato // var uploads = Path.Combine (_hostingEnvironment.WebRootPath, "uploadContratos"); // if (file != null) { // var filePath = Path.Combine (uploads, file.FileName); // using (var fileStream = new FileStream (filePath, FileMode.Create)) { // await file.CopyToAsync (fileStream); // } // contrato.FilePath=filePath; // } // Agregar Departamentos de los Dictaminadores if (contratoDto.Departamentos != null) { foreach (var item in contratoDto.Departamentos) { var contratoId_DepartamentoId = new ContratoId_DepartamentoId { ContratoId = contrato.Id, DepartamentoId = item }; context.ContratoId_DepartamentoId.Add(contratoId_DepartamentoId); context.SaveChanges(); } } //Agregar Especialistas externos como Dictaminador/es del contrato if (contratoDto.EspecialistasExternos != null) { foreach (var item in contratoDto.EspecialistasExternos) { var espExternoId_ContratoId = new EspExternoId_ContratoId { ContratoId = contrato.Id, EspecialistaExternoId = item }; context.EspExternoId_ContratoId.Add(espExternoId_ContratoId); context.SaveChanges(); } } var HistoricoEstadoContrato = new HistoricoEstadoContrato { ContratoId = contrato.Id, Estado = Estado.Circulando, Fecha = DateTime.Now, Usuario = contratoDto.Usuario, }; context.Add(HistoricoEstadoContrato); context.SaveChanges(); return(new CreatedAtRouteResult("GetContrato", new { id = contrato.Id })); } return(BadRequest(ModelState)); }