nueva estructura de directorios para nomina

FossilOrigin-Name: f3a95167abace679098bac9daffda6f17a8c819b92a5d096558f20dfce3acbbe
This commit is contained in:
bit4bit 2021-11-05 02:34:45 +00:00
parent 791d534653
commit 4b11f6b06d
12 changed files with 119 additions and 69 deletions

View File

@ -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

View File

@ -0,0 +1,4 @@
from .. import form
class Amount(form.Amount):
pass

View File

@ -0,0 +1,3 @@
# contributing
crear nuevo objeto de valor y exportar en **__init__.py** atributo **__all__**.

View File

@ -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'
]

View File

@ -0,0 +1,2 @@
class Deduccion:
pass

View File

@ -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
)

View File

@ -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
)

View File

@ -0,0 +1,3 @@
# contributing
crear nuevo objeto de valor y exportar en **__init__.py** atributo **__all__**.

View File

@ -0,0 +1,10 @@
from .basico import *
from .transporte import *
from .devengado import *
__all__ = [
'Devengado',
'DevengadoBasico',
'DevengadoTransporte'
]

View File

@ -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)
)

View File

@ -0,0 +1,2 @@
class Devengado:
pass

View File

@ -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
)