Nómina
Liga para timbrar nómina
Depende de la versión de CFDI que esté timbrando
https://facturas.easysmart.com.mx/cgi-bin/externos/timbrarGR40
https://facturas.easysmart.com.mx/cgi-bin/externos/timbrarGR33
Layout para nómina
Símbolo de gato # en layout
Esto es un comentario, una línea de ejemplo para que la puedan incluir, "sin el #", no se deben incluir en el layout real.
Cálculo de Antigüedad
Existen 2 algoritmos para obtener la antigüedad, ambos casos utilice librerías de su entorno de desarrollo para obtener los valores necesarios, a forma de pseudo código se utilizarán estas funciones
- Diferencia_en_dias : Calcula el número de días calendario entre 2 fecha (incluye años bisiestos)
- Diferencia_AMD : Diferencia de años, meses y días
- Suma_Dias : Regresa una nueva fecha en base a sumar N cantidad de días a una fecha dada
- Dias_en_Mes : Indica cuantos días tiene un mes (incluye años bisiestos)
Semanas Esta es la forma más segura y sencilla de reportar la antigüedad, funciona independientemente del PAC
Dias = Diferencia_en_dias(año_ingreso,mes_ingreso,dia_ingreso,año_pago,mes_pago,dia_pago)
Semanas = integer((Dias + 1) / 7)
Años, Meses y Días Este algoritmo cambia dependiendo de los PAC, aunque dicen que está homologado, no me parece a mí. Este es el algoritmo para el nuevo PAC con CFDI 3.3
(Años,Meses,Días) = Diferencia_AMD(año_ingreso,mes_ingreso,dia_ingreso,año_pago,mes_pago,dia_pago)
Días++;
if (Años > 0) {
if (Meses>0) {
Antigüedad = P{Años}Y{Meses}M{Días}D
} else {
Antigüedad = P{Años}Y{Días}D
}
} else {
Dias = Diferencia_en_dias(año_ingreso,mes_ingreso,dia_ingreso,año_pago,mes_pago,dia_pago)
Semanas = integer((Dias + 1) / 7)
Antigüedad = = P{Semanas}W
}
Nota adicional
Adicionalmente el SAT dice que si la antigüedad es menor a un año se utilice la representación en semanas. Y si supera el año, es opcional cualquiera de los 2 métodos
Reglas a considerar
- Tipo Contrato < 09
- Registro patronal es obligatorio
- Campos obligatorios: Número de seguridad social, Antigüedad, Salario Integrado, Salario Cotización, Fecha Alta, Clave de Riesgo
- Tipo Contrato > 08
- No se debe enviar registro patronal
- Debe eliminar los valores : Número de seguridad social, Antigüedad, Salario Integrado, Salario Cotización, Fecha Alta, Clave de Riesgo
Ejemplo general
EMPRESA:EXTERNOS|testext452|EKU9003173C9|
COMPROBANTE:4.0|NOMX|393254|03/03/2023|||4961.31|59.20|MXN|1|4902.11|N|PUE|20200||01
PDF:Aguascalientes, Ags|V9633|03/03/2023|Recibo nómina
RESPUESTA:HTML
#DEBUG:nomina
RECEPTOR:PERH650201NR2|HANS MANUEL PEYROT RAAB|||CN01||20218|605
RECEPTOR_DIRECCION:La calle|1000||La colonia|20000|Aguascalientes|Aguascalientes|Aguascalientes|México
LINEA:84111505||1|ACT||Pago de nómina|4961.31|4961.31|59.20|01
VERSION_NOMINA:1.2
#ENTIDAD_SNCF:IM|500
SUBCONTRATACION:MSO0206067S5|50
SUBCONTRATACION:PERH650201NR2|50
EMPLEADO:Y4529887103|12345|PERH650201HVZYBN07|02|87584578||AGU|Sí
EMP_FECHAS:2023-03-03|2023-03-01|2023-03-30|15|2014-01-07|P9Y2M24D|30.42|8|300
EMP_INFO:Sistemas|0021234567|002|Ingeniero|01|01|05|1
EMP_SALARIO:40|45
PERCEPCION:001|000|Sueldo|2284.88|0
PERCEPCION:045|000|Sueldo|100|0
PAGO_ACCIONES:42|38
PERCEPCION:019|000|Vales|100|0
HORASEXTRA:01|03|1|30
HORASEXTRA:01|01|2|20
HORASEXTRA:01|02|3|50
PERCEPCION:039|000|Jubilacion|1000|0
PERCEPCION:014|000|Subsidio incapacidad|1200|0
TOTAL_PERCEPCIONES:4684.88|0|3684.88||1000
JUBILACION_PENSION:1000|||500|500
DEDUCCION:001|000|IMSS|59.20|0
TOTAL_DEDUCCIONES:||59.20|
OTRO_PAGO:002|000|Subsidio empleo pagado|276.43
SUBSIDIO_EMPLEO:276.43
INCAPACIDAD:01|01|600
INCAPACIDAD:01|02|600
TOTALES_NOMINA:O|4684.88|59.20|276.43
LEYENDA_LEGAL:
Texto con la leyenda legal del recibo
FIN_LEYENDA_LEGAL:
FIN:
Continuar a: Facturar / Notas de crédito
Continuar a : Generar recibos de nómina
Continuar a : Documentos de Pago
Continuar a : Subir Archivo Batch para escuelas
Continuar a : Retenciones y Pagos