def get_tag(self):
return "{%s}%s" % (self.Meta.namespace, self.Meta.tag)
+ def is_empty(self, el):
+ return not list(el) and not el.text
+
def append_to(self, node):
el = self.to_etree()
- if self.required or list(el) or el.text:
+ if self.required or not self.is_empty(el):
node.append(el)
def serialize(self, schema="FACTUR-X_BASIC"):
self.namespace = namespace
self.tag = tag
self.text = text
+ self.set_on_input =False
def __repr__(self):
return '<{}: {}>'.format(type(self).__name__, str(self))
def __str__(self):
- return self.text
+ return str(self.text)
+
+ def is_empty(self, el):
+ return super().is_empty(el) and not self.set_on_input
def get_tag(self):
return "{%s}%s" % (self.namespace, self.tag)
def from_etree(self, root):
self.text = root.text
+ self.set_on_input = True
return self
def from_etree(self, root):
self.value = Decimal(root.text)
+ self.set_on_input = True
return self
def from_etree(self, root):
self.amount = Decimal(root.text)
self.unit_code = root.attrib['unitCode']
+ self.set_on_input = True
return self
def from_etree(self, root):
self.amount = Decimal(root.text)
self.currency = root.attrib.get('currencyID', 'EUR')
+ self.set_on_input = True
return self
def __str__(self):
self.text = Decimal(root.text)
self.list_id = root.attrib['listID']
self.list_version_id = root.attrib['listVersionID']
+ self.set_on_input = True
return self
def __str__(self):
def from_etree(self, root):
self.text = root.text
self.mime_code = root.attrib['mimeCode']
+ self.set_on_input = True
return self
def __str__(self):
def from_etree(self, root):
self.text = root.text
self.scheme_id = root.attrib['schemeAgencyID']
+ self.set_on_input = True
return self
def __str__(self):
def from_etree(self, root):
self.text = root.text
self.scheme_id = root.attrib['schemeID']
+ self.set_on_input = True
return self
def __str__(self):
self.value = datetime.strptime(root[0].text + '1', '%G%V%u').date()
else:
raise TypeError("Date format %s cannot be parsed" % root[0].attrib['format'])
+ self.set_on_input = True
return self
def __str__(self):
def from_etree(self, root):
self.value = datetime.strptime(root.text, '%Y-%m-%dT%H:%M:%S').date()
+ self.set_on_input = True
return self
def __str__(self):
if root[0].tag != "{%s}%s" % (NS_UDT, "Indicator"):
raise TypeError("Tag %s not recognized" % root[0].tag)
self.value = root[0].text == 'true'
+ self.set_on_input = True
return self