parent
051e080f7e
commit
d2c9ceea52
@ -0,0 +1,32 @@
|
||||
from src.fmt.abstract_formatter import AbstractFormatter
|
||||
|
||||
class CartItemFormatter(AbstractFormatter):
|
||||
def format(self, item) -> str:
|
||||
fmt, _ = self.format_and_sum(item)
|
||||
|
||||
return fmt
|
||||
|
||||
def format_and_sum(self, item) -> (str, float):
|
||||
name = item['name']
|
||||
price = float(item['price'])
|
||||
count = float(item['count'])
|
||||
total_price = price*count
|
||||
|
||||
return f"- {name} {count}x{price} ₴\n", total_price
|
||||
|
||||
def format_all(self, items: dict, header: str = "# Кошик\n\n") -> str:
|
||||
total_sum = 0
|
||||
|
||||
formated_message = header
|
||||
|
||||
items = items['data'] if 'data' in items else items
|
||||
|
||||
for item in items:
|
||||
formated_item, item_sum = self.format_and_sum(item)
|
||||
formated_message += formated_item
|
||||
total_sum += item_sum
|
||||
|
||||
formated_message += f"#### Сума: {total_sum} ₴"
|
||||
|
||||
return formated_message
|
||||
|
Loading…
Reference in new issue