Ejemplo n.º 1
0
    def get_all_articles(self):
        """Alle Artikel der Datenbank ausgeben

        :return: Liste mit Artikeln
        """
        with ArticleMapper() as mapper:
            return mapper.find_all()
Ejemplo n.º 2
0
    def get_article_by_name(self, name: str):
        """Artikel anhand ihres Namens ausgeben

        :param name: Name
        :return: Liste mit Artikeln
        """
        with ArticleMapper() as mapper:
            return mapper.find_by_name(name)
Ejemplo n.º 3
0
    def get_article_by_id(self, article_id: int):
        """Artikel anhand der ID ausgeben

        :param article_id: ID des Artikels
        :return: Artikel-Objekt
        """
        with ArticleMapper() as mapper:
            return mapper.find_by_id(article_id)
Ejemplo n.º 4
0
    def get_articles_by_group_id(self, group_id: int):
        """Artikel der Gruppe anhand ihrer ID ausgeben

        :param group_id: ID der Gruppe
        :return: Liste mit Artikeln
        """
        with ArticleMapper() as mapper:
            return mapper.find_by_group(group_id)
Ejemplo n.º 5
0
    def get_article_count_by_group(self, group: Group):
        """Artikel einer Gruppe absteigend sortiert nach der
        Kaufhäufigkeit ausgeben

        :param group: Gruppen-Objekt
        :return: Liste mit Artikeln
        """
        with ArticleMapper() as mapper:
            return mapper.find_most_frequent_articles_by_group(group)
Ejemplo n.º 6
0
    def save_article(self, article):
        """Artikel aktualisieren

        :param article: Artikel-Objekt
        :return: Aktualisiertes Artikel-Objekt
        """
        article.set_last_updated(datetime.now())
        with ArticleMapper() as mapper:
            return mapper.update(article)
Ejemplo n.º 7
0
    def create_article(self, name: str, group_id: int):
        """Artikel erstellen

        :param name: Name
        :param group_id: ID der zugehörigen Gruppe
        :return: Artikel-Objekt
        """
        article = Article()
        article.set_id(0),
        article.set_name(name),
        article.set_group(group_id)
        with ArticleMapper() as mapper:
            return mapper.insert(article)
Ejemplo n.º 8
0
    def delete_article(self, article_id: int):
        """Artikel und zugehörige Beziehungen löschen

        :param article_id:
        :return:
        """
        article = self.get_article_by_id(article_id)

        # Standardartikel löschen
        with ListEntryMapper() as mapper:
            group = self.get_group_by_id(article.get_group())
            mapper.delete_standardarticle_by_group(group)

        # Listeneinträge mit Artikel löschen
        with ListEntryMapper() as mapper:
            mapper.delete_by_article(article)

        # Artikel löschen
        with ArticleMapper() as mapper:
            mapper.delete(article_id)
Ejemplo n.º 9
0
    def delete_group(self, group: Group):
        """Gruppe und zugehörige Beziehungen löschen

        :param group: Gruppen-Objekt
        :return:
        """

        # User löschen
        with UserGroupRelationsMapper() as mapper:
            mapper.delete_group_relations(group)

        # Standardartikel löschen
        with ListEntryMapper() as mapper:
            mapper.delete_standardarticle_by_group(group)

        # Shoppinglists löschen
        with ShoppingListMapper() as shopping_list_mapper:
            shopping_lists = shopping_list_mapper.find_by_group(group)

            # Listeineinträge anhand der ShoppingLists löschen
            with ListEntryMapper() as mapper:
                for shopping_list in shopping_lists:
                    mapper.delete_by_shopping_list(shopping_list)

            shopping_list_mapper.delete_by_group(group)

        # Artikel löschen
        with ArticleMapper() as article_mapper:
            articles = article_mapper.find_by_group(group.get_id())

            # Übrige Listeneinträge nach Artikel löschen
            with ListEntryMapper() as mapper:
                for article in articles:
                    mapper.delete_by_article(article)

            article_mapper.delete_by_group(group)

        # Gruppe löschen
        with GroupMapper() as mapper:
            mapper.delete(group)