public async Task <IActionResult> Aprobar(AprobarAnalisisViewModel analisis) { using (var transaction = db.Database.BeginTransaction()) { try { var analisisActualizar = await db.Analisis.Where(x => x.AnalisisId == analisis.AnalisisId).FirstOrDefaultAsync(); if (analisisActualizar == null) { return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.RegistroNoEncontrado}")); } analisisActualizar.ObservacionesAprobado = analisis.ObservacionesAprobado; db.Analisis.Update(analisisActualizar); var totalDetalleAnalisis = await db.DetalleAnalisis.Where(x => x.AnalisisId == analisis.AnalisisId && x.Aprobado == false).ToListAsync(); analisisActualizar.Resultado = totalDetalleAnalisis.Count == analisis.AnalisisAprobados?.Count ? "CUMPLE" : "NO CUMPLE"; var listaUpdate = new List <DetalleAnalisis>(); listaUpdate.AddRange(totalDetalleAnalisis); foreach (var item in listaUpdate.Where(x => x.AprobadoSupervisor != -1)) { item.AprobadoSupervisor = 0; } db.UpdateRange(listaUpdate); await db.SaveChangesAsync(); if (analisis.AnalisisAprobados != null) { foreach (var item in analisis.AnalisisAprobados) { var detalleActualizar = await db.DetalleAnalisis.Where(x => x.DetalleAnalisisId == Convert.ToInt32(item)).FirstOrDefaultAsync(); detalleActualizar.AprobadoSupervisor = 1; db.DetalleAnalisis.Update(detalleActualizar); await db.SaveChangesAsync(); } } transaction.Commit(); return(this.Redireccionar($"{Mensaje.MensajeSatisfactorio}|{Mensaje.Satisfactorio}")); } catch (Exception) { transaction.Rollback(); return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}")); } } }
public async Task <IActionResult> Aprobar(int id) { try { var Analisis = await db.Analisis .Select(x => new Analisis { AnalisisId = x.AnalisisId, FechaAnalisis = x.FechaAnalisis.Date, Maquina = new Maquina { MaquinaId = x.MaquinaId, NombreMaquina = x.Maquina.NombreMaquina }, Cliente = new Cliente { ClienteId = x.ClienteId, CodigoCliente = x.Cliente.CodigoCliente, NombreCliente = x.Cliente.NombreCliente }, NumeroOrden = x.NumeroOrden, Observaciones = x.Observaciones, Resultado = x.Resultado, Rollo = x.Rollo, Temperatura = x.Temperatura, Turno = x.Turno, NombreUsuario = x.NombreUsuario, ObservacionesAprobado = x.ObservacionesAprobado, Producto = new Producto { ClaseProducto = new ClaseProducto { ClaseProductoId = x.Producto.ClaseProducto.ClaseProductoId, ClaseDescripcion = x.Producto.ClaseProducto.ClaseDescripcion }, CodigoProducto = x.Producto.CodigoProducto, DefUsuario1 = x.Producto.DefUsuario1, DefUsuario2 = x.Producto.DefUsuario2, DescripcionProducto = x.Producto.DescripcionProducto, DimensionMaxima = x.Producto.DimensionMaxima.Value, DimensionMinima = x.Producto.DimensionMinima.Value, Grado = x.Producto.Grado, Nominal = x.Producto.Nominal, ProductoId = x.ProductoId, ObservacionProducto = x.Producto.ObservacionProducto, }, DetalleAnalisis = x.DetalleAnalisis.Select(y => new DetalleAnalisis { AnalisisId = x.AnalisisId, Aprobado = y.Aprobado, Resultado = y.Resultado, AprobadoSupervisor = y.AprobadoSupervisor, RangoReferenciaActual = y.RangoReferenciaActual, Especificacion = new Especificacion { Analisis = y.Especificacion.Analisis, Descripcion = y.Especificacion.Descripcion, TipoEspecificacion = y.Especificacion.TipoEspecificacion, ClaseEspecificacion = y.Especificacion.ClaseEspecificacion, EspecificacionId = y.Especificacion.EspecificacionId, }, DetalleAnalisisId = y.DetalleAnalisisId, } ).ToList(), ClienteId = x.ClienteId, MaquinaId = x.MaquinaId, ProductoId = x.ProductoId, AnalisisMaterial = x.AnalisisMaterial.Select(j => new AnalisisMaterial { AnalisisId = x.AnalisisId, MateriaId = j.MateriaId, AnalisisMateriaId = j.AnalisisMateriaId, Materia = new Material { CodigoIngreso = j.Materia.CodigoIngreso, Identificador = j.Materia.Identificador, MaterialId = j.Materia.MaterialId, UnidadMedida = j.Materia.UnidadMedida, StockDisponible = j.Materia.StockDisponible, Proveedor = new Proveedor { ProveedorId = j.Materia.ProveedorId, CodigoProveedor = j.Materia.Proveedor.CodigoProveedor, NombreProveedor = j.Materia.Proveedor.NombreProveedor, }, TipoMaterial = new TipoMaterial { DescripcionTipoMaterial = j.Materia.TipoMaterial.DescripcionTipoMaterial, TipoMaterialId = j.Materia.TipoMaterial.TipoMaterialId, }, TipoNorma = new TipoNorma { Sae = j.Materia.TipoNorma.Sae }, }, }).ToList(), MaterialEspecificacion = db.MaterialEspecificacion .Where(h => h.EspecificacionId == Constantes.IdEspecificacionDiamtroMaterial && h.MaterialId == x.AnalisisMaterial.Where(g => g.Materia.TipoMaterialId == Constantes.IdAlambron).FirstOrDefault().Materia.MaterialId).FirstOrDefault(), } ).Where(x => x.AnalisisId == id).FirstOrDefaultAsync(); var salida = new AprobarAnalisisViewModel { ObservacionesAprobado = Analisis.ObservacionesAprobado, Analisis = Analisis, AnalisisAprobados = new List <string>(), AnalisisId = Analisis.AnalisisId }; return(View(salida)); } catch (Exception) { throw; } }