public IActionResult ActualizarAnalisisCalidad([FromBody] ActualizarLoteAnalisisCalidadRequestDTO request)
        {
            Guid guid = Guid.NewGuid();

            _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(request)}");

            ActualizarGuiaRecepcionMateriaPrimaAnalisisCalidadResponseDTO response = new ActualizarGuiaRecepcionMateriaPrimaAnalisisCalidadResponseDTO();

            try
            {
                response.Result.Data = _loteService.ActualizarLoteAnalisisCalidad(request);

                response.Result.Success = true;
            }
            catch (ResultException ex)
            {
                response.Result = new Result()
                {
                    Success = true, ErrCode = ex.Result.ErrCode, Message = ex.Result.Message
                };
            }
            catch (Exception ex)
            {
                response.Result = new Result()
                {
                    Success = false, Message = "Ocurrio un problema en el servicio, intentelo nuevamente."
                };
                _log.RegistrarEvento(ex, guid.ToString());
            }

            _log.RegistrarEvento($"{guid.ToString()}{Environment.NewLine}{Newtonsoft.Json.JsonConvert.SerializeObject(response)}");

            return(Ok(response));
        }
Esempio n. 2
0
        public int ActualizarLoteAnalisisCalidad(ActualizarLoteAnalisisCalidadRequestDTO request)
        {
            Lote Lote = new Lote();

            Lote.LoteId = request.LoteId;
            Lote.ExportableGramosAnalisisFisico     = request.ExportableGramosAnalisisFisico;
            Lote.ExportablePorcentajeAnalisisFisico = request.ExportablePorcentajeAnalisisFisico;
            Lote.DescarteGramosAnalisisFisico       = request.DescarteGramosAnalisisFisico;
            Lote.DescartePorcentajeAnalisisFisico   = request.DescartePorcentajeAnalisisFisico;
            Lote.CascarillaGramosAnalisisFisico     = request.CascarillaGramosAnalisisFisico;
            Lote.CascarillaPorcentajeAnalisisFisico = request.CascarillaPorcentajeAnalisisFisico;
            Lote.TotalGramosAnalisisFisico          = request.TotalGramosAnalisisFisico;
            Lote.TotalPorcentajeAnalisisFisico      = request.TotalPorcentajeAnalisisFisico;
            Lote.HumedadPorcentajeAnalisisFisico    = request.HumedadPorcentajeAnalisisFisico;
            Lote.ObservacionAnalisisFisico          = request.ObservacionAnalisisFisico;
            Lote.UsuarioCalidad               = request.UsuarioCalidad;
            Lote.ObservacionRegistroTostado   = request.ObservacionRegistroTostado;
            Lote.ObservacionAnalisisSensorial = request.ObservacionAnalisisSensorial;
            Lote.TotalAnalisisSensorial       = request.TotalAnalisisSensorial;
            Lote.UsuarioCalidad               = request.UsuarioCalidad;
            Lote.EstadoId     = LoteEstados.Analizado;
            Lote.FechaCalidad = DateTime.Now;


            int affected = _ILoteRepository.ActualizarLoteAnalisisCalidad(Lote);


            #region "Analisis Fisico Color"
            if (request.AnalisisFisicoColorDetalleList.FirstOrDefault() != null)
            {
                List <LoteAnalisisFisicoColorDetalleTipo> AnalisisFisicoColorDetalleList = new List <LoteAnalisisFisicoColorDetalleTipo>();

                request.AnalisisFisicoColorDetalleList.ForEach(z =>
                {
                    LoteAnalisisFisicoColorDetalleTipo item = new LoteAnalisisFisicoColorDetalleTipo();
                    item.ColorDetalleDescripcion            = z.ColorDetalleDescripcion;
                    item.ColorDetalleId = z.ColorDetalleId;
                    item.LoteId         = request.LoteId;
                    item.Valor          = z.Valor;
                    AnalisisFisicoColorDetalleList.Add(item);
                });

                affected = _ILoteRepository.ActualizarLoteAnalisisFisicoColorDetalle(AnalisisFisicoColorDetalleList, request.LoteId);
            }
            #endregion

            #region Analisis Fisico Defecto Primario
            if (request.AnalisisFisicoDefectoPrimarioDetalleList.FirstOrDefault() != null)
            {
                List <LoteAnalisisFisicoDefectoPrimarioDetalleTipo> AnalisisFisicoDefectoPrimarioDetalleList = new List <LoteAnalisisFisicoDefectoPrimarioDetalleTipo>();

                request.AnalisisFisicoDefectoPrimarioDetalleList.ForEach(z =>
                {
                    LoteAnalisisFisicoDefectoPrimarioDetalleTipo item = new LoteAnalisisFisicoDefectoPrimarioDetalleTipo();
                    item.DefectoDetalleId          = z.DefectoDetalleId;
                    item.DefectoDetalleDescripcion = z.DefectoDetalleDescripcion;
                    item.DefectoDetalleEquivalente = z.DefectoDetalleEquivalente;
                    item.LoteId = request.LoteId;
                    item.Valor  = z.Valor;
                    AnalisisFisicoDefectoPrimarioDetalleList.Add(item);
                });

                affected = _ILoteRepository.ActualizarLoteAnalisisFisicoDefectoPrimarioDetalle(AnalisisFisicoDefectoPrimarioDetalleList, request.LoteId);
            }
            #endregion

            #region "Analisis Fisico Defecto Secundario Detalle"
            if (request.AnalisisFisicoDefectoSecundarioDetalleList.FirstOrDefault() != null)
            {
                List <LoteAnalisisFisicoDefectoSecundarioDetalleTipo> AnalisisFisicoDefectoSecundarioDetalleList = new List <LoteAnalisisFisicoDefectoSecundarioDetalleTipo>();

                request.AnalisisFisicoDefectoSecundarioDetalleList.ForEach(z =>
                {
                    LoteAnalisisFisicoDefectoSecundarioDetalleTipo item = new LoteAnalisisFisicoDefectoSecundarioDetalleTipo();
                    item.DefectoDetalleId          = z.DefectoDetalleId;
                    item.DefectoDetalleDescripcion = z.DefectoDetalleDescripcion;
                    item.DefectoDetalleEquivalente = z.DefectoDetalleEquivalente;
                    item.LoteId = request.LoteId;
                    item.Valor  = z.Valor;
                    AnalisisFisicoDefectoSecundarioDetalleList.Add(item);
                });

                affected = _ILoteRepository.ActualizarLoteAnalisisFisicoDefectoSecundarioDetalle(AnalisisFisicoDefectoSecundarioDetalleList, request.LoteId);
            }
            #endregion

            #region "Analisis Fisico Olor Detalle"
            if (request.AnalisisFisicoOlorDetalleList.FirstOrDefault() != null)
            {
                List <LoteAnalisisFisicoOlorDetalleTipo> AnalisisFisicoDefectoSecundarioDetalleList = new List <LoteAnalisisFisicoOlorDetalleTipo>();

                request.AnalisisFisicoOlorDetalleList.ForEach(z =>
                {
                    LoteAnalisisFisicoOlorDetalleTipo item = new LoteAnalisisFisicoOlorDetalleTipo();
                    item.LoteId = request.LoteId;
                    item.OlorDetalleDescripcion = z.OlorDetalleDescripcion;
                    item.OlorDetalleId          = z.OlorDetalleId;
                    item.Valor = z.Valor;
                    AnalisisFisicoDefectoSecundarioDetalleList.Add(item);
                });

                affected = _ILoteRepository.ActualizarLoteAnalisisFisicoOlorDetalle(AnalisisFisicoDefectoSecundarioDetalleList, request.LoteId);
            }
            #endregion

            #region "Analisis Sensorial Atributo"
            if (request.AnalisisSensorialAtributoDetalleList.FirstOrDefault() != null)
            {
                List <LoteAnalisisSensorialAtributoDetalleTipo> AnalisisSensorialAtributoDetalle = new List <LoteAnalisisSensorialAtributoDetalleTipo>();

                request.AnalisisSensorialAtributoDetalleList.ForEach(z =>
                {
                    LoteAnalisisSensorialAtributoDetalleTipo item = new LoteAnalisisSensorialAtributoDetalleTipo();
                    item.LoteId = request.LoteId;
                    item.AtributoDetalleDescripcion = z.AtributoDetalleDescripcion;
                    item.AtributoDetalleId          = z.AtributoDetalleId;
                    item.Valor = z.Valor;
                    AnalisisSensorialAtributoDetalle.Add(item);
                });

                affected = _ILoteRepository.ActualizarLoteAnalisisSensorialAtributoDetalle(AnalisisSensorialAtributoDetalle, request.LoteId);
            }
            #endregion

            if (request.AnalisisSensorialDefectoDetalleList.FirstOrDefault() != null)
            {
                List <LoteAnalisisSensorialDefectoDetalleTipo> AnalisisSensorialDefectoDetalle = new List <LoteAnalisisSensorialDefectoDetalleTipo>();

                request.AnalisisSensorialDefectoDetalleList.ForEach(z =>
                {
                    LoteAnalisisSensorialDefectoDetalleTipo item = new LoteAnalisisSensorialDefectoDetalleTipo();
                    item.LoteId = request.LoteId;
                    item.DefectoDetalleDescripcion = z.DefectoDetalleDescripcion;
                    item.DefectoDetalleId          = z.DefectoDetalleId;

                    item.Valor = z.Valor;
                    AnalisisSensorialDefectoDetalle.Add(item);
                });

                affected = _ILoteRepository.ActualizarLoteAnalisisSensorialDefectoDetalle(AnalisisSensorialDefectoDetalle, request.LoteId);
            }


            if (request.RegistroTostadoIndicadorDetalleList.FirstOrDefault() != null)
            {
                List <LoteRegistroTostadoIndicadorDetalleTipo> RegistroTostadoIndicadorDetalle = new List <LoteRegistroTostadoIndicadorDetalleTipo>();

                request.RegistroTostadoIndicadorDetalleList.ForEach(z =>
                {
                    LoteRegistroTostadoIndicadorDetalleTipo item = new LoteRegistroTostadoIndicadorDetalleTipo();
                    item.LoteId = request.LoteId;
                    item.IndicadorDetalleDescripcion = z.IndicadorDetalleDescripcion;
                    item.IndicadorDetalleId          = z.IndicadorDetalleId;
                    item.Valor = z.Valor;

                    RegistroTostadoIndicadorDetalle.Add(item);
                });

                affected = _ILoteRepository.ActualizarLoteRegistroTostadoIndicadorDetalle(RegistroTostadoIndicadorDetalle, request.LoteId);
            }

            return(affected);
        }