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); } }
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 } })); } }