private CFDIEmpleado costruyeCFDIEmpleado(DatosPorEmpleado datosPorEmpleado, PeriodosNomina periodoNomina, TipoCorrida tipoCorrida, TipoNomina nomina, DateTime fechaActual, RazonesSociales razonesSocialesActual) { CFDIEmpleado cfdiEmpleado = new CFDIEmpleado(); PlazasPorEmpleadosMov ppem = (PlazasPorEmpleadosMov)datosPorEmpleado.plazasPorEmpleadosMov; Empleados empleado = ppem.plazasPorEmpleado.empleados; cfdiEmpleado.razonesSociales = (razonesSocialesActual);//MainPrincipal.getRazonesSocialesActual()); //validaDatosRazonSocial(razonesSocialesActual);//MainPrincipal.getRazonesSocialesActual()); cfdiEmpleado.tipoCorrida = (tipoCorrida); cfdiEmpleado.tipoNomina = (nomina); cfdiEmpleado.periodosNomina = (periodoNomina); cfdiEmpleado.plazasPorEmpleadosMov = (ppem); cfdiEmpleado.nombre = (empleado.nombre); cfdiEmpleado.apellidoMaterno = (empleado.apellidoMaterno); cfdiEmpleado.apellidoPaterno = (empleado.apellidoPaterno); camposNecesariosMsg.Append(empleado.CURP == null ? "Empleado_CURP|" : !empleado.CURP.Any() ? "Empleado_CURP|" : ""); cfdiEmpleado.CURP = (empleado.CURP); camposNecesariosMsg.Append(empleado.RFC == null ? "Empleado_RFC|" : !empleado.RFC.Any() ? "Empleado_RFC|" : ""); cfdiEmpleado.RFC = (empleado.RFC); cfdiEmpleado.calle = (empleado.domicilio); cfdiEmpleado.noExterior = (empleado.numeroExt); cfdiEmpleado.noInterior = (empleado.numeroInt); cfdiEmpleado.colonia = (empleado.colonia); if (empleado.cp != null) { cfdiEmpleado.codigoPostal = (empleado.cp.clave); } if (empleado.ciudades != null) { cfdiEmpleado.ciudad = (empleado.ciudades.descripcion); } if (empleado.municipios != null) { cfdiEmpleado.municipio = (empleado.municipios.descripcion); } if (empleado.estados != null) { cfdiEmpleado.estado = (empleado.estados.clave); } if (empleado.paises == null) { camposNecesariosMsg.Append("Empleado_Pais|"); } else { String pais = empleado.paises.descripcion; camposNecesariosMsg.Append(pais == null ? "Empleado_Pais|" : !pais.Any() ? "Empleado_Pais|" : ""); cfdiEmpleado.pais = (pais); } cfdiEmpleado.correoElectronico = (empleado.correoElectronico); cfdiEmpleado.noSeguroSocial = (empleado.IMSS); cfdiEmpleado.formaPago = "99"; //dato fijo segun la guia de llenado cfdiEmpleado.noRegistroPatronal = (ppem.plazasPorEmpleado.registroPatronal == null ? null : ppem.plazasPorEmpleado.registroPatronal.registroPatronal.Replace(" ", "-")); cfdiEmpleado.tipoContrato = (ppem.tipoContrato == null ? null : ppem.tipoContrato.clave); cfdiEmpleado.riesgoPuesto = (ppem.plazasPorEmpleado.registroPatronal == null ? null : ppem.plazasPorEmpleado.registroPatronal.riesgoPuesto); camposNecesariosMsg.Append(ppem.plazasPorEmpleado.registroPatronal == null ? "RegistroPatronal_RiesgoPuesto|" : ppem.plazasPorEmpleado.registroPatronal.riesgoPuesto == null ? "RegistroPatronal_RiesgoPuesto|" : !ppem.plazasPorEmpleado.registroPatronal.riesgoPuesto.Any() ? "RegistroPatronal_RiesgoPuesto|" : ""); cfdiEmpleado.puesto = (ppem.puestos == null ? null : ppem.puestos.descripcion); cfdiEmpleado.departamento = (ppem.departamentos == null ? null : ppem.departamentos.descripcion); cfdiEmpleado.fechaInicioRelLaboral = (ppem.fechaInicial); /// fecha ingreso esta en ingresos y reingresos if (tipoCorrida == null ? false : string.Equals(tipoCorrida.clave, "ASI", StringComparison.OrdinalIgnoreCase)) {// // camposNecesariosMsg.Append(ppem.clabe == null ? "PlazasPorEmpleadosMov_CLABE|" : !ppem.clabe.Trim().Any() ? "PlazasPorEmpleadosMov_CLABE" : ""); } //cfdiEmpleado.CLABE = (ppem.clabe); //camposNecesariosMsg.Append(ppem.bancos == null ? "PlazasPorEmpleadosMov_Bancos|" : ""); //cfdiEmpleado.claveBancoSat = (ppem.bancos == null ? null : ppem.bancos.clave); //if (ppem.cuentaBancaria != null) //{ // cfdiEmpleado.cuentaBancaria = (ppem.cuentaBancaria.Replace("-", "")); //} camposNecesariosMsg.Append(ppem.regimenContratacion == null ? "PlazasPorEmpleadosMov_RegimenContratacion|" : ""); cfdiEmpleado.regimenContratacion = (ppem.regimenContratacion); cfdiEmpleado.jornada = (ppem.turnos == null ? null : ppem.turnos.Jornada == null ? null : ppem.turnos.Jornada.clave); camposNecesariosMsg.Append(periodoNomina.fechaPago == null ? "PeriodosNomina_FechaPago|" : ""); cfdiEmpleado.fechaPago = (periodoNomina.fechaPago.GetValueOrDefault()); camposNecesariosMsg.Append(periodoNomina.fechaFinal == null ? "PeriodosNomina_FechaFinal|" : ""); cfdiEmpleado.fechaFinalPago = (periodoNomina.fechaFinal.GetValueOrDefault()); camposNecesariosMsg.Append(periodoNomina.fechaInicial == null ? "PeriodosNomina_FechaInicial|" : ""); cfdiEmpleado.fechaInicioPago = (periodoNomina.fechaInicial.GetValueOrDefault()); camposNecesariosMsg.Append(periodoNomina.diasPago == null ? "PeriodosNomina_DiasPago|" : ""); cfdiEmpleado.numeroDiasPago = (periodoNomina.diasPago.GetValueOrDefault()); cfdiEmpleado.salIntIMSS = (datosPorEmpleado.salarioDiarioIntegrado); cfdiEmpleado.salBaseCotAport = (ppem.sueldoDiario); if (datosPorEmpleado.fechaIngreso == null || fechaActual == null) { System.Diagnostics.Debug.WriteLine("Las fechas del empleado estan vacías"); } ////datosPorEmpleado.getFechaIngreso() cfdiEmpleado.antiguedad = (Utilerias.cantidadSemanasEntreDosFechasStatic(ppem.fechaInicial.GetValueOrDefault(), periodoNomina.fechaFinal.GetValueOrDefault())); //calculado cfdiEmpleado.antiguedadYMD = (UtileriasSat.getAntiguedadYMD(ppem.fechaInicial.GetValueOrDefault(), periodoNomina.fechaFinal.GetValueOrDefault())); //calculado cfdiEmpleado.periodiciadadPago = (nomina.periodicidad.clave); return(cfdiEmpleado); }
private List <VacacionesAplicacion> obtenerVacaciones(PeriodosNomina periodo, PlazasPorEmpleadosMov plazasPorEmpleadosMovEjecutandose, DateTime?fechaBajaFiniq, string claveTipoNomina, string claveTipoCorrida, bool isCorridaVacaciones, DBContextSimple dbContextSimple) { List <VacacionesAplicacion> listVacacionesAplicacion = null; try { if (periodo == null) { return(new List <VacacionesAplicacion>()); } if (fechaBajaFiniq != null) { PeriodosNomina periodosNominaTmp = null; if (fechaBajaFiniq != null) { periodosNominaTmp = (from p in dbContextSimple.Set <PeriodosNomina>() where p.tipoNomina.clave == claveTipoNomina && p.tipoCorrida.clave == claveTipoCorrida && (fechaBajaFiniq >= p.fechaInicial && fechaBajaFiniq <= p.fechaFinal) select p).SingleOrDefault(); } decimal idPeriodo = periodo.id; if (periodosNominaTmp != null) { idPeriodo = periodosNominaTmp.id; } listVacacionesAplicacion = (from va in dbContextSimple.Set <VacacionesAplicacion>() //join vd in dbContextSimple.Set<VacacionesDisfrutadas>() on va.vacacionesDisfrutadas.id equals vd.id //join em in dbContextSimple.Set<Empleados>() on vd.empleados.id equals em.id //join pa in dbContextSimple.Set<PeriodosNomina>() on vd.periodoAplicacion.id equals pa.id where va.vacacionesDisfrutadas.periodoAplicacion_ID == idPeriodo && va.vacacionesDisfrutadas.empleados_ID == plazasPorEmpleadosMovEjecutandose.plazasPorEmpleado.empleados.id select va).ToList(); } else { listVacacionesAplicacion = (from va in dbContextSimple.Set <VacacionesAplicacion>() join vd in dbContextSimple.Set <VacacionesDisfrutadas>() on va.vacacionesDisfrutadas.id equals vd.id join em in dbContextSimple.Set <Empleados>() on vd.empleados.id equals em.id join pa in dbContextSimple.Set <PeriodosNomina>() on vd.periodoAplicacion.id equals pa.id where em.id == plazasPorEmpleadosMovEjecutandose.plazasPorEmpleado.empleados.id && (vd.fechaPago >= periodo.fechaInicial && vd.fechaPago <= periodo.fechaFinal) select va).ToList(); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("obtenerVacaciones()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; } return(listVacacionesAplicacion); }
public Mensaje agregarVacacionesAuto(RazonesSociales razonSocial, PlazasPorEmpleadosMov plaEmp, PeriodosNomina periodoNomina, object[,] tablaFactorIntegracion, PagarPrimaVacionalyVacacionesAuto pagarVacaAuto, DBContextSimple dbContextSimple) { try { VacacionesDisfrutadas vacDis = new VacacionesDisfrutadas(); Mensaje vacDisgau = new Mensaje(); VacacionesDisfrutadas vacDisconId = new VacacionesDisfrutadas(); VacacionesDisfrutadasDAO vacaDisfrutadas = new VacacionesDisfrutadasDAO(); VacacionesAplicacion VacAplic = new VacacionesAplicacion(); VacacionesDevengadas vacacionesDeven = null; DateTime fechaEmplado = new DateTime(); if (vacDev.getDevengadaActual() == null || vacDev.getDevengadaActual().Count == 0) { mensajeResultado = calcularVacacionesDevengadasEmpleados(razonSocial, tablaFactorIntegracion, dbContextSimple, null); if (mensajeResultado.noError != 0) { return(mensajeResultado); } } if (vacDev.getDevengadaActual().Count > 0) { vacacionesDeven = vacDev.getDevengadaActual()[plaEmp.plazasPorEmpleado.empleados.clave]; DateTime calfecha = new DateTime(); DateTime fechaActual = DateTime.Now.Date; DateTime calfechaActual = DateTime.Now; if (vacacionesDeven != null) { vacacionAplicacionActual = new VacacionesAplicacion(); calfecha = plaEmp.plazasPorEmpleado.fechaPrestaciones.Value; calfecha.AddYears(calfecha.Year + vacacionesDeven.ejercicio.Value); fechaEmplado = calfecha.Date; DateTime fechaPerIni = periodoNomina.fechaInicial.Value.Date; DateTime fechaPerFinal = periodoNomina.fechaFinal.Value.Date; if (fechaEmplado.CompareTo(fechaPerIni) >= 0 && fechaEmplado.CompareTo(fechaPerFinal) <= 0) { if (pagarVacaAuto == PagarPrimaVacionalyVacacionesAuto.PRIMACACIONALALANIVERSARIO) { vacDis.empleados = plaEmp.plazasPorEmpleado.empleados; vacDis.diasPrimaDisfrutados = vacacionesDeven.diasPrimaVaca; vacDis.diasVacDisfrutados = (0); vacDis.ejercicioAplicacion = calfechaActual.Year; vacDis.pagarPrimaVacacional = true; vacDis.pagarVacaciones = false; vacDis.periodoAplicacion = periodoNomina; vacDis.periodoPago = periodoNomina; vacDis.razonesSociales = razonSocial; vacDis.registroInicial = false; vacDis.regresoVac = calfechaActual; vacDis.salidaVacac = calfechaActual; vacDis.statusVacaciones = StatusVacaciones.PORCALCULAR; vacDis.tipoNominaAplicacion = periodoNomina.tipoNomina; vacDis.tipoCorridaAplicacion = periodoNomina.tipoCorrida; dbContextSimple.Set <VacacionesDisfrutadas>().Add(vacDis); dbContextSimple.SaveChanges(); vacDisconId = vacDis; VacAplic.diasPrima = vacacionesDeven.diasPrimaVaca; VacAplic.diasVac = 0; VacAplic.vacacionesDevengadas = vacacionesDeven; VacAplic.vacacionesDisfrutadas = vacDisconId; dbContextSimple.Set <VacacionesAplicacion>().AddOrUpdate(VacAplic); dbContextSimple.SaveChanges(); vacacionAplicacionActual = VacAplic; } else if (pagarVacaAuto == PagarPrimaVacionalyVacacionesAuto.PRIMACACIONALYVACACIONESALANIVERSARIO) { vacDis.empleados = plaEmp.plazasPorEmpleado.empleados; vacDis.diasPrimaDisfrutados = vacacionesDeven.diasPrimaVaca; vacDis.diasVacDisfrutados = vacacionesDeven.diasVacaciones; vacDis.ejercicioAplicacion = calfechaActual.Year; vacDis.pagarPrimaVacacional = true; vacDis.pagarVacaciones = false; vacDis.periodoAplicacion = periodoNomina; vacDis.periodoPago = periodoNomina; vacDis.razonesSociales = razonSocial; vacDis.registroInicial = false; vacDis.regresoVac = calfechaActual; vacDis.salidaVacac = calfechaActual; vacDis.statusVacaciones = StatusVacaciones.PORCALCULAR; vacDis.tipoNominaAplicacion = periodoNomina.tipoNomina; dbContextSimple.Set <VacacionesDisfrutadas>().Add(vacDis); dbContextSimple.SaveChanges(); vacDisconId = vacDis; VacAplic.diasPrima = vacacionesDeven.diasPrimaVaca; VacAplic.diasVac = vacacionesDeven.diasVacaciones; VacAplic.vacacionesDevengadas = vacacionesDeven; VacAplic.vacacionesDisfrutadas = vacDisconId; dbContextSimple.Set <VacacionesAplicacion>().AddOrUpdate(VacAplic); dbContextSimple.SaveChanges(); vacacionAplicacionActual = VacAplic; } } } } mensajeResultado.resultado = vacacionAplicacionActual; mensajeResultado.noError = 0; mensajeResultado.error = ""; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("agregarVacacionesAuto()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; dbContextSimple.Database.CurrentTransaction.Rollback(); } return(mensajeResultado); }
public Mensaje cargarVariablesEmpleadoVacaciones(CalculoUnidades calculoUnidades, PlazasPorEmpleadosMov plazasPorEmpleadosMovEjecutandose, bool acumularVac, PeriodosNomina periodoNomina, DateTime?fechaBajaFiniq, string claveTipoNomina, string claveCorrida, Dictionary <string, object> valoresConceptosEmpleados, DBContextSimple dbContextSimple) { int x; int diasVacaciones = 0; double diasPrimaVacacional = 0.0; try { bool corridaVacaciones = false; if (String.Equals(claveCorrida, "VAC", StringComparison.OrdinalIgnoreCase)) { corridaVacaciones = true; } List <VacacionesAplicacion> vacacionesAplicacion = obtenerVacaciones(periodoNomina, plazasPorEmpleadosMovEjecutandose, fechaBajaFiniq, claveTipoNomina, claveCorrida, corridaVacaciones, dbContextSimple); if (mensajeResultado.noError != 0) { return(mensajeResultado); } if (vacacionAplicacionActual != null) { // vacacionesAplicacion.add(vacacionAplicacionActual); } vacacionesAplicacionStatus = vacacionesAplicacion; DateTime fechaSalidaVacaciones = new DateTime(), fechaRegresoVacaciones = new DateTime(); fechaSalidaVacaciones.AddYears(1900); fechaRegresoVacaciones.AddYears(1900); TiposVacaciones tipoVacaciones = null; if (vacacionesAplicacion != null) { for (x = 0; x < vacacionesAplicacion.Count; x++) { fechaSalidaVacaciones = vacacionesAplicacion[x].vacacionesDisfrutadas.salidaVacac.GetValueOrDefault(); if (vacacionesAplicacion[x].vacacionesDisfrutadas.regresoVac != null) { fechaRegresoVacaciones = vacacionesAplicacion[x].vacacionesDisfrutadas.regresoVac.GetValueOrDefault(); } if (vacacionesAplicacion[x].diasVac == null) { vacacionesAplicacion[x].diasVac = 0; } diasVacaciones += vacacionesAplicacion[x].diasVac.GetValueOrDefault(); if (vacacionesAplicacion[x].diasPrima == null) { vacacionesAplicacion[x].diasPrima = 0.0; } diasPrimaVacacional += vacacionesAplicacion[x].diasPrima.GetValueOrDefault(); tipoVacaciones = vacacionesAplicacion[x].vacacionesDisfrutadas.tiposVacaciones; if (corridaVacaciones) { bool asigno = false; if (vacacionesAplicacion[x].diasPrima > 0.0) { vacacionesAplicacion[x].vacacionesDisfrutadas.periodoPago = periodoNomina; asigno = true; } if (vacacionesAplicacion[x].diasVac > 0) { vacacionesAplicacion[x].vacacionesDisfrutadas.periodoPago = periodoNomina; asigno = true; } if (asigno) { dbContextSimple.Set <VacacionesDisfrutadas>().AddOrUpdate(vacacionesAplicacion[x].vacacionesDisfrutadas); } } // fechaContador.setTime(fechaInicialVacaciones.getTime()); // while (!fechaContador.after(fechaRegresoVacaciones)) { // if ((fechaContador.getTime().compareTo(fechaInicial) > 0 || fechaContador.getTime().compareTo(fechaInicial) == 0) // & (fechaContador.getTime().compareTo(fechaFinal) == 0 || fechaContador.getTime().compareTo(fechaFinal) < 0)) { // diasVacacionesDisfPeriodo += 1; // } // // fechaContador.add(Calendar.DATE, 1); // } } } if (acumularVac) { valoresConceptosEmpleados["diasVacacionesAcum".ToUpper()] = diasVacaciones; } else { valoresConceptosEmpleados["fechaSalidaVacaciones".ToUpper()] = fechaSalidaVacaciones; valoresConceptosEmpleados["fechaRegresoVacaciones".ToUpper()] = fechaRegresoVacaciones; //////// valoresConceptosEmpleados.put("fechaInicialTrabajadas".toUpperCase(), (Date) fechaInicialTrabajadas.getTime()); //////// valoresConceptosEmpleados.put("fechaFinalTrabajadas".toUpperCase(), (Date) fechaFinalTrabajadas.getTime()); //////////// valoresConceptosEmpleados.put("diasVacacionesDisfrutadas".toUpperCase(), (Integer) diasVacacionesDisfrutadas); //////////// valoresConceptosEmpleados.put("diasVacacionesTrabajadas".toUpperCase(), (Integer) diasVacacionesTrabajadas); //////// valoresConceptosEmpleados.put("diasVacacionesDisfrutadas".toUpperCase(), (Integer) diasVacacionesDisfPeriodo); //////// valoresConceptosEmpleados.put("diasVacacionesTrabajadas".toUpperCase(), (Integer) diasVacacionesTrabPeriodo); //////////// valoresConceptosEmpleados.put("diasVacacionesDisfPeriodo".toUpperCase(), (Integer) diasVacacionesDisfPeriodo); //////////// valoresConceptosEmpleados.put("diasVacacionesTrabPeriodo".toUpperCase(), (Integer) diasVacacionesTrabPeriodo); valoresConceptosEmpleados["diasVacaciones".ToUpper()] = Convert.ToDouble(diasVacaciones); valoresConceptosEmpleados["diasPrima".ToUpper()] = diasPrimaVacacional; valoresConceptosEmpleados["tipoVacaciones".ToUpper()] = tipoVacaciones == null ? "" : tipoVacaciones.nombre; if (calculoUnidades != null) { calculoUnidades.diasPrimaVacacional = diasPrimaVacacional; calculoUnidades.diasVacaciones = diasVacaciones; calculoUnidades.tiposVacaciones = tipoVacaciones; } } mensajeResultado.noError = 0; mensajeResultado.resultado = valoresConceptosEmpleados; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("cargarVariablesEmpleadoVacaciones()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; } return(mensajeResultado); }