Exemple #1
0
        public Object valorParametroCruce(Parametros parametrosGlobal, List <Cruce> listCruces, bool regresarValor, RazonesSociales razonesSocialesActual, Usuario usuarioActual /*true=valor,false=byte[]*/)
        {
            Object valorParametros = null;

            try
            {
                if (regresarValor)
                {
                    valorParametros = parametrosGlobal.valor;
                }
                else
                {
                    valorParametros = parametrosGlobal.imagen;
                }
                for (int i = 0; i < listCruces.Count(); i++)
                {
                    if (listCruces[i].elementosAplicacion.entidad == typeof(RazonesSociales).Name)
                    {
                        if (razonesSocialesActual != null)
                        {
                            if (listCruces[i].claveElemento.Equals(razonesSocialesActual.clave))
                            {
                                if (regresarValor)
                                {
                                    valorParametros = listCruces[i].valor;
                                }
                                else
                                {
                                    valorParametros = listCruces[i].imagen;
                                }
                            }
                        }
                    }
                    else if (listCruces[i].elementosAplicacion.entidad == typeof(Usuario).Name)
                    {
                        if (usuarioActual != null)
                        {
                            if (listCruces[i].claveElemento.Equals(usuarioActual.clave))
                            {
                                if (regresarValor)
                                {
                                    valorParametros = listCruces[i].valor;
                                }
                                else
                                {
                                    valorParametros = listCruces[i].imagen;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("valorParametroCruce()1_Error: ").Append(ex));
            }
            return(valorParametros);
        }
Exemple #2
0
        public bool parametroNombreCompletoDetalleRecibo(Parametros parametros, List <Cruce> listCruces, RazonesSociales razonesSocialesActual, Usuario usuarioActual)
        {
            bool   parametroNombreCompletoDetalleRecibo;
            String valorParametros = (String)valorParametroCruce(parametros, listCruces, true, razonesSocialesActual, usuarioActual);

            parametroNombreCompletoDetalleRecibo = string.Equals(valorParametros, "1", StringComparison.OrdinalIgnoreCase);
            return(parametroNombreCompletoDetalleRecibo);
        }
Exemple #3
0
        public bool parametroPermiteTipoCostos(Parametros parametros, List <Cruce> listCruces, RazonesSociales razonesSocialesActual, Usuario usuarioActual)
        {
            bool   manejaTipoCentroCostos = false;
            String valorParametros        = (String)valorParametroCruce(parametros, listCruces, true, razonesSocialesActual, usuarioActual);

            manejaTipoCentroCostos = string.Equals(valorParametros, "1", StringComparison.OrdinalIgnoreCase);
            return(manejaTipoCentroCostos);
        }
Exemple #4
0
        public Mensaje getSDIActualPorEmpleadoyRegPatActual(string claveEmpleados, string claveRegistroPatronal, DateTime fecha, RazonesSociales razonesSociales, DBContextAdapter dbContext)
        {
            SalariosIntegrados salarioIntegrado;

            try
            {
                inicializaVariableMensaje();
                setSession(dbContext.context);
                getSession().Database.BeginTransaction();
                salarioIntegrado = (from s in getSession().Set <SalariosIntegrados>()
                                    join em in getSession().Set <Empleados>() on
                                    s.empleados.id equals em.id
                                    where em.razonesSociales.clave == razonesSociales.clave &&
                                    em.clave == claveEmpleados && s.registroPatronal.clave == claveRegistroPatronal &&
                                    s.fecha <= fecha
                                    orderby s.fecha descending
                                    select s).Take(1).SingleOrDefault();

                mensajeResultado.resultado = salarioIntegrado;
                mensajeResultado.noError   = 0;
                mensajeResultado.error     = "";
                getSession().Database.CurrentTransaction.Commit();
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("getSDIActualPorEmpleadoyRegPatActual()1_Error: ").Append(ex));
                mensajeResultado.noError   = ControlErroresEntity.buscaNoErrorPorExcepcion(ex);
                mensajeResultado.error     = ex.GetBaseException().ToString();
                mensajeResultado.resultado = null;
                getSession().Database.CurrentTransaction.Rollback();
            }
            return(mensajeResultado);
        }
Exemple #5
0
        public Mensaje calcularVacacionesDevengadasEmpleados(RazonesSociales razonesSociales, object[,] factorIntegracion, DBContextSimple dbContextSimple, DBContextMaster dbContextMaestra, bool usaCommit)
        {
            Object[,] reglaFactor = factorIntegracion;
            bool usoBDMaestra = false;

            devengadaActual = new Dictionary <string, VacacionesDevengadas>();
            try
            {
                //inicializaVariableMensaje();
                //if (dbContextSimple == null)
                //{
                //    setSession(dbContext);
                //}
                //else
                //{
                //    setSession(dbContextSimple);
                //}

                // dbContextSimple.Database.BeginTransaction();
                ControlVacDeveng control = (from c in dbContextSimple.Set <ControlVacDeveng>()
                                            where c.razonesSociales.clave == razonesSociales.clave &&
                                            c.fecha == (from ct in dbContextSimple.Set <ControlVacDeveng>()
                                                        select new { ct.fecha }).Max(p => p.fecha)
                                            select c).SingleOrDefault();

                DateTime        fechaUltimDev;
                List <DateTime> diasPendientes = null;
                if (control == null)
                {
                    diasPendientes = new List <DateTime>();
                    diasPendientes.Add(DateTime.Now);
                }
                else
                {
                    fechaUltimDev  = Convert.ToDateTime(control.fecha);
                    diasPendientes = getDaysBetweenDates(fechaUltimDev, new DateTime());
                }
                int d = 0;
                ControlVacDeveng controlCalculadas = null;
                for (d = 0; d < diasPendientes.Count; d++)
                {
                    if (diasPendientes.Count > 0)
                    {
                        //Obtiene empleados que cumplen aniversario en la empresa al día
                        List <PlazasPorEmpleado> plazasEmpleados = null;
                        DateTime fechapen = diasPendientes[d];
                        plazasEmpleados = (from o in dbContextSimple.Set <PlazasPorEmpleadosMov>()
                                           where
                                           (from m in dbContextSimple.Set <PlazasPorEmpleadosMov>()
                                            where m.plazasPorEmpleado.razonesSociales.clave == razonesSociales.clave &&
                                            m.plazasPorEmpleado.fechaFinal >= fechapen &&
                                            o.plazasPorEmpleado.fechaPrestaciones.Value.Month == fechapen.Month &&
                                            o.plazasPorEmpleado.fechaPrestaciones.Value.Day == fechapen.Day
                                            group new { m.plazasPorEmpleado.empleados, m } by new
                        {
                            m.plazasPorEmpleado.empleados.clave
                        } into g
                                            select new
                        {
                            Column1 = g.Max(p => p.m.id)
                        }).Contains(new { Column1 = o.id })
                                           select o.plazasPorEmpleado).ToList();

                        plazasEmpleados = plazasEmpleados == null ? new List <PlazasPorEmpleado>() : plazasEmpleados;
                        if (plazasEmpleados.Count > 0)
                        {
                            if (reglaFactor == null)
                            {//Obtiene  los factores de integracion
                                usoBDMaestra = true;
                                //if (dbContextMaster == null)
                                //{
                                //    setSession(dbContext);
                                //}
                                //else
                                //{
                                //    setSession(dbContextMaster);
                                //}
                                List <TablaDatos> values;
                                values = (from o in dbContextMaster.Set <TablaDatos>()
                                          where o.tablaBase.clave == ClavesParametrosModulos.claveTipoTablaFactorIntegracion.ToString() &&
                                          o.id == (from t in dbContextMaster.Set <TablaDatos>()
                                                   where t.tablaBase.id == o.tablaBase.id
                                                   select new { t.id }).Max(p => p.id)
                                          select o).ToList();
                                values = values == null ? new List <TablaDatos>() : values;
                                if (values.Count > 0)
                                {
                                    byte[]    convert = ((TablaDatos)values[0]).fileXml;
                                    XDocument doc     = UtilidadesXML.convierteBytesToXML(convert);
                                    reglaFactor = UtilidadesXML.extraeValoresNodos(doc);
                                }
                            }
                            //Llenar tabla de Vacaciones Devengadas por día
                            VacacionesDevengadas vd = null;
                            if (usoBDMaestra)
                            {
                                if (dbContextSimple == null)
                                {
                                    setSession(dbContextSimple);
                                }
                                else
                                {
                                    getSession().Database.Connection.Close();
                                    setSession(dbContextSimple);
                                }
                            }
                            for (int i = 0; i < plazasEmpleados.Count; i++)
                            {
                                Double antiguedad = (Double)calcularAntiguedadExacta(Convert.ToDateTime(plazasEmpleados[i].fechaPrestaciones));
                                //Obtiene vacaciones devengadas por año a ese empleado
                                VacacionesDevengadas vaca = (from a in dbContextSimple.Set <VacacionesDevengadas>()
                                                             where a.empleados.id == plazasEmpleados[i].empleados.id &&
                                                             a.ejercicio == Convert.ToInt32(antiguedad)
                                                             select a).SingleOrDefault();
                                if (vaca == null)
                                {
                                    vd = new VacacionesDevengadas();
                                    vd.razonesSociales = plazasEmpleados[i].razonesSociales;
                                    vd.empleados       = plazasEmpleados[i].empleados;
                                    vd.ejercicio       = Convert.ToInt32(antiguedad);
                                    Object[] factorEmpleado = (Object[])obtieneFactorIntegracion(reglaFactor, Convert.ToInt32(antiguedad));
                                    Object[] salarioAniv    = (from sdi in dbContextSimple.Set <SalariosIntegrados>()
                                                               where sdi.empleados.id == plazasEmpleados[i].empleados.id &&
                                                               sdi.fecha <= plazasEmpleados[i].fechaPrestaciones
                                                               group sdi by new
                                    {
                                        sdi.salarioDiarioFijo
                                    } into g
                                                               select new
                                    {
                                        Column1 = g.Max(p => p.fecha),
                                        g.Key.salarioDiarioFijo
                                    }).ToArray();
                                    if (salarioAniv == null)
                                    {
                                        vd.salarioAniversario = 0.0;
                                    }
                                    else
                                    {
                                        vd.salarioAniversario = (double)salarioAniv[1];
                                    }
                                    vd.factorPrima     = Convert.ToDouble(factorEmpleado[4].ToString());
                                    vd.diasVacaciones  = Convert.ToInt32(factorEmpleado[3].ToString());
                                    vd.registroInicial = false;
                                    double primaVac = Convert.ToDouble(factorEmpleado[4].ToString()) / 100 * Convert.ToInt32(factorEmpleado[3].ToString());
                                    vd.diasPrimaVaca = primaVac;
                                    dbContextSimple.Set <VacacionesDevengadas>().Add(vd);
                                    devengadaActual.Add(plazasEmpleados[i].empleados.clave, vd);
                                }
                            }
                        }
                    }
                    controlCalculadas       = new ControlVacDeveng();
                    controlCalculadas.fecha = diasPendientes[d];
                    controlCalculadas.razonesSociales_ID = razonesSociales.id;

                    dbContextSimple.Set <ControlVacDeveng>().Add(controlCalculadas);
                    dbContextSimple.SaveChanges();
                }
                if (usaCommit)
                {
                    dbContextSimple.Database.CurrentTransaction.Commit();
                }
                mensajeResultado.resultado = true;
                mensajeResultado.noError   = 0;
                mensajeResultado.error     = "";
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("calcularVacacionesDevengadasEmpleados()1_Error: ").Append(ex));
                mensajeResultado.noError   = ControlErroresEntity.buscaNoErrorPorExcepcion(ex);
                mensajeResultado.error     = ex.GetBaseException().ToString();
                mensajeResultado.resultado = null;
                dbContextSimple.Database.CurrentTransaction.Rollback();
            }
            return(mensajeResultado);
        }
Exemple #6
0
 //usado calculo de nomina
 public Mensaje calcularVacacionesDevengadasEmpleados(RazonesSociales razonesSociales, object[,] factorIntegracion, DBContextSimple dbContextSimple, DBContextMaster dbContextMaestra)
 {
     return(calcularVacacionesDevengadasEmpleados(razonesSociales, factorIntegracion, dbContextSimple, dbContextMaestra, true));
 }