Initial commit
This commit is contained in:
commit
848f71c9d7
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
venv/
|
20
data/menu.yml
Normal file
20
data/menu.yml
Normal file
@ -0,0 +1,20 @@
|
||||
items:
|
||||
- name: "Pão Parmesão"
|
||||
cod: 1003
|
||||
description: "Pão feito de parmesão"
|
||||
price_wpp: 18
|
||||
price_ifood: 20
|
||||
is_a_combo: false
|
||||
- name: "Pão Integral"
|
||||
cod: 1002
|
||||
description: "Pão feito de de farinha integral"
|
||||
price_wpp: 19
|
||||
price_ifood: 21
|
||||
is_a_combo: false
|
||||
- name: "2 Pães 15% off"
|
||||
cod: 1032
|
||||
description: "2 Paes"
|
||||
price_wpp: 19
|
||||
price_ifood: 21
|
||||
is_a_combo: true
|
||||
sub-items: [1003, 1002]
|
2
registro-agil.sh
Executable file
2
registro-agil.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/zsh
|
||||
/Users/joaopedroneiva/PycharmProjects/registro-agil-pedidos/venv/bin/python /Users/joaopedroneiva/PycharmProjects/registro-agil-pedidos/src/__main__.py
|
2
requirements.txt
Normal file
2
requirements.txt
Normal file
@ -0,0 +1,2 @@
|
||||
pyyaml
|
||||
ipython
|
85
src/__main__.py
Normal file
85
src/__main__.py
Normal file
@ -0,0 +1,85 @@
|
||||
import os
|
||||
from src.order import Order
|
||||
|
||||
|
||||
main_menu_options = """
|
||||
Choose an option:
|
||||
1 - Add item
|
||||
2 - Print Summary/PDV
|
||||
3 - Parse Ifood into PDVS
|
||||
4 - Remove Last item
|
||||
5 - Clear Order
|
||||
6 - Exit
|
||||
"""
|
||||
|
||||
|
||||
def add_item():
|
||||
print('Add item')
|
||||
options = Order.list_options()
|
||||
for i, x in enumerate(options):
|
||||
print(f'{i+1} - {x}')
|
||||
print('x - return to main menu')
|
||||
print_summary()
|
||||
print('\n:')
|
||||
chosen_item = input()
|
||||
|
||||
if chosen_item == 'x':
|
||||
return
|
||||
try:
|
||||
chosen_item = int(chosen_item) - 1
|
||||
except ValueError:
|
||||
print(f'Invalid option {chosen_item}')
|
||||
if not chosen_item < len(options):
|
||||
print('Invalid Item')
|
||||
else:
|
||||
Order.add_item(options[chosen_item])
|
||||
|
||||
os.system('clear')
|
||||
add_item()
|
||||
|
||||
|
||||
def print_summary():
|
||||
print('Summary:')
|
||||
print(Order.get_string())
|
||||
|
||||
|
||||
def parse_ifood_string():
|
||||
print('parse_ifood_string')
|
||||
|
||||
|
||||
def remove_latest_item():
|
||||
Order.remove_latest_item()
|
||||
|
||||
|
||||
def clear_all_items():
|
||||
Order.clear_all_items()
|
||||
|
||||
|
||||
def menu():
|
||||
while True:
|
||||
print(main_menu_options)
|
||||
chosen_option = input()
|
||||
|
||||
os.system('clear')
|
||||
|
||||
if chosen_option == '1':
|
||||
add_item()
|
||||
elif chosen_option == '2':
|
||||
print_summary()
|
||||
elif chosen_option == '3':
|
||||
parse_ifood_string()
|
||||
elif chosen_option == '4':
|
||||
remove_latest_item()
|
||||
elif chosen_option == '5':
|
||||
clear_all_items()
|
||||
elif chosen_option == '6':
|
||||
return
|
||||
else:
|
||||
print('Choose a valid option.')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.system('clear')
|
||||
|
||||
Order.load_menu()
|
||||
menu()
|
BIN
src/__pycache__/order.cpython-37.pyc
Normal file
BIN
src/__pycache__/order.cpython-37.pyc
Normal file
Binary file not shown.
39
src/order.py
Normal file
39
src/order.py
Normal file
@ -0,0 +1,39 @@
|
||||
import yaml
|
||||
|
||||
|
||||
class Order:
|
||||
items = list()
|
||||
menu = dict()
|
||||
|
||||
@staticmethod
|
||||
def load_menu():
|
||||
with open("../data/menu.yml", "r") as stream:
|
||||
Order.menu = yaml.safe_load(stream)['items']
|
||||
|
||||
@staticmethod
|
||||
def list_options():
|
||||
return [option['name']for option in Order.menu]
|
||||
|
||||
@staticmethod
|
||||
def add_item(item_name):
|
||||
Order.items.append(item_name)
|
||||
|
||||
@staticmethod
|
||||
def get_string():
|
||||
menu_as_dict = {x['name']: x for x in Order.menu}
|
||||
__items = list(map(lambda x: menu_as_dict[x], Order.items))
|
||||
|
||||
output = [f"**{x['name']}**\n{x['description']}" for x in __items]
|
||||
|
||||
output = '\n'.join(output)
|
||||
|
||||
return output
|
||||
|
||||
@staticmethod
|
||||
def remove_latest_item():
|
||||
Order.items = Order.items[:-1]
|
||||
|
||||
|
||||
@staticmethod
|
||||
def clear_all_items():
|
||||
Order.items = list()
|
11
test.txt
Normal file
11
test.txt
Normal file
@ -0,0 +1,11 @@
|
||||
Item Qtde Valor unit. Incentivo Subtotal
|
||||
Pão Parmesão artesanal 450g 15 fatias congeladas Pao Paes Pães 1 R$ 26,99 R$ 0,00 R$ 26,99
|
||||
Pão Multigrãos semi-integral artesanal 450g 15 fatias congeladas Pao Paes Pães 1 R$ 26,99 R$ 0,00 R$ 26,99
|
||||
Pão fermentação natural + manteiga grátis saborizada alecrim 20g 1 R$ 22,99 R$ 0,00 R$ 26,99
|
||||
Pão Multigrãos semi-integral artesanal 450g 15 fatias congeladas Pao Paes Pães 1 R$ 4,00 R$ 4,00
|
||||
Manteiga saborizada com alecrim 20g 1 R$ 0,00 R$ 0,00
|
||||
3 itens | Subtotal: R$ 80,97
|
||||
Taxa de entrega:
|
||||
Tempo de entrega: 33 minutos
|
||||
R$ 12,99
|
||||
Total do pedido R$ 93,96
|
Loading…
x
Reference in New Issue
Block a user