118 lines
3.6 KiB
C#
118 lines
3.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace ADSNetLibrary.PacsTimbrado.SAT
|
|
{
|
|
[Serializable]
|
|
public class CFDINomina
|
|
{
|
|
public string Version { get; set; }
|
|
public string TipoNomina { get; set; }
|
|
public DateTime FechaPago { get; set; }
|
|
public string FechaInicio { get; set; }
|
|
public string FechaFin { get; set; }
|
|
public int NumDiasPagados { get; set; }
|
|
public CFDINominaReceptor Receptor { get; set; }
|
|
public List<CFDINominaPercepciones> Percepciones { get; set; }
|
|
public List<CFDINominaDeducciones> Deducciones { get; set; }
|
|
public List<CFDINominaIncapacidades> Incapacidades { get; set; }
|
|
public List<CFDINominaOtrosPagos> OtrosPagos { get; set; }
|
|
public List<CFDINominaHorasExtras> HorasExtras { get; set; }
|
|
public int CveNomina { get; set; }
|
|
|
|
public decimal TotalPercepciones
|
|
{
|
|
get
|
|
{
|
|
return TotalSueldos + TotalIndemnizacion + TotalJubilacion;
|
|
}
|
|
}
|
|
|
|
public decimal TotalDeducciones
|
|
{
|
|
get
|
|
{
|
|
return Math.Round(TotalDeduccionesOtras + TotalDeduccionesImpuestosRetenidos, 2);
|
|
}
|
|
}
|
|
|
|
public decimal TotalOtrosPagos
|
|
{
|
|
get
|
|
{
|
|
return OtrosPagos.Sum(item => item.Importe);
|
|
}
|
|
}
|
|
public decimal TotalSueldos
|
|
{
|
|
get
|
|
{
|
|
return Percepciones.Where(per => !per.TipoPercepcion.Contiene("022", "023", "025", "039", "044")).Sum(per => per.ImporteGravado + per.ImporteExento);
|
|
}
|
|
}
|
|
public decimal TotalIndemnizacion
|
|
{
|
|
get
|
|
{
|
|
return Percepciones.Where(per => per.TipoPercepcion.Contiene("022", "023", "025")).Sum(per => per.ImporteGravado + per.ImporteExento);
|
|
}
|
|
}
|
|
|
|
public decimal TotalJubilacion
|
|
{
|
|
get
|
|
{
|
|
return Percepciones.Where(per => per.TipoPercepcion.Contiene("039", "044")).Sum(per => per.ImporteGravado + per.ImporteExento);
|
|
}
|
|
}
|
|
public decimal TotalPercepcionesGravado
|
|
{
|
|
get
|
|
{
|
|
// nota especificar claves
|
|
return Percepciones.Sum(item => item.ImporteGravado);
|
|
}
|
|
}
|
|
public decimal TotalPercepcionesExento
|
|
{
|
|
get
|
|
{
|
|
// nota especificar claves
|
|
return Percepciones.Sum(item => item.ImporteExento);
|
|
}
|
|
}
|
|
|
|
public decimal TotalDeduccionesOtras
|
|
{
|
|
get
|
|
{
|
|
// DEDUCCIONES SE LE QUITAN LOS CENTAVOS
|
|
return Math.Round(Deducciones.Where(ded => !ded.TipoDeduccion.Contiene("002")).Sum(ded => ded.Importe), 2);
|
|
}
|
|
}
|
|
|
|
public decimal TotalDeduccionesImpuestosRetenidos
|
|
{
|
|
get
|
|
{
|
|
// nota especificar claves
|
|
return Math.Round(Deducciones.Where(ded => ded.TipoDeduccion.Contiene("002")).Sum(ded => ded.Importe), 2);
|
|
}
|
|
}
|
|
|
|
public CFDINomina()
|
|
{
|
|
Receptor = new CFDINominaReceptor();
|
|
Percepciones = new List<CFDINominaPercepciones>();
|
|
Deducciones = new List<CFDINominaDeducciones>();
|
|
Incapacidades = new List<CFDINominaIncapacidades>();
|
|
OtrosPagos = new List<CFDINominaOtrosPagos>();
|
|
HorasExtras = new List<CFDINominaHorasExtras>();
|
|
}
|
|
}
|
|
|
|
}
|