se crea parcialmente Address, Country
FossilOrigin-Name: 9db11d9b88e2e0065960ac07efe88e8dd8d87706bda88074845f6bfcfecc737b
This commit is contained in:
parent
efe93ecc3c
commit
3a349a746e
@ -258,7 +258,7 @@ class FachoXML:
|
|||||||
xpath = self.fragment_prefix + self._path_xpath_for(xpath)
|
xpath = self.fragment_prefix + self._path_xpath_for(xpath)
|
||||||
elem = self.builder.xpath(self.root, xpath)
|
elem = self.builder.xpath(self.root, xpath)
|
||||||
if elem is None:
|
if elem is None:
|
||||||
raise ValueError('xpath %s invalid' % (xpath))
|
raise AttributeError('xpath %s invalid' % (xpath))
|
||||||
|
|
||||||
text = self.builder.get_text(elem)
|
text = self.builder.get_text(elem)
|
||||||
return format_(text)
|
return format_(text)
|
||||||
|
@ -11,6 +11,12 @@ from copy import copy
|
|||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class PhysicalLocation(model.Model):
|
||||||
|
__name__ = 'PhysicalLocation'
|
||||||
|
|
||||||
|
address = fields.Many2One(Address, namespace='cac')
|
||||||
|
|
||||||
class PartyTaxScheme(model.Model):
|
class PartyTaxScheme(model.Model):
|
||||||
__name__ = 'PartyTaxScheme'
|
__name__ = 'PartyTaxScheme'
|
||||||
|
|
||||||
@ -20,11 +26,12 @@ class PartyTaxScheme(model.Model):
|
|||||||
class Party(model.Model):
|
class Party(model.Model):
|
||||||
__name__ = 'Party'
|
__name__ = 'Party'
|
||||||
|
|
||||||
id = fields.Virtual(setter='set_id')
|
id = fields.Virtual(setter='_on_set_id')
|
||||||
|
|
||||||
tax_scheme = fields.Many2One(PartyTaxScheme, namespace='cac')
|
tax_scheme = fields.Many2One(PartyTaxScheme, namespace='cac')
|
||||||
|
location = fields.Many2One(PhysicalLocation, namespace='cac')
|
||||||
|
|
||||||
def set_id(self, name, value):
|
def _on_set_id(self, name, value):
|
||||||
self.tax_scheme.company_id = value
|
self.tax_scheme.company_id = value
|
||||||
return value
|
return value
|
||||||
|
|
||||||
@ -256,6 +263,7 @@ class Invoice(model.Model):
|
|||||||
__namespace__ = fe.NAMESPACES
|
__namespace__ = fe.NAMESPACES
|
||||||
|
|
||||||
_ubl_extensions = fields.Many2One(UBLExtensions, namespace='ext')
|
_ubl_extensions = fields.Many2One(UBLExtensions, namespace='ext')
|
||||||
|
# nos interesa el acceso solo los atributos de la DIAN
|
||||||
dian = fields.Virtual(getter='get_dian_extension')
|
dian = fields.Virtual(getter='get_dian_extension')
|
||||||
|
|
||||||
profile_id = fields.Many2One(Element, name='ProfileID', namespace='cbc', default='DIAN 2.1')
|
profile_id = fields.Many2One(Element, name='ProfileID', namespace='cbc', default='DIAN 2.1')
|
||||||
|
@ -3,7 +3,7 @@ import facho.model.fields as fields
|
|||||||
|
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
|
|
||||||
__all__ = ['Element', 'Name', 'Date', 'Time', 'Period', 'ID']
|
__all__ = ['Element', 'Name', 'Date', 'Time', 'Period', 'ID', 'Address', 'Country']
|
||||||
|
|
||||||
class Element(model.Model):
|
class Element(model.Model):
|
||||||
"""
|
"""
|
||||||
@ -53,3 +53,21 @@ class ID(model.Model):
|
|||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self._value)
|
return str(self._value)
|
||||||
|
|
||||||
|
|
||||||
|
class Country(model.Model):
|
||||||
|
__name__ = 'Country'
|
||||||
|
|
||||||
|
name = fields.Many2One(Element, name='Name', namespace='cbc')
|
||||||
|
|
||||||
|
class Address(model.Model):
|
||||||
|
__name__ = 'Address'
|
||||||
|
|
||||||
|
#DIAN 1.7.-2020: FAJ08
|
||||||
|
#DIAN 1.7.-2020: CAJ09
|
||||||
|
id = fields.Many2One(Element, name='ID', namespace='cbc')
|
||||||
|
|
||||||
|
#DIAN 1.7.-2020: FAJ09
|
||||||
|
#DIAN 1.7.-2020: CAJ10
|
||||||
|
city = fields.Many2One(Element, name='CityName', namespace='cbc')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user