# -*- coding: utf-8 -*- 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__) # Relocate Jeeves modules to separate folder and let a "master" module handle imports, and setup. class Article(): """Handles articles in Jeeves""" @staticmethod def get(art_no): """ Query an article by number """ try: return ArticleModel.query.filter_by( ArtNr=art_no ).one() except NoResultFound: raise KeyError @staticmethod def get_all(filter_=and_(ArticleModel.ItemStatusCode == 0, ArticleModel.ArtKod != 2)): # .filter_by(ItemStatusCode=0, ArtKod=2) 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 Company.__table__.columns]) logger.info("Starting TEST") # session = RawSession() logger.info("Testing gettings an article") # 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(ArticleModel.get_all()) )