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 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); }