Exemplo n.º 1
0
 def arrive(self, count):
     """Прибытие новой партии книг данного издания."""
     self.count += count
     self.is_frozen = 0
     summ = count*self.price
     BookStore.log(f'arrived book {str(self)} {count}. It has value {summ} with {self.retail_markup}.')
     return summ
Exemplo n.º 2
0
 def __init__(self, buyer, wishlist):
     """создание заказа: покупатель и пожелания."""
     self.buyer = buyer
     self.wishes = wishlist
     self.buyer.order += 1
     self.buyer.books.extend(wishlist)
     BookStore.log(
         f'created buyer {buyer} {[str(wish) for wish in wishlist]}')
Exemplo n.º 3
0
 def get(self, wish=None):
     """получение книги автора."""
     BookStore.log(f'book {wish} got from {self.author}')
     temp = None
     for book in self.bibliography:
         if wish.title == book.title:
             temp = book
             if temp.count > 0:
                 return temp
     return temp
Exemplo n.º 4
0
 def __init__(self, **kwargs):
     self.name = 'John'
     self.surname = 'Doe'
     self.address = 'nothing'
     self.telephone_number = '000-000-00-00'
     self.email = '*****@*****.**'
     for key, value in kwargs.items():
         attr = key.lower()
         if attr in self.__slots__:
             setattr(self, attr, value)
     BookStore.log(f'created buyer {str(self)} ')
     self.books = []
     self.order = 0
     self.summ = 0
Exemplo n.º 5
0
 def booking(self):
     """оформление заказа."""
     # каждая книга обрабатывается
     summ = 0
     flag = True
     for wish in self.wishes:
         edition = wish.one_book.get_edition()
         if (edition is None):
             flag = False
         else:
             summ += edition.booking()
     BookStore.log((str(self), flag), 'Order')
     self.buyer.summ += summ
     return summ
Exemplo n.º 6
0
 def booking(self):
     """Заказ издания."""
     if self.count > 0:
         self.count -= 1
         self.demand += 1
         self.sold += 1
         self.book.income += self.retail_markup
         BookStore.log(f'bought book {str(self)} for {self.retail_markup}')
         return self.retail_markup
     else:
         self.demand += 1
         BookStore.bid_book(self)
         BookStore.log(f"can't buy book {str(self)} ")
         return 0
Exemplo n.º 7
0
    def __init__(self, **kwargs):
        """Инициализация по списку параметров, определение списка изданий и.

        прочих параметров.
        """
        self.editions = []
        self.author = 'nobody'
        self.title = 'nothing'
        self.first_published = 2019
        self.income = 0
        for key, value in kwargs.items():
            attr = key.lower()
            if (attr == 'year'):
                temp = int(value)
                if temp < self.first_published:
                    self.first_published = temp
            elif (attr == 'topics') or (attr == 'category'):
                set_value = value.split()
            else:
                set_value = value
            if attr in self.__slots__:
                setattr(self, attr, set_value)
        self.editions = [Edition(self, **kwargs)]
        BookStore.log(f'created book {str(self)} ')
Exemplo n.º 8
0
    def __init__(self, book, **kwargs):
        """Инициализация по списку параметров, определение неустановленных.

        параметров.
        """
        self.book = book
        for key, value in kwargs.items():
            attr = key.lower()
            set_value = value
            if value.isdigit():
                set_value = int(value)
            if (attr == 'topics') or (attr == 'categories'):
                set_value = value.split()
            if attr in self.__slots__:
                setattr(self, attr, set_value)
        self.pages_used = random_pages()
        self.price = random_price(self)
        self.retail_markup = markup(self.price)
        self.demand = 0
        self.sold = 0
        self.newness = 0
        self.count = random_count(self.price)
        self.is_frozen = 0
        BookStore.log(f'created book {str(self)} ')
Exemplo n.º 9
0
 def arrive(self, editionlist):
     for edition, count in editionlist:
         self.cash += edition.arrive(count)
         BookStore.log(f'{self.name} book {edition.book.title} arrived ')
Exemplo n.º 10
0
 def add(self, one_edition):
     self.editions += [one_edition]
     BookStore.log(f'{self.name} added {one_edition.book.title}')
Exemplo n.º 11
0
 def __init__(self, name):
     self.AVT = 3
     self.name = name
     self.editions = []
     self.cash = 0
     BookStore.log(f'Publisher {name} created')
Exemplo n.º 12
0
 def __init__(self, name):
     """создание нового автора, с заданным именем и пустой библиографией."""
     self.author = name
     self.bibliography = []
     BookStore.log(f'author {name} created/n')
Exemplo n.º 13
0
 def add(self, one_book):
     """добавление книги в библиографию."""
     self.bibliography.append(one_book)
     BookStore.log(f'author{self.author} book {one_book.title} added')