se crea tipo Fecha para gestion de fechas
FossilOrigin-Name: ca4b0b511cb9ac37e174fbda1f53e8590e5615b0779916781ca4c1fdc002325a
This commit is contained in:
@@ -6,7 +6,9 @@
|
||||
# creando las estructuras minimas necesaras.
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
import hashlib
|
||||
import typing
|
||||
|
||||
from .. import fe
|
||||
from .. import form
|
||||
@@ -22,6 +24,22 @@ from .lugar import Lugar
|
||||
from .amount import Amount
|
||||
from .exception import *
|
||||
|
||||
class Fecha:
|
||||
def __init__(self, fecha):
|
||||
try:
|
||||
datetime.strptime(fecha, "%Y-%m-%d")
|
||||
except ValueError:
|
||||
raise ValueError("fecha debe ser formato 2000-01-01")
|
||||
|
||||
self.value = fecha
|
||||
|
||||
def __str__(self):
|
||||
return self.value
|
||||
|
||||
class FechaPago(Fecha):
|
||||
def apply(self, fragment):
|
||||
fragment.set_element('./FechaPago', self.value)
|
||||
|
||||
@dataclass
|
||||
class NumeroSecuencia:
|
||||
consecutivo: int
|
||||
@@ -259,7 +277,7 @@ class DIANNominaXML:
|
||||
|
||||
self.informacion_general_xml = self.root_fragment.fragment('./InformacionGeneral')
|
||||
self.periodo_xml = self.root_fragment.fragment('./Periodo')
|
||||
|
||||
self.fecha_pagos_xml = self.root_fragment.fragment('./FechasPagos')
|
||||
self.numero_secuencia_xml = self.root_fragment.fragment('./NumeroSecuenciaXML')
|
||||
self.lugar_generacion_xml = self.root_fragment.fragment('./LugarGeneracionXML')
|
||||
self.proveedor_xml = self.root_fragment.fragment('./ProveedorXML')
|
||||
@@ -295,8 +313,13 @@ class DIANNominaXML:
|
||||
raise ValueError('se espera tipo Pago')
|
||||
pago.apply(self.pago_xml)
|
||||
|
||||
def asignar_fecha_pago(self, fecha):
|
||||
self.fexml.set_element('./FechasPagos/FechaPago', fecha)
|
||||
def asignar_fecha_pago(self, data):
|
||||
if isinstance(data, str):
|
||||
fecha = FechaPago(data)
|
||||
elif isinstance(data, FechaPago):
|
||||
fecha = data
|
||||
|
||||
fecha.apply(self.fecha_pagos_xml)
|
||||
|
||||
def asignar_empleador(self, empleador):
|
||||
if not isinstance(empleador, Empleador):
|
||||
|
||||
Reference in New Issue
Block a user