Beispiel #1
0
        public bool agregarEmpleadosAPeriodo(int[] arrayE, int idPeriodo)
        {
            var result = false;

            try
            {
                //Validar periodo
                var itemPeriodo = ctx.NOM_PeriodosPago.FirstOrDefault(x => x.IdPeriodoPago == idPeriodo);

                //Si el periodo ya esta autorizado, ya no se podrá hacer cambios
                if (itemPeriodo.Autorizado == true)
                {
                    return(false);
                }


                foreach (var e in arrayE)
                {
                    var item = new NOM_Empleado_PeriodoPago
                    {
                        IdEmpleado             = e,
                        IdPeriodoPago          = idPeriodo,
                        DiasDescuentoInfonavit = -1
                    };
                    ctx.NOM_Empleado_PeriodoPago.Add(item);
                    var t = ctx.SaveChanges();
                }
                result = true;
                return(result);
            }
            catch (Exception e)
            {
                return(result);
            }
        }
Beispiel #2
0
        public bool UpdatePeriodoPagoEmpleados(int IdPeriodo, int[] empleados = null)
        {
            using (var context = new RHEntities())
            {
                //Validar periodo
                var itemPeriodo = context.NOM_PeriodosPago.FirstOrDefault(x => x.IdPeriodoPago == IdPeriodo);

                //Si el periodo ya esta autorizado, ya no se podrá hacer cambios
                if (itemPeriodo.Autorizado == true)
                {
                    return(false);
                }

                //Elimina los empleados que tenía configurado anteriormente
                var old = context.NOM_Empleado_PeriodoPago.Where(x => x.IdPeriodoPago == IdPeriodo).ToList();
                if (old.Count > 0)
                {
                    context.NOM_Empleado_PeriodoPago.RemoveRange(old);
                }

                if (empleados != null)
                {
                    //Agrega empleado por empleado
                    foreach (var item in empleados)
                    {
                        var registro = new NOM_Empleado_PeriodoPago();
                        registro.IdPeriodoPago          = IdPeriodo;
                        registro.IdEmpleado             = item;
                        registro.DiasDescuentoInfonavit = -1;
                        context.NOM_Empleado_PeriodoPago.Add(registro);
                    }
                }
                return(context.SaveChanges() > 0 ? true : false);
            }
        }
Beispiel #3
0
        public bool agregarEmpleadosAPeriodo(int[] arrayE, int idPeriodo)
        {
            var result = false;

            try
            {
                using (var context = new RHEntities()) //mtyc
                {
                    //Validar periodo
                    var itemPeriodo = context.NOM_PeriodosPago.FirstOrDefault(x => x.IdPeriodoPago == idPeriodo);

                    //Si el periodo ya esta autorizado, ya no se podrá hacer cambios
                    if (itemPeriodo.Autorizado == true)
                    {
                        return(false);
                    }

                    //validamos si es finiquito que solo pueda tener un empleado
                    if (itemPeriodo.IdTipoNomina == 11) //finiquito
                    {
                        var listaAsignados = (from p in context.NOM_Empleado_PeriodoPago
                                              where  p.IdPeriodoPago == idPeriodo
                                              select p.IdEmp_Periodo).ToList();

                        if (listaAsignados.Any())
                        {
                            return(false);
                        }
                    }


                    var listaContratos = (from c in context.Empleado_Contrato
                                          where arrayE.Contains(c.IdEmpleado)
                                          select c).ToList();


                    foreach (var e in arrayE)
                    {
                        var itemContrato = listaContratos.OrderByDescending(x => x.IdContrato).FirstOrDefault(x => x.IdEmpleado == e);

                        var item = new NOM_Empleado_PeriodoPago
                        {
                            IdEmpleado             = e,
                            IdPeriodoPago          = idPeriodo,
                            DiasDescuentoInfonavit = -1,
                            IdContrato             = itemContrato?.IdContrato ?? 0
                        };
                        context.NOM_Empleado_PeriodoPago.Add(item);
                        var t = context.SaveChanges();
                    }


                    result = true;
                    return(result);
                }
            }
            catch (Exception e)
            {
                return(result);
            }
        }
Beispiel #4
0
        public bool guardarPeriodo(int[] arrayE, string[] periodoDatos, int idsucursal, int idCliente, int idUsuario)
        {
            try
            {
                //validacion
                if (periodoDatos == null)
                {
                    return(false);
                }

                if (Convert.ToInt32(periodoDatos[1]) == 0)
                {
                    return(false);
                }

                using (var context = new RHEntities())
                {
                    var    fechaInicio = Convert.ToDateTime(periodoDatos[3]);
                    var    anio        = fechaInicio.Year.ToString();
                    int    mes         = fechaInicio.Month;
                    var    fechaActual = DateTime.Now;
                    double calc        = (double)mes / (double)2;
                    var    bim         = (int)Math.Ceiling(calc);
                    var    esSindicato = false;
                    int    tipoNomina  = 0;
                    List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>();

                    var ejercicio = context.NOM_Ejercicio_Fiscal.Where(x => x.Anio == anio).Select(x => x.IdEjercicio).FirstOrDefault();

                    if (arrayE != null)//Para crear un periodo vacio donde no hay empleado seleccionados
                    {
                        listaContratos = (from c in context.Empleado_Contrato
                                          where arrayE.Contains(c.IdEmpleado)
                                          select c).ToList();
                    }

                    bool soloComplemento = false;
                    if (periodoDatos.Length == 9)
                    {
                        soloComplemento = Convert.ToBoolean(periodoDatos[8]);
                    }

                    //Get tipo de Nomina del periodo
                    tipoNomina = Convert.ToInt32(periodoDatos[0]);

                    if (tipoNomina == 17) //Sindicato
                    {
                        esSindicato = true;
                    }

                    var item = new NOM_PeriodosPago
                    {
                        IdTipoNomina    = tipoNomina, // Convert.ToInt32(periodoDatos[0]),
                        DiasPeriodo     = Convert.ToInt32(periodoDatos[1]),
                        Descripcion     = periodoDatos[2],
                        Fecha_Inicio    = Convert.ToDateTime(periodoDatos[3]),
                        Fecha_Fin       = Convert.ToDateTime(periodoDatos[4]),
                        Fecha_Pago      = Convert.ToDateTime(periodoDatos[4]),
                        IdEjercicio     = ejercicio,
                        Bimestre        = bim,
                        IdSucursal      = idsucursal,
                        Ultimo          = Convert.ToBoolean(periodoDatos[5]),
                        Especial        = Convert.ToBoolean(periodoDatos[6]),
                        IdTipoNominaSat = Convert.ToInt32(periodoDatos[7]),
                        SoloComplemento = soloComplemento,
                        Sindicato       = esSindicato,
                        FechaReg        = DateTime.Now,
                        IdCliente       = idCliente,
                        IdUsuario       = idUsuario
                    };

                    if (tipoNomina == 16)         //Asimilado
                    {
                        item.IdTipoNominaSat = 2; //E - extraordinaria
                    }


                    if (item.IdTipoNomina <= 0)
                    {
                        return(false);
                    }

                    context.NOM_PeriodosPago.Add(item);
                    var t = context.SaveChanges();

                    int idperiodo = item.IdPeriodoPago;

                    List <NOM_Empleado_PeriodoPago> listaEmpleadosPerio = new List <NOM_Empleado_PeriodoPago>();

                    if (arrayE != null)
                    {
                        foreach (var p in arrayE)
                        {
                            var itemContrato =
                                listaContratos.OrderByDescending(x => x.IdContrato)
                                .FirstOrDefault(x => x.IdEmpleado == p);

                            var itemEp = new NOM_Empleado_PeriodoPago
                            {
                                IdEmpleado             = p,
                                IdPeriodoPago          = idperiodo,
                                DiasDescuentoInfonavit = -1,
                                IdContrato             = itemContrato?.IdContrato ?? 0
                            };

                            listaEmpleadosPerio.Add(itemEp);
                        }
                        //guardamos la lista
                        context.NOM_Empleado_PeriodoPago.AddRange(listaEmpleadosPerio);
                        context.SaveChanges();
                    }
                }


                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Beispiel #5
0
        public bool guardarPeriodo(int[] arrayE, string[] periodoDatos, int idsucursal, int idCliente, int idUsuario)
        {
            try
            {
                //validacion
                if (periodoDatos == null)
                {
                    return(false);
                }

                if (Convert.ToInt32(periodoDatos[1]) == 0)
                {
                    return(false);
                }

                var    fechafin    = Convert.ToDateTime(periodoDatos[4]);
                var    anio        = fechafin.Year.ToString();
                int    mes         = fechafin.Month;
                var    fechaActual = DateTime.Now;
                double calc        = (double)mes / (double)2;
                var    bim         = (int)Math.Ceiling(calc);
                var    esSindicato = false;
                int    tipoNomina  = 0;

                var ejercicio = ctx.NOM_Ejercicio_Fiscal.Where(x => x.Anio == anio).Select(x => x.IdEjercicio).FirstOrDefault();

                bool soloComplemento = false;
                if (periodoDatos.Length == 9)
                {
                    soloComplemento = Convert.ToBoolean(periodoDatos[8]);
                }

                //Get tipo de Nomina del periodo
                tipoNomina = Convert.ToInt32(periodoDatos[0]);

                if (tipoNomina == 17) //Sindicato
                {
                    esSindicato = true;
                }

                var item = new NOM_PeriodosPago
                {
                    IdTipoNomina    = tipoNomina, // Convert.ToInt32(periodoDatos[0]),
                    DiasPeriodo     = Convert.ToInt32(periodoDatos[1]),
                    Descripcion     = periodoDatos[2],
                    Fecha_Inicio    = Convert.ToDateTime(periodoDatos[3]),
                    Fecha_Fin       = Convert.ToDateTime(periodoDatos[4]),
                    Fecha_Pago      = Convert.ToDateTime(periodoDatos[4]),
                    IdEjercicio     = ejercicio,
                    Bimestre        = bim,
                    IdSucursal      = idsucursal,
                    Ultimo          = Convert.ToBoolean(periodoDatos[5]),
                    Especial        = Convert.ToBoolean(periodoDatos[6]),
                    IdTipoNominaSat = Convert.ToInt32(periodoDatos[7]),
                    SoloComplemento = soloComplemento,
                    Sindicato       = esSindicato,
                    FechaReg        = DateTime.Now,
                    IdCliente       = idCliente,
                    IdUsuario       = idUsuario
                };

                if (tipoNomina == 16)         //Asimilado
                {
                    item.IdTipoNominaSat = 2; //E - extraordinaria
                }


                if (item.IdTipoNomina <= 0)
                {
                    return(false);
                }

                ctx.NOM_PeriodosPago.Add(item);
                var t = ctx.SaveChanges();

                int idperiodo = item.IdPeriodoPago;
                foreach (var p in arrayE)
                {
                    var peri = new NOM_Empleado_PeriodoPago
                    {
                        IdEmpleado             = p,
                        IdPeriodoPago          = idperiodo,
                        DiasDescuentoInfonavit = -1
                    };
                    ctx.NOM_Empleado_PeriodoPago.Add(peri);
                    ctx.SaveChanges();
                }


                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }