From d47e8cf6550dd3659851b15c67ad8f7c49b5ec84 Mon Sep 17 00:00:00 2001 From: beamrls Date: Fri, 5 Jul 2024 21:20:10 -0300 Subject: [PATCH] Sistema de Vendas da Livraria BG-Reprograma --- exercicios/para-sala/README.md | 17 - .../print_reprograma.cpython-312.pyc | Bin 0 -> 9280 bytes exercicios/para-sala/olaMundo.py | 7 + .../para-sala}/print_reprograma.py | 498 +++++++++--------- exercicios/para-sala/projeto.py | 289 ++++++++++ material/__init__.py | 0 .../print_reprograma.cpython-312.pyc | Bin 0 -> 9268 bytes 7 files changed, 545 insertions(+), 266 deletions(-) delete mode 100644 exercicios/para-sala/README.md create mode 100644 exercicios/para-sala/__pycache__/print_reprograma.cpython-312.pyc create mode 100644 exercicios/para-sala/olaMundo.py rename {material => exercicios/para-sala}/print_reprograma.py (96%) create mode 100644 exercicios/para-sala/projeto.py create mode 100644 material/__init__.py create mode 100644 material/__pycache__/print_reprograma.cpython-312.pyc diff --git a/exercicios/para-sala/README.md b/exercicios/para-sala/README.md deleted file mode 100644 index f2bccd3..0000000 --- a/exercicios/para-sala/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Exercício de Sala 🏫 - -## Nome do Exercicio - -- Explicação do exercício: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam leo nibh, tempus sed rhoncus et, ultrices vitae orci. -Donec erat mauris, laoreet in tortor vel, eleifend suscipit nibh. Lorem ipsum dolor sit amet, consectetur adipiscing elit. -Aliquam leo nibh, tempus sed rhoncus et, ultrices vitae orci. Donec erat mauris, laoreet in tortor vel, eleifend suscipit nibh. ---- - -Terminou o exercício? Dá uma olhada nessa checklist e confere se tá tudo certinho, combinado?! - -- [ ] Fiz o fork do repositório. -- [ ] Clonei o fork na minha máquina (`git clone url-do-meu-fork`). -- [ ] Resolvi o exercício. -- [ ] Adicionei as mudanças. (`git add .` para adicionar todos os arquivos, ou `git add nome_do_arquivo` para adicionar um arquivo específico) -- [ ] Commitei a cada mudança significativa ou na finalização do exercício (`git commit -m "Mensagem do commit"`) -- [ ] Pushei os commits na minha branch (`git push origin nome-da-branch`) diff --git a/exercicios/para-sala/__pycache__/print_reprograma.cpython-312.pyc b/exercicios/para-sala/__pycache__/print_reprograma.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..398c5f45c3713f00a2bfa28983d332cabd51cd4f GIT binary patch literal 9280 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 0): - espaco_fim += 1 - else: - espaco_ini = 0 - espaco_fim = tamanho - tamanho_total - - if(espaco_ini < 0): - espaco_ini = 0 - - if(espaco_fim < 0): - espaco_fim = 0 - - for i in range(espaco_ini): - print(caracter, end='') - - for i in range(len(textos)): - temp_sep = sep - if(i == len(textos) - 1): - temp_sep = '' - else: - tamanho_total += 1 - print(textos[i], end = temp_sep) - - for i in range(espaco_fim): - print(caracter, end='') - - print(end, end='') - - limpar_formatacao() - -def separador(tamanho,caracter = '═', cor_texto=''): - cor(cor_texto) - for i in range(tamanho): - print(caracter,end='') - print('\n') - limpar_formatacao() - -def retangulo(texto,sv=0,sh=0,tamanho=0,cor_barra = '', cor_texto = '',margem=0): - linhas = texto.split('\n') - max_len = 0 - for linha in linhas: - if(max_len < len(linha)): - max_len = len(linha) - ajuste = False - if(tamanho>0): - sh = (tamanho - max_len - 2) // 2 - if(sh < 0): - sh = 0 - else: - ajuste = (tamanho - max_len - 2) % 2 > 0 - cor(cor_barra) - sh_texto_ini = '' - sh_barra_ini = '' - sh_texto_fim = '' - sh_barra_fim = '' - for i in range(sh): - sh_texto_ini += ' ' - sh_barra_ini += '═' - sh_texto_fim += ' ' - sh_barra_fim += '═' - if(ajuste): - sh_texto_fim += ' ' - sh_barra_fim += '═' - texto_branco = '' - texto_barra = '' - margem_texto = '' - for i in range(margem): - margem_texto += ' ' - for i in range(max_len): - texto_barra+= '═' - texto_branco += ' ' - print(margem_texto,'╔',sh_barra_ini,texto_barra,sh_barra_fim,'╗',sep='') - for i in range(sv): - print(margem_texto,'║',sh_texto_ini,texto_branco,sh_texto_fim,'║',sep='') - - for linha in linhas: - cor(cor_barra) - print(margem_texto,'║',end='',sep='') - cor(cor_texto) - for i in range((max_len - len(linha))//2): - print(' ',end='') - print(sh_texto_ini,linha,sh_texto_fim,sep='',end='') - for i in range((max_len - len(linha))//2): - print(' ',end='') - if((max_len - len(linha))%2 > 0): - print(' ',end='') - cor(cor_barra) - print('║') - - for i in range(sv): - print(margem_texto,'║',sh_texto_ini,texto_branco,sh_texto_fim,'║',sep='') - - print(margem_texto,'╚',sh_barra_ini,texto_barra,sh_barra_fim,'╝',sep='') - limpar_formatacao() - -def pular_linha(quantidade = 1): - for i in range(quantidade): - print('') - -def limpar(): - print(chr(27) + "[2J") - -def limpar_formatacao(): +def get_cor(): + print(cor_texto) + +def branco(): + cor_texto = 'branco' + print('\033[30m', end='') + +def vermelho(): + cor_texto = 'vermelho' + print('\033[31m', end='') + +def verde(): + cor_texto = 'verde' + print('\033[32m', end='') + +def amarelo(): + cor_texto = 'amarelo' + print('\033[33m', end='') + +def azul(): + cor_texto = 'azul' + print('\033[34m', end='') + +def magenta(): + cor_texto = 'magenta' + print('\033[35m', end='') + +def ciano(): + cor_texto = 'ciano' + print('\033[36m', end='') + +def cinza(): + cor_texto = 'cinza' + print('\033[37m', end='') + +def negrito(): + print('\033[1m', end='') + +def branco_negrito(): + print('\033[1;30m', end='') + +def vermelho_negrito(): + print('\033[1;31m', end='') + +def verde_negrito(): + print('\033[1;32m', end='') + +def amarelo_negrito(): + print('\033[1;33m', end='') + +def azul_negrito(): + print('\033[1;34m', end='') + +def magenta_negrito(): + print('\033[1;35m', end='') + +def ciano_negrito(): + print('\033[1;36m', end='') + +def cinza_negrito(): + print('\033[1;37m', end='') + +def cor(cor): + if(cor == 'branco'): + branco() + elif(cor == 'vermelho'): + vermelho() + elif(cor == 'verde'): + verde() + elif(cor == 'amarelo'): + amarelo() + elif(cor == 'azul'): + azul() + elif(cor == 'magenta'): + magenta() + elif(cor == 'ciano'): + ciano() + elif(cor == 'cinza'): + cinza() + elif(cor == 'w'): + branco() + elif(cor == 'r'): + vermelho() + elif(cor == 'g'): + verde() + elif(cor == 'y'): + amarelo() + elif(cor == 'b'): + azul() + elif(cor == 'm'): + magenta() + elif(cor == 'c'): + ciano() + elif(cor == 'gr'): + cinza() + elif(cor == 'branco negrito'): + branco_negrito() + elif(cor == 'vermelho negrito'): + vermelho_negrito() + elif(cor == 'verde negrito'): + verde_negrito() + elif(cor == 'amarelo negrito'): + amarelo_negrito() + elif(cor == 'azul negrito'): + azul_negrito() + elif(cor == 'magenta negrito'): + magenta_negrito() + elif(cor == 'ciano negrito'): + ciano_negrito() + elif(cor == 'cinza negrito'): + cinza_negrito() + elif(cor == 'wb'): + branco_negrito() + elif(cor == 'rb'): + vermelho_negrito() + elif(cor == 'gb'): + verde_negrito() + elif(cor == 'yb'): + amarelo_negrito() + elif(cor == 'bb'): + azul_negrito() + elif(cor == 'mb'): + magenta_negrito() + elif(cor == 'cb'): + ciano_negrito() + elif(cor == 'grb'): + cinza_negrito() + elif(cor == 'negrito'): + negrito() + +def imprimir(*textos, sep=' ',end='\n', caracter = ' ', tamanho=0, alinhar='comeco', cor_texto=''): + cor(cor_texto) + tamanho_total = 0 + for texto in textos: + tamanho_total += len(texto) + tamanho_total += (len(textos)-1) * len(sep) + + espaco_ini = 0 + espaco_fim = 0 + + if(alinhar == 'fim'): + espaco_ini = tamanho - tamanho_total + espaco_fim = 0 + elif(alinhar == 'centro'): + espaco_ini = (tamanho - tamanho_total)//2 + espaco_fim = (tamanho - tamanho_total)//2 + if((tamanho - tamanho_total) % 2 > 0): + espaco_fim += 1 + else: + espaco_ini = 0 + espaco_fim = tamanho - tamanho_total + + if(espaco_ini < 0): + espaco_ini = 0 + + if(espaco_fim < 0): + espaco_fim = 0 + + for i in range(espaco_ini): + print(caracter, end='') + + for i in range(len(textos)): + temp_sep = sep + if(i == len(textos) - 1): + temp_sep = '' + else: + tamanho_total += 1 + print(textos[i], end = temp_sep) + + for i in range(espaco_fim): + print(caracter, end='') + + print(end, end='') + + limpar_formatacao() + +def separador(tamanho,caracter = '═', cor_texto=''): + cor(cor_texto) + for i in range(tamanho): + print(caracter,end='') + print('\n') + limpar_formatacao() + +def retangulo(texto,sv=0,sh=0,tamanho=0,cor_barra = '', cor_texto = '',margem=0): + linhas = texto.split('\n') + max_len = 0 + for linha in linhas: + if(max_len < len(linha)): + max_len = len(linha) + ajuste = False + if(tamanho>0): + sh = (tamanho - max_len - 2) // 2 + if(sh < 0): + sh = 0 + else: + ajuste = (tamanho - max_len - 2) % 2 > 0 + cor(cor_barra) + sh_texto_ini = '' + sh_barra_ini = '' + sh_texto_fim = '' + sh_barra_fim = '' + for i in range(sh): + sh_texto_ini += ' ' + sh_barra_ini += '═' + sh_texto_fim += ' ' + sh_barra_fim += '═' + if(ajuste): + sh_texto_fim += ' ' + sh_barra_fim += '═' + texto_branco = '' + texto_barra = '' + margem_texto = '' + for i in range(margem): + margem_texto += ' ' + for i in range(max_len): + texto_barra+= '═' + texto_branco += ' ' + print(margem_texto,'╔',sh_barra_ini,texto_barra,sh_barra_fim,'╗',sep='') + for i in range(sv): + print(margem_texto,'║',sh_texto_ini,texto_branco,sh_texto_fim,'║',sep='') + + for linha in linhas: + cor(cor_barra) + print(margem_texto,'║',end='',sep='') + cor(cor_texto) + for i in range((max_len - len(linha))//2): + print(' ',end='') + print(sh_texto_ini,linha,sh_texto_fim,sep='',end='') + for i in range((max_len - len(linha))//2): + print(' ',end='') + if((max_len - len(linha))%2 > 0): + print(' ',end='') + cor(cor_barra) + print('║') + + for i in range(sv): + print(margem_texto,'║',sh_texto_ini,texto_branco,sh_texto_fim,'║',sep='') + + print(margem_texto,'╚',sh_barra_ini,texto_barra,sh_barra_fim,'╝',sep='') + limpar_formatacao() + +def pular_linha(quantidade = 1): + for i in range(quantidade): + print('') + +def limpar(): + print(chr(27) + "[2J") + +def limpar_formatacao(): print('\033[m', end='') \ No newline at end of file diff --git a/exercicios/para-sala/projeto.py b/exercicios/para-sala/projeto.py new file mode 100644 index 0000000..1f569ad --- /dev/null +++ b/exercicios/para-sala/projeto.py @@ -0,0 +1,289 @@ +#import sys +#sys.path.append('material') +import print_reprograma as pr +from datetime import datetime + +produtos = [ # Define uma lista de dicionários chamada 'produtos' + {'codigo': 1, 'nome': 'Introdução à Computação para Alunos Inteligentes - Volume 1', 'valor': 10.00}, + {'codigo': 2, 'nome': 'Introdução à Computação para Alunos Inteligentes - Volume 2', 'valor': 10.00}, + {'codigo': 3, 'nome': 'Linguagens de Programação Web para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 4, 'nome': 'Tecnologias de Scripting para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 5, 'nome': 'Desenvolvimento Web com SQL para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 6, 'nome': 'Desenvolvimento Web com C++ para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 7, 'nome': 'Desenvolvimento Web com Java para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 8, 'nome': 'Desenvolvimento Web com .Net para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 9, 'nome': 'Hardware e Redes de Computadores para Alunos Inteligentes - Volume 1', 'valor': 15.00}, + {'codigo': 10, 'nome': 'Hardware e Redes de Computadores para Alunos Inteligentes - Volume 2', 'valor': 15.00}, + {'codigo': 11, 'nome': 'Hardware e Redes de Computadores para Alunos Inteligentes - Volume 3', 'valor': 15.00}, + {'codigo': 12, 'nome': 'Hardware e Redes de Computadores para Alunos Inteligentes - Volume 4', 'valor': 15.00}, + {'codigo': 13, 'nome': 'Dominando o Inglês para Alunos Inteligentes', 'valor': 5.00}, + {'codigo': 14, 'nome': 'Comunicação Empresarial para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 15, 'nome': 'Desenvolvimento Pessoal para Alunos Inteligentes - Livro 1', 'valor': 15.00}, + {'codigo': 16, 'nome': 'Desenvolvimento Pessoal para Alunos Inteligentes - Livro 2', 'valor': 15.00}, + {'codigo': 17, 'nome': 'Introdução à Computação para Alunos Inteligentes - Volume 1', 'valor': 10.00}, + {'codigo': 18, 'nome': 'Introdução à Computação para Alunos Inteligentes - Volume 2', 'valor': 10.00}, + {'codigo': 19, 'nome': 'Fundamentos da Programação para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 20, 'nome': 'Algoritmos e Estruturas de Dados para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 21, 'nome': 'Introdução à Engenharia de Software para Alunos Inteligentes', 'valor': 18.00}, + {'codigo': 22, 'nome': 'Banco de Dados para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 23, 'nome': 'Programação Web com Python para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 24, 'nome': 'Programação Web com JavaScript para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 25, 'nome': 'Introdução à Ciência da Computação para Alunos Inteligentes', 'valor': 18.00}, + {'codigo': 26, 'nome': 'Inteligência Artificial para Alunos Inteligentes', 'valor': 20.00}, + {'codigo': 27, 'nome': 'Redes de Computadores para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 28, 'nome': 'Segurança da Informação para Alunos Inteligentes', 'valor': 18.00}, + {'codigo': 29, 'nome': 'Administração de Sistemas para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 30, 'nome': 'Gestão de Projetos de TI para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 31, 'nome': 'Introdução à Estatística para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 32, 'nome': 'Probabilidade para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 33, 'nome': 'Matemática Discreta para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 34, 'nome': 'Cálculo para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 35, 'nome': 'Álgebra Linear para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 36, 'nome': 'Geometria Analítica para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 37, 'nome': 'Física para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 38, 'nome': 'Química para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 39, 'nome': 'Biologia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 40, 'nome': 'História para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 41, 'nome': 'Geografia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 42, 'nome': 'Sociologia para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 43, 'nome': 'Filosofia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 44, 'nome': 'Literatura Brasileira para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 45, 'nome': 'Literatura Portuguesa para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 46, 'nome': 'Literatura Inglesa para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 47, 'nome': 'Literatura Espanhola para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 48, 'nome': 'Literatura Francesa para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 49, 'nome': 'Literatura Alemã para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 50, 'nome': 'Literatura Italiana para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 51, 'nome': 'Literatura Russa para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 52, 'nome': 'Literatura Japonesa para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 53, 'nome': 'Literatura Chinesa para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 54, 'nome': 'Arte para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 55, 'nome': 'Música para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 56, 'nome': 'Cinema para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 57, 'nome': 'Teatro para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 58, 'nome': 'Dança para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 59, 'nome': 'Fotografia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 60, 'nome': 'Direito para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 61, 'nome': 'Economia para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 62, 'nome': 'Administração para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 63, 'nome': 'Contabilidade para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 64, 'nome': 'Marketing para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 65, 'nome': 'Publicidade e Propaganda para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 66, 'nome': 'Recursos Humanos para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 67, 'nome': 'Relações Públicas para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 68, 'nome': 'Comunicação para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 69, 'nome': 'Jornalismo para Alunos Inteligentes', 'valor': 12.00}, + {'codigo': 70, 'nome': 'Psicologia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 71, 'nome': 'Sociologia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 72, 'nome': 'Antropologia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 73, 'nome': 'Ciência Política para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 74, 'nome': 'História da Arte para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 75, 'nome': 'História da Música para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 76, 'nome': 'História do Cinema para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 77, 'nome': 'História do Teatro para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 78, 'nome': 'História da Dança para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 79, 'nome': 'História da Fotografia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 80, 'nome': 'Filosofia da Arte para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 81, 'nome': 'Filosofia da Música para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 82, 'nome': 'Filosofia do Cinema para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 83, 'nome': 'Filosofia do Teatro para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 84, 'nome': 'Filosofia da Dança para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 85, 'nome': 'Filosofia da Fotografia para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 86, 'nome': 'Ética para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 87, 'nome': 'Ética Profissional para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 88, 'nome': 'Ética e Responsabilidade Social para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 89, 'nome': 'Lógica para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 90, 'nome': 'Pensamento Crítico para Alunos Inteligentes', 'valor': 10.00}, + {'codigo': 91, 'nome': 'Introdução ao Direito para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 92, 'nome': 'Direito Constitucional para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 93, 'nome': 'Direito Civil para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 94, 'nome': 'Direito Penal para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 95, 'nome': 'Direito Processual para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 96, 'nome': 'Direito do Trabalho para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 97, 'nome': 'Direito Tributário para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 98, 'nome': 'Direito Empresarial para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 99, 'nome': 'Direito Internacional para Alunos Inteligentes', 'valor': 15.00}, + {'codigo': 100, 'nome': 'Direito Ambiental para Alunos Inteligentes', 'valor': 15.00}, +] + + +def produto_codigo(codigo): + for produto in produtos: + if produto['codigo'] == codigo: + return produto + +def novo_produto(produto, quantidade): + return { + 'codigo': produto['codigo'], + 'nome': produto['nome'], + 'valor': produto['valor'], + 'quantidade': quantidade + } + +def imprime_fechamento_caixa(compras): + pr.imprimir('Data', tamanho=89, alinhar='centro', end='|') + pr.imprimir('Qt.', tamanho=9, alinhar='centro', end='|') + pr.imprimir('valor', tamanho=20, alinhar='centro') + total = 0 + total_desconto = 0 + for compra in compras: + total += compra['total'] + total_desconto += compra['desconto'] + pr.imprimir(compra['data'].strftime("%d/%m/%Y %H:%M:%S "), tamanho=89, end='|', alinhar='fim') + pr.imprimir(str(len(compra['itens'])), tamanho=9, end='|', alinhar='centro') + pr.imprimir('R$', str(round(compra['total'], 2)), tamanho=20, alinhar='fim') + pr.separador(120, caracter='-') + pr.imprimir('Total de compras do caixa', tamanho=99, alinhar='fim', end='|') + pr.imprimir('R$', str(round(total, 2)), tamanho=20, alinhar='fim') + + + pr.imprimir('Total de descontos aplicados', tamanho=99, alinhar='fim', end='|') + pr.imprimir('- R$',str(round(total_desconto, 2)), tamanho=20, alinhar='fim', cor_texto= 'vermelho negrito') + +def imprime_compra_fechada(compra, total, desconto): + total_compra = 0 + pr.imprimir('codigo', tamanho=6, alinhar='centro', end='|') + pr.imprimir('produto', tamanho=83, alinhar='centro', end='|') + pr.imprimir('qtd', tamanho=3, alinhar='centro', end='|') + pr.imprimir('valor un.', tamanho=12, alinhar='centro', end='|') + pr.imprimir('valor', tamanho=12, alinhar='centro') + for produto in compra: + imprimir_produto(produto) + total_compra += produto['valor'] * produto['quantidade'] + pr.separador(120, caracter='-') + pr.imprimir('Total', tamanho=107, alinhar='fim', end='|') + pr.imprimir('R$', str(round(total_compra, 2)), tamanho=12, alinhar='fim') + + + if desconto > 0: + pr.imprimir('Desconto aplicado', tamanho=107, alinhar='fim', end='|') + pr.imprimir('- R$', str(round(desconto, 2)), tamanho=12, alinhar='fim', cor_texto='vermelho negrito') + + pr.imprimir('Total a pagar', tamanho=107, alinhar='fim', end='|') + pr.imprimir('R$', str(round(total, 2)), tamanho=12, alinhar='fim', cor_texto='verde negrito') + + pr.limpar_formatacao() + pr.pular_linha() + pr.pular_linha() + +def imprime_compra(compra): + if len(compra) > 0: + total = 0 + pr.imprimir('codigo', tamanho=6, alinhar='centro', end='|') + pr.imprimir('produto', tamanho=83, alinhar='centro', end='|') + pr.imprimir('qtd', tamanho=3, alinhar='centro', end='|') + pr.imprimir('valor un.', tamanho=12, alinhar='centro', end='|') + pr.imprimir('valor', tamanho=12, alinhar='centro') + for produto in compra: + imprimir_produto(produto) + total += produto['valor'] * produto['quantidade'] + pr.separador(120, caracter='-') + pr.imprimir('Subtotal', tamanho=107, alinhar='fim', end='|') + pr.imprimir('R$', str(round(total, 2)), tamanho=12, alinhar='fim') + else: + pr.imprimir('Sem itens na lista ainda', tamanho=120, alinhar='center') + pr.pular_linha() + pr.pular_linha() + +def imprimir_produto(produto): + pr.imprimir(str(produto['codigo']), tamanho=6, alinhar='fim', caracter='0', end='|') + pr.imprimir(produto['nome'], tamanho=83, caracter='.', end='|') + pr.imprimir(str(produto['quantidade']), tamanho=3, caracter='0', alinhar='fim', end='|') + pr.imprimir('R$', str(round(produto['valor'], 2)), tamanho=12, alinhar='fim', end='|') + pr.imprimir('R$', str(round(produto['valor'] * produto['quantidade'], 2)), tamanho=12, alinhar='fim') + +def imprimir_cabecalho(erro): + pr.limpar() + pr.retangulo('{reprograma}\nProjeto Guiado 1\nTerminal de Vendas', sv=1, tamanho=100, margem=10, cor_texto='azul negrito', cor_barra='magenta') + pr.separador(120, cor_texto='ciano') + if erro != '': + pr.imprimir(erro, tamanho=120, alinhar='centro', cor_texto='vermelho negrito') + pr.separador(120, cor_texto='ciano') + erro = '' + +def imprimir_ajuda(): + pr.pular_linha(quantidade=2) + pr.imprimir('[H] >> Ajuda com o Sistema', alinhar='centro', tamanho=120) + pr.imprimir('[Q] >> Sair da Tela ou Sistema', alinhar='centro', tamanho=120) + pr.imprimir('[N] >> Cria uma Nova Compra', alinhar='centro', tamanho=120) + pr.imprimir('[F] >> Fechar a Compra', alinhar='centro', tamanho=120) + pr.imprimir('[P] >> Confirmar que a compra foi paga', alinhar='centro', tamanho=120) + pr.imprimir('[nnn] >> Adicionar o codigo do produto a compra', alinhar='centro', tamanho=120) + pr.imprimir('[Xnn] >> Muda a quantidade de itens adicionado', alinhar='centro', tamanho=120) + pr.imprimir('[E] >> Encerar caixa', alinhar='centro', tamanho=120) + pr.pular_linha(quantidade=2) + +def imprimir_rodape(): + pr.imprimir('[H] Ajuda ', '[Q] Sair ', caracter='═', tamanho=115, alinhar='fim', end='╣') + return input().lower() + +def menu(): + opcao = '' + erro = '' + tela = '' + compra = [] + compras = [] + while opcao != 'q': + imprimir_cabecalho(erro) + if tela == '': + pr.pular_linha(quantidade=4) + elif tela == 'ajuda': + imprimir_ajuda() + tela = '' + elif tela == 'compra': + imprime_compra(compra) + elif tela == 'fechar': + total, desconto = calcula_total_desconto(compra) + imprime_compra_fechada(compra, total, desconto) + elif tela == 'encerar': + imprime_fechamento_caixa(compras) + compras = [] + tela = '' + pr.pular_linha(quantidade=2) + opcao = imprimir_rodape() + if opcao == 'h': + tela = 'ajuda' + elif opcao == 'n': + tela = 'compra' + elif opcao == 'f': + total = calcula_total_desconto(compra) + tela = 'fechar' + elif opcao == 'e': + tela = 'encerar' + elif 'p' in opcao: + compras.append({'itens': compra, 'total': total, 'data': datetime.now(), 'desconto': desconto}) + compra = [] + tela = '' + else: + try: + codigo = int(opcao) + produto = produto_codigo(codigo) + compra.append(novo_produto(produto, 1)) + except ValueError: + erro = 'A opção selecionada não existe no sistema' + except TypeError: + erro = 'O código do produto não existe' + +def calcula_total_desconto(compra): + total = 0 + for produto in compra: + total += (produto['valor'] * produto['quantidade']) + + desconto = 0 + + if total >= 200: + desconto = total * 0.05 + total *= 0.95 + else: + for codigo in set([item['codigo']for item in compra]): + quantidade_codigo = sum([item['quantidade'] for item in compra if item['codigo'] == codigo]) + if quantidade_codigo > 1: + desconto += (produto_codigo(codigo)['valor'] * (quantidade_codigo - 1)) * 0.15 + + return total, desconto + +def remover_item(compra, codigo): + compra[:] = [item for item in compra if item[codigo] != codigo] + return compra + +menu() diff --git a/material/__init__.py b/material/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/material/__pycache__/print_reprograma.cpython-312.pyc b/material/__pycache__/print_reprograma.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2aa5bc530432ae09e25f1062e510919a77180e1e GIT binary patch literal 9268 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 Y1nPYWNSe3tfeo4GJ2qit{p0F?0hk!%mjD0& literal 0 HcmV?d00001