Example #1
0
 public ObjetoRespuestaVariables RealizarPeticionValidacion()
 {
     try
     {
         ConsultaVariables consultaVariables        = new ConsultaVariables();
         EntidadesPlazos.EntPeticionesMultiples ent = new EntidadesPlazos.EntPeticionesMultiples();
         ent.Familias = this.tipoProductoPeticion.Familias.Select(
             e => new EntidadesPlazos.EntListProd
         {
             DescFamilia = e.DescFamilia,
             IdFamilia   = e.IdFamilia,
             IdProducto  = e.IdProducto,
             Plazos      = e.Plazos,
             Variables   = e.Variables
         }).ToList();
         var plazosValidos = consultaVariables.ConsultaLimPor4Va2daOpcion(ent);
         if (!(plazosValidos is null))
         {
             ObjetoRespuestaVariables objetoRespuesta = JsonConvert.DeserializeObject <ObjetoRespuestaVariables>(JsonConvert.SerializeObject(plazosValidos));
             return(objetoRespuesta);
         }
         else
         {
             return(null);
         }
     }
Example #2
0
        public IActionResult GuardarValoresTodos(int id, IEnumerable <TipoProductoFamilia> tipoProductosFamilias)
        {
            try
            {
                Stopwatch time = new Stopwatch();
                time.Start();
                this._log.WriteInfo($"Inicia el servicio para el guardado de variables");

                bool sonValidasVariables = false;
                if (!(tipoProductosFamilias is null))
                {
                    ValidacionVariables validacionVariables = new ValidacionVariables(this._configuration);
                    validacionVariables.construccionObjetoPeticion(tipoProductosFamilias.ToList());
                    ObjetoRespuestaVariables objetoRespuesta = validacionVariables.RealizarPeticionValidacion();
                    if (!(objetoRespuesta is null))
                    {
                        if (!(objetoRespuesta.Valores is null))
                        {
                            sonValidasVariables = validacionVariables.ValidacionValoresVariables(objetoRespuesta);
                            if (sonValidasVariables)
                            {
                                bool validarValores   = false;
                                bool validarVariables = false;
                                foreach (TipoProductoFamilia tipoProductoFamilia in tipoProductosFamilias)
                                {
                                    TccrConfiguracionCalculosDao tCCRConfiguracionCalculosDAO = new TccrConfiguracionCalculosDao();
                                    tCCRConfiguracionCalculosDAO.nombreSPAEjecutar = this._configuration.GetSection("spConfiguracion").Value;
                                    TccrConfiguracionCalculos tCCRConfiguracionCalculos = tCCRConfiguracionCalculosDAO.obtenerTCCRConfiguracionCalculos(1,
                                                                                                                                                        null, tipoProductoFamilia.fiTipoProductoId
                                                                                                                                                        , null, null, null);
                                    if (!(tCCRConfiguracionCalculos is null))
                                    {
                                        if (tCCRConfiguracionCalculos.fiConfiguracionId > 0)
                                        {
                                            TccrFactoresDao tccrFactoresActualizar = new TccrFactoresDao();
                                            tccrFactoresActualizar.nombreSPAEjecutar = this._configuration.GetSection("spFactores").Value;
                                            int actualizado = tccrFactoresActualizar.establecerFactoresEnCeroPorFamilia(0, tCCRConfiguracionCalculos.fiConfiguracionId
                                                                                                                        , tipoProductoFamilia.fiFamiliaId);
                                            if (actualizado >= 0)
                                            {
                                                foreach (var variables in tipoProductoFamilia.variablesCabeceras)
                                                {
                                                    if (variables.fiVariableId <= 0)
                                                    {
                                                        int fiVariableIdABuscar = 0;
                                                        TccrVariablesDao tCCRVariablesDAOBuscar = new TccrVariablesDao();
                                                        tCCRVariablesDAOBuscar.nombreSPAEjecutar = this._configuration.GetSection("spVariables").Value;
                                                        fiVariableIdABuscar = tCCRVariablesDAOBuscar.insertarTCCRVariablesPersonalizado(1, null, variables.fcDescripcion, null, null);
                                                        if (fiVariableIdABuscar > 0)
                                                        {
                                                            variables.fiVariableId = fiVariableIdABuscar;
                                                        }
                                                        else
                                                        {
                                                            int fiVariableId = 0;
                                                            TccrVariablesDao tCCRVariablesDAO = new TccrVariablesDao();
                                                            tCCRVariablesDAO.nombreSPAEjecutar = this._configuration.GetSection("spVariables").Value;
                                                            fiVariableId = tCCRVariablesDAO.insertarTCCRVariablesPersonalizado(2, null, variables.fcDescripcion, 1, id);
                                                            if (fiVariableId > 0)
                                                            {
                                                                variables.fiVariableId = fiVariableId;
                                                            }
                                                            else
                                                            {
                                                                validarVariables = true;
                                                            }
                                                        }
                                                    }
                                                    if (variables.fiVariableId > 0)
                                                    {
                                                        foreach (var variablesValores in variables.variables)
                                                        {
                                                            var             valorValidadoActual = false;
                                                            TccrFactoresDao tCCRFactoresDAO     = new TccrFactoresDao();
                                                            tCCRFactoresDAO.nombreSPAEjecutar = this._configuration.GetSection("spFactores").Value;
                                                            if (variablesValores.esPorcentaje)
                                                            {
                                                                variablesValores.valor = ArchivoExcel.PorcentajeDecimal(variablesValores.valor);
                                                            }
                                                            TccrFactores tCCRFactores = new TccrFactores
                                                            {
                                                                fiConfiguracionId = tCCRConfiguracionCalculos.fiConfiguracionId,
                                                                fiVariableId      = variables.fiVariableId,
                                                                fiFamiliaId       = tipoProductoFamilia.fiFamiliaId,
                                                                fiPlazo           = variablesValores.plazo,
                                                                fnValor           = variablesValores.valor,
                                                                fdIniVigencia     = null,
                                                                fiStatus          = 1,
                                                                fiUsuario         = id,
                                                            };
                                                            valorValidadoActual = tCCRFactoresDAO.insertarTCCRFactoresPersonalizado(2, tCCRFactores);
                                                            if (!valorValidadoActual)
                                                            {
                                                                if (!validarValores)
                                                                {
                                                                    validarValores = true;
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        validarVariables = true;
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                time.Stop();
                                                string mensaje = $"Se tuvo un error al actulizar los factores en cero de la familia ${tipoProductoFamilia.fcDescripcionFamilia}";
                                                this._log.WriteAndCountService($"Método:{nameof(GuardarValoresTodos)}-> {mensaje}",
                                                                               new Dictionary <string, int>
                                                {
                                                    {
                                                        nameof(WsAdministracionVariables),
                                                        Convert.ToInt32(time.ElapsedMilliseconds)
                                                    }
                                                });
                                                return(StatusCode(StatusCodes.Status500InternalServerError,
                                                                  new RespuestaError
                                                {
                                                    errorMessage = mensaje
                                                }));
                                            }
                                        }
                                        else
                                        {
                                            time.Stop();
                                            string mensaje = $"No existe una configuración para el tipo producto: " +
                                                             $"{ tipoProductoFamilia.fiTipoProductoId } para la familia:{ tipoProductoFamilia.fcDescripcionFamilia } , favor de validar";
                                            this._log.WriteAndCountService($"Método:{nameof(GuardarValoresTodos)}-> {mensaje}",
                                                                           new Dictionary <string, int>
                                            {
                                                {
                                                    nameof(WsAdministracionVariables),
                                                    Convert.ToInt32(time.ElapsedMilliseconds)
                                                }
                                            });
                                            return(NotFound(
                                                       new RespuestaError404
                                            {
                                                errorMessage = mensaje
                                            }));
                                        }
                                    }
                                    else
                                    {
                                        time.Stop();
                                        string mensaje = $"No existe una configuración para el tipo producto: " +
                                                         $"{ tipoProductoFamilia.fiTipoProductoId } para la familia:{ tipoProductoFamilia.fcDescripcionFamilia } , favor de validar";
                                        this._log.WriteAndCountService($"Método:{nameof(GuardarValoresTodos)}-> {mensaje}",
                                                                       new Dictionary <string, int>
                                        {
                                            {
                                                nameof(WsAdministracionVariables),
                                                Convert.ToInt32(time.ElapsedMilliseconds)
                                            }
                                        });
                                        return(NotFound(
                                                   new RespuestaError404
                                        {
                                            errorMessage = mensaje
                                        }));
                                    }
                                }
                                time.Stop();
                                this._log.WriteAndCountService($"Método:{nameof(GuardarValoresTodos)}-> Se guardo correctamento los valores",
                                                               new Dictionary <string, int>
                                {
                                    {
                                        nameof(WsAdministracionVariables),
                                        Convert.ToInt32(time.ElapsedMilliseconds)
                                    }
                                });
                                return(Ok(
                                           new RespuestaOK
                                {
                                    respuesta =
                                        new
                                    {
                                        userId = id,
                                        validacion = sonValidasVariables,
                                        valoresOK = validarValores,
                                        variablesOK = validarVariables
                                    }
                                }));
                            }
                            else
                            {
                                time.Stop();
                                this._log.WriteAndCountService($"Método:{nameof(GuardarValoresTodos)}-> Los valores no validaron correctamente",
                                                               new Dictionary <string, int>
                                {
                                    {
                                        nameof(WsAdministracionVariables),
                                        Convert.ToInt32(time.ElapsedMilliseconds)
                                    }
                                });
                                return(Ok(
                                           new RespuestaOK
                                {
                                    respuesta =
                                        new
                                    {
                                        userId = id,
                                        validacion = sonValidasVariables,
                                        objeto = validacionVariables.tipoProductoFamilia
                                    }
                                }));
                            }
                        }