Exemplo n.º 1
0
        public List <AreaParaDDJJ104> GetAreasParaDDJJ104(int mes, int anio, int id_area, Usuario usuario)
        {
            RepositorioPersonas      repoPersonas    = new RepositorioPersonas();
            RepositorioDeOrganigrama repoOrganigrama = new RepositorioDeOrganigrama(Conexion());
            //var un_Organigrama = repoOrganigrama.GetOrganigrama();
            DateTime fecha          = Convert.ToDateTime("15" + "/" + mes + "/" + anio);
            var      un_Organigrama = repoOrganigrama.GetOrganigramaSegunFechaDesde(fecha);

            List <AreaParaDDJJ104> areas = new List <AreaParaDDJJ104>();
            List <Area>            areas_completas;

            if (autorizador.ElUsuarioTienePermisosPara(usuario.Id, "ddjj104_mostrar_todas_las_areas"))
            {
                areas_completas = un_Organigrama.ObtenerAreas(false);
            }
            else
            {
                areas_completas = AreasConDDJJAdministradasPor(usuario);
            }

            ////FILTRO EL AREA QUE ESTOY CONSULTANDO
            //if (id_area > 0)
            //{
            //    areas_completas = areas_completas.FindAll(x => x.Id == id_area);
            //}

            areas_completas.ForEach(a =>
            {
                if (a.Id == 0)
                {
                    return;
                }

                var area       = new AreaParaDDJJ104();
                area.Id        = a.Id;
                area.Nombre    = a.Nombre;
                area.Jerarquia = a.Jerarquia;
                //area.DDJJ = new RepositorioDDJJ104().GetDDJJParaElArea(a).Find(x => x.Mes == mes && x.Anio == anio);
                List <DDJJ104_2001> listaddjj = new RepositorioDDJJ104().GetDDJJParaElArea(a, mes, anio);

                if (listaddjj.Count == 0)
                {
                    areas.Add(area);
                }
                else
                {
                    if (listaddjj.Count == 1)
                    {
                        area.DDJJ = listaddjj[0]; //new RepositorioDDJJ104().GetDDJJParaElArea(a).Find(x => x.Mes == mes && x.Anio == anio && x.Complementaria == 0);
                        areas.Add(area);
                    }
                    else
                    {
                        int contador = 0;
                        foreach (var item in listaddjj)
                        {
                            area           = new AreaParaDDJJ104();
                            area.Id        = a.Id;
                            area.Nombre    = a.Nombre;
                            area.Jerarquia = a.Jerarquia;
                            area.DDJJ      = listaddjj[contador]; //new RepositorioDDJJ104().GetDDJJParaElArea(a).Find(x => x.Mes == mes && x.Anio == anio && x.Complementaria == contador);

                            contador++;
                            areas.Add(area);
                        }
                    }
                }

                //CARGO LAS AREAS QUE DEPENDEN Y LAS PERSONAS
                //if (id_area > 0)
                //{
                //    area.Personas.AddRange(repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, a));
                //    //AreasSinDDJJInferioresA(a).ForEach(area_dependiente =>
                //    un_Organigrama.GetAreasInferioresDelArea(a).ForEach(area_dependiente =>
                //    {
                //        if (!area_dependiente.PresentaDDJJ)
                //        {
                //            var area_informal = new AreaParaDDJJ104();
                //            area_informal.Id = area_dependiente.Id;
                //            area_informal.Nombre = area_dependiente.Nombre;
                //            area_informal.Personas = repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, area_dependiente);
                //            area.AreasInformalesDependientes.Add(area_informal);
                //        }
                //    });
                //      area.DDJJ = new RepositorioDDJJ104().GetDDJJParaElArea(a).Find(x => x.Mes == mes && x.Anio == anio);

                //    var area_superior = un_Organigrama.AreaSuperiorDe(a);
                //    area.AreaSuperior = new AreaParaDDJJ104();
                //    area.AreaSuperior.Id = area_superior.Id;
                //    area.AreaSuperior.Nombre = area_superior.Nombre;
                //    area.Direccion = a.Direccion;
                //}
                //areas.Add(area);
            });


            return(areas);
            //List<AreaParaDDJJ104> lista_ddjj = new List<AreaParaDDJJ104>();
            //foreach (var un_area in areas_con_ddjj)
            //{
            //    ddjj_dto = new AreaParaDDJJ104();

            //    //--- Cargo el areas Formal (ddjj = 1) y Obtengo las personas de esa Area
            //    ddjj_dto.Area = un_area;
            //    un_area.Personas = repoPersonas.GetPersonasDelAreaReducida(un_area,2);
            //    contador_de_personas += un_area.Personas.Count();

            //    //--- Cargo el areas inferiores (ddjj = 0) y Obtengo las personas de esas Areas
            //    List<Persona> personasAreaInformales = new List<Persona>();
            //    personasAreaInformales = repoPersonas.GetPersonasDelAreaReducida(un_area, 0);
            //    if (personasAreaInformales.Count != 0)
            //    {
            //        un_area.Personas.AddRange(personasAreaInformales);
            //        contador_de_personas += personasAreaInformales.Count();
            //    }

            //    ddjj_dto.CantidadPersonas = contador_de_personas;
            //    ddjj_dto.Mes = mes;
            //    ddjj_dto.Anio = anio;
            //    ddjj_dto.Estado = new RepositorioDDJJ104().GetEstadoDDJJ(ddjj_dto);

            //    lista_ddjj.Add(ddjj_dto);

            //    contador_de_personas = 0;
            //}


            //return lista_ddjj;
        }
Exemplo n.º 2
0
        //public int GetEstadoDDJJ(AreaParaDDJJ104 ddjj)
        //{
        //    SqlDataReader dr;
        //    ConexionDB cn = new ConexionDB("dbo.PLA_GET_DDJJ104");
        //    cn.AsignarParametro("@Id_Area", ddjj.Area.Id);
        //    cn.AsignarParametro("@Mes", ddjj.Mes);
        //    cn.AsignarParametro("@Año", ddjj.Anio);

        //    dr = cn.EjecutarConsulta();

        //    int estado = 1;

        //    if (dr.Read())
        //    {
        //        estado = dr.GetInt16(dr.GetOrdinal("Estado"));
        //    }

        //    cn.Desconestar();

        //    return estado;
        //}


        public DDJJ104_2001 GenerarDDJJ104(Usuario usuario, AreaParaDDJJ104 area, int mes, int anio, Persona[] lista_persona, int estado_guardado, int complementaria)
        {
            ConexionDB cn = new ConexionDB("dbo.PLA_ADD_DDJJ104_Cabecera");

            cn.AsignarParametro("@Id_Area", area.Id);
            cn.AsignarParametro("@Mes", mes);
            cn.AsignarParametro("@Año", anio);
            cn.AsignarParametro("@Usuario_Generacion", usuario.Id);
            cn.AsignarParametro("@Estado", estado_guardado);
            cn.AsignarParametro("@Complementaria", complementaria);


            //INICIO TRANSACCION
            cn.BeginTransaction();

            int id_ddjj_nuevo = 0;

            try
            {
                id_ddjj_nuevo = (int)cn.EjecutarEscalar();

                if (id_ddjj_nuevo > 0)
                {
                    int orden = 1;
                    //foreach (var personas in new RepositorioPersonas().GetPersonasDelAreaParaDDJJ104(mes, anio, area )) //new Area(id_area)
                    foreach (var personas in area.Personas)
                    {
                        string[] Cat_Mod       = personas.Categoria.ToString().Split('#');
                        Persona  persona_lista = lista_persona.FirstOrDefault(x => x.Id == personas.Id);

                        cn.CrearComandoConTransaccionIniciada("dbo.PLA_ADD_DDJJ104_Detalle");
                        cn.AsignarParametro("@Id_DDJJ", id_ddjj_nuevo);
                        cn.AsignarParametro("@Id_Persona", personas.Id);
                        cn.AsignarParametro("@Orden", orden);
                        cn.AsignarParametro("@Id_Area_Persona", personas.Area.Id);
                        cn.AsignarParametro("@Mod_Contratacion", Cat_Mod[1].Trim());
                        cn.AsignarParametro("@Categoria", Cat_Mod[0].Trim());

                        cn.AsignarParametro("@Certificado", (persona_lista.EstaCertificadoEnLaDDJJ == true ? "S" : "N"));
                        cn.AsignarParametro("@Hora_Desde", persona_lista.CertificaHoraDesdeDDJJ);
                        cn.AsignarParametro("@Hora_Hasta", persona_lista.CertificaHoraHastaDDJJ);
                        cn.AsignarParametro("@Usuario_Generacion", usuario.Id);
                        cn.AsignarParametro("@Tipo_DDJJ", 1);

                        cn.EjecutarSinResultado();

                        orden++;
                    }


                    foreach (var areasDependiente in area.AreasInformalesDependientes)
                    {
                        foreach (var personas in areasDependiente.Personas)
                        {
                            string[] Cat_Mod       = personas.Categoria.ToString().Split('#');
                            Persona  persona_lista = lista_persona.FirstOrDefault(x => x.Id == personas.Id);

                            cn.CrearComandoConTransaccionIniciada("dbo.PLA_ADD_DDJJ104_Detalle");
                            cn.AsignarParametro("@Id_DDJJ", id_ddjj_nuevo);
                            cn.AsignarParametro("@Id_Persona", personas.Id);
                            cn.AsignarParametro("@Orden", orden);
                            cn.AsignarParametro("@Id_Area_Persona", personas.Area.Id);
                            cn.AsignarParametro("@Mod_Contratacion", Cat_Mod[1].Trim());
                            cn.AsignarParametro("@Categoria", Cat_Mod[0].Trim());

                            cn.AsignarParametro("@Certificado", (persona_lista.EstaCertificadoEnLaDDJJ == true ? "S" : "N"));
                            cn.AsignarParametro("@Hora_Desde", persona_lista.CertificaHoraDesdeDDJJ);
                            cn.AsignarParametro("@Hora_Hasta", persona_lista.CertificaHoraHastaDDJJ);
                            cn.AsignarParametro("@Usuario_Generacion", usuario.Id);
                            cn.AsignarParametro("@Tipo_DDJJ", 1);

                            cn.EjecutarSinResultado();

                            orden++;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                cn.RollbackTransaction();
                throw;
            }

            cn.CommitTransaction();
            cn.Desconestar();

            var ddjj = new DDJJ104_2001();

            ddjj.Anio            = anio;
            ddjj.Mes             = mes;
            ddjj.Id              = id_ddjj_nuevo;
            ddjj.FechaGeneracion = DateTime.Now;
            return(ddjj);
        }
Exemplo n.º 3
0
        public List <AreaParaDDJJ104> GetAreasParaDDJJ104InferioresA(int mes, int anio, int id_area, int complementaria, Usuario usuario)
        {
            RepositorioPersonas      repoPersonas    = new RepositorioPersonas();
            RepositorioDeOrganigrama repoOrganigrama = new RepositorioDeOrganigrama(Conexion());

            List <Area>            areas_completas = repoOrganigrama.GetAreasQueDependientesDe(id_area);
            List <AreaParaDDJJ104> areas           = new List <AreaParaDDJJ104>();

            areas_completas.ForEach(a =>
            {
                if (a.Id == 0)
                {
                    return;
                }

                if (a.PresentaDDJJ)
                {
                    var area    = new AreaParaDDJJ104();
                    area.Id     = a.Id;
                    area.Nombre = a.Nombre;
                    area.Personas.AddRange(repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, a, complementaria).FindAll(x => x.Area.Id == id_area));

                    if (area.Personas != null && area.Personas.Count > 0 && area.Personas[0].Esta_Cargada == 1)
                    {
                        //CARGO LAS AREAS QUE DEPENDEN Y LAS PERSONAS
                        areas_completas.ForEach(area_dependiente =>
                        {
                            if (!area_dependiente.PresentaDDJJ)
                            {
                                var area_informal      = new AreaParaDDJJ104();
                                area_informal.Id       = area_dependiente.Id;
                                area_informal.Nombre   = area_dependiente.Nombre;
                                area_informal.Personas = repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, a, complementaria).FindAll(x => x.Area.Id == area_informal.Id);

                                if (area_informal.Personas.Count > 0)
                                {
                                    area.AreasInformalesDependientes.Add(area_informal);
                                }
                            }
                        });
                        area.DDJJ = new RepositorioDDJJ104().GetDDJJParaElArea(a, mes, anio).Find(x => x.Mes == mes && x.Anio == anio);
                    }
                    else
                    {
                        //CARGO LAS AREAS QUE DEPENDEN Y LAS PERSONAS
                        areas_completas.ForEach(area_dependiente =>
                        {
                            if (!area_dependiente.PresentaDDJJ)
                            {
                                var area_informal      = new AreaParaDDJJ104();
                                area_informal.Id       = area_dependiente.Id;
                                area_informal.Nombre   = area_dependiente.Nombre;
                                area_informal.Personas = repoPersonas.GetPersonasDelAreaParaDDJJ104(mes, anio, area_dependiente, complementaria).FindAll(x => x.Area.Id == area_informal.Id);

                                if (area_informal.Personas.Count > 0)
                                {
                                    area.AreasInformalesDependientes.Add(area_informal);
                                }
                            }
                        });
                        area.DDJJ = new RepositorioDDJJ104().GetDDJJParaElArea(a, mes, anio).Find(x => x.Mes == mes && x.Anio == anio);
                    }
                    //var area_superior = un_Organigrama.AreaSuperiorDe(a);
                    //area.AreaSuperior = new AreaParaDDJJ104();
                    //area.AreaSuperior.Id = area_superior.Id;
                    //area.AreaSuperior.Nombre = area_superior.Nombre;
                    //area.Direccion = a.Direccion;


                    areas.Add(area);
                }
            });


            return(areas);
        }