Started using 'sqlservice'. Added support for many new tables.

This commit is contained in:
Marcus Lindvall 2019-07-04 14:25:42 +02:00
parent 9b7d7db996
commit b77a7069ce
12 changed files with 390 additions and 125 deletions

View file

@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
from pyjeeves.models.raw import Articles
from pyjeeves.models.raw import Article as ArticleModel, ProductClass, ArticleClass, CommodityGroup
from sqlalchemy.sql.expression import and_
from sqlalchemy.orm.exc import NoResultFound
from pyjeeves import logging
logger = logging.getLogger("PyJeeves." + __name__)
@ -9,36 +10,51 @@ logger = logging.getLogger("PyJeeves." + __name__)
# Relocate Jeeves modules to separate folder and let a "master" module handle imports, and setup.
class Article():
"""Handles dispatch locations in Jeeves"""
def __init__(self):
super(Article, self).__init__()
"""Handles articles in Jeeves"""
@staticmethod
def get(art_no):
""" Query an article by number """
return Articles.query.filter_by(
ArtNr=art_no
).one()
try:
return ArticleModel.query.filter_by(
ArtNr=art_no
).one()
except NoResultFound:
raise KeyError
@staticmethod
def get_all(filter_=and_(Articles.ItemStatusCode == 0, Articles.ArtKod != 2)):
def get_all(filter_=and_(ArticleModel.ItemStatusCode == 0, ArticleModel.ArtKod != 2)):
# .filter_by(ItemStatusCode=0, ArtKod=2)
return Articles.query.filter(filter_).all()
return ArticleModel.query.filter(filter_).all()
class ArticleCategory():
"""Handles article categories, such as classes and groups in Jeeves"""
@staticmethod
def get_all():
# .filter_by(ItemStatusCode=0, ArtKod=2)
prod_classes = ProductClass.query.all()
art_classes = ArticleClass.query.all()
com_groups = CommodityGroup.query.all()
return {'ProductClasses': prod_classes,
'ArticleClasses': art_classes, 'CommodityGroups': com_groups}
if __name__ == '__main__':
# print([column.key for column in Companies.__table__.columns])
# print([column.key for column in Company.__table__.columns])
logger.info("Starting TEST")
# session = RawSession()
logger.info("Testing gettings an article")
# c1 = session.query(Companies).filter_by(FtgNr="179580").first()
# print(Articles)
c1 = Articles.query.filter_by(ArtNr="2103").first()
# c1 = session.query(Company).filter_by(FtgNr="179580").first()
# print(ArticleModel)
c1 = ArticleModel.query.filter_by(ArtNr="2103").first()
print(c1)
logger.info(c1.json)
print (
len(Article.get_all())
print(
len(ArticleModel.get_all())
)