From 4b11f6b06d168913f7a0c0e8a39a42e3f74a2388 Mon Sep 17 00:00:00 2001 From: bit4bit Date: Fri, 5 Nov 2021 02:34:45 +0000 Subject: [PATCH] nueva estructura de directorios para nomina FossilOrigin-Name: f3a95167abace679098bac9daffda6f17a8c819b92a5d096558f20dfce3acbbe --- facho/fe/nomina/__init__.py | 73 ++-------------------- facho/fe/nomina/amount.py | 4 ++ facho/fe/nomina/deduccion/README.md | 3 + facho/fe/nomina/deduccion/__init__.py | 13 ++++ facho/fe/nomina/deduccion/deduccion.py | 2 + facho/fe/nomina/deduccion/fondo_pension.py | 18 ++++++ facho/fe/nomina/deduccion/salud.py | 19 ++++++ facho/fe/nomina/devengado/README.md | 3 + facho/fe/nomina/devengado/__init__.py | 10 +++ facho/fe/nomina/devengado/basico.py | 20 ++++++ facho/fe/nomina/devengado/devengado.py | 2 + facho/fe/nomina/devengado/transporte.py | 21 +++++++ 12 files changed, 119 insertions(+), 69 deletions(-) create mode 100644 facho/fe/nomina/amount.py create mode 100644 facho/fe/nomina/deduccion/README.md create mode 100644 facho/fe/nomina/deduccion/__init__.py create mode 100644 facho/fe/nomina/deduccion/deduccion.py create mode 100644 facho/fe/nomina/deduccion/fondo_pension.py create mode 100644 facho/fe/nomina/deduccion/salud.py create mode 100644 facho/fe/nomina/devengado/README.md create mode 100644 facho/fe/nomina/devengado/__init__.py create mode 100644 facho/fe/nomina/devengado/basico.py create mode 100644 facho/fe/nomina/devengado/devengado.py create mode 100644 facho/fe/nomina/devengado/transporte.py diff --git a/facho/fe/nomina/__init__.py b/facho/fe/nomina/__init__.py index c970a1c..3ff34d9 100644 --- a/facho/fe/nomina/__init__.py +++ b/facho/fe/nomina/__init__.py @@ -5,82 +5,17 @@ # La idea en general es validar comportamiento desde el XML, # creando las estructuras minimas necesaras. +from dataclasses import dataclass from .. import fe from .. import form -from dataclasses import dataclass +from .devengado import * +from .deduccion import * -class Amount(form.Amount): - pass +from .amount import Amount -class Devengado: - pass - -@dataclass -class DevengadoBasico(Devengado): - dias_trabajados: int - sueldo_trabajado: Amount - - def apply(self, fragment): - fragment.find_or_create_element('./Basico') - - fragment.set_attributes('/Basico', - # NIE069 - DiasTrabajados = str(self.dias_trabajados), - # NIE070 - SueldoTrabajado = str(self.sueldo_trabajado) - ) - -@dataclass -class DevengadoTransporte(Devengado): - auxilio_transporte: Amount = None - viatico_manutencion: Amount = None - viatico_manutencion_no_salarial: Amount = None - - def apply(self, fragment): - fragment.set_element('./Transporte', None, - append_ = True, - # NIE071 - AuxilioTransporte = self.auxilio_transporte, - # NIE072 - ViaticoManuAlojS = self.viatico_manutencion, - # NIE073 - ViaticoManuAlojNS = self.viatico_manutencion_no_salarial - ) - -class Deduccion: - pass - -@dataclass -class DeduccionSalud(Deduccion): - porcentaje: Amount - deduccion: Amount - - def apply(self, fragment): - fragment.set_element('./Salud', None, - append_ = True, - # NIE161 - Porcentaje = self.porcentaje, - # NIE163 - Deduccion = self.deduccion - ) - -@dataclass -class DeduccionFondoPension(Deduccion): - porcentaje: Amount - deduccion: Amount - - def apply(self, fragment): - fragment.set_element('./FondoPension', None, - append_ = True, - # NIE164 - Porcentaje = self.porcentaje, - # NIE166 - Deduccion = self.deduccion - ) - class DIANNominaIndividualError(Exception): pass diff --git a/facho/fe/nomina/amount.py b/facho/fe/nomina/amount.py new file mode 100644 index 0000000..20be8ec --- /dev/null +++ b/facho/fe/nomina/amount.py @@ -0,0 +1,4 @@ +from .. import form + +class Amount(form.Amount): + pass diff --git a/facho/fe/nomina/deduccion/README.md b/facho/fe/nomina/deduccion/README.md new file mode 100644 index 0000000..673bfe8 --- /dev/null +++ b/facho/fe/nomina/deduccion/README.md @@ -0,0 +1,3 @@ +# contributing + +crear nuevo objeto de valor y exportar en **__init__.py** atributo **__all__**. diff --git a/facho/fe/nomina/deduccion/__init__.py b/facho/fe/nomina/deduccion/__init__.py new file mode 100644 index 0000000..a030056 --- /dev/null +++ b/facho/fe/nomina/deduccion/__init__.py @@ -0,0 +1,13 @@ +# +# al crear objetos de valor +# se debe exportar en __all__ + +from .deduccion import * +from .salud import * +from .fondo_pension import * + +__all__ = [ + 'Deduccion', + 'DeduccionSalud', + 'DeduccionFondoPension' +] diff --git a/facho/fe/nomina/deduccion/deduccion.py b/facho/fe/nomina/deduccion/deduccion.py new file mode 100644 index 0000000..71e143b --- /dev/null +++ b/facho/fe/nomina/deduccion/deduccion.py @@ -0,0 +1,2 @@ +class Deduccion: + pass diff --git a/facho/fe/nomina/deduccion/fondo_pension.py b/facho/fe/nomina/deduccion/fondo_pension.py new file mode 100644 index 0000000..3d2a9e2 --- /dev/null +++ b/facho/fe/nomina/deduccion/fondo_pension.py @@ -0,0 +1,18 @@ +from dataclasses import dataclass + +from ..amount import Amount +from .deduccion import Deduccion + +@dataclass +class DeduccionFondoPension(Deduccion): + porcentaje: Amount + deduccion: Amount + + def apply(self, fragment): + fragment.set_element('./FondoPension', None, + append_ = True, + # NIE164 + Porcentaje = self.porcentaje, + # NIE166 + Deduccion = self.deduccion + ) diff --git a/facho/fe/nomina/deduccion/salud.py b/facho/fe/nomina/deduccion/salud.py new file mode 100644 index 0000000..53971c5 --- /dev/null +++ b/facho/fe/nomina/deduccion/salud.py @@ -0,0 +1,19 @@ +from dataclasses import dataclass + +from ..amount import Amount +from .deduccion import Deduccion + +@dataclass +class DeduccionSalud(Deduccion): + porcentaje: Amount + deduccion: Amount + + def apply(self, fragment): + fragment.set_element('./Salud', None, + append_ = True, + # NIE161 + Porcentaje = self.porcentaje, + # NIE163 + Deduccion = self.deduccion + ) + diff --git a/facho/fe/nomina/devengado/README.md b/facho/fe/nomina/devengado/README.md new file mode 100644 index 0000000..673bfe8 --- /dev/null +++ b/facho/fe/nomina/devengado/README.md @@ -0,0 +1,3 @@ +# contributing + +crear nuevo objeto de valor y exportar en **__init__.py** atributo **__all__**. diff --git a/facho/fe/nomina/devengado/__init__.py b/facho/fe/nomina/devengado/__init__.py new file mode 100644 index 0000000..fcf9971 --- /dev/null +++ b/facho/fe/nomina/devengado/__init__.py @@ -0,0 +1,10 @@ + +from .basico import * +from .transporte import * +from .devengado import * + +__all__ = [ + 'Devengado', + 'DevengadoBasico', + 'DevengadoTransporte' +] diff --git a/facho/fe/nomina/devengado/basico.py b/facho/fe/nomina/devengado/basico.py new file mode 100644 index 0000000..30c95be --- /dev/null +++ b/facho/fe/nomina/devengado/basico.py @@ -0,0 +1,20 @@ +from dataclasses import dataclass + +from ..amount import Amount +from .devengado import Devengado + + +@dataclass +class DevengadoBasico(Devengado): + dias_trabajados: int + sueldo_trabajado: Amount + + def apply(self, fragment): + fragment.find_or_create_element('./Basico') + + fragment.set_attributes('/Basico', + # NIE069 + DiasTrabajados = str(self.dias_trabajados), + # NIE070 + SueldoTrabajado = str(self.sueldo_trabajado) + ) diff --git a/facho/fe/nomina/devengado/devengado.py b/facho/fe/nomina/devengado/devengado.py new file mode 100644 index 0000000..2096d2f --- /dev/null +++ b/facho/fe/nomina/devengado/devengado.py @@ -0,0 +1,2 @@ +class Devengado: + pass diff --git a/facho/fe/nomina/devengado/transporte.py b/facho/fe/nomina/devengado/transporte.py new file mode 100644 index 0000000..a5c9dab --- /dev/null +++ b/facho/fe/nomina/devengado/transporte.py @@ -0,0 +1,21 @@ +from dataclasses import dataclass + +from ..amount import Amount +from .devengado import Devengado + +@dataclass +class DevengadoTransporte(Devengado): + auxilio_transporte: Amount = None + viatico_manutencion: Amount = None + viatico_manutencion_no_salarial: Amount = None + + def apply(self, fragment): + fragment.set_element('./Transporte', None, + append_ = True, + # NIE071 + AuxilioTransporte = self.auxilio_transporte, + # NIE072 + ViaticoManuAlojS = self.viatico_manutencion, + # NIE073 + ViaticoManuAlojNS = self.viatico_manutencion_no_salarial + )