Skip to content

Commit

Permalink
implement order system
Browse files Browse the repository at this point in the history
  • Loading branch information
heittpr committed Jul 11, 2021
1 parent 5f0cf1e commit bc5630c
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 10 deletions.
15 changes: 15 additions & 0 deletions bd.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,18 @@ float preco(int id) {
executa_sql(sql, _preco, &ret);
return ret;
}

// Lê o id de um produto
int le_id() {
int id;

while (1) {
printf("Informe o id do produto: ");
scanf("%d", &id);

if (verifica_produto(id)) break;
else printf("Id inválido!\n");
}

return id;
}
76 changes: 66 additions & 10 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,13 @@
#include "utils.c"
#include "bd.c"

float total;

void altera() {
limpa_tela();
int id = le_id();

float p;
int id;

while (1) {
printf("Informe o id do produto: ");
scanf("%d", &id);

if (verifica_produto(id)) break;
else printf("Id inválido!\n");
}

printf("Informe o novo preço: ");
scanf("%f", &p);

Expand All @@ -25,6 +19,64 @@ void altera() {
pausa();
}

void _adiciona_pedido(float *p) {
int id = le_id();

int qtd;
printf("Informe a quantidade: ");
scanf("%d", &qtd);

(*p) += qtd * preco(id);
pausa();
}

void _encerra_pedido(float total_pedido) {
limpa_tela();
printf("Total do pedido: %.2f\n", total_pedido);
total += total_pedido;

pausa();
}

void pedido() {
limpa_tela();
float total_pedido = 0;

for (int i = 5; i >= 1; i--) {
while(1) {
limpa_tela();
printf("Total: %.2f. O que você deseja fazer?\n\n", total_pedido);
printf(" (1) Adicionar um novo item ao pedido (%d itens restantes).\n", i);
printf(" (2) Encerrar pedido.\n\n");

int escolha;
int invalida = 0;
scanf("%d", &escolha);

switch (escolha) {
case 1:
_adiciona_pedido(&total_pedido);
break;

case 2:
_encerra_pedido(total_pedido);
return;
break;

default:
printf("Opção inválida!");
invalida = 1;
pausa();
}

if (!invalida) break;
}
}

printf("Limite de itens atingido!\n");
_encerra_pedido(total_pedido);
}

int main() {
inicializa_banco();

Expand Down Expand Up @@ -53,9 +105,13 @@ int main() {
break;

case 3:
pedido();
break;

case 4:
limpa_tela();
printf("Total vendido: %.2f\n", total);
pausa();
break;

case 5:
Expand Down

0 comments on commit bc5630c

Please sign in to comment.