# -*- 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))