181 lines
6.5 KiB
Python
181 lines
6.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
pyjeeves.models
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Jeeves meta data models
|
|
"""
|
|
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
from sqlalchemy import (Column, Integer, BigInteger, SmallInteger,
|
|
String, ForeignKey, Numeric, DateTime, Boolean)
|
|
from sqlalchemy.orm import relationship
|
|
from sqlalchemy.schema import PrimaryKeyConstraint
|
|
|
|
Base = declarative_base()
|
|
|
|
|
|
class InvoiceRows(Base):
|
|
__tablename__ = 'jvs_invoice_rows'
|
|
__table_args__ = (
|
|
PrimaryKeyConstraint(name='invoice_rows_primary_key', mssql_clustered=True),)
|
|
|
|
FaktNr = Column(BigInteger, primary_key=True)
|
|
FaktRadnr = Column(Integer, primary_key=True)
|
|
ForetagKod = Column(SmallInteger, primary_key=True)
|
|
|
|
FtgNr = Column(String(length=16), ForeignKey(u'jvs_customers.FtgNr'))
|
|
OrderNr = Column(BigInteger)
|
|
OrdTyp = Column(SmallInteger)
|
|
Saljare = Column(String(length=16))
|
|
KundKategoriKod = Column(SmallInteger) # Can't have foreign key, as foreing data is mutalble
|
|
ArtNr = Column(String(length=16)) # Can't have foreign key, as foreing data is mutalble
|
|
EnhetsKod = Column(String(length=8))
|
|
VaruGruppKod = Column(String(length=8))
|
|
|
|
Redovisnar = Column(SmallInteger)
|
|
Period = Column(SmallInteger)
|
|
FaktDat = Column(DateTime)
|
|
FaktTB = Column(Numeric(precision=19, scale=4))
|
|
FaktTG = Column(Numeric(precision=8, scale=3))
|
|
FaktLevAnt = Column(Numeric(precision=15, scale=6))
|
|
FaktLevAntAltEnh = Column(Numeric(precision=15, scale=6))
|
|
FPris = Column(Numeric(precision=19, scale=4))
|
|
FaktRadSumma = Column(Numeric(precision=19, scale=4))
|
|
ValKod = Column(String(length=3))
|
|
ValKurs = Column(Numeric(precision=22, scale=14))
|
|
RowCreatedDt = Column(DateTime)
|
|
RowUpdatedDt = Column(DateTime)
|
|
RowUpdatedBy = Column(String(length=16))
|
|
|
|
customer = relationship(u'Customers')
|
|
articles = relationship(u'Articles', foreign_keys=[ArtNr],
|
|
primaryjoin='Articles.ArtNr == InvoiceRows.ArtNr')
|
|
|
|
|
|
class OrderRows(Base):
|
|
__tablename__ = 'jvs_order_rows'
|
|
__table_args__ = (
|
|
PrimaryKeyConstraint(name='order_rows_primary_key', mssql_clustered=True),)
|
|
|
|
OrderNr = Column(BigInteger, primary_key=True)
|
|
OrdRadnr = Column(Integer, primary_key=True)
|
|
OrdRadNrStrPos = Column(Integer, primary_key=True)
|
|
OrdRestNr = Column(SmallInteger, primary_key=True)
|
|
ForetagKod = Column(SmallInteger, primary_key=True)
|
|
|
|
ArtNr = Column(String(length=16))
|
|
FtgNr = Column(String(length=16), ForeignKey(u'jvs_customers.FtgNr'))
|
|
vb_pris = Column(Numeric(precision=19, scale=4))
|
|
OrdAntal = Column(Numeric(precision=15, scale=6))
|
|
OrdAntalAltEnh = Column(Numeric(precision=15, scale=6))
|
|
AltEnhetKod = Column(String(length=16))
|
|
OrdLevAntal = Column(Numeric(precision=15, scale=6))
|
|
OrdLevAntalAltEnh = Column(Numeric(precision=15, scale=6))
|
|
FaktNr = Column(BigInteger)
|
|
OrdDatum = Column(DateTime)
|
|
OrdBerLevDat = Column(DateTime)
|
|
OrdBerednDat = Column(DateTime)
|
|
OrdLevDat = Column(DateTime)
|
|
|
|
# Data from SalesPersonel (salj) in Jeeves
|
|
Saljare = Column(String(length=32))
|
|
SaljareNamn = Column(String(length=64))
|
|
|
|
# Data from OrderRowStatuses (xs) in Jeeves
|
|
OrdRadSt = Column(SmallInteger)
|
|
OrdRStatBeskr = Column(String(length=64))
|
|
|
|
# Data from OrderTypes (x6) in Jeeves
|
|
OrdTyp = Column(SmallInteger)
|
|
OrdTypBeskr = Column(String(length=64))
|
|
|
|
RowCreatedDt = Column(DateTime)
|
|
RowCreatedBy = Column(String(length=16))
|
|
RowUpdatedDt = Column(DateTime)
|
|
RowUpdatedBy = Column(String(length=16))
|
|
|
|
customer = relationship(u'Customers')
|
|
invoice_rows = relationship(u'InvoiceRows', foreign_keys=[FaktNr],
|
|
primaryjoin='InvoiceRows.FaktNr == OrderRows.FaktNr')
|
|
articles = relationship(u'Articles', foreign_keys=[ArtNr],
|
|
primaryjoin='Articles.ArtNr == OrderRows.ArtNr')
|
|
|
|
|
|
class Articles(Base):
|
|
__tablename__ = 'jvs_articles'
|
|
__table_args__ = (
|
|
PrimaryKeyConstraint(name='articles_primary_key', mssql_clustered=True),)
|
|
|
|
ArtNr = Column(String(length=16), primary_key=True)
|
|
ForetagKod = Column(SmallInteger, primary_key=True)
|
|
|
|
ArtBeskr = Column(String(length=128))
|
|
ArtBeskr2 = Column(String(length=256))
|
|
ArtBeskrSpec = Column(String(length=128))
|
|
|
|
ArtProdKonto = Column(String(length=8))
|
|
ArtProdKontoBeskr = Column(String(length=64))
|
|
VaruGruppKod = Column(String(length=8))
|
|
VaruGruppBeskr = Column(String(length=64))
|
|
ArtProdKlass = Column(String(length=8))
|
|
ArtProdklBeskr = Column(String(length=64))
|
|
ArtKod = Column(SmallInteger)
|
|
ArtTypBeskr = Column(String(length=64))
|
|
|
|
LagTyp = Column(SmallInteger)
|
|
EnhetsKod = Column(String(length=8))
|
|
LevNr = Column(String(length=16))
|
|
ItemStatusCode = Column(Integer)
|
|
LagSaldoArtikel = Column(Numeric(precision=15, scale=6))
|
|
|
|
RowCreatedDt = Column(DateTime)
|
|
RowCreatedBy = Column(String(length=16))
|
|
RowUpdatedDt = Column(DateTime)
|
|
RowUpdatedBy = Column(String(length=16))
|
|
|
|
|
|
class Customers(Base):
|
|
__tablename__ = 'jvs_customers'
|
|
__table_args__ = (
|
|
PrimaryKeyConstraint(name='customers_primary_key', mssql_clustered=True),)
|
|
|
|
FtgNr = Column(String(length=16), primary_key=True)
|
|
ForetagKod = Column(SmallInteger, primary_key=True)
|
|
|
|
BetKod = Column(String(length=8))
|
|
Saljare = Column(String(length=16))
|
|
kundbetalarenr = Column(String(length=16))
|
|
|
|
Makulerad = Column(Boolean)
|
|
MakDateTime = Column(DateTime)
|
|
|
|
RowCreatedDt = Column(DateTime)
|
|
RowCreatedBy = Column(String(length=16))
|
|
RowUpdatedDt = Column(DateTime)
|
|
RowUpdatedBy = Column(String(length=16))
|
|
|
|
# Data from SalesPersonel (salj) in Jeeves
|
|
Saljare = Column(String(length=32))
|
|
SaljareNamn = Column(String(length=64))
|
|
|
|
# Data from CustomerCategories (x1k) in Jeeves
|
|
KundKategoriKod = Column(SmallInteger)
|
|
KundKatBeskr = Column(String(length=64))
|
|
|
|
# Data from CustomerClasses (x1kk) in Jeeves
|
|
Kundklass = Column(String(length=16))
|
|
KundKlassBeskr = Column(String(length=64))
|
|
|
|
# Data from Companies (fr) in Jeeves
|
|
OrgNr = Column(String(length=32))
|
|
FtgNamn = Column(String(length=64))
|
|
FtgPostAdr1 = Column(String(length=64))
|
|
FtgPostAdr2 = Column(String(length=64))
|
|
FtgPostAdr3 = Column(String(length=64))
|
|
FtgPostadr4 = Column(String(length=64))
|
|
FtgPostadr5 = Column(String(length=128))
|
|
FtgPostnr = Column(String(length=16))
|
|
LandsKod = Column(String(length=16))
|
|
FtgPostLevAdr3 = Column(String(length=64))
|
|
FtgLevPostNr = Column(String(length=16))
|