Implement support for contact persons and web users. Also show addr info for company.
This commit is contained in:
parent
a23e88ff2f
commit
fc7c1e13bc
2 changed files with 97 additions and 5 deletions
|
|
@ -192,14 +192,92 @@ class Article(RawBaseModel):
|
|||
)
|
||||
|
||||
|
||||
class ContactInformationType(RawBaseModel):
|
||||
__tablename__ = 'X4'
|
||||
__to_dict_only__ = ('ComKod', 'ComBeskr')
|
||||
|
||||
|
||||
class ContactInformation(RawBaseModel):
|
||||
__tablename__ = 'cr'
|
||||
__column_map__ = {'ComNr': 'Information'}
|
||||
__to_dict_only__ = ('InformationType', 'ComNr')
|
||||
|
||||
FtgNr = Column(String, ForeignKey('fr.FtgNr'), primary_key=True)
|
||||
FtgKontaktNr = Column(Integer, ForeignKey('kp.FtgKontaktNr'), primary_key=True)
|
||||
ComKod = Column(String, ForeignKey('X4.ComKod'), primary_key=True)
|
||||
|
||||
ContactInformationType = relationship(ContactInformationType)
|
||||
|
||||
@hybrid_property
|
||||
def InformationType(self):
|
||||
return self.ContactInformationType.ComBeskr if self.ContactInformationType else ""
|
||||
|
||||
|
||||
class ContactPerson(RawBaseModel):
|
||||
__tablename__ = 'kp'
|
||||
__column_map__ = {'FtgKontaktNr': 'ContactNumber', 'FtgPerson': 'ContactName'}
|
||||
__to_dict_only__ = ('FtgKontaktNr', 'FtgPerson', 'ContactInformation')
|
||||
|
||||
FtgNr = Column(String, ForeignKey('fr.FtgNr'), primary_key=True)
|
||||
FtgKontaktNr = Column(Integer, primary_key=True)
|
||||
|
||||
ContactInformation = relationship(
|
||||
"ContactInformation", lazy='joined',
|
||||
foreign_keys='ContactInformation.FtgNr, ContactInformation.FtgKontaktNr',
|
||||
primaryjoin="and_(ContactInformation.FtgNr==ContactPerson.FtgNr,"
|
||||
"ContactInformation.FtgKontaktNr==ContactPerson.FtgKontaktNr)")
|
||||
|
||||
|
||||
class WebUser(RawBaseModel):
|
||||
__tablename__ = 'kpw'
|
||||
__to_dict_only__ = ('WebUserName', 'ValidToUse', 'ContactPersonName', 'ContactPersonNumber')
|
||||
|
||||
FtgNr = Column(String, ForeignKey('fr.FtgNr'), primary_key=True)
|
||||
FtgKontaktNr = Column(Integer, ForeignKey('kp.FtgKontaktNr'), primary_key=True)
|
||||
|
||||
ContactPerson = relationship(
|
||||
ContactPerson, uselist=False, lazy='joined',
|
||||
foreign_keys='ContactPerson.FtgNr, ContactPerson.FtgKontaktNr',
|
||||
primaryjoin="and_(ContactPerson.FtgNr==WebUser.FtgNr,"
|
||||
"ContactPerson.FtgKontaktNr==WebUser.FtgKontaktNr)")
|
||||
|
||||
@hybrid_property
|
||||
def ContactPersonName(self):
|
||||
return self.ContactPerson.FtgPerson if self.ContactPerson else ""
|
||||
|
||||
@hybrid_property
|
||||
def ContactPersonNumber(self):
|
||||
return self.ContactPerson.FtgKontaktNr if self.ContactPerson else ""
|
||||
|
||||
|
||||
class LanguageCodes(RawBaseModel):
|
||||
__tablename__ = 'xw'
|
||||
|
||||
SprakKod = Column(Integer, primary_key=True)
|
||||
|
||||
|
||||
class Company(RawBaseModel):
|
||||
__tablename__ = 'fr'
|
||||
__column_map__ = {'FtgNr': 'CompanyNumber', 'FtgNamn': 'CompanyName'}
|
||||
__to_dict_only__ = ('FtgNr', 'FtgNamn', 'Customer')
|
||||
__column_map__ = {'FtgNr': 'CompanyNumber', 'FtgNamn': 'CompanyName',
|
||||
'OrgNr': 'CompanyIdentityNumber', 'EUMomsNr': 'CompanyVATNumber',
|
||||
'FtgPostAdr1': 'AddrCO', 'FtgPostadr5': 'AddrStreet',
|
||||
'FtgLevPostNr': 'AddrPostalCode', 'FtgPostLevAdr3': 'AddrCity',
|
||||
'LandsKod': 'AddrCountry',
|
||||
'FtgPostAdr2': 'PostAddrStreet', 'FtgPostnr': 'PostAddrPostalCode',
|
||||
'FtgPostAdr3': 'PostAddrCity'}
|
||||
__to_dict_only__ = ('FtgNr', 'FtgNamn', 'Customer', 'ContactPersons', 'ContactInformation',
|
||||
'FtgPostadr5', 'FtgPostAdr1', 'FtgPostLevAdr3', 'FtgLevPostNr', 'LandsKod',
|
||||
'FtgPostAdr2', 'FtgPostnr', 'FtgPostAdr3', 'OrgNr', 'EUMomsNr')
|
||||
|
||||
FtgNr = Column(String, primary_key=True)
|
||||
|
||||
Customer = relationship('Customer', uselist=False, back_populates='Company', lazy='joined')
|
||||
ContactPersons = relationship("ContactPerson", lazy='joined')
|
||||
ContactInformation = relationship(
|
||||
"ContactInformation", lazy='joined',
|
||||
foreign_keys='ContactInformation.FtgNr',
|
||||
primaryjoin="and_(ContactInformation.FtgNr==Company.FtgNr,"
|
||||
"ContactInformation.FtgKontaktNr==null())")
|
||||
|
||||
|
||||
class DelivLoc(RawBaseModel):
|
||||
|
|
@ -215,12 +293,16 @@ class CustomerCategory(RawBaseModel):
|
|||
class Customer(RawBaseModel):
|
||||
__tablename__ = 'kus'
|
||||
__column_map__ = {'FtgNr': 'CompanyNumber', 'kundkategorikod': 'CustomerCategoryCode',
|
||||
'PrisListaKundSpec': 'PriceListPrimary', 'PrisLista': 'PriceListSecondary'}
|
||||
'PrisListaKundSpec': 'PriceListPrimary', 'PrisLista': 'PriceListSecondary',
|
||||
'GodsMarke1': 'DefaultShippingInfo', 'GodsMarke2': 'InternalInfo',
|
||||
'LevSattKod': 'DefaultShippingTypeCode', 'ValKod': 'CustomerCurrency'}
|
||||
__to_dict_only__ = ('kundkategorikod', 'PriceList', 'PriceListCommon', 'CustomerCategory',
|
||||
'PrisLista', 'PrisListaKundSpec')
|
||||
'PrisLista', 'PrisListaKundSpec', 'WebUsers', 'GodsMarke1',
|
||||
'GodsMarke2', 'LevSattKod', 'Language', 'ValKod')
|
||||
|
||||
FtgNr = Column(String, ForeignKey('fr.FtgNr'), primary_key=True)
|
||||
KundKategoriKod = Column(Integer, ForeignKey('x1k.KundKategoriKod'))
|
||||
SprakKod = Column(Integer, ForeignKey('xw.SprakKod'))
|
||||
PrisLista = Column(Integer, ForeignKey('prh.PrisLista'))
|
||||
PrisListaKundSpec = Column(Integer, ForeignKey('prh.PrisLista'))
|
||||
|
||||
|
|
@ -233,11 +315,20 @@ class Customer(RawBaseModel):
|
|||
primaryjoin="Customer.PrisLista==PriceList.PrisLista")
|
||||
|
||||
KundKategori = relationship("CustomerCategory")
|
||||
LanguageCodes = relationship("LanguageCodes")
|
||||
|
||||
WebUsers = relationship(
|
||||
WebUser, uselist=True, lazy='joined',
|
||||
foreign_keys='WebUser.FtgNr', primaryjoin="Customer.FtgNr==WebUser.FtgNr")
|
||||
|
||||
@hybrid_property
|
||||
def CustomerCategory(self):
|
||||
return self.KundKategori.KundKatBeskr if self.KundKategori else ""
|
||||
|
||||
@hybrid_property
|
||||
def Language(self):
|
||||
return self.LanguageCodes.Sprak if self.LanguageCodes else ""
|
||||
|
||||
|
||||
class PriceList(RawBaseModel):
|
||||
__tablename__ = 'prh'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue