示例#1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Rol"] != null)
            {
                if (Session["Rol"].ToString() != "Administrador")
                {
                    Response.Redirect("Login.aspx");
                }
            }
            else
            {
                Response.Redirect("Login.aspx");
            }

            if (!IsPostBack)
            {
                ddlEmp.DataSource     = Emprendimiento.busarEmpAagregarEval();
                ddlEmp.DataTextField  = "Titulo";
                ddlEmp.DataValueField = "CodId";
                ddlEmp.DataBind();

                ddlEv.DataSource     = Evaluador.buscarTodos();
                ddlEv.DataTextField  = "Nombre";
                ddlEv.DataValueField = "IdEvaluador";
                ddlEv.DataBind();
            }
        }
示例#2
0
        protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
        {
            string username = Login1.UserName;
            string password = Login1.Password;
            string rol      = Usuario.verificarUsuario(username, password);

            if (rol != "")
            {
                Session["Rol"]   = rol;
                Session["Email"] = username;
                if (rol == "Postulante")
                {
                    Session["CodEm"] = Integrante.buscarCodEm(username);
                }
                if (rol == "Evaluador")
                {
                    Session["IdEvaluador"] = Evaluador.buscarIdEvaluador(username);
                }

                Response.Redirect("Inicio.aspx");
            }
            else
            {
                lblMensaje.Text = "Los datos son incorrectos";
            }
        }
示例#3
0
        public async Task <ActionResult <Evaluador> > PostEvaluadorItem(Evaluador item)
        {
            _context.EvaluadorItems.Add(item);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetEvaluadorItem), new { cedula = item.Cedula }, item));
        }
示例#4
0
 public static bool EvaluarCondicion <T>(T objeto, Condicion condicion, Evaluador <T> evaluador, bool buscarEvaluadorGenerico = true)
 {
     return(EvaluarCondicion <T>(objeto, condicion, new List <Evaluador <T> >()
     {
         evaluador
     }, buscarEvaluadorGenerico));
 }
示例#5
0
        private IList <IObjetoPuntuado <Direccion> > GetByEsquinaEnProvincia(string calle, string esquina, int provincia)
        {
            var list       = new List <IObjetoPuntuado <Direccion> >();
            var tokenizer  = Tokenizer.FromString(calle, 3);
            var tokenizer2 = Tokenizer.FromString(esquina, 3);
            var evaluador  = new Evaluador(tokenizer, tokenizer, new IEvaluator[0]);
            var evaluador2 = new Evaluador(tokenizer2, tokenizer2, new IEvaluator[0]);

            evaluador.Evaluators.Add(new PuntajeEvaluator());
            evaluador2.Evaluators.Add(new PuntajeEvaluator());
            var num   = evaluador.Evaluar();
            var num2  = evaluador2.Evaluar();
            var list2 = (provincia < 0) ? DAOFactory.PoligonalDAO.GetByEsquinaSinProvincia(tokenizer.ToArray(), tokenizer2.ToArray()) : DAOFactory.PoligonalDAO.GetByEsquinaEnProvincia(tokenizer.ToArray(), tokenizer2.ToArray(), provincia);

            foreach (var current in list2)
            {
                evaluador.Option  = Tokenizer.Create(current.Poligonal);
                evaluador2.Option = Tokenizer.Create(current.Esquina);
                var num3 = evaluador.Evaluar();
                var num4 = evaluador2.Evaluar();
                if (num3 > num / 2.0 && num4 > num2 / 2.0)
                {
                    list.Add(new ObjetoPuntuado <Direccion>(num3 + num4, current));
                }
            }
            list.Sort();
            return(list);
        }
示例#6
0
        private static IList <T> Nomenclar <T>(Evaluador eval, Tokenizer tokens, IEnumerable <T> options, out double puntos) where T : ITokenizable
        {
            List <T> list = new List <T>();
            double   num  = 0.0;

            foreach (T current in options)
            {
                double num2 = eval.Evaluar(Tokenizer.Create(current));
                if (num2 != 0.0 && num2 >= num)
                {
                    if (num2 == num)
                    {
                        list.Add(current);
                    }
                    else
                    {
                        if (num2 > num)
                        {
                            list.Clear();
                            list.Add(current);
                            num = num2;
                        }
                    }
                }
            }
            puntos = num;
            return(list);
        }
        static void Expresion()
        {
            Evaluador mat = new Evaluador();
            string    exp;

            Console.WriteLine("Ingrese la expresion matematica: ");
            exp = Console.ReadLine();
            mat.evaluar(exp);
        }
示例#8
0
        private static IList <T> NomenclarAmbiguo <T>(Tokenizer tokens, IEnumerable <T> options, out double puntos) where T : ITokenizable
        {
            Evaluador eval = new Evaluador(tokens, new IEvaluator[]
            {
                new WordMatchEvaluator(),
                new StartMatchEvaluator()
            });

            return(Cleaning.Nomenclar <T>(eval, tokens, options, out puntos));
        }
        public List <Evaluador> ObtenerPosiblesEvaluadores(CentroTrabajo centro)
        {
            SqlConnection oCon = new SqlConnection(cadena);
            SqlCommand    oCmd = new SqlCommand("dbo.getEvaluadoresPosiblesCentroTrabajo", oCon);

            oCmd.CommandType = CommandType.StoredProcedure;
            oCmd.Parameters.AddWithValue("@idCentro", centro.IDGlobal);
            SqlDataReader    dr;
            List <Evaluador> lst       = null;
            Evaluador        evaluador = null;

            try
            {
                oCon.Open();
                dr  = oCmd.ExecuteReader();
                lst = new List <Evaluador>();
                while (dr.Read())
                {
                    evaluador = new Evaluador();
                    evaluador.InfoEmpleado.IDGral    = Convert.ToInt32(dr["IdGral"]);
                    evaluador.InfoEmpleado.Cve       = Convert.ToInt32(dr["Empleado"]);
                    evaluador.InfoEmpleado.Nombre    = dr["Nombre"].ToString();
                    evaluador.InfoEmpleado.Paterno   = dr["ApellidoPaterno"].ToString();
                    evaluador.InfoEmpleado.Materno   = dr["ApellidoMaterno"].ToString();
                    evaluador.InfoEmpleado.RFC       = dr["RFC"].ToString();
                    evaluador.InfoEmpleado.IdFuncion = dr["Funcion"].ToString();
                    Models.Cat.Asignacion asignacion = new Models.Cat.Asignacion();
                    asignacion.InfoFuncionEvaluadora.Denominacion = dr["DenominacionPlaza"].ToString();
                    asignacion.InfoFuncionEvaluadora.IdFuncion    = dr["Funcion"].ToString();
                    asignacion.InfoFuncionEvaluadora.Nivel        = dr["NivelSalarial"].ToString();
                    asignacion.Inicio = dr["Inicio"].ToString();
                    asignacion.Fin    = dr["Fin"].ToString();
                    asignacion.Dias   = Convert.ToInt32(dr["Dias"]);
                    asignacion.InfoCentroTrabajo.IDGlobal          = centro.IDGlobal;
                    asignacion.InfoCentroTrabajo.IdUR              = Convert.ToInt32(dr["idUR"]);
                    asignacion.InfoCentroTrabajo.IdArea            = Convert.ToInt32(dr["idArea"]);
                    asignacion.InfoCentroTrabajo.IdEstado          = Convert.ToInt32(dr["idEstado"]);
                    asignacion.InfoCentroTrabajo.IdMunicipio       = Convert.ToInt32(dr["idMunicipio"]);
                    asignacion.InfoCentroTrabajo.IdCT              = Convert.ToInt32(dr["idCentroTrabajo"]);
                    asignacion.InfoCentroTrabajo.UnidadResponsable = dr["UnidadResponsable"].ToString();
                    asignacion.InfoCentroTrabajo.Area              = dr["Area"].ToString();
                    asignacion.InfoCentroTrabajo.Municipio         = dr["Municipio"].ToString();
                    asignacion.InfoCentroTrabajo.CTrabajo          = dr["CentroDeTrabajo"].ToString();
                    evaluador.Asignaciones.Add(asignacion);
                    lst.Add(evaluador);
                }
                oCon.Close();
            }
            catch (Exception ex)
            {
                lst = null;
            }
            return(lst);
        }
示例#10
0
        public async Task <IActionResult> Put(string cedula, Evaluador item)
        {
            if (cedula != item.Cedula)
            {
                return(BadRequest());
            }

            _context.Entry(item).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(NoContent());
        }
示例#11
0
        protected void BtNAgregar_Click(object sender, EventArgs e)
        {
            try
            {
                string cedula       = TxTCedula.Text;
                string nombre       = TxTNombre.Text;
                string email        = TxTEmail.Text;
                string telefono     = TxTTelefono.Text;
                int    calificacion = 0;
                int.TryParse(TxTCalificacion.Text, out calificacion);
                string    pasword = TxTPasword.Text;
                Evaluador ev      = new Evaluador
                {
                    Cedula        = cedula,
                    Nombre        = nombre,
                    Email         = email,
                    Telefono      = telefono,
                    Calificaccion = calificacion,
                };

                Usuario us = new Usuario
                {
                    Email   = email,
                    Pasword = pasword,
                    Tipo    = "evaluador",
                };
                if (us.Insertar())
                {
                    if (ev.Insertar())
                    {
                        LbLMensaje.Text = "Alta realizada con exito";
                    }
                }
                else
                {
                    LbLMensaje.Text = "No se pudo dar de Alta del Evaluador";
                }
            }
            catch (Exception ex)
            {
                LbLMensaje.Text = ex.Message;
            }
            finally
            {
                //LblMensaje.Text="cierro conexiones, estoy en finally";
            }
        }
示例#12
0
        private void Compile()
        {
            txtLog.Clear();
            var evaluator   = new Evaluador();
            var diagnostics = evaluator.Evaluar(txtCode.Text);

            this.SymbolsTable = evaluator.TablaSimbolos;

            foreach (var diagnostic in diagnostics)
            {
                txtLog.Text += diagnostic + Environment.NewLine;
            }
            ShowSymbolsTable();
            var presentadorCuadruplos = new PersentadorCuadruplos(evaluator.TablaSintaxis);

            MostrarTablaCuadruplos(presentadorCuadruplos.Procesar());
        }
示例#13
0
        //boton de EJECUTAR
        private void button1_Click(object sender, EventArgs e)
        {
            //limpiamos el textbox de salida
            this.richTextBox3.Text = "";

            //limpiamos el contenido de la singleton
            MasterClass.Instance.clearMistakes();
            MasterClass.Instance.clear();

            Evaluador evaluator = new Evaluador();

            evaluator.analizar(this.richTextBox1.Text);
            //MessageBox.Show(MasterClass.Instance.getMessages()+"\nCantidad de instrucciones: "+MasterClass.Instance.getCantidad());

            MasterClass.Instance.ejecutar();
            MasterClass.Instance.ifMistakes();
            MasterClass.Instance.showAllErrors();
            this.richTextBox3.Text = MasterClass.Instance.getMessages();
        }
示例#14
0
        public IList <PartidoVO> GetPartidoEnProvinciaId(string nombre, int idProvincia)
        {
            var ambos         = Tokenizer.FromString(nombre, 1);
            var evaluador     = new Evaluador(ambos, new IEvaluator[] { new PuntajeEvaluator() });
            var num           = evaluador.Evaluar();
            var byProvinciaId = DAOFactory.PartidoDAO.GetByProvinciaId(idProvincia);
            var list          = new List <IObjetoPuntuado <Partido> >();

            foreach (var current in byProvinciaId)
            {
                var num2 = evaluador.Evaluar(Tokenizer.Create(current));
                if (num2 > num / 2.0)
                {
                    list.Add(new ObjetoPuntuado <Partido>(num2, current));
                }
            }
            list.Sort();
            var list2 = new List <PartidoVO>(list.Count);

            list2.AddRange(list.Select(current2 => new PartidoVO(current2.Objeto)));
            return(list2);
        }
示例#15
0
        public IList <ProvinciaVO> GetProvincias(string nombre)
        {
            var ambos     = Tokenizer.FromString(nombre, 0);
            var evaluador = new Evaluador(ambos, new IEvaluator[] { new PuntajeEvaluator() });
            var num       = evaluador.Evaluar();
            var todas     = DAOFactory.ProvinciaDAO.GetTodas();
            var list      = new List <IObjetoPuntuado <Provincia> >();

            foreach (var current in todas)
            {
                var num2 = evaluador.Evaluar(Tokenizer.Create(current));
                if (num2 > num / 2.0)
                {
                    list.Add(new ObjetoPuntuado <Provincia>(num2, current));
                }
            }
            list.Sort();
            var list2 = new List <ProvinciaVO>(list.Count);

            list2.AddRange(list.Select(current2 => new ProvinciaVO(current2.Objeto)));
            return(list2);
        }
示例#16
0
        private IList <IObjetoPuntuado <Direccion> > GetByAlturaEnPartidoProvincia(string calle, int altura, string partido, int provincia)
        {
            var list       = new List <IObjetoPuntuado <Direccion> >();
            var tokenizer  = Tokenizer.FromString(calle, 3);
            var tokenizer2 = Tokenizer.FromString(partido, 1);
            var evaluador  = new Evaluador(tokenizer, tokenizer, new IEvaluator[0]);

            evaluador.Evaluators.Add(new PuntajeEvaluator());
            var evaluador2 = new Evaluador(tokenizer2, tokenizer2, new IEvaluator[0]);

            evaluador2.Evaluators.Add(new PuntajeEvaluator());
            var num   = evaluador.Evaluar();
            var num2  = evaluador2.Evaluar();
            var list2 = (provincia < 0) ? DAOFactory.PoligonalDAO.GetByAlturaSinProvincia(tokenizer.ToArray(), altura) : DAOFactory.PoligonalDAO.GetByAlturaEnProvincia(tokenizer.ToArray(), altura, provincia);

            foreach (var current in list2)
            {
                evaluador.Option  = Tokenizer.Create(current.Poligonal);
                evaluador2.Option = Tokenizer.Create(current.Poligonal.Partido);
                var num3 = evaluador.Evaluar();
                var num4 = evaluador2.Evaluar();
                foreach (var current2 in current.Poligonal.Partido.Localidades)
                {
                    evaluador2.Option = Tokenizer.Create(current2);
                    var num5 = evaluador2.Evaluar();
                    if (num5 > num4)
                    {
                        num4 = num5;
                    }
                }
                if (num3 > num / 2.0 && num4 > num2 / 2.0)
                {
                    list.Add(new ObjetoPuntuado <Direccion>(num3 + num4, current));
                }
            }
            list.Sort();
            return(list);
        }
        protected void rptEvaluadoresPosibles_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            obtenerSesion();
            //Encontrar el elemento en el DataSet  <- Esta es la clave, ¿cómo lo encuentro?
            //agregarlo a la lista de sesión

            Evaluador evaluador = (Evaluador)e.Item.DataItem;

            if (e.CommandName == "seleccionado")
            {
                lst.Add(evaluador);
            }
            else
            {
                Evaluador eval = lst.Find(x => x.InfoEmpleado.Cve == evaluador.InfoEmpleado.Cve &&
                                          x.Asignaciones[0].Dias == evaluador.Asignaciones[0].Dias &&
                                          x.Asignaciones[0].Inicio == evaluador.Asignaciones[0].Inicio &&
                                          x.Asignaciones[0].Fin == evaluador.Asignaciones[0].Fin);
                lst.RemoveAt(lst.IndexOf(eval));
            }
            subirSesion(lst);
            DiasTotales();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Rol"] != null)
            {
                if (Session["Rol"].ToString() != "Evaluador")
                {
                    Response.Redirect("Login.aspx");
                }
            }
            else
            {
                Response.Redirect("Login.aspx");
            }

            plcEvaluar.Visible = false;
            if (!IsPostBack)
            {
                if (Session["IdEvaluador"] != null)
                {
                    int idEvaluador = Convert.ToInt32(Session["IdEvaluador"].ToString());
                    List <Emprendimiento> empAEvaluar = Evaluador.buscarEmpDeEvaluador(idEvaluador);
                    if (empAEvaluar.Count == 0)
                    {
                        lblMensajeDrop.Text = " No tiene evaluaciones pendinetes";
                    }
                    else
                    {
                        ddlEmp.DataSource     = empAEvaluar;
                        ddlEmp.DataTextField  = "Titulo";
                        ddlEmp.DataValueField = "CodId";
                        ddlEmp.DataBind();

                        plhSelEmp.Visible = true;
                    }
                }
            }
        }
示例#19
0
        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            string mensaje     = "No se pudo agregar";
            int    CodIdEmp    = Convert.ToInt32(ddlEmp.SelectedValue);
            int    idEvaluador = Convert.ToInt32(ddlEv.SelectedValue);

            if (Evaluador.verificarEvaluador(idEvaluador, CodIdEmp))
            {
                Evaluador ev = new Evaluador();
                ev.IdEvaluador = idEvaluador;

                if (ev.agregarEmprendimiento(CodIdEmp))
                {
                    mensaje = "Se agrego correctamente";
                }
            }
            else
            {
                mensaje += "\n El evaluador ya se encuentra en este emprendimiento";
            }


            lblMensaje.Text = mensaje;
        }
示例#20
0
        public List <IObjetoPuntuado <Direccion> > GetDireccionSmartSearch(string calle, int altura, string esquina, string partido, string provincia, double lat, double lon)
        {
            var flag       = string.IsNullOrEmpty(partido.Trim());
            var flag2      = string.IsNullOrEmpty(provincia.Trim());
            var flag3      = altura > 0;
            var list       = new List <IObjetoPuntuado <Direccion> >();
            var list2      = new List <bool>();
            var list3      = new List <bool>();
            var tokenizer  = Tokenizer.FromString(calle, 3);
            var tokenizer2 = flag3 ? null : Tokenizer.FromString(esquina, 3);
            var tokenizer3 = flag ? null : Tokenizer.FromString(partido, 1);
            var tokenizer4 = flag2 ? null : Tokenizer.FromString(provincia, 0);
            var evaluador  = new Evaluador(tokenizer, tokenizer, new IEvaluator[0]);
            var evaluador2 = flag3 ? null : new Evaluador(tokenizer2, tokenizer2, new IEvaluator[0]);
            var evaluador3 = flag ? null : new Evaluador(tokenizer3, tokenizer3, new IEvaluator[0]);
            var evaluador4 = flag2 ? null : new Evaluador(tokenizer4, tokenizer4, new IEvaluator[0]);

            evaluador.Evaluators.Add(new PuntajeEvaluator());
            if (!flag3)
            {
                evaluador2.Evaluators.Add(new PuntajeEvaluator());
            }
            if (!flag)
            {
                evaluador3.Evaluators.Add(new PuntajeEvaluator());
            }
            if (!flag2)
            {
                evaluador4.Evaluators.Add(new PuntajeEvaluator());
            }
            var num       = evaluador.Evaluar();
            var num2      = flag3 ? 0.0 : evaluador2.Evaluar();
            var num3      = flag ? 0.0 : evaluador3.Evaluar();
            var num4      = flag2 ? 0.0 : evaluador4.Evaluar();
            var direccion = DAOFactory.PoligonalDAO.GetDireccion(tokenizer.ToArray(), altura, flag3 ? null : tokenizer2.ToArray(), flag ? null : tokenizer3.ToArray(), flag2 ? null : tokenizer4.ToArray(), lat, lon);

            foreach (var current in direccion)
            {
                evaluador.Option = Tokenizer.Create(current.Poligonal);
                if (!flag3)
                {
                    evaluador2.Option = Tokenizer.Create(current.Esquina);
                }
                if (!flag)
                {
                    evaluador3.Option = Tokenizer.Create(current.Poligonal.Partido);
                }
                if (!flag2)
                {
                    evaluador4.Option = Tokenizer.Create(current.Poligonal.Partido.Provincia);
                }
                var num5 = evaluador.Evaluar();
                var num6 = flag3 ? 0.0 : evaluador2.Evaluar();
                var num7 = flag ? 0.0 : evaluador3.Evaluar();
                var num8 = flag2 ? 0.0 : evaluador4.Evaluar();
                if (!flag)
                {
                    foreach (var current2 in current.Poligonal.Partido.Localidades)
                    {
                        evaluador3.Option = Tokenizer.Create(current2);
                        var num9 = evaluador3.Evaluar();
                        if (num9 > num7)
                        {
                            num7 = num9;
                        }
                    }
                }
                if (num5 > num / 2.0 && (flag3 || num6 > num2 / 2.0) && (flag || num7 > num3 / 2.0) && (flag2 || num8 > num4 / 2.0))
                {
                    list.Add(new ObjetoPuntuado <Direccion>(num5 + num6 + num7 + num8, current));
                    list2.Add(num4 > 0.0 && num8 == num4);
                    list3.Add(num3 > 0.0 && num7 == num3);
                }
            }
            return(list);
        }
示例#21
0
 public static bool EvaluarCondicion(object objeto, Condicion condicion, Evaluador <object> evaluador, bool buscarEvaluadorGenerico = true)
 {
     return(EvaluarCondicion <object>(objeto, condicion, evaluador, buscarEvaluadorGenerico));
 }
示例#22
0
        protected void btnIngresar_Click(object sender, EventArgs e)
        {
            string email      = txtEmail.Text;
            string contrasena = txtContrasena.Text;
            string rol        = "";
            string mensaje    = "Error al dar de alta";

            if (rbtAdmin.Checked)
            {
                rol = "Administrador";
                if (email != "" && contrasena.Length >= 8 && rol != "")
                {
                    if (Usuario.buscarPorEmail(email) == null)
                    {
                        Usuario u = new Usuario
                        {
                            Email      = email,
                            Contrasena = contrasena,
                            Rol        = rol
                        };

                        if (u.insertar())
                        {
                            mensaje = "Se dio de alta correctamente";
                        }
                    }
                    else
                    {
                        mensaje += "\n El usuario " + email + " ya existe.";
                    }
                }
                else
                {
                    mensaje += "\n Ingrese datos correctamente";
                }
            }
            else
            {
                if (rbtEvaluador.Checked)
                {
                    rol = "Evaluador";
                    string cedula       = txtCedula.Text;
                    string nombre       = txtNombre.Text;
                    string telefono     = txtTelefono.Text;
                    int    calificacion = -1;
                    if (txtCalificacion.Text != "")
                    {
                        calificacion = Convert.ToInt32(txtCalificacion.Text);
                    }

                    if (email != "" && contrasena.Length >= 8 && rol != "" && cedula != "" && nombre != "" && telefono != "" && calificacion >= 1 && calificacion <= 4)
                    {
                        if (Usuario.buscarPorEmail(email) == null)
                        {
                            Evaluador ev = new Evaluador
                            {
                                Email        = email,
                                Contrasena   = contrasena,
                                Rol          = rol,
                                Cedula       = cedula,
                                Nombre       = nombre,
                                Telefono     = telefono,
                                Calificacion = calificacion
                            };

                            if (ev.insertar())
                            {
                                mensaje = "Se dio de alta correctamente";
                            }
                        }
                        else
                        {
                            mensaje += "\n El usuairio " + email + " ya existe";
                        }
                    }
                    else
                    {
                        mensaje += "\n Ingrese datos correctamente";
                    }
                }
            }
            lblMensaje.Text = mensaje;
        }
示例#23
0
        public override void exportarRolAWord(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte)
        {
            //   docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait;

            docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait;
            docBuilder.CurrentSection.PageSetup.PaperSize   = PaperSize.Letter;
            docBuilder.CurrentSection.PageSetup.LeftMargin  = 40;
            docBuilder.CurrentSection.PageSetup.RightMargin = 40;

            //  escribirEncabezado(docBuilder, instancia, estructuraReporte, true);

            imprimirTituloRol(docBuilder, rolAExportar);
            var             lista  = new List <ConceptoReporteDTO>();
            var             lista2 = new List <ConceptoReporteDTO>();
            var             lista3 = new List <ConceptoReporteDTO>();
            HechoReporteDTO hecho  = null;

            foreach (ConceptoReporteDTO concepto in estructuraReporte.Roles[rolAExportar.Rol])
            {
                if (concepto.Hechos != null)
                {
                    foreach (String llave in concepto.Hechos.Keys)
                    {
                        hecho = concepto.Hechos[llave];
                        if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)))
                        {
                            if (!ConceptoHiper.Contains(concepto.IdConcepto))
                            {
                                escribirConceptoEnTablaNota(docBuilder, estructuraReporte, hecho, concepto);
                            }
                            string tipoNumerico = ObtenertipoDato(concepto, TIPO_DATO_MONETARY);

                            if (concepto.TipoDato == tipoNumerico && concepto.IdConcepto != ID_Importe && concepto.IdConcepto != ID_IVA && concepto.IdConcepto != ID_Total)
                            {
                                lista.Add(concepto);
                                banderahecho = 1;
                            }
                            else if (banderahecho == 1)
                            {
                                PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista);
                                banderahecho = 0;
                                lista.Clear();
                            }
                            string tipoNoNegativo = ObtenertipoDato(concepto, TIPO_DATO_NoNEGATIVO);
                            if (concepto.TipoDato == tipoNoNegativo)
                            {
                                lista2.Add(concepto);
                                banderahecho = 2;
                            }
                            else if (banderahecho == 2)
                            {
                                PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista2);
                                banderahecho = 0;
                                lista2.Clear();
                            }
                            string tipoDecimal = ObtenertipoDato(concepto, TIPO_DATO_DECIMAL);
                            if (concepto.TipoDato == tipoNoNegativo)
                            {
                                lista3.Add(concepto);
                                banderahecho = 3;
                            }
                            else if (banderahecho == 3)
                            {
                                PintaTabla(docBuilder, instancia, rolAExportar, estructuraReporte, lista3);
                                banderahecho = 0;
                                lista3.Clear();
                            }

                            string conceptoAdosColumnas = ObtenertipoDato(concepto, TIPO_DATO_SI_NO);

                            if (concepto.TipoDato == conceptoAdosColumnas || concepto.IdConcepto == ID_Tipo_Oferta ||
                                concepto.IdConcepto == ID_Denominacion_moneda || concepto.IdConcepto == ID_Pesos || concepto.IdConcepto == ID_Pesos1)
                            {
                                escribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte);
                            }
                        }
                    }

                    if (hipercubosSerie.Contains(concepto.IdConcepto))
                    {
                        docBuilder.Writeln();
                        var      conceptoActual = concepto;
                        string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None);
                        string   ConceptoHipercubo = (d[0]);
                        PintaTablaDimensionSerie(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte, conceptoActual);
                    }
                    else if (hipercubosExist.Contains(concepto.IdConcepto))
                    {
                        docBuilder.Writeln();

                        string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None);
                        string   ConceptoHipercubo = (d[0]);
                        PintaTablaDimensionExplicita(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte);
                    }
                }
            }

            banderahecho = 0;
            Evaluador.Clear();
            ConceptoHiper.Clear();
        }
示例#24
0
        private void PintaTablaDimensionSerie(DocumentBuilder docBuilder, String valor, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte, ConceptoReporteDTO concepto)
        {
            docBuilder.Writeln();
            // var listaConseptosReportes = estructuraReporte.Hipercubos;
            foreach (var dato in estructuraReporte.Hipercubos)
            {
                var      variable = dato;
                string[] d        = variable.Key.Split(new string[] { "Table" }, StringSplitOptions.None);
                string   conceptoHipercuboTable = (d[0]);

                if (conceptoHipercuboTable == valor && !Evaluador.Contains(variable.Key))
                {
                    ConceptoReporteDTO primerConcepto = null;

                    if (!estructuraReporte.Roles.ContainsKey(rolAExportar.Rol))
                    {
                        throw new IndexOutOfRangeException("No existe el rol [" + rolAExportar.Rol + "] dentro del listado de roles del reporte.");
                    }
                    if (estructuraReporte.Roles.ContainsKey(rolAExportar.Rol))
                    {
                        if (!concepto.Abstracto)
                        {
                            primerConcepto = concepto;
                            break;
                        }
                    }

                    var hipercubo = variable;


                    Table tablaActual = docBuilder.StartTable();
                    Color colorTitulo = Color.FromArgb(ColorTituloTabla[0], ColorTituloTabla[1], ColorTituloTabla[2]);
                    docBuilder.ParagraphFormat.SpaceAfter  = 0;
                    docBuilder.ParagraphFormat.SpaceBefore = 2;

                    //docBuilder.InsertCell();
                    // docBuilder.EndRow();
                    docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
                    docBuilder.Font.Color = Color.White;
                    docBuilder.Font.Size  = TamanioLetraContenidoTabla;

                    docBuilder.InsertCell();

                    docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
                    docBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;
                    docBuilder.Font.Color = Color.White;
                    establecerFuenteTituloCampo(docBuilder);
                    docBuilder.Font.Size = TamanioLetraTituloTabla;
                    docBuilder.Write("Serie [Eje]");
                    docBuilder.CellFormat.HorizontalMerge = CellMerge.None;

                    if (hipercubo.Value.Titulos.Count > 0)
                    {
                        for (var indexTitulo = 0; indexTitulo < hipercubo.Value.Titulos.Count; indexTitulo++)
                        {
                            var titulo = hipercubo.Value.Titulos[indexTitulo];
                            docBuilder.InsertCell();
                            docBuilder.Write(titulo);
                        }
                        docBuilder.EndRow();
                    }



                    establecerFuenteTituloCampo(docBuilder);
                    docBuilder.Font.Size = TamanioLetraTituloTabla;

                    int fila = 0;


                    if (concepto.Abstracto)
                    {
                        fila = +1;

                        for (int iCell = 0; iCell < fila; iCell++)
                        {
                            docBuilder.InsertCell();
                            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
                        }
                    }
                    if (concepto.Abstracto)
                    {
                        docBuilder.Bold       = true;
                        docBuilder.Font.Color = Color.White;
                        docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;

                        docBuilder.ParagraphFormat.LeftIndent = (concepto.Tabuladores < 0 ? concepto.Tabuladores : 0);
                        docBuilder.ParagraphFormat.Alignment  = ParagraphAlignment.Left;
                        docBuilder.Write(concepto.Valor);
                        docBuilder.InsertCell();
                        docBuilder.EndRow();
                        //  tituloAbstracto.Add(concepto.Valor);
                    }
                    else
                    {
                        docBuilder.Bold = false;
                    }


                    docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                    docBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;
                    docBuilder.Font.Color = Color.Black;
                    docBuilder.Bold       = false;
                    foreach (var idConcepto in hipercubo.Value.Hechos.Keys)
                    {
                        var matrizPlantillaContexto = hipercubo.Value.Hechos[idConcepto];
                        docBuilder.InsertCell();
                        var nombreConcepto =
                            DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, idConcepto, "es", ReporteXBRLUtil.ETIQUETA_DEFAULT);
                        docBuilder.Write(nombreConcepto);
                        ConceptoHiper.Add(idConcepto);

                        foreach (var idPlantillaContexto in matrizPlantillaContexto.Keys)
                        {
                            docBuilder.CellFormat.WrapText       = true;
                            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
                            var listaHechos = matrizPlantillaContexto[idPlantillaContexto];
                            for (var indexHecho = 0; indexHecho < listaHechos.Length; indexHecho++)
                            {
                                var hecho      = listaHechos[indexHecho];
                                var valorHecho = hecho.Valor;

                                docBuilder.InsertCell();
                                if (hecho.NoEsNumerico)
                                {
                                    docBuilder.CellFormat.WrapText       = true;
                                    docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
                                }
                                else
                                {
                                    docBuilder.CellFormat.WrapText       = false;
                                    docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Right;
                                }


                                if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)) && instancia.Taxonomia.ConceptosPorId.ContainsKey(hecho.IdConcepto))
                                {
                                    var conceptoHecho = instancia.Taxonomia.ConceptosPorId[hecho.IdConcepto];
                                    if (conceptoHecho.TipoDato.Contains(TIPO_DATO_TEXT_BLOCK))
                                    {
                                        WordUtil.InsertHtml(docBuilder, hecho.IdConcepto + ":" + hecho.Id, PARRAFO_HTML_NOTAS_Texblock + valorHecho + "</p>", false, true);

                                        //docBuilder.InsertHtml(PARRAFO_HTML_NOTAS_Texblock + limpiarBloqueTexto(valorHecho) + "</p>", true);
                                    }
                                    else
                                    {
                                        docBuilder.Writeln(valorHecho);
                                    }
                                }
                            }
                        }

                        docBuilder.EndRow();
                    }


                    establecerBordesGrisesTabla(tablaActual);
                    docBuilder.EndTable();
                    docBuilder.Writeln();
                    docBuilder.Writeln();
                    Evaluador.Add(variable.Key);
                    break;
                }
            }
        }
示例#25
0
        private void PintaTablaDimensionExplicita(DocumentBuilder docBuilder, String valor, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte)
        {
            docBuilder.Writeln();

            foreach (var dato in estructuraReporte.Hipercubos)
            {
                if (dato.Value.Hechos.Count > 0)
                {
                    var variable = dato;
                    // modificaciones en la condicion para obtner un hipercubo exlicito
                    string[] d = variable.Key.Split(new string[] { "Table" }, StringSplitOptions.None);
                    string   conceptoHipercuboTable = (d[0]);

                    if (conceptoHipercuboTable == valor && !Evaluador.Contains(variable.Key))
                    {
                        var hipercubo = variable;
                        docBuilder.InsertBreak(BreakType.PageBreak);
                        Table tablaActual = docBuilder.StartTable();
                        Color colorTitulo = Color.FromArgb(ColorTituloTabla[0], ColorTituloTabla[1], ColorTituloTabla[2]);
                        docBuilder.ParagraphFormat.SpaceAfter  = 0;
                        docBuilder.ParagraphFormat.SpaceBefore = 2;

                        //docBuilder.InsertCell();
                        // docBuilder.EndRow();
                        // Formatos de celdas que le da el color de fondo de los titulos de la tabla que se crea
                        docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
                        docBuilder.Font.Color = Color.White;
                        docBuilder.Font.Size  = TamanioLetraContenidoTabla;

                        //   docBuilder.InsertCell();


                        foreach (var idConcepto in hipercubo.Value.Hechos.Keys)
                        {
                            var matrizPlantillaContexto = hipercubo.Value.Hechos[idConcepto];
                            docBuilder.InsertCell();
                            var nombreConcepto =
                                DesgloseDeCreditosHelper
                                .obtenerEtiquetaDeConcepto(instancia.Taxonomia, idConcepto, "es", ReporteXBRLUtil.ETIQUETA_DEFAULT);
                            docBuilder.Write(nombreConcepto);
                        }
                        docBuilder.EndRow();

                        docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                        docBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;
                        docBuilder.Font.Color = Color.Black;
                        var cantidadCeldasVacias = hipercubo.Value.Hechos.Count - 1;

                        if (hipercubo.Value.Hechos.Count == 0)
                        {
                            return;
                        }

                        foreach (var idPlantillaContexto in hipercubo.Value.Utileria.configuracion.PlantillasContextos.Keys)
                        {
                            var plantilla        = hipercubo.Value.Utileria.configuracion.PlantillasContextos[idPlantillaContexto];
                            var miembroPlantilla = plantilla.ValoresDimension[0];
                            var nombreMiembro    =
                                DesgloseDeCreditosHelper.obtenerEtiquetaDeConcepto(instancia.Taxonomia, miembroPlantilla.IdItemMiembro, "es", ReporteXBRLUtil.ETIQUETA_DEFAULT);

                            /* docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.LightGray;
                             * docBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;
                             * docBuilder.Font.Color = Color.Black;*/
                            docBuilder.CellFormat.Shading.BackgroundPatternColor = colorTitulo;
                            docBuilder.Font.Color = Color.White;
                            docBuilder.Font.Size  = TamanioLetraContenidoTabla;
                            docBuilder.InsertCell();
                            docBuilder.Write(nombreMiembro);
                            if (cantidadCeldasVacias > 0)
                            {
                                for (var indexMiembro = 0; indexMiembro < cantidadCeldasVacias; indexMiembro++)
                                {
                                    docBuilder.InsertCell();
                                    docBuilder.Write(String.Empty);
                                }
                                docBuilder.EndRow();
                            }
                            var countType = 0;
                            docBuilder.CellFormat.Shading.BackgroundPatternColor = Color.White;
                            docBuilder.CellFormat.PreferredWidth = PreferredWidth.Auto;
                            docBuilder.Font.Color = Color.Black;
                            docBuilder.Bold       = false;
                            foreach (var idConcepto in hipercubo.Value.Hechos.Keys)
                            {
                                var matrizPlantillaContexto = hipercubo.Value.Hechos[idConcepto];
                                if (matrizPlantillaContexto.ContainsKey(idPlantillaContexto))
                                {
                                    countType = matrizPlantillaContexto[idPlantillaContexto].Length;
                                }
                                else
                                {
                                    LogUtil.Error("No se encontro la definición para la plantilla de contexto:" + idPlantillaContexto);
                                }
                                break;
                            }
                            Boolean dimensiones = false;
                            for (var indexType = 0; indexType < countType; indexType++)
                            {
                                if (indexType > 0)
                                {
                                    dimensiones = true;
                                }

                                docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
                                foreach (var idConcepto in hipercubo.Value.Hechos.Keys)
                                {
                                    var matrizPlantillaContexto = hipercubo.Value.Hechos[idConcepto];
                                    ConceptoHiper.Add(idConcepto);
                                    var listaHechos = matrizPlantillaContexto[idPlantillaContexto];
                                    if (listaHechos != null)
                                    {
                                        var hecho = listaHechos[indexType];

                                        var valorHecho = hecho.Valor;
                                        if (dimensiones)
                                        {
                                            docBuilder.EndRow();
                                            docBuilder.InsertCell();
                                            dimensiones = false;
                                        }
                                        else
                                        {
                                            docBuilder.InsertCell();
                                        }

                                        if (hecho.NoEsNumerico)
                                        {
                                            docBuilder.CellFormat.WrapText       = true;
                                            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
                                        }
                                        else
                                        {
                                            docBuilder.CellFormat.WrapText       = false;
                                            docBuilder.ParagraphFormat.Alignment = ParagraphAlignment.Right;
                                        }
                                        if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)))
                                        {
                                            docBuilder.Write(valorHecho);
                                        }
                                    }
                                }
                            }
                            docBuilder.RowFormat.AllowBreakAcrossPages = true;
                            docBuilder.RowFormat.HeadingFormat         = false;
                            if (countType > 0)
                            {
                                docBuilder.EndRow();
                            }
                        }


                        establecerBordesGrisesTabla(tablaActual);
                        docBuilder.EndTable();
                        docBuilder.Writeln();
                        Evaluador.Add(variable.Key);
                    }
                }
            }
        }
示例#26
0
        public override void exportarRolAWord(DocumentBuilder docBuilder, DocumentoInstanciaXbrlDto instancia, IndiceReporteDTO rolAExportar, ReporteXBRLDTO estructuraReporte)
        {
            docBuilder.CurrentSection.PageSetup.Orientation = Orientation.Portrait;
            docBuilder.CurrentSection.PageSetup.PaperSize   = PaperSize.Letter;
            docBuilder.CurrentSection.PageSetup.LeftMargin  = 40;
            docBuilder.CurrentSection.PageSetup.RightMargin = 40;
            Idioma = estructuraReporte.Lenguaje;


            escribirEncabezado(docBuilder, instancia, estructuraReporte, true);

            //Titulo rol
            imprimirTituloRol(docBuilder, rolAExportar);

            HechoReporteDTO hecho = null;

            ConceptoHiper.Add("");

            foreach (ConceptoReporteDTO concepto in estructuraReporte.Roles[rolAExportar.Rol])
            {
                if (ConceptosHipercubos.ContainsKey(concepto.IdConcepto))
                {
                    continue;
                }
                if (concepto.Hechos != null)
                {
                    foreach (String llave in concepto.Hechos.Keys)
                    {
                        hecho = concepto.Hechos[llave];
                        if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)))
                        {
                            if (!ConceptoHiper.Contains(concepto.IdConcepto))
                            {
                                //Escribe titulo campo
                                escribirConceptoEnTablaNota(docBuilder, estructuraReporte, hecho, concepto);
                            }
                        }
                    }
                }

                string conceptoAdosColumnas = ObtenertipoDato(concepto, TIPO_DATO_SI_NO);

                if (concepto.TipoDato != null &&
                    (concepto.TipoDato == conceptoAdosColumnas || concepto.Numerico))
                {
                    EscribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte);
                }

                string conceptoPDF = ObtenertipoDato(concepto, TIPO_DATOS_BASE64_FILE);

                if (concepto.TipoDato == conceptoPDF)
                {
                    if ((hecho != null && !String.IsNullOrWhiteSpace(hecho.Valor)))
                    {
                        EscribirADosColumnasConceptoValor(docBuilder, concepto.IdConcepto, rolAExportar, estructuraReporte);
                    }
                }


                if (hipercubosSerie.Contains(concepto.IdConcepto))
                {
                    docBuilder.Writeln();
                    var      conceptoActual = concepto;
                    string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None);
                    string   ConceptoHipercubo = (d[0]);
                    PintaTablaDimensionSerie(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte, conceptoActual);
                }
                if (hipercubosExist.Contains(concepto.IdConcepto))
                {
                    docBuilder.Writeln();

                    string[] d = concepto.IdConcepto.Split(new string[] { "Abstract" }, StringSplitOptions.None);
                    string   ConceptoHipercubo = (d[0]);
                    PintaTablaDimensionExplicita(docBuilder, ConceptoHipercubo, instancia, rolAExportar, estructuraReporte);
                }
                else if (concepto.IdConcepto.Equals("ar_pros_CompanyAdministratorsAbstract"))
                {
                    ImprimeTitulo(docBuilder, concepto);
                    PintaAdministradores(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_CompanyAdministratorsTable"]);
                }
                else if (concepto.IdConcepto.Equals("ar_pros_CompanyShareholdersAbstract"))
                {
                    ImprimeTitulo(docBuilder, concepto);
                    PintaAccionistas(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_CompanyShareholdersTable"]);
                }
                else if (concepto.IdConcepto.Equals("ar_pros_SubcommitteesSynopsis"))
                {
                    ImprimeTitulo(docBuilder, concepto);
                    PintaListaSubcomites(docBuilder, instancia, estructuraReporte.Hipercubos["ar_pros_SubcommitteesTable"]);
                }
            }

            Evaluador.Clear();
            ConceptoHiper.Clear();
        }