private NominaDeducciones contruyeNominaListaDeducciones(List <CFDIReciboConcepto> listConceptos) { NominaDeducciones deducciones = null; listConceptos = listConceptos == null ? new List <CFDIReciboConcepto>() : listConceptos; if (listConceptos.Count() > 0) { deducciones = new NominaDeducciones(); List <NominaDeduccionesDeduccion> listDeducciones = new List <NominaDeduccionesDeduccion>(); int i; Double totalImpuestosRetenidos = 0.0, totalOtrasDeducciones = 0.0; for (i = 0; i < listConceptos.Count(); i++) { if (string.Equals(listConceptos[i].claveSAT, "002", StringComparison.OrdinalIgnoreCase)) { totalImpuestosRetenidos = totalImpuestosRetenidos + listConceptos[i].importeExento + listConceptos[i].importeGravable; } else { totalOtrasDeducciones = totalOtrasDeducciones + listConceptos[i].importeGravable + listConceptos[i].importeExento; } listDeducciones.Add(contruyeNominaDeduccion(listConceptos[i])); } totalDeducciones = totalImpuestosRetenidos + totalOtrasDeducciones; deducciones.Deduccion = listDeducciones.ToArray(); if (totalImpuestosRetenidos > 0.0) { deducciones.TotalImpuestosRetenidos = (UtileriasSat.castNumerosToBigDecimal(totalImpuestosRetenidos)); } deducciones.TotalOtrasDeducciones = (UtileriasSat.castNumerosToBigDecimal(totalOtrasDeducciones)); } return(deducciones); }
private NominaPercepcionesJubilacionPensionRetiro createJubilacionRetiro(ConceptosJubilacion conceptosJubilacion, Double total, Double?montoDiario, Double ultSueldoMen) { NominaPercepcionesJubilacionPensionRetiro jubilacionPensionRetiro = new NominaPercepcionesJubilacionPensionRetiro(); if (conceptosJubilacion == ConceptosJubilacion.TOTAL) { jubilacionPensionRetiro.TotalUnaExhibicion = (UtileriasSat.castNumerosToBigDecimal(total)); } if (conceptosJubilacion == ConceptosJubilacion.PARCIAL) { jubilacionPensionRetiro.MontoDiario = (UtileriasSat.castNumerosToBigDecimal(total)); jubilacionPensionRetiro.TotalParcialidad = (UtileriasSat.castNumerosToBigDecimal(montoDiario)); } if (ultSueldoMen.CompareTo(total) > 0) { jubilacionPensionRetiro.IngresoAcumulable = (UtileriasSat.castNumerosToBigDecimal(total)); } else { jubilacionPensionRetiro.IngresoAcumulable = (UtileriasSat.castNumerosToBigDecimal(ultSueldoMen)); } jubilacionPensionRetiro.IngresoNoAcumulable = (UtileriasSat.castNumerosToBigDecimal(total - ultSueldoMen)); return(jubilacionPensionRetiro); }
private Comprobante construyeComprobante(CFDIEmpleado cfdiEmpleado) { try { Comprobante comprobante = new Comprobante(); asignarCertificado(comprobante, cfdiEmpleado.certificadoAsignado); //@ comprobante.Emisor = (construyeEmisor(cfdiEmpleado.razonesSociales)); //@ comprobante.Receptor = (construyeReceptor(cfdiEmpleado)); //@ List <ComprobanteConcepto> listConceptos = new List <ComprobanteConcepto>(); listConceptos.Add(contruyeConceptos(cfdiEmpleado)); // comprobante.Conceptos=(contruyeListaConceptos(listConceptos)); //@ comprobante.Conceptos = listConceptos.ToArray(); comprobante.Version = ("3.3"); if (cfdiEmpleado.cfdiRecibo.serieCFDI != "") { comprobante.Serie = (cfdiEmpleado.cfdiRecibo.serieCFDI); } if (cfdiEmpleado.cfdiRecibo.folioCFDI != "") { comprobante.Folio = (cfdiEmpleado.cfdiRecibo.folioCFDI); } fechaGeneraXML = DateTime.Now; comprobante.Fecha = (UtileriasSat.castFechatoXmlFechaFormato(fechaGeneraXML, UtileriasSat.FORMATO_FECHA_HORA_SAT)); comprobante.FormaPago = ("99"); comprobante.MetodoPago = ManejadorEnum.GetDescription(CMetodoPago.PUE); comprobante.TipoDeComprobante = ManejadorEnum.GetDescription(CTipoDeComprobante.N); comprobante = calculaImportesConceptos(comprobante, cfdiEmpleado); String lugarExpedicion = ""; if (cfdiEmpleado.codigoPostal == null ? false : cfdiEmpleado.codigoPostal.Trim().Length > 0) { lugarExpedicion = string.Concat(lugarExpedicion, cfdiEmpleado.razonesSociales.cp.clave);// cfdiEmpleado.codigoPostal lugarExpedicion.concat(cfdiEmpleado.getCodigoPostal()); } comprobante.LugarExpedicion = (lugarExpedicion); comprobante.Moneda = ManejadorEnum.GetDescription(CMoneda.MXN); if (cfdiEmpleado.cfdiRecibo.UUIDRelacionado != null) { ConstruyeCfdiRelacionado(cfdiEmpleado.cfdiRecibo.UUIDRelacionado); } return(comprobante); } catch (Exception e) { //utilSat.bitacora(e.getMessage()); //System.err.println(concatena.delete(0, concatena.length()).append(msgError).append("contruyeComprobante()1_Error: ").append(e)); return(null); } }
private NominaOtroPago contruyeNominaOtroPago(List <CFDIReciboConcepto> listConceptosOtros) { NominaOtroPago otroPago = new NominaOtroPago(); int i; Double total1 = 0.0, total2 = 0.0; for (i = 0; i < listConceptosOtros.Count(); i++) { if (i == 0) { total1 = listConceptosOtros[i].importeGravable + listConceptosOtros[i].importeExento; } if (i == 1) { total2 = listConceptosOtros[i].importeExento + listConceptosOtros[i].importeGravable; } } if (total1 < total2) { otroPago.Clave = (listConceptosOtros[0].claveConcepto); otroPago.Concepto = (listConceptosOtros[0].descripcionConcepto); otroPago.TipoOtroPago = (listConceptosOtros[0].claveSAT); otroPago.Importe = (UtileriasSat.castNumerosToBigDecimal(listConceptosOtros[0].importeExento)); otroPago.SubsidioAlEmpleo = (creaSubsidioAlEmpleo(total2)); } if (total1 > total2) { if (listConceptosOtros.Count() == 1) { otroPago.Clave = (listConceptosOtros[0].claveConcepto); otroPago.Concepto = (listConceptosOtros[0].descripcionConcepto); otroPago.TipoOtroPago = (listConceptosOtros[0].claveSAT); otroPago.Importe = (UtileriasSat.castNumerosToBigDecimal(listConceptosOtros[0].importeExento)); } else { otroPago.Clave = (listConceptosOtros[1].claveConcepto); otroPago.Concepto = (listConceptosOtros[1].descripcionConcepto); otroPago.TipoOtroPago = (listConceptosOtros[1].claveSAT); otroPago.Importe = (UtileriasSat.castNumerosToBigDecimal(listConceptosOtros[1].importeExento)); } otroPago.SubsidioAlEmpleo = (creaSubsidioAlEmpleo(total1)); } /* otroPago.Clave=(cfdiConceptoPercepcion.claveConcepto); * otroPago.Concepto=(cfdiConceptoPercepcion.descripcionConcepto); * otroPago.TipoOtroPago=(cfdiConceptoPercepcion.claveSAT); * otroPago.Importe=(UtileriasSat.castNumerosToBigDecimal(cfdiConceptoPercepcion.importeExento)); * * otroPago.SubsidioAlEmpleo=(creaSubsidioAlEmpleo(cfdiConceptoPercepcion.importeExento)); ///pendiente * //////// otroPago.setCompensacionSaldosAFavor(creaCompensacionSaldosAFavor());////pendiente */ return(otroPago); }
private NominaOtroPagoSubsidioAlEmpleo creaSubsidioAlEmpleo(Double subsidioCausado) { NominaOtroPagoSubsidioAlEmpleo subsidioAlEmpleo = new NominaOtroPagoSubsidioAlEmpleo(); subsidioAlEmpleo.SubsidioCausado = (UtileriasSat.castNumerosToBigDecimal(subsidioCausado)); return(subsidioAlEmpleo); }
private NominaIncapacidad contruyeNominaIncapacidad(CFDIReciboIncapacidad cfdiReciboIncapacidad) { NominaIncapacidad incapacidad = new NominaIncapacidad(); incapacidad.ImporteMonetario = (UtileriasSat.castNumerosToBigDecimal(cfdiReciboIncapacidad.importeMonetario)); incapacidad.DiasIncapacidad = (cfdiReciboIncapacidad.diasIncapacidad); incapacidad.TipoIncapacidad = (cfdiReciboIncapacidad.tipoIncapacidad); return(incapacidad); }
private NominaPercepcionesPercepcionHorasExtra contruyeNominaHoraExtra(CFDIReciboHrsExtras cfdiReciboHrsExtras) { NominaPercepcionesPercepcionHorasExtra horaExtra = new NominaPercepcionesPercepcionHorasExtra(); horaExtra.Dias = (cfdiReciboHrsExtras.dias); horaExtra.HorasExtra = (cfdiReciboHrsExtras.horasExtras); Double importePagado = cfdiReciboHrsExtras.importeExento + cfdiReciboHrsExtras.importeGravable; horaExtra.ImportePagado = (UtileriasSat.castNumerosToImporteMX(importePagado)); ///pendiente horaExtra.TipoHoras = (cfdiReciboHrsExtras.tipoHoras); return(horaExtra); }
private NominaDeduccionesDeduccion contruyeNominaDeduccion(CFDIReciboConcepto cfdiConceptoDeduccion) { NominaDeduccionesDeduccion deduccion = new NominaDeduccionesDeduccion(); deduccion.Clave = (cfdiConceptoDeduccion.claveConcepto); deduccion.Concepto = (cfdiConceptoDeduccion.descripcionConcepto); Double importe = cfdiConceptoDeduccion.importeExento + cfdiConceptoDeduccion.importeGravable; deduccion.Importe = (UtileriasSat.castNumerosToBigDecimal(importe)); deduccion.TipoDeduccion = (cfdiConceptoDeduccion.claveSAT); return(deduccion); }
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 Nomina cargaConceptosANomina(Nomina nomina, List <CFDIReciboConcepto> listConceptos, List <CFDIReciboHrsExtras> listReciboHorasExtras) { totalDeducciones = 0.0; totalPercepciones = 0.0; totalOtrosPagos = 0.0; listConceptos = listConceptos == null ? new List <CFDIReciboConcepto>() : listConceptos; if (listConceptos.Count() > 0) { if (nomina == null) { nomina = new Nomina(); } List <CFDIReciboConcepto> listPercepciones = new List <CFDIReciboConcepto>(); List <CFDIReciboConcepto> listOtrosPagos = new List <CFDIReciboConcepto>(); List <CFDIReciboConcepto> listDeducciones = new List <CFDIReciboConcepto>(); int i; for (i = 0; i < listConceptos.Count(); i++) { if (listConceptos[i].otroPago) { listOtrosPagos.Add(listConceptos[i]); } else if (string.Equals(listConceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.PERCEPCION))) { listPercepciones.Add(listConceptos[i]); } else if (string.Equals(listConceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.DEDUCCION))) { listDeducciones.Add(listConceptos[i]); } } nomina.Percepciones = (contruyeNominaListaPercepciones(listPercepciones, listReciboHorasExtras)); if (listOtrosPagos.Any()) { nomina.OtrosPagos = (contruyeNominaListaOtrosPagos(listOtrosPagos).ToArray()); } else { nomina.OtrosPagos = (construyeSinSubsidio().ToArray()); } nomina.Deducciones = (contruyeNominaListaDeducciones(listDeducciones)); nomina.TotalPercepciones = (UtileriasSat.castNumerosToImporteMX(totalPercepciones)); nomina.TotalOtrosPagos = (UtileriasSat.castNumerosToImporteMX(totalOtrosPagos)); nomina.TotalDeducciones = (UtileriasSat.castNumerosToImporteMX(totalDeducciones)); } return(nomina); }
private List <NominaOtroPago> construyeSinSubsidio() { //--- List <NominaOtroPago> listOtrosPagos = new List <NominaOtroPago>(); NominaOtroPago otroPago = new NominaOtroPago(); otroPago.Clave = conceptoNominaSubsidio.clave; //(listConceptosOtros[0].claveConcepto); otroPago.Concepto = conceptoNominaSubsidio.descripcion; //(listConceptosOtros[0].descripcionConcepto); otroPago.TipoOtroPago = "002"; //(listConceptosOtros[0].claveSAT); otroPago.Importe = (UtileriasSat.castNumerosToBigDecimal(0.00)); otroPago.SubsidioAlEmpleo = (creaSubsidioAlEmpleo(0)); listOtrosPagos.Add(otroPago); return(listOtrosPagos); }
/*finiquito*/ private NominaPercepcionesSeparacionIndemnizacion createSeparacionIndemnizacion(Double totalSeparacionIndeminizacion, Double ultSueldoMes, int anioServ) { NominaPercepcionesSeparacionIndemnizacion separacionIndemnizacion = new NominaPercepcionesSeparacionIndemnizacion(); separacionIndemnizacion.NumAñosServicio = (anioServ); separacionIndemnizacion.TotalPagado = (UtileriasSat.castNumerosToBigDecimal(totalSeparacionIndeminizacion)); separacionIndemnizacion.UltimoSueldoMensOrd = (UtileriasSat.castNumerosToBigDecimal(ultSueldoMes)); if (ultSueldoMes.CompareTo(totalSeparacionIndeminizacion) > 0) { separacionIndemnizacion.IngresoAcumulable = (UtileriasSat.castNumerosToBigDecimal(totalSeparacionIndeminizacion)); } else { separacionIndemnizacion.IngresoAcumulable = (UtileriasSat.castNumerosToBigDecimal(ultSueldoMes)); } separacionIndemnizacion.IngresoNoAcumulable = (UtileriasSat.castNumerosToBigDecimal(totalSeparacionIndeminizacion - ultSueldoMes)); return(separacionIndemnizacion); }
private Comprobante calculaImportesConceptos(Comprobante comprobante, CFDIEmpleado cfdiEmpleado) { if (comprobante == null) { comprobante = new Comprobante(); } Double totalDeduccion = 0.0, subTotal = 0.0, impuestoRetenido = 0.0, descuentos = 0.0, total = 0.0; List <CFDIReciboConcepto> conceptos = cfdiEmpleado.cfdiRecibo.cfdiReciboConcepto; //// CFDIReciboConcepto cfdiReciboConceptoISR = null; if (conceptos != null) { int i; for (i = 0; i < conceptos.Count(); i++) { if (mapClaveConceptosISR.ContainsKey(conceptos[i].claveConcepto)) { //// cfdiReciboConceptoISR = conceptos.get(i); impuestoRetenido = (conceptos[i].importeExento) + (conceptos[i].importeGravable); } if (string.Equals(conceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.PERCEPCION)) | conceptos[i].otroPago) { if (conceptos[i].tipoNaturaleza != "CALCULO") { subTotal = subTotal + (conceptos[i].importeExento) + (conceptos[i].importeGravable); } } else if (string.Equals(conceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.DEDUCCION), StringComparison.OrdinalIgnoreCase)) { if (!mapClaveConceptosISR.ContainsKey(conceptos[i].claveConcepto)) { descuentos = descuentos + (conceptos[i].importeExento) + (conceptos[i].importeGravable); } totalDeduccion = totalDeduccion + (conceptos[i].importeExento) + (conceptos[i].importeGravable); } } } comprobante.Descuento = (UtileriasSat.castNumerosToBigDecimal(descuentos + impuestoRetenido)); comprobante.SubTotal = (UtileriasSat.castNumerosToBigDecimal(subTotal)); //@ total = subTotal - descuentos - impuestoRetenido; comprobante.Total = (UtileriasSat.castNumerosToBigDecimal(total)); //Pendiente return(comprobante); }
private NominaPercepcionesPercepcion contruyeNominaPercepcion(CFDIReciboConcepto cfdiConceptoPercepcion, List <CFDIReciboHrsExtras> listReciboHorasExtras) { NominaPercepcionesPercepcion percepcion = new NominaPercepcionesPercepcion(); percepcion.Clave = (cfdiConceptoPercepcion.claveConcepto); percepcion.Concepto = (cfdiConceptoPercepcion.descripcionConcepto); percepcion.ImporteExento = (UtileriasSat.castNumerosToBigDecimal(cfdiConceptoPercepcion.importeExento)); percepcion.ImporteGravado = (UtileriasSat.castNumerosToBigDecimal(cfdiConceptoPercepcion.importeGravable)); percepcion.TipoPercepcion = (cfdiConceptoPercepcion.claveSAT); if (string.Equals(cfdiConceptoPercepcion.claveSAT, "045")) { // accciones y titulos percepcion.AccionesOTitulos = (createAccionesTitulos()); } else if (string.Equals(cfdiConceptoPercepcion.claveSAT, "019")) { /// horas extras contruyeNominaListaHorasExtras(percepcion.HorasExtra.ToList(), listReciboHorasExtras); } return(percepcion); }
private ComprobanteConcepto contruyeConceptos(CFDIEmpleado cfdiEmpleado) { ComprobanteConcepto concepto = new ComprobanteConcepto(); concepto.Cantidad = (UtileriasSat.castNumerosToBigDecimal(1)); //@pendiente el cast concepto.Descripcion = ("Pago de nómina"); //@ concepto.ClaveProdServ = ("84111505"); //84111505 concepto.ClaveUnidad = ("ACT"); //no hay necesidad de poner el nodo impuesto Double totalPercepcion = 0.0, totalDeduciones = 0.0, totalOtrosPagos = 0.00; List <CFDIReciboConcepto> conceptos = cfdiEmpleado.cfdiRecibo.cfdiReciboConcepto; if (conceptos != null) { int i; for (i = 0; i < conceptos.Count(); i++) { if (string.Equals(conceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.PERCEPCION), StringComparison.OrdinalIgnoreCase)) { if (conceptos[i].otroPago) { totalOtrosPagos = totalOtrosPagos + (conceptos[i].importeExento) + (conceptos[i].importeGravable); } else { totalPercepcion = totalPercepcion + conceptos[i].importeExento + conceptos[i].importeGravable; } } else if (string.Equals(conceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.DEDUCCION), StringComparison.OrdinalIgnoreCase)) { totalDeduciones = totalDeduciones + conceptos[i].importeExento + conceptos[i].importeGravable; } } } concepto.Descuento = UtileriasSat.castNumerosToBigDecimal(totalDeduciones); concepto.Importe = (UtileriasSat.castNumerosToBigDecimal(totalPercepcion + totalOtrosPagos)); //@//pendiente la conversion concepto.ValorUnitario = (UtileriasSat.castNumerosToBigDecimal(totalPercepcion + totalOtrosPagos)); //@//pendiente la conversion return(concepto); }
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); }
private NominaPercepciones contruyeNominaListaPercepciones(List <CFDIReciboConcepto> listConceptos, List <CFDIReciboHrsExtras> listReciboHorasExtras) { NominaPercepciones percepciones = null; existeIncapacidades = false; listConceptos = listConceptos == null ? new List <CFDIReciboConcepto>() : listConceptos; if (listConceptos.Count() > 0) { double ultSueldo = 0.0; percepciones = new NominaPercepciones(); List <NominaPercepcionesPercepcion> listPercepciones = new List <NominaPercepcionesPercepcion>(); int i; bool jubilacion = false, separacionIndeminizacion = false; Double totalExento = 0.0, totalGravable = 0.0, totalSueldo = 0.0, totalSeparacionIndeminizacion = 0.0, totalJubilacionPension = 0.0; ConceptosJubilacion conceptosJubilacion = ConceptosJubilacion.NINGUNA; for (i = 0; i < listConceptos.Count(); i++) { totalExento = totalExento + listConceptos[i].importeExento; totalGravable = totalGravable + listConceptos[i].importeGravable; if (string.Equals(listConceptos[i].claveSAT, "014", StringComparison.OrdinalIgnoreCase)) { existeIncapacidades = true; } if (string.Equals(listConceptos[i].claveSAT, "001", StringComparison.OrdinalIgnoreCase)) { existeIncapacidades = true; ultSueldo = listConceptos[i].importeExento + listConceptos[i].importeGravable; } if (string.Equals(listConceptos[i].claveSAT, "022", StringComparison.OrdinalIgnoreCase) | string.Equals(listConceptos[i].claveSAT, "023", StringComparison.OrdinalIgnoreCase) | string.Equals(listConceptos[i].claveSAT, "025", StringComparison.OrdinalIgnoreCase)) { /////SeparacionIndeminizacion totalSeparacionIndeminizacion = totalSeparacionIndeminizacion + listConceptos[i].importeExento + listConceptos[i].importeGravable; separacionIndeminizacion = true; } else if (string.Equals(listConceptos[i].claveSAT, "039", StringComparison.OrdinalIgnoreCase) | string.Equals(listConceptos[i].claveSAT, "044", StringComparison.OrdinalIgnoreCase)) { ///JubilacionPension totalJubilacionPension = totalJubilacionPension + listConceptos[i].importeExento + listConceptos[i].importeGravable; jubilacion = true; if (string.Equals(listConceptos[i].claveSAT, "039", StringComparison.OrdinalIgnoreCase)) { conceptosJubilacion = ConceptosJubilacion.TOTAL; } else if (string.Equals(listConceptos[i].claveSAT, "044", StringComparison.OrdinalIgnoreCase)) { conceptosJubilacion = ConceptosJubilacion.PARCIAL; } } else { totalSueldo = totalSueldo + listConceptos[i].importeExento + listConceptos[i].importeGravable; } listPercepciones.Add(contruyeNominaPercepcion(listConceptos[i], listReciboHorasExtras)); } percepciones.Percepcion = listPercepciones.ToArray(); totalPercepciones = totalExento + totalGravable; percepciones.TotalExento = (UtileriasSat.castNumerosToBigDecimal(totalExento)); percepciones.TotalGravado = (UtileriasSat.castNumerosToBigDecimal(totalGravable)); percepciones.TotalSueldos = (UtileriasSat.castNumerosToBigDecimal(totalSueldo)); if (jubilacion) { percepciones.JubilacionPensionRetiro = (createJubilacionRetiro(conceptosJubilacion, totalJubilacionPension, null, ultSueldo)); //pendiente percepciones.TotalJubilacionPensionRetiro = (UtileriasSat.castNumerosToBigDecimal(totalJubilacionPension)); } if (separacionIndeminizacion) { percepciones.TotalSeparacionIndemnizacion = (UtileriasSat.castNumerosToBigDecimal(totalSeparacionIndeminizacion)); percepciones.SeparacionIndemnizacion = (createSeparacionIndemnizacion(totalSeparacionIndeminizacion, ultSueldo, anioServicio)); } } return(percepciones); }