Fix: Formateo PEP8 (79 cols) y limpieza flake8 en paquete facho

- Líneas >79 cols reajustadas en todo el paquete
- Fix F821: etree.cleanup_namespaces(security) en signature.py (era 'header', NameError)
- Fix bug cune_xpath -> xpath en nomina/informacion_general() (NameError)
- Elimina clase TaxScheme duplicada en form/__init__.py
- Imports explícitos (F403/F405) y __all__ en form_xml/invoice.py, nomina
- Elimina imports y variables muertas (F401/F841), E712 (== None -> is None)
This commit is contained in:
2026-08-12 19:56:29 -05:00
parent 26ce89ca33
commit 4a7c2e2947
37 changed files with 1915 additions and 1103 deletions

View File

@@ -3,6 +3,7 @@ import datetime
from facho import fe
class Habilitacion:
@dataclass
@@ -16,19 +17,19 @@ class Habilitacion:
self.metadata = metadata
def generar(self, zipname, fecha):
nominas = []
dianzip = fe.DianZIP(open(zipname, 'w'))
fe.DianZIP(open(zipname, 'w'))
fechabase = datetime.datetime.now()
consecutivo = 0
for _ in range(1, 11):
consecutivo += 1
fechabase += datetime.timedelta(days=1)
nomina = self._crear_nomina_individual()
self._crear_nomina_individual()
# pag 96
nombre = "nie%010d%s%08x.xml" % (int(self.nit), fecha.strftime('%s'), consecutivo)
"nie%010d%s%08x.xml" % (
int(self.nit), fecha.strftime('%s'), consecutivo)
def _crear_nomina_individual_reemplazar(self, nomina, fechabase):
metadata = self.metadata
@@ -36,10 +37,15 @@ class Habilitacion:
nomina_ajuste = fe.nomina.DIANNominaIndividualDeAjuste.Reemplazar()
self._poblar_nomina(nomina_ajuste, metadata, fecha, prefijo='R')
informacion_general = nomina.informacion_general()
def _poblar_nomina(self, nomina, metadata, fecha, prefijo='N', consecutivo='0001'):
nomina.informacion_general()
def _poblar_nomina(
self,
nomina,
metadata,
fecha,
prefijo='N',
consecutivo='0001'):
nomina.asignar_fecha_pago(fecha)
nomina.asignar_metadata(fe.nomina.Metadata(
@@ -48,14 +54,14 @@ class Habilitacion:
consecutivo=consecutivo
),
lugar_generacion=fe.nomina.Lugar(
pais = fe.nomina.Pais(
code = 'CO'
pais=fe.nomina.Pais(
code='CO'
),
departamento = fe.nomina.Departamento(
code = '05'
departamento=fe.nomina.Departamento(
code='05'
),
municipio = fe.nomina.Municipio(
code = '05001'
municipio=fe.nomina.Municipio(
code='05001'
),
),
proveedor=fe.nomina.Proveedor(
@@ -72,14 +78,14 @@ class Habilitacion:
fecha_liquidacion_fin=fecha,
fecha_generacion=fecha,
))
nomina.asignar_informacion_general(fe.nomina.InformacionGeneral(
fecha_generacion = fecha,
hora_generacion = '20:09:00-05:00',
tipo_ambiente = fe.nomina.InformacionGeneral.AMBIENTE_PRUEBAS,
software_pin = metadata.software_pin,
periodo_nomina = fe.nomina.PeriodoNomina(code='1'),
tipo_moneda = fe.nomina.TipoMoneda(code='COP')
fecha_generacion=fecha,
hora_generacion='20:09:00-05:00',
tipo_ambiente=fe.nomina.InformacionGeneral.AMBIENTE_PRUEBAS,
software_pin=metadata.software_pin,
periodo_nomina=fe.nomina.PeriodoNomina(code='1'),
tipo_moneda=fe.nomina.TipoMoneda(code='COP')
))
nomina.asignar_pago(fe.nomina.Pago(
@@ -91,53 +97,53 @@ class Habilitacion:
)
))
nomina.asignar_empleador(fe.nomina.Empleador(
nit = metadata.nit,
dv = '0',
pais = fe.nomina.Pais(
code = 'CO'
nit=metadata.nit,
dv='0',
pais=fe.nomina.Pais(
code='CO'
),
departamento = fe.nomina.Departamento(
code = '05'
departamento=fe.nomina.Departamento(
code='05'
),
municipio = fe.nomina.Municipio(
code = '05001'
municipio=fe.nomina.Municipio(
code='05001'
),
direccion = 'calle etrivial'
direccion='calle etrivial'
))
nomina.asignar_trabajador(fe.nomina.Trabajador(
tipo_contrato = fe.nomina.TipoContrato(
code = '1'
tipo_contrato=fe.nomina.TipoContrato(
code='1'
),
alto_riesgo = False,
tipo_documento = fe.nomina.TipoDocumento(
code = '11'
alto_riesgo=False,
tipo_documento=fe.nomina.TipoDocumento(
code='11'
),
primer_apellido = 'gnu',
segundo_apellido = 'emacs',
primer_nombre = 'facho',
lugar_trabajo = fe.nomina.LugarTrabajo(
pais = fe.nomina.Pais(code='CO'),
departamento = fe.nomina.Departamento(code='05'),
municipio = fe.nomina.Municipio(code='05001'),
direccion = 'calle facho'
primer_apellido='gnu',
segundo_apellido='emacs',
primer_nombre='facho',
lugar_trabajo=fe.nomina.LugarTrabajo(
pais=fe.nomina.Pais(code='CO'),
departamento=fe.nomina.Departamento(code='05'),
municipio=fe.nomina.Municipio(code='05001'),
direccion='calle facho'
),
numero_documento = metadata.nit,
tipo = fe.nomina.TipoTrabajador(
code = '01'
numero_documento=metadata.nit,
tipo=fe.nomina.TipoTrabajador(
code='01'
),
salario_integral = True,
sueldo = fe.nomina.Amount(1_500_000)
salario_integral=True,
sueldo=fe.nomina.Amount(1_500_000)
))
nomina.adicionar_devengado(fe.nomina.DevengadoBasico(
dias_trabajados = 60,
sueldo_trabajado = fe.nomina.Amount(3_500_000)
dias_trabajados=60,
sueldo_trabajado=fe.nomina.Amount(3_500_000)
))
nomina.adicionar_deduccion(fe.nomina.DeduccionSalud(
porcentaje = fe.nomina.Amount(19),
deduccion = fe.nomina.Amount(1_000_000)
porcentaje=fe.nomina.Amount(19),
deduccion=fe.nomina.Amount(1_000_000)
))
nomina.adicionar_deduccion(fe.nomina.DeduccionFondoPension(
@@ -152,4 +158,3 @@ class Habilitacion:
nomina = fe.nomina.DIANNominaIndividual()
self._poblar_nomina(nomina, metadata, fecha)