Beispiel #1
0
        public object validacionPartesEF([FromBody] dynamic objetoRecibido) // objetoRecibido = {cod_entidad:cod_entidad}
        {
            inicializaDatos(objetoRecibido.cod_entidad.ToString());
            this.cambio_2 = this.aperturaDatos.mCompra;
            this.cambio_4 = this.aperturaDatos.mUFV;
            this.cambio_5 = this.aperturaDatos.mEuroBS;
            this.margenEF = this.aperturaDatos.margen_partes_ef;
            this.factorTC = this.aperturaDatos.factor_tc;

            this.archivosEntidadCadena = ArchivosController.encadenaArchivosDeEntidadMes(this.codigoEntidad, this.mesControl);
            /////////////////////////////// Validacion de Partes de Producción y Siniestros  con Estados Financieros ///////////////////////////////////////////
            int estadoValidezEF = this.validaPartesEF();

            dynamic segEntidad = SgmntController.seguimientoAperturaActivaEntidad(this.codigoEntidad);

            if (estadoValidezEF < Convert.ToInt16(segEntidad.estado)) // si el estado de error de la validacion es peor que el de seguimiento actual, entonces se guarda el peor en el estado del seguimiento:   estados 1 E grave, 2 error , 3 advertencia 4 valido
            {
                SgmntController.modificaEstado(segEntidad.id_seguimiento_envio, estadoValidezEF);
            }

            foreach (Error error in this.errores)
            {
                if (!error.valido)
                {
                    error.id_seguimiento_envio = segEntidad.id_seguimiento_envio;;
                    ErroresController.insertarError(error);
                }
            }
            con.Close();
            this.resultado.status       = "success";
            this.resultado.validoEF     = estadoValidezEF > 2;
            this.resultado.validacionEF = listaValEF; //cada item  contiene { validacion:'titulo', data:{datos de la validacion}, valido: true or false, error:{error con descripcion}, tipo_parte: 'produccion o siniestro' }

            return(this.resultado);
        }
Beispiel #2
0
        /// Verifica si los archivos enviados son los que se deberian enviar segun el mes y el tipo de entidad
        private bool validarArchivosEnviadosNombres(List <ArchivoCargado> archivosEnv)
        {
            bool correcto = true;

            // se obtiene la lita de archivos que corresponden a la compañia segun el mes
            List <Archivo> archivosValidos = ArchivosController.getArchivosDeEntidadMes(this.codigoEntidad, this.mesControl);

            if (archivosValidos.Count != archivosEnv.Count)
            {
                correcto = false;
                // EE-02  "La cantidad de archivos enviados no corresponde
                this.errores.Add(err("002", "", "deberían ser " + archivosValidos.Count + " archivos y se cargaron:  " + archivosEnv.Count + " .", 0, 0));
            }

            foreach (Archivo arch in archivosValidos)
            {
                string         nombreArchivo = this.nombreArchivo(codigoEntidad, mesControl, anoControl, arch.codigo);
                ArchivoCargado carg          = (from i in archivosEnv where i.nombre.ToUpper() == nombreArchivo.ToUpper() select i).FirstOrDefault();

                if (carg == null)
                {
                    correcto = false;
                    // EE-03 "Falta el archivo "
                    this.errores.Add(err("003", nombreArchivo, nombreArchivo, 0, 0));
                }
                else
                {
                    carg.codigo          = arch.codigo;
                    carg.validacionTexto = arch.validacion;
                }
            }
            return(correcto);
        }
Beispiel #3
0
        public object validacionSIF([FromBody] dynamic objetoRecibido)// objetoRecibido = {cod_entidad:cod_entidad}
        {
            inicializaDatos(objetoRecibido.cod_entidad.ToString());
            this.archivosEntidadCadena = ArchivosController.encadenaArchivosDeEntidadMes(this.codigoEntidad, this.mesControl);
            // realiza la validacion_________________________________________________>>>>>>
            dynamic valContenido   = this.realizarValidacionContenido();
            int     estadoValidezC = valContenido.estadoValidez;

            // obtiene el estado de validez que tiene seguimiento_envio ya guardado en la validacion de formato
            dynamic segEntidad    = SgmntController.seguimientoAperturaActivaEntidad(this.codigoEntidad);
            int     estadoValidez = Convert.ToInt16(segEntidad.estado);

            ////------------------------------------- se añade val EF dentro del proceso por un error al llamar en paralelo  ----------------------------------------
            this.cambio_2 = this.aperturaDatos.mCompra;
            this.cambio_4 = this.aperturaDatos.mUFV;
            this.cambio_5 = this.aperturaDatos.mEuroBS;
            this.margenEF = this.aperturaDatos.margen_partes_ef;
            this.factorTC = this.aperturaDatos.factor_tc;

            this.archivosEntidadCadena = ArchivosController.encadenaArchivosDeEntidadMes(this.codigoEntidad, this.mesControl);
            ////////_____________________________>>>> Validacion de Partes de Producción y Siniestros  con Estados Financieros ///////////////////////////////////////////
            int estadoValidezEF = this.validaPartesEF();

            estadoValidez = Math.Min(estadoValidez, Math.Min(estadoValidezC, estadoValidezEF));
            SgmntController.modificaEstado(segEntidad.id_seguimiento_envio, estadoValidez);

            foreach (Error error in this.errores)
            {
                if (!error.valido)
                {
                    error.id_seguimiento_envio = segEntidad.id_seguimiento_envio;
                    ErroresController.insertarError(error);
                }
            }

            List <dynamic> constantes = ConstantesController.obtieneConstantesDeDimension("estado_seguimiento");
            dynamic        estadoSeg  = constantes.Where(x => x.codigo == estadoValidez.ToString()).FirstOrDefault();

            this.con.Close();
            this.resultado.status             = "success";
            this.resultado.estadoValidez      = estadoValidez;
            this.resultado.estadoValidez_desc = estadoSeg.valor + " - " + estadoSeg.descripcion;

            this.resultado.estadoValidezC = estadoValidezC;
            this.resultado.validoC        = estadoValidezC > 2;
            this.resultado.datosC         = this.listaValCont;

            this.resultado.estadoValidezEF = estadoValidezEF;
            this.resultado.validoEF        = estadoValidezEF > 2;
            this.resultado.datosEF         = listaValEF;

            return(this.resultado);
        }
        public static string encadenaArchivosDeEntidadMes(string cod_entidad, int mes)
        {
            List <Archivo> archivosList   = ArchivosController.getArchivosDeEntidadMes(cod_entidad, mes);
            string         cadenaArchivos = "";

            foreach (Archivo arch in archivosList)
            {
                cadenaArchivos += arch.codigo;
            }

            return(cadenaArchivos);
        }
Beispiel #5
0
        public object validacionConsultaPartesEF(string web_reporte, int idSeguimientoEnvio) //objetoRecibido = {id_seguimiento_envio }
        {
            try
            {
                // my code
                string token = HttpHelpers.GetTokenFromHeader(HttpContext);
                if (token == "")
                {
                    return(Unauthorized());
                }

                Base helper = new Base(AppSettings, token, HttpContext.Connection.RemoteIpAddress.ToString());

                List <Error> erroresLista            = ErroresController.getErroresDeSeguimiento(idSeguimientoEnvio);
                dynamic      seguimientoEntidadDatos = SgmntController.getSeguimientoEntidadDatos(idSeguimientoEnvio);
                this.codigoEntidad      = seguimientoEntidadDatos.cod_entidad.ToString();
                this.erroresDiccionario = ConstantesController.obtieneConstantesDeDimension("error");
                this.aperturaDatos      = AperturaController.getAperturaDeSeguimiento(idSeguimientoEnvio);

                this.fechaCorte = this.aperturaDatos.fecha_corte;
                this.anoControl = this.fechaCorte.Year;
                this.mesControl = this.fechaCorte.Month;
                this.diaControl = this.fechaCorte.Day;

                this.cambio_2 = this.aperturaDatos.mCompra;
                this.cambio_4 = this.aperturaDatos.mUFV;
                this.cambio_5 = this.aperturaDatos.mEuroBS;
                this.margenEF = this.aperturaDatos.margen_partes_ef;
                this.factorTC = this.aperturaDatos.factor_tc;

                this.archivosEntidadCadena = ArchivosController.encadenaArchivosDeEntidadMes(this.codigoEntidad, this.mesControl);

                ////////////////////// FORMATO ////////////////////////////////////////////////
                IEnumerable <Error> erroresF = erroresLista.Where(x => x.cod_error.Substring(0, 1) == "0").OrderBy(x => x.cod_error);
                bool validoF       = true;
                int  estadoValidez = 4;
                foreach (Error errorF in erroresF)
                {
                    errorF.desc_error    = descError(errorF.cod_error);
                    errorF.estadoValidez = estadoValidezDeError(errorF);
                    if (errorF.estadoValidez < estadoValidez)
                    {
                        estadoValidez = errorF.estadoValidez;
                    }
                }
                if (estadoValidez > 1) // si no hay EE
                {
                    // //////////////////////////////Validacion contenidos SIf y varios
                    dynamic valContenido   = this.realizarValidacionContenido();
                    int     estadoValidezC = valContenido.estadoValidez;
                    this.resultado.estadoValidezC = estadoValidezC;
                    this.resultado.validoC        = estadoValidezC > 2;
                    if (web_reporte == "web") //si es WEB se carga en una lista
                    {
                        this.resultado.datosC      = this.listaValCont;
                        this.resultado.validacionC = null;
                    }
                    else if (web_reporte == "reporte") //  sie es en para reporte se separa en objetos que tinen la misma estuctura
                    {
                        this.resultado.validacionC = valContenido;
                        this.resultado.datosC      = null;
                    }

                    /////////////////////////////// Validacion de Partes de Producción y Siniestros  con Estados Financieros ///////////////////////////////////////////
                    int estadoValidezEF = this.validaPartesEF();
                    this.resultado.estadoValidezEF = estadoValidezEF;
                    this.resultado.validoEF        = estadoValidezEF > 2;
                    this.resultado.datosEF         = listaValEF;

                    // del resultado gral
                    estadoValidez = Math.Min(estadoValidez, Math.Min(estadoValidezC, estadoValidezEF));
                }
                else
                {
                    validoF = false;
                }

                this.resultado.aperturaDatos           = this.aperturaDatos;
                this.resultado.seguimientoEntidadDatos = seguimientoEntidadDatos;


                List <dynamic> constantes = ConstantesController.obtieneConstantesDeDimension("estado_seguimiento");
                dynamic        estadoSeg  = constantes.Where(x => x.codigo == estadoValidez.ToString()).FirstOrDefault();

                this.con.Close();
                this.resultado.status             = "success";
                this.resultado.estadoValidez      = estadoValidez;
                this.resultado.estadoValidez_desc = estadoSeg.valor + " - " + estadoSeg.descripcion;

                this.resultado.validoF  = validoF;
                this.resultado.erroresF = erroresF;

                return(this.resultado);
            }
            catch (Exception ex)
            {
                return(new
                {
                    status = "error",
                    mensaje = ex.Message
                });
            }
        }
Beispiel #6
0
        public object validacionSIF([FromBody] dynamic objetoRecibido)// objetoRecibido = {cod_entidad:cod_entidad}
        {
            try
            {
                // my code
                string token = HttpHelpers.GetTokenFromHeader(HttpContext);
                if (token == "")
                {
                    return(Unauthorized());
                }

                Base helper = new Base(AppSettings, token, HttpContext.Connection.RemoteIpAddress.ToString());
                if (helper.Role == "carga_informacion")
                {
                    objetoRecibido.cod_entidad = helper.CiaId;
                }

                inicializaDatos(objetoRecibido.cod_entidad.ToString());
                this.archivosEntidadCadena = ArchivosController.encadenaArchivosDeEntidadMes(this.codigoEntidad, this.mesControl);
                // realiza la validacion_________________________________________________>>>>>>
                dynamic valContenido   = this.realizarValidacionContenido();
                int     estadoValidezC = valContenido.estadoValidez;

                // obtiene el estado de validez que tiene seguimiento_envio ya guardado en la validacion de formato
                dynamic segEntidad    = SgmntController.seguimientoAperturaActivaEntidad(this.codigoEntidad);
                int     estadoValidez = Convert.ToInt16(segEntidad.estado);

                ////------------------------------------- se añade val EF dentro del proceso por un error al llamar en paralelo  ----------------------------------------
                this.cambio_2 = this.aperturaDatos.mCompra;
                this.cambio_4 = this.aperturaDatos.mUFV;
                this.cambio_5 = this.aperturaDatos.mEuroBS;
                this.margenEF = this.aperturaDatos.margen_partes_ef;
                this.factorTC = this.aperturaDatos.factor_tc;

                this.archivosEntidadCadena = ArchivosController.encadenaArchivosDeEntidadMes(this.codigoEntidad, this.mesControl);
                ////////_____________________________>>>> Validacion de Partes de Producción y Siniestros  con Estados Financieros ///////////////////////////////////////////
                int estadoValidezEF = this.validaPartesEF();

                estadoValidez = Math.Min(estadoValidez, Math.Min(estadoValidezC, estadoValidezEF));
                SgmntController.modificaEstado(segEntidad.id_seguimiento_envio, estadoValidez);

                foreach (Error error in this.errores)
                {
                    if (!error.valido)
                    {
                        error.id_seguimiento_envio = segEntidad.id_seguimiento_envio;
                        ErroresController.insertarError(error);
                    }
                }

                List <dynamic> constantes = ConstantesController.obtieneConstantesDeDimension("estado_seguimiento");
                dynamic        estadoSeg  = constantes.Where(x => x.codigo == estadoValidez.ToString()).FirstOrDefault();

                this.con.Close();
                this.resultado.status             = "success";
                this.resultado.estadoValidez      = estadoValidez;
                this.resultado.estadoValidez_desc = estadoSeg.valor + " - " + estadoSeg.descripcion;

                this.resultado.estadoValidezC = estadoValidezC;
                this.resultado.validoC        = estadoValidezC > 2;
                this.resultado.datosC         = this.listaValCont;

                this.resultado.estadoValidezEF = estadoValidezEF;
                this.resultado.validoEF        = estadoValidezEF > 2;
                this.resultado.datosEF         = listaValEF;

                return(this.resultado);
            }
            catch (Exception ex)
            {
                return(new
                {
                    status = "error",
                    mensaje = ex.Message
                });
            }
        }