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); }
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); }
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); }
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); }
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); }
//usado calculo de nomina public Mensaje calcularVacacionesDevengadasEmpleados(RazonesSociales razonesSociales, object[,] factorIntegracion, DBContextSimple dbContextSimple, DBContextMaster dbContextMaestra) { return(calcularVacacionesDevengadasEmpleados(razonesSociales, factorIntegracion, dbContextSimple, dbContextMaestra, true)); }