se adiciona faltantes obligatorios en InformacionGeneral
FossilOrigin-Name: 2dad4c3725349ce55968669763d7321d3e5dbecec951f9d01f2193b3bd4ab528
This commit is contained in:
parent
b23be4b42f
commit
8deebbdfa4
36
facho/fe/data/dian/codelist/PeriodoNomina-2.1.gc
Normal file
36
facho/fe/data/dian/codelist/PeriodoNomina-2.1.gc
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
creado por facho, la dian tiene oficial?
|
||||||
|
poblar usando anexo tecnico 5.5.1
|
||||||
|
-->
|
||||||
|
<gc:CodeList xmlns:gc="http://docs.oasis-open.org/codelist/ns/genericode/1.0/">
|
||||||
|
<Identification>
|
||||||
|
<ShortName>PeriodoNomina</ShortName>
|
||||||
|
<LongName xml:lang="es">Periodos Nomina</LongName>
|
||||||
|
<Version>1</Version>
|
||||||
|
</Identification>
|
||||||
|
<ColumnSet>
|
||||||
|
<Column Id="code" Use="required">
|
||||||
|
<ShortName>Code</ShortName>
|
||||||
|
<Data Type="normalizedString"/>
|
||||||
|
</Column>
|
||||||
|
<Column Id="name" Use="required">
|
||||||
|
<ShortName>Nombre</ShortName>
|
||||||
|
<Data Type="normalizedString"/>
|
||||||
|
</Column>
|
||||||
|
<Key Id="codeKey">
|
||||||
|
<ShortName>CodeKey</ShortName>
|
||||||
|
<ColumnRef Ref="code"/>
|
||||||
|
</Key>
|
||||||
|
</ColumnSet>
|
||||||
|
<SimpleCodeList>
|
||||||
|
<Row>
|
||||||
|
<Value ColumnRef="code">
|
||||||
|
<SimpleValue>1</SimpleValue>
|
||||||
|
</Value>
|
||||||
|
<Value ColumnRef="name">
|
||||||
|
<SimpleValue>Semanal</SimpleValue>
|
||||||
|
</Value>
|
||||||
|
</Row>
|
||||||
|
</SimpleCodeList>
|
||||||
|
</gc:CodeList>
|
@ -99,3 +99,5 @@ UnidadesMedida = CodeList(path_for_codelist('UnidadesMedida-2.1.gc'), 'code', 'n
|
|||||||
TipoTrabajador = CodeList(path_for_codelist('TipoTrabajador-2.1.gc'), 'code', 'name')
|
TipoTrabajador = CodeList(path_for_codelist('TipoTrabajador-2.1.gc'), 'code', 'name')
|
||||||
SubTipoTrabajador = CodeList(path_for_codelist('SubTipoTrabajador-2.1.gc'), 'code', 'name')
|
SubTipoTrabajador = CodeList(path_for_codelist('SubTipoTrabajador-2.1.gc'), 'code', 'name')
|
||||||
TipoContrato = CodeList(path_for_codelist('TipoContrato-2.1.gc'), 'code', 'name')
|
TipoContrato = CodeList(path_for_codelist('TipoContrato-2.1.gc'), 'code', 'name')
|
||||||
|
PeriodoNomina = CodeList(path_for_codelist('PeriodoNomina-2.1.gc'), 'code', 'name')
|
||||||
|
TipoMoneda = CodeList(path_for_codelist('TipoMoneda-2.1.gc'), 'code', 'name')
|
||||||
|
@ -33,6 +33,27 @@ class NumeroSecuencia:
|
|||||||
fragment.set_attributes('./NumeroSecuenciaXML',
|
fragment.set_attributes('./NumeroSecuenciaXML',
|
||||||
Numero = self.numero)
|
Numero = self.numero)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class PeriodoNomina:
|
||||||
|
code: str
|
||||||
|
name: str = ''
|
||||||
|
|
||||||
|
def __post_init__(self):
|
||||||
|
if self.code not in codelist.PeriodoNomina:
|
||||||
|
raise ValueError("code [%s] not found" % (self.code))
|
||||||
|
self.name = codelist.PeriodoNomina[self.code]['name']
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class TipoMoneda:
|
||||||
|
code: str
|
||||||
|
name: str = ''
|
||||||
|
|
||||||
|
def __post_init__(self):
|
||||||
|
if self.code not in codelist.TipoMoneda:
|
||||||
|
raise ValueError("code [%s] not found" % (self.code))
|
||||||
|
self.name = codelist.TipoMoneda[self.code]['name']
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class InformacionGeneral:
|
class InformacionGeneral:
|
||||||
class TIPO_AMBIENTE:
|
class TIPO_AMBIENTE:
|
||||||
@ -48,6 +69,8 @@ class InformacionGeneral:
|
|||||||
|
|
||||||
fecha_generacion: str
|
fecha_generacion: str
|
||||||
hora_generacion: str
|
hora_generacion: str
|
||||||
|
periodo_nomina: PeriodoNomina
|
||||||
|
tipo_moneda: TipoMoneda
|
||||||
tipo_ambiente: TIPO_AMBIENTE
|
tipo_ambiente: TIPO_AMBIENTE
|
||||||
software_pin: str
|
software_pin: str
|
||||||
|
|
||||||
@ -69,6 +92,10 @@ class InformacionGeneral:
|
|||||||
FechaGen = self.fecha_generacion,
|
FechaGen = self.fecha_generacion,
|
||||||
# NIE027
|
# NIE027
|
||||||
HoraGen = self.hora_generacion,
|
HoraGen = self.hora_generacion,
|
||||||
|
# NIE029
|
||||||
|
PeriodoNomina = self.periodo_nomina.code,
|
||||||
|
# NIE030
|
||||||
|
TipoMoneda = self.tipo_moneda.code
|
||||||
# TODO(bit4bit) resto...
|
# TODO(bit4bit) resto...
|
||||||
# .....
|
# .....
|
||||||
)
|
)
|
||||||
|
@ -120,7 +120,9 @@ def test_nomina_cune():
|
|||||||
fecha_generacion = '2020-01-16',
|
fecha_generacion = '2020-01-16',
|
||||||
hora_generacion = '1053:10-05:00',
|
hora_generacion = '1053:10-05:00',
|
||||||
tipo_ambiente = fe.nomina.InformacionGeneral.AMBIENTE_PRODUCCION,
|
tipo_ambiente = fe.nomina.InformacionGeneral.AMBIENTE_PRODUCCION,
|
||||||
software_pin = '693'
|
software_pin = '693',
|
||||||
|
periodo_nomina = fe.nomina.PeriodoNomina(code='1'),
|
||||||
|
tipo_moneda = fe.nomina.TipoMoneda(code='COP')
|
||||||
))
|
))
|
||||||
|
|
||||||
nomina.asignar_empleador(fe.nomina.Empleador(
|
nomina.asignar_empleador(fe.nomina.Empleador(
|
||||||
|
Loading…
Reference in New Issue
Block a user