Esempio n. 1
0
        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}"));
                }
            }
        }
Esempio n. 2
0
        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;
            }
        }