private Nomina contruyeNomina12(CFDIEmpleado cfdiEmpleado) { Nomina nomina = new Nomina(); try { nomina.Version = ("1.2"); nomina.FechaFinalPago = (UtileriasSat.castXmlFechaFormatoIso8601(cfdiEmpleado.fechaFinalPago)); nomina.FechaInicialPago = (UtileriasSat.castXmlFechaFormatoIso8601(cfdiEmpleado.fechaInicioPago)); nomina.FechaPago = (UtileriasSat.castXmlFechaFormatoIso8601(cfdiEmpleado.fechaPago)); nomina.NumDiasPagados = (UtileriasSat.castNumerosToBigDecimal(cfdiEmpleado.numeroDiasPago)); nomina.Emisor = (construyeNominaEmisor(cfdiEmpleado)); nomina.Receptor = (construyeNominaReceptor(cfdiEmpleado)); anioServicio = UtileriasSat.getAniosServicio(cfdiEmpleado.fechaInicioRelLaboral.GetValueOrDefault(), cfdiEmpleado.fechaFinalPago); if (string.Equals(cfdiEmpleado.tipoCorrida.clave, "ASI", StringComparison.OrdinalIgnoreCase)) {// duda, no solo una corrida asimilados es tipo de nomina especial, tambien finiquitos, vacaciones nomina.NumDiasPagados = (UtileriasSat.castNumerosToBigDecimal(1)); nomina.TipoNomina = ManejadorEnum.GetDescription(CTipoNomina.E); if (nomina.Receptor != null) { nomina.Receptor.PeriodicidadPago = ("99"); } cargaConceptosANomina(nomina, cfdiEmpleado.cfdiRecibo.cfdiReciboConcepto, cfdiEmpleado.cfdiRecibo.cfdiReciboHrsExtras); if (existeIncapacidades) { nomina.Incapacidades = (contruyeNominaListaIncapacidades(cfdiEmpleado.cfdiRecibo.cfdiReciboIncapacidad).ToArray()); } } else { nomina.TipoNomina = ManejadorEnum.GetDescription(CTipoNomina.O); cargaConceptosANomina(nomina, cfdiEmpleado.cfdiRecibo.cfdiReciboConcepto, cfdiEmpleado.cfdiRecibo.cfdiReciboHrsExtras); if (existeIncapacidades) { NominaIncapacidad[] incapacidades = contruyeNominaListaIncapacidades(cfdiEmpleado.cfdiRecibo.cfdiReciboIncapacidad).ToArray(); if (incapacidades.Length > 0) { nomina.Incapacidades = incapacidades; } } } } catch (Exception ex) { mensajeNomina.error = (ex.Message); mensajeNomina.noError = (1); //utilSat.bitacora(ex.Message); ///nomina = null; } return(nomina); }
private NominaReceptor construyeNominaReceptor(CFDIEmpleado cfdiEmpleado) { NominaReceptor receptor = new NominaReceptor(); receptor.Curp = (cfdiEmpleado.CURP); if (cfdiEmpleado.noSeguroSocial == null ? false : cfdiEmpleado.noSeguroSocial.Trim().Length > 0) { receptor.NumSeguridadSocial = (cfdiEmpleado.noSeguroSocial); } if (cfdiEmpleado.fechaInicioRelLaboral != null) { receptor.FechaInicioRelLaboral = (UtileriasSat.castXmlFechaFormatoIso8601(cfdiEmpleado.fechaInicioRelLaboral.GetValueOrDefault())); } if (cfdiEmpleado.antiguedad != null) { //"P".concat(String.valueOf(cfdiEmpleado.getAntiguedad())).concat("W") receptor.Antigüedad = (string.Concat("P", string.Concat(cfdiEmpleado.antiguedad, "W"))); } //////// if (cfdiEmpleado.getAntiguedadYMD().trim().length() > 0) { //////// receptor.setAntiguedad(cfdiEmpleado.getAntiguedadYMD()); //////// } receptor.TipoContrato = (cfdiEmpleado.tipoContrato); if (cfdiEmpleado.jornada == null ? false : cfdiEmpleado.jornada.Trim().Length > 0) { receptor.TipoJornada = (cfdiEmpleado.jornada); } receptor.TipoRegimen = (cfdiEmpleado.regimenContratacion); //@ receptor.NumEmpleado = (cfdiEmpleado.plazasPorEmpleadosMov.plazasPorEmpleado.empleados.clave); if (cfdiEmpleado.departamento == null ? false : cfdiEmpleado.departamento.Trim().Length > 0) { receptor.Departamento = (cfdiEmpleado.departamento); } if (cfdiEmpleado.puesto == null ? false : cfdiEmpleado.puesto.Trim().Length > 0) { receptor.Puesto = (cfdiEmpleado.puesto); } if (cfdiEmpleado.riesgoPuesto != null) { receptor.RiesgoPuesto = (cfdiEmpleado.riesgoPuesto); } receptor.PeriodicidadPago = (cfdiEmpleado.periodiciadadPago); if (cfdiEmpleado.claveBancoSat == null ? false : cfdiEmpleado.claveBancoSat.Trim().Length > 0) { receptor.Banco = (cfdiEmpleado.claveBancoSat); } if (cfdiEmpleado.cuentaBancaria == null ? false : cfdiEmpleado.cuentaBancaria.Trim().Length > 0) { receptor.CuentaBancaria = (UtileriasSat.castNumerosToBigInteger(cfdiEmpleado.cuentaBancaria).ToString()); } if (cfdiEmpleado.salBaseCotAport == null ? false: cfdiEmpleado.salBaseCotAport > 0) { receptor.SalarioBaseCotApor = (UtileriasSat.castNumerosToImporteMX(cfdiEmpleado.salBaseCotAport)); } if (cfdiEmpleado.salIntIMSS == null ? false: cfdiEmpleado.salIntIMSS > 0) { receptor.SalarioDiarioIntegrado = (UtileriasSat.castNumerosToImporteMX(cfdiEmpleado.salIntIMSS)); } try { //receptor.ClaveEntFed=(CEstado.fromValue(cfdiEmpleado.estado)); receptor.ClaveEntFed = (cfdiEmpleado.estado); } catch (Exception e) { receptor.ClaveEntFed = (null); } ///subcontratacion ///receptor.setSindicalizado(SCHEMALOCATION_NOMINA); //opcional pendiente return(receptor); }