示例#1
0
        public List <MovimientosViewModel> MovimientosRecientes(DateTime fecha)
        {
            ControlUsuario cu = new ControlUsuario();

            int[] sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession());
            using (var context = new RHEntities())
            {
                return((from k in context.Kardex
                        join emp in context.Empleado on k.IdEmpleado equals emp.IdEmpleado
                        join con in context.Empleado_Contrato on emp.IdEmpleado equals con.IdEmpleado
                        join s in context.Sucursal on emp.IdSucursal equals s.IdSucursal
                        join c in context.Cliente on s.IdCliente equals c.IdCliente
                        join e in context.Empresa on con.IdEmpresaFiscal equals e.IdEmpresa
                        where k.Fecha >= fecha && k.Tipo != 5 && k.Tipo != 6 && k.Tipo != 4 && sucursales.Contains(s.IdSucursal)
                        select new MovimientosViewModel
                {
                    IdEmpleado = emp.IdEmpleado,
                    Nombres = emp.Nombres,
                    Paterno = emp.APaterno,
                    Materno = emp.AMaterno,
                    Fecha = k.Fecha,
                    Cliente = c.Nombre,
                    Empresa = e.RazonSocial,
                    IdTipoMovimiento = k.Tipo,
                }
                        ).ToList());
            }
        }
示例#2
0
        //SUA

        public static string SuaGenerarLayout(int idUsuario, int tipoMovimiento, int empresa, DateTime FechaI, DateTime FechaF, string path, string pathDescarga)
        {
            List <Empresa>           listaEmpresas  = new List <Empresa>();
            List <Cliente>           listaClientes  = new List <Cliente>();
            List <Empleado>          listaEmpleados = new List <Empleado>();
            List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>();
            List <Kardex>            listaKardex    = new List <Kardex>();
            var            nombreArchivo            = "Aseg.txt";
            Empresa        itemEmpresa;
            var            itemAbrev  = new List <Sucursal_Empresa>();
            ControlUsuario cu         = new ControlUsuario();
            var            sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession());

            //var FechaI = new DateTime(fecI.Year, fecI.Month, fecI.Day, 05, 00, 0);
            //var FechaF = new DateTime(fecF.Year, fecF.Month, fecF.Day, 23, 50, 0);


            using (var context = new RHEntities())
            {
                itemEmpresa = context.Empresa.FirstOrDefault(x => x.IdEmpresa == empresa);
                itemAbrev   = context.Sucursal_Empresa.Where(x => x.IdEmpresa == itemEmpresa.IdEmpresa && x.IdEsquema == 1).ToList();
                //ALTA-REINGRESO
                switch (tipoMovimiento)
                {
                case 1:
                    nombreArchivo = "Aseg " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt";
                    //Buscamos los contratos con fecha de Alta imss  en el rango de fecha
                    listaContratos = (from c in context.Empleado_Contrato
                                      where c.FechaIMSS >= FechaI && c.FechaIMSS <= FechaF &&
                                      c.Status == true && c.BajaIMSS == null
                                      // && c.IdEmpresaFiscal != null
                                      && c.IdEmpresaFiscal == empresa && c.IsReingreso == false
                                      select c).ToList();
                    break;

                case 2:    //Baja - Reingreso
                    nombreArchivo = "Movt " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt";
                    //Buscamos los contratos con fecha de Alta imss  en el rango de fecha
                    listaContratos = (from c in context.Empleado_Contrato
                                      where c.BajaIMSS >= FechaI && c.BajaIMSS <= FechaF &&
                                      c.Status == false && c.BajaIMSS != null
                                      // && c.IdEmpresaFiscal != null
                                      && c.IdEmpresaFiscal == empresa
                                      select c).ToList();
                    break;
                }

                //Obtenemos el array de Id empleados
                listaContratos = listaContratos.Where(x => sucursales.Contains(x.IdSucursal)).ToList();
                var arrayIdEmpleados = listaContratos.Select(x => x.IdEmpleado).ToArray();

                listaEmpleados = (from e in context.Empleado
                                  where arrayIdEmpleados.Contains(e.IdEmpleado)
                                  select e).ToList();

                //listaEmpresas = context.Empresa.ToList();
            }

            //string[] lineasArchivo = new string[listaContratos.Count];
            //int linea = 0;
            //foreach (var itemContrato in listaContratos)
            //{
            //var itemEmpresa = listaEmpresas.FirstOrDefault(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal.Value);
            //var itemEmpleado = listaEmpleados.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado);
            //string clave = itemAbrev.Where(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal && x.IdSucursal == itemContrato.IdSucursal).Select(x => x.Clave_Imss).FirstOrDefault();
            //string strReg = "";

            List <string> strReg = new List <string>();

            switch (tipoMovimiento)
            {
            case 1:
                strReg = SuaAseg(itemEmpresa, listaEmpleados, listaContratos, itemAbrev);
                var pathUsuario = Utils.ValidarFolderUsuario(idUsuario, path);
                var archivoIdse = pathUsuario + nombreArchivo;
                File.WriteAllLines(archivoIdse, strReg);
                break;

            case 2:
                strReg = SuaMovt(itemEmpresa, listaEmpleados, listaContratos, itemAbrev);
                var pathUsuario2      = Utils.ValidarFolderUsuario(idUsuario, path);
                var archivoSuaMovBaja = pathUsuario2 + nombreArchivo;
                File.WriteAllLines(archivoSuaMovBaja, strReg);
                break;
            }

            return(pathDescarga + "\\" + idUsuario + "\\" + nombreArchivo);
        }
示例#3
0
        //IDSE

        public static string IdseGenerarLayout(int idUsuario, int tipoMovimiento, int empresa, DateTime FechaI, DateTime FechaF, string path, string pathDescarga)
        {
            List <Empresa>           listaEmpresas  = new List <Empresa>();
            List <Cliente>           listaClientes  = new List <Cliente>();
            List <Empleado>          listaEmpleados = new List <Empleado>();
            List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>();
            List <Kardex>            listaKardex    = new List <Kardex>();
            var            nombreArchivo            = "REINGRESO.txt";
            Empresa        itemEmpresa;
            ControlUsuario cu         = new ControlUsuario();
            var            sucursales = cu.GetSucursalesUsuario(ControlAcceso.GetUsuarioEnSession());

            //var FechaI = new DateTime(fecI.Year, fecI.Month, fecI.Day, 05, 00, 0);
            //var FechaF = new DateTime(fecF.Year, fecF.Month, fecF.Day, 23, 50, 0);

            using (var context = new RHEntities())
            {
                itemEmpresa = context.Empresa.FirstOrDefault(x => x.IdEmpresa == empresa);

                //ALTA-REINGRESO
                switch (tipoMovimiento)
                {
                case 1:
                    nombreArchivo = "REINGRESO " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt";
                    //Buscamos los contratos con fecha de Alta imss  en el rango de fecha
                    listaContratos = (from c in context.Empleado_Contrato
                                      where c.FechaIMSS >= FechaI && c.FechaIMSS <= FechaF
                                      // && c.Status == true && c.BajaIMSS == null //querian que laas altas o bajas aparezcan en ambos reportes
                                      // && c.IdEmpresaFiscal != null
                                      && c.IdEmpresaFiscal == empresa
                                      select c).ToList();
                    break;

                case 2:
                    nombreArchivo = " BAJA " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt";
                    //Buscamos los contratos con fecha de Alta imss  en el rango de fecha
                    listaContratos = (from c in context.Empleado_Contrato
                                      where c.BajaIMSS >= FechaI && c.BajaIMSS <= FechaF &&
                                      c.Status == false && c.BajaIMSS != null
                                      // && c.IdEmpresaFiscal != null
                                      && c.IdEmpresaFiscal == empresa
                                      select c).ToList();
                    break;

                case 3:    //Cambio Salsario
                    nombreArchivo = "MODIFICACION " + itemEmpresa.RazonSocial.Substring(0, 5) + ".txt";

                    //Buscamos en Kardex los cambios de salario
                    listaKardex = (from k in context.Kardex
                                   where k.Fecha >= FechaI && k.Fecha <= FechaF &&
                                   k.Tipo == (int)TipoKardex.SDI
                                   select k).ToList();

                    //Obtener los idEMpleados
                    var arrayIdEmp = listaKardex.Select(x => x.IdEmpleado).ToList();

                    //Buscamos los cumple imss
                    //var listaCumpleImss = (from ci in context.CumpleIMSS
                    //                      where ci.FechaIMSS >= FechaI && ci.FechaIMSS <= FechaF
                    //                      select ci).ToList();


                    //Buscamos los contratos activos de los empleados
                    listaContratos = (from c in context.Empleado_Contrato
                                      where arrayIdEmp.Contains(c.IdEmpleado) &&
                                      c.Status == true
                                      select c).ToList();


                    break;
                }

                //Obtenemos el array de Id empleados
                listaContratos = listaContratos.Where(x => sucursales.Contains(x.IdSucursal)).ToList();
                var arrayIdEmpleados = listaContratos.Select(x => x.IdEmpleado).ToArray();

                listaEmpleados = (from e in context.Empleado
                                  where arrayIdEmpleados.Contains(e.IdEmpleado)
                                  select e).ToList();

                //listaEmpresas = context.Empresa.ToList();
            }

            string[] lineasArchivo = new string[listaContratos.Count];
            int      linea         = 0;

            foreach (var itemContrato in listaContratos)
            {
                //var itemEmpresa = listaEmpresas.FirstOrDefault(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal.Value);
                var itemEmpleado = listaEmpleados.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado);

                string strReg = "";
                switch (tipoMovimiento)
                {
                case 1:
                    strReg = IdseRegistroAltaReingreso(itemEmpresa, itemEmpleado, itemContrato);
                    break;

                case 2:
                    strReg = IdseRegistroBaja(itemEmpresa, itemEmpleado, itemContrato);
                    break;

                case 3:
                    var itemKardex = listaKardex.FirstOrDefault(x => x.IdEmpleado == itemContrato.IdEmpleado);

                    strReg = IdseRegistroCambioSalario(itemEmpresa, itemEmpleado, itemContrato, itemKardex);
                    break;
                }

                lineasArchivo[linea] = strReg;
                linea++;
            }



            //Creamos el folder para guardar el archivo
            var pathUsuario = Utils.ValidarFolderUsuario(idUsuario, path);
            var archivoIdse = pathUsuario + nombreArchivo;

            File.WriteAllLines(archivoIdse, lineasArchivo);

            return(pathDescarga + "\\" + idUsuario + "\\" + nombreArchivo);
        }