Exemple #1
0
        private void CargaFamilia()
        {
            this.Items = new ObservableCollection <Jerarquia>();
            var servicioFamilia    = FabricaClienteServicio.Instancia.CrearCliente <IServicioABM <Familia> >();
            var servicioSubFamilia = FabricaClienteServicio.Instancia.CrearCliente <IServicioABM <Subfamilia> >();
            var Familia            = servicioFamilia.ObtenerPorId(this.Modelo.Id, CargarRelaciones.NoCargarNada, Sistema.Instancia.EmpresaActual.Codigo);

            Jerarquia familia    = null;
            Jerarquia subFamilia = null;

            if (Familia != null)
            {
                familia        = new Jerarquia();
                familia.Nivel  = 0;
                familia.Id     = Familia.Id;
                familia.Nombre = Familia.Nombre;
                familia.Codigo = Familia.Codigo;

                var subFamilias = servicioSubFamilia.ObtenerLista(Familia.Id, CargarRelaciones.NoCargarNada, Sistema.Instancia.EmpresaActual.Codigo);
                foreach (var SubFamilia in subFamilias)
                {
                    subFamilia        = new Jerarquia();
                    subFamilia.Nivel  = 2;
                    subFamilia.Id     = SubFamilia.Id;
                    subFamilia.Codigo = SubFamilia.Codigo;
                    subFamilia.Nombre = SubFamilia.Nombre;
                    subFamilia.Padre  = familia;
                    subFamilia.Nodos  = null;
                    familia.Nodos.Add(subFamilia);
                }
                Items.Add(familia);
            }
        }
Exemple #2
0
        public static List <Jerarquia> comboJerarquia()
        {
            SqlConnection    cn    = null;
            List <Jerarquia> lista = new List <Jerarquia>();

            try
            {
                cn = new SqlConnection(cadenaConexion);
                cn.Open();
                string        sqlText = "SELECT idJerarquia, nombre FROM Jerarquia";
                SqlCommand    cmd     = new SqlCommand(sqlText, cn);
                SqlDataReader dr      = cmd.ExecuteReader();
                while (dr.Read())
                {
                    Jerarquia jerarquia   = new Jerarquia();
                    int       idJerarquia = dr.GetInt32(dr.GetOrdinal("idJerarquia"));
                    jerarquia.idJerarquia = idJerarquia;
                    String nombre = dr.GetString(dr.GetOrdinal("nombre"));
                    jerarquia.nombre = nombre;
                    lista.Add(jerarquia);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.ToString());
            }
            finally
            {
                if (cn != null && cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
            }
            return(lista);
        }
Exemple #3
0
 public static JerarquiaModelo From(Jerarquia categoria)
 {
     return(new JerarquiaModelo(
                id: categoria.Id.AsInt(),
                denominacion: categoria.Denominacion,
                valor: categoria.Valor
                ));
 }
        //retorna verdadero si la ClavePersona coinside con ClavePersona del registro, alguno de los autores o hiperjefes de los autores
        public async Task <Boolean> EvidenciaDownload(int idRegistro, String ClavePersona)
        {
            try
            {
                var entitie = await dbGI.DbSetPlanNegocioEvolutivo.AsNoTracking()
                              .Include(x => x.PlanNegocioEvolAutores)
                              .FirstOrDefaultAsync(e => e.PlanNegocioEvolutivoId == idRegistro);

                if (entitie.TipoAcceso == 1)
                { //1: publico
                    return(true);
                }
                else
                {
                    if (entitie.ClavePersona.Equals(ClavePersona))
                    {
                        return(true);
                    }
                    if (entitie != null && entitie.PlanNegocioEvolAutores != null)
                    {
                        var autor = entitie.PlanNegocioEvolAutores.FirstOrDefault(x => x.ClavePersona.Equals(ClavePersona));
                        if (autor != null)
                        {
                            return(true);
                        }
                    }
                    else
                    {
                        JerarquiaRepository hiper = new JerarquiaRepository();
                        Jerarquia           jer   = new Jerarquia(null, ClavePersona, null);
                        jer.JefeHiperonimo = ClavePersona;
                        var autores = entitie.PlanNegocioEvolAutores.Select(x => x.ClavePersona).ToList();
                        PersonasRepository dbPers = new PersonasRepository();
                        var personas = await dbPers.GetAllCollectionWithoutStatus(autores);

                        var unidadesClave = personas.Select(x => x.ClaveUnidad).ToList();

                        if (unidadesClave != null)
                        {
                            foreach (var u in unidadesClave)
                            {
                                jer.UnidadOrganizacionalId = u;
                                if (await hiper.isJefeHiperonimoByUnidadOrganizacionalId(jer))
                                {
                                    return(true);
                                }
                            }
                        }
                    }
                }
                return(false);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Exemple #5
0
        public async Task <Boolean> isJefeHiperonimoByUnidadOrganizacionalId(Jerarquia model)
        {
            if (model == null || String.IsNullOrEmpty(model.UnidadOrganizacionalId))
            {
                return(false);
            }
            var unidad = await new UORepository().GetById(model.UnidadOrganizacionalId);
            //excepcion si no hay unidad
            String claveResponsable = unidad.ClaveResponsable;

            return(await this.isJefeHiperonimo(new Jerarquia(claveResponsable, model.JefeHiperonimo, null)));
        }
Exemple #6
0
        public override void DeleteAgrupamientos(string Hierarchy)
        {
            if (this.Elementos != null)
            {
                foreach (CuentaView cv in this.Elementos)
                {
                    string IdCuenta = cv.IdCuenta;
                    tsa_AgrupCuentasDataset.tsa_AgrupCuentasRow row = businessrules.tsa_AgrupCuentas.NewRow();
                    row = businessrules.tsa_AgrupCuentas.GetByPk(IdCuenta, Hierarchy);
                    if (row != null)
                    {
                        row.Delete();
                        businessrules.tsa_AgrupCuentas.Update(row);

                        //Si hay otra agrupcuentas no hay q eliminarla solo actualizarla, si no hay otra directamente borro la de cuentas jerarquia
                        DataSet dataset = businessrules.tsa_AgrupCuentas.GetList(IdCuenta);
                        if (dataset.Tables[0].Rows.Count == 0)
                        {
                            tsa_CuentasJerarquiasDataset.tsa_CuentasJerarquiasRow rowCJ = businessrules.tsa_CuentasJerarquias.GetByPk(IdCuenta);
                            rowCJ.Delete();
                            businessrules.tsa_CuentasJerarquias.Update(rowCJ);
                        }
                        //Else hay q actualizar la q jerarquia q corresponde = ""
                        else
                        {
                            if (!Jerarquia.Equals(string.Empty))
                            {
                                CuentasJerarquiaAuxiliar c = new CuentasJerarquiaAuxiliar();
                                string    nomenclatura     = c.nomenclaturaReal(Jerarquia);
                                ArrayList aux = mz.erp.systemframework.Util.Parse(Jerarquia, 20);
                                tsa_CuentasJerarquiasDataset.tsa_CuentasJerarquiasRow rowCJ = AddTsa_CuentasJerarquias(IdCuenta);
                                rowCJ[nomenclatura + "a"] = string.Empty;
                                rowCJ[nomenclatura + "b"] = string.Empty;
                                rowCJ[nomenclatura + "c"] = string.Empty;
                                rowCJ[nomenclatura + "d"] = string.Empty;
                                businessrules.tsa_CuentasJerarquias.Update(rowCJ);
                            }
                        }
                    }
                }
            }
        }
        public async Task <Boolean> EvidenciaDownload(int idRegistro, String ClavePersona)
        {
            try
            {
                var entitie = await dbGI.DbSetPropuesta.AsNoTracking()
                              .FirstOrDefaultAsync(e => e.Id == idRegistro);

                if (entitie.TipoAcceso == 1)
                { //1: publico
                    return(true);
                }
                else
                {
                    if (entitie.ClaveProponentePrincipal.Equals(ClavePersona))
                    {
                        return(true);
                    }
                    else if (entitie.ClavePersona.Equals(ClavePersona))
                    {
                        return(true);
                    }
                    else
                    {
                        JerarquiaRepository hiper = new JerarquiaRepository();
                        Jerarquia           jer   = new Jerarquia(null, ClavePersona, null);
                        jer.JefeHiperonimo         = ClavePersona;
                        jer.UnidadOrganizacionalId = entitie.UnidadOrganizacionalId;
                        return(await hiper.isJefeHiperonimoByUnidadOrganizacionalId(jer));
                    }
                }
                return(false);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Exemple #8
0
        private void CargaArea()
        {
            this.Items = new ObservableCollection <Jerarquia>();
            var servicioArea       = FabricaClienteServicio.Instancia.CrearCliente <IServicioABM <Area> >();
            var servicioSector     = FabricaClienteServicio.Instancia.CrearCliente <IServicioABM <Sector> >();
            var servicioSubSector  = FabricaClienteServicio.Instancia.CrearCliente <IServicioABM <Subsector> >();
            var servicioFamilia    = FabricaClienteServicio.Instancia.CrearCliente <IServicioABM <Familia> >();
            var servicioSubFamilia = FabricaClienteServicio.Instancia.CrearCliente <IServicioABM <Subfamilia> >();
            var Area = servicioArea.ObtenerPorId(this.Modelo.Id, CargarRelaciones.NoCargarNada, Sistema.Instancia.EmpresaActual.Codigo);

            //Jerarquia raiz = new Jerarquia();
            Jerarquia area       = null;
            Jerarquia sector     = null;
            Jerarquia subSector  = null;
            Jerarquia familia    = null;
            Jerarquia subFamilia = null;

            if (Area != null)
            {
                area        = new Jerarquia();
                area.Nivel  = 0;
                area.Id     = Area.Id;
                area.Nombre = Area.Nombre;
                area.Codigo = Area.Codigo;
                var sectores = servicioSector.ObtenerLista(Area.Id, CargarRelaciones.NoCargarNada, Sistema.Instancia.EmpresaActual.Codigo);
                foreach (var Sector in sectores)
                {
                    sector        = new Jerarquia();
                    sector.Id     = Sector.Id;
                    sector.Nivel  = 1;
                    sector.Nombre = Sector.Nombre;
                    sector.Codigo = Sector.Codigo;
                    sector.Padre  = area;
                    var subSectores = servicioSubSector.ObtenerLista(Sector.Id, CargarRelaciones.NoCargarNada, Sistema.Instancia.EmpresaActual.Codigo);
                    foreach (var SubSector in subSectores)
                    {
                        subSector        = new Jerarquia();
                        subSector.Nivel  = 2;
                        subSector.Id     = SubSector.Id;
                        subSector.Nombre = SubSector.Nombre;
                        subSector.Codigo = SubSector.Codigo;
                        subSector.Padre  = sector;
                        var familias = servicioFamilia.ObtenerLista(SubSector.Id, CargarRelaciones.NoCargarNada, Sistema.Instancia.EmpresaActual.Codigo);
                        foreach (var Familia in familias)
                        {
                            familia        = new Jerarquia();
                            familia.Nivel  = 3;
                            familia.Id     = Familia.Id;
                            familia.Codigo = Familia.Codigo;
                            familia.Nombre = Familia.Nombre;
                            familia.Padre  = subSector;
                            var subFamilias = servicioSubFamilia.ObtenerLista(Familia.Id, CargarRelaciones.NoCargarNada, Sistema.Instancia.EmpresaActual.Codigo);
                            foreach (var SubFamilia in subFamilias)
                            {
                                subFamilia        = new Jerarquia();
                                subFamilia.Nivel  = 4;
                                subFamilia.Id     = SubFamilia.Id;
                                subFamilia.Codigo = SubFamilia.Codigo;
                                subFamilia.Nombre = SubFamilia.Nombre;
                                subFamilia.Padre  = familia;
                                subFamilia.Nodos  = null;
                                familia.Nodos.Add(subFamilia);
                            }
                            subSector.Nodos.Add(familia);
                        }
                        sector.Nodos.Add(subSector);
                    }
                    area.Nodos.Add(sector);
                }
                Items.Add(area);
            }
        }
        public async Task <Boolean> EvidenciaDownload(int idRegistro, String ClavePersona)
        {
            try
            {
                var entitie = await dbGI.DbSetIdeaInnovadora.AsNoTracking()
                              .FirstOrDefaultAsync(e => e.IdeaInnovadoraId == idRegistro);

                if (entitie.TipoAcceso == 1)
                { //1: publico
                    return(true);
                }
                else
                {
                    var autores = await dbGI.DbSetAutoresIdea.AsNoTracking()
                                  .Where(x => x.IdeaInnovadoraId == entitie.IdeaInnovadoraId &&
                                         ClavePersona.Equals(x.ClavePersona))
                                  .FirstOrDefaultAsync();

                    if (autores != null)
                    {
                        return(true);
                    }

                    if (entitie.ClavePersona.Equals(ClavePersona))
                    {
                        return(true);
                    }
                    else
                    {
                        JerarquiaRepository hiper = new JerarquiaRepository();
                        Jerarquia           jer   = new Jerarquia(null, ClavePersona, null);
                        jer.JefeHiperonimo = ClavePersona;

                        var autorPrincipal = await dbGI.DbSetAutoresIdea.AsNoTracking()
                                             .Where(x => x.IdeaInnovadoraId == entitie.IdeaInnovadoraId &&
                                                    x.ContribucionProponenteId == 0)
                                             .FirstOrDefaultAsync();

                        if (autorPrincipal != null)
                        {
                            var fechaActual = DateTime.Now;
                            var personaRow  = await(from persona in dbGI.DbSetPersonas //Investigadores
                                                    where persona.ClavePersona == autorPrincipal.ClavePersona && persona.FechaEfectiva == dbGI.DbSetPersonas.Where(
                                                        p => p.FechaEfectiva <= fechaActual &&
                                                        p.ClavePersona == persona.ClavePersona
                                                        ).Max(e => e.FechaEfectiva)
                                                    select persona).FirstOrDefaultAsync();
                            if (personaRow != null)
                            {
                                jer.UnidadOrganizacionalId = personaRow.ClaveUnidad;
                                return(await hiper.isJefeHiperonimoByUnidadOrganizacionalId(jer));
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
                return(false);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Exemple #10
0
                                                       public async Task <IHttpActionResult> isJefeHiperonimoByUnidadOrganizacionalId(Jerarquia model)
                                                       {
                                                           try { /*log.Info(new MDCSet(this.ControllerContext.RouteData));*/
                                                               var Jerarquia = await _repository.isJefeHiperonimoByUnidadOrganizacionalId(model);

                                                               return(Ok(Jerarquia));
                                                           }
                                                           catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                                                                                 return(InternalServerError(e)); }
                                                       }
Exemple #11
0
        /// <summary>
        /// Se requiere EmpleadoId, JefeHiperonimo </summary>
        public async Task <Boolean> isJefeHiperonimo(Jerarquia model)
        {
            try
            {
                if (model == null || String.IsNullOrEmpty(model.EmpleadoId) || String.IsNullOrEmpty(model.JefeHiperonimo))
                {
                    return(false);
                }
                if (model.EmpleadoId.Equals(model.JefeHiperonimo))
                {
                    return(true);
                }

                Personas empleado = await dbP.GetByClave(model.EmpleadoId);

                if (empleado == null)
                {
                    return(false);
                }
                var idUnidad = empleado.ClaveUnidad;
                var unidad   = await dbP.GetUnidadOrgByClaveWithoutStatus(idUnidad);

                if (unidad == null)
                {
                    return(false);
                }
                var responsable = await dbP.GetResponsableByClaveUnidadWithoutStatus(unidad);

                if (responsable == null)
                {
                    return(false);
                }

                if (responsable.ClavePersona == model.JefeHiperonimo)
                {
                    return(true);
                }
                if (String.IsNullOrEmpty(unidad.padre))
                {
                    return(false);
                }

//unidad padre: --------------------------------------
                var unidadPadre = await dbP.GetUnidadOrgByClaveWithoutStatus(unidad.padre);

                if (unidadPadre == null)
                {
                    return(false);
                }
                var responsablePadre = await dbP.GetResponsableByClaveUnidadWithoutStatus(unidadPadre);

                if (responsablePadre == null)
                {
                    return(false);
                }

                if (responsablePadre.ClavePersona == model.JefeHiperonimo)
                {
                    return(true);
                }
                if (String.IsNullOrEmpty(unidadPadre.padre))
                {
                    return(false);
                }

                return(await isJefeHiperonimo(new Jerarquia(responsablePadre.ClavePersona, model.JefeHiperonimo, null)));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }