-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodulo_interface.c
359 lines (321 loc) · 9.13 KB
/
modulo_interface.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
/*Arquivo destinado à implementação das funções referentes à manipulação da interface.*/
#include <stdio.h>
#include <string.h>
#include "modulo_interface.h"
#include "modulo_itens.h"
#include "modulo_usuarios.h"
void insereCPF(char **cpf){
int aux = 0;
do{
if(aux==1)
printf("\nCPF Invalido");
printf("\nInsira o CPF: ");
scanf(" %s[^\n]",cpf);
getchar();
aux = 1;
}
while(cpf[11] != '\0' && cpf[11] != '#');
}
void insereNome(char **nome){
printf("Insira o nome: ");
scanf(" %50[^\n]",nome);
getchar();
}
void insereSenha(char **senha){
printf("Insira a senha\n(so serao lidos os primeiros 5 caracteres): ");
scanf(" %5[^\n]",senha);
}
int escolheUsuario(){
int opcao;
do{
printf("Voce deseja ser\n1. Usuario comum\n2. Administrador");
scanf("%d",&opcao);
}
while (opcao < 1 || opcao > 2);
if (opcao == 1)
return 0;
else
return 1;
}
int Logar(){
char cpf[11]="###########";
char nome[50], senha[6];
insereCPF(&cpf);
insereNome(&nome);
insereSenha(&senha);
return(fazerLogin(cpf, nome, senha));
}
int caso1ComecarLogin(){
int aux=0, opcaoErro=0, retornoLogin;
do{
if (aux == 1){
do{
printf("Voce inseriu um dado incorreto. Deseja\nOpcao 1: Tentar novamente\nOpcao 2: Recuperar senha\n\nInsira a opcao: ");
scanf("%d",&opcaoErro);
if (opcaoErro == 2)
recuperacao();
}
while(opcaoErro < 1 || opcaoErro > 2);
}
retornoLogin = Logar();
aux = 1;
}
while (retornoLogin == -1);
return(retornoLogin);
}
int menuComum(){
int opcao;
do{
printf("O que voce deseja fazer?\n1. Consultar Preço\n2.Fazer um pedido\n3. Consultar estado de um pedido\n4. Deslogar\n\nInsira a opcao: ");
scanf("%d",&opcao);
}
while(opcao > 4 || opcao < 1);
return(opcao);
}
int menuItem(){
int cod_item, achou, opcao=0;
mostrarListaItens(); /*estara no modulo_itens*/
do{
printf("Insira o codigo do item que você deseja");
scanf("%d",cod_item);
achou = procuraListaItens(cod_item); /*estara na modulo_itens_modifiquei pro padrao*/
if (!achou){
printf("O item que voce selecionou não existe. Deseja fazer nova consulta?\n1. Sim\n2. Não\n\nInsira sua opção: ");
scanf("%d", &opcao);
}
else
return(cod_item);
}
while (opcao==1);
}
int funcaoContinuar(){
int opcao;
do{
printf("Deseja continuar realizando a operacao atual?n1. Sim\n2. Não\n\nInsira sua opção: ");
scanf("%d",&opcao);
if(opcao == 1)
return (1);
else if(opcao == 2)
return 0;
else
printf("Selecione uma opcao valida");
}while (opcao < 1 || opcao > 2);
}
void mostrarPreco(int preco_item){
printf("O preco do item requisitado e: ",preco_item);
}
item menuInserirItem(){
item novo_item, achou;
do{
printf("Insira a categoria do novo item: ");
scanf(" %[^\n]s",&novo_item.categoria);
getchar();
if(novo_item.categoria < 0)
printf("Insira uma categoria valida");
} while(novo_item.categoria < 0);
do{
printf("Insira o codigo do novo item: ");
scanf("%d",&novo_item.codigo);
getchar();
achou = pesquisaListaItens(novo_item.codigo);
if (achou){
printf("Voce precisa inserir um codigo unico (que nao seja de nenhum dos outros produtos");
}
} while (achou);
do{
printf("Insira o preco do novo item (maximo de 5000 reais):");
scanf("%f",&novo_item.preco);
getchar();
if(novo_item.preco > 5000 || novo_item.preco < 0)
printf("Insira um preco valido");
}
while(novo_item.preco > 5000 || novo_item.preco < 0);
do{
printf("Insira a quantidade do item que você deseja: ");
scanf("%d", &novo_item.quantidade);
} while(novo_item.quantidade < 0);
getchar();
return(novo_item);
}
int menuAlterarUsuario(usuario **plista_usuarios, usuario **p_usuario_atual){
int achou, opcao;
char cpf[11];
do{
mostrarListaUsuarios(&plista_usuarios);
printf("Digite o CPF do usuario que voce deseja alterar: ");
scanf(" %[^\n]s",cpf);
getchar();
if (!achou){
printf("Insira um CPF de um usuario valido");
}
}
while (!achou);
do{
printf("Selecione o que voce deseja fazer com o usuario.\n1. Alterar CPF\n2.Alterar Senha\n3.Alterar Nome\n4. Excluir usuario\n\nSelecione a opcao: ");
scanf("%d",&opcao);
if (opcao < 1 || opcao > 4)
printf("\nInsira uma opcao valida.\n");
}
while (opcao < 1 || opcao > 4);
apontarListaUsuarios(&p_usuario_atual, &cpf);
return(opcao);
}
int menuAlterarProduto(){
int opcao;
do{
printf("\nSelecione o que voce deseja fazer com os itens.\n1. Inserir novo item\n2.Alterar preco de item existente\n3.Alterar descricao de item\n4. Quantidade de itens no estoque\n5. Sair\n\nSelecione a opcao: ");
scanf("%d",opcao);
if (opcao < 1 || opcao > 5)
printf("Insira uma opcao valida\n")
} while(opcao < 1 || opcao > 5);
return (opcao);
}
int menuEstadoPedido(usuario **p_usuario_atual, pedido **pedido_usuario_atual){
int cod_pedido, achou;
do{
mostrarListaPedidos(&p_usuario_atual);
printf("Insira o codigo do pedido que voce deseja saber o estado: ");
scanf("%d",cod_pedido);
achou = procuraPedidos(cod_pedido);
if (!achou){
printf("\nInsira um codigo de pedido valido");
}
}
while(!achou);
return(cod_pedido);
}
/*
* REVER ESSA FUNÇÃO
*/
float menuInserirPedido(itens_pedido **pedido_atual){
int precoItens=0, qtdItens, codigo_item, cont=0, continuar;
char data[10];
mostrarListaDeItens();
do{
cont++;
if (cont>30)
printf ("ATENCAO: nao eh possivel adidionar mais itens a esse pedido. Caso queira adicionar mais itens, faca um novo pedido\n")
printf ("Digite o codigo do item a ser inserido no pedido: ");
scanf ("%d", &codigo_item);
printf ("Qual a quantidade desse item voce deseja pedir? ");
scanf ("%d",&qtdItens);
printf ("Entre com a data de hoje: (dd/mm/aaaa) exemplo: 11/03/1990\n")
getchar();
scanf ("%s", data);
precoItens = precoItens + consultarPrecoItem (codigo_item);
if (precoItens > 25000) {
printf("ATENCAO: seu pedido excedeu o preco maximo de 2500 reais. O ultimo sera retirado.\nCaso deseja pedir outros itens, fazer um novo pedido\n");
precoItens = precoItens - consultarPrecoItem (codigo_item);
} else
insereListaItensPedidos (&pedido_atual, codigo_item, qtdItens, &data);
/*
* a cada chamada dessa funcao, vai ter um novo item de pedido prra esse pedido contendo apenas:
* ponteiro pro item requerido e a quantidade desse item requerida, saca?
* dai quando retornar pra mim, eu vou inserir esse pedido na lista de pedidos do usuario :P
*/
continuar = fucaoContinuar ();
} while((precoItens <= 25000)&&(continuar==1)&&(cont<=30));
return precoItens;
}
void mostrarEstadoPedido(int estado_pedido){
if (estado_pedido)
printf("Pedido processado");
else
printf("Pedido nao-processado");
}
int ComecarLogin(){
int retornoLogin, tipo_usuario, opcaoPrincipal=0, opcaoErro=0, opcaoCadastro=0,aux=0, deslogar;
do{
do{
printf("**********Menu Principal**********\n\nOpcao 1: Logar\nOpcao 2: Cadastrar\nOpcao 3: Recuperar senha\nOpcao 4: Sair do programa\n\nInsira a opcao: ");
scanf("%d",&opcaoPrincipal);
}
while(opcaoPrincipal > 3 || opcaoPrincipal < 1);
getchar();
switch(opcaoPrincipal){
case 1:
tipo_usuario = caso1ComecarLogin(); /*O retorno da função será o tipo do usuário que conseguiu logar*/
deslogar = tarefasUsuario(tipo_usuario);
getchar();
break;
case 2:
cadastrarUsuario();
printf("Cadastro realizado com sucesso!");
printf("\nDeseja logar?\n1. Sim\n2. Nao\n\nInsira sua opcao: ");
scanf("%d",opcaoCadastro);
if (opcaoCadastro == 1)
caso1ComecarLogin();
else
deslogar = 0;
break;
case 3:
break;
case 4:
return(0);
break;
}
}
while (deslogar == 0);
}
float menuAlterarPreco (){
float preco;
do{
printf("Insira o preco: ");
scanf("%f",&preco);
if (preco > 5000 || preco < 0)
printf("Atencao: Insira um preco valido.");
}
while (preco > 5000 || preco < 0);
return (preco);
}
void menuAlterarDescricao(char **nova_descricao){
printf("Insira a nova descircao");
scanf(" %[^\n]s",nova_descricao);
}
int menuAlterarQuantidade(){
int qtd;
<<<<<<< HEAD
=======
>>>>>>> f4401ebcc2f090615bd281eb07822bee3434983a
do{
printf("Insira a quantidade: ");
scanf("%d",&qtd);
if(qtd < 0)
printf("A quantidade tem de ser maior que zero!");
}
while(qtd < 0);
return (qtd);
}
<<<<<<< HEAD
int processarPedido (usuario **posicao_usuario, int **cod_pedido){
mostraListaPedidos(&posicao_usuario);
int opcao;
=======
void processarPedido (usuario **posicao_usuario, int **cod_pedido){
mostraListaPedidos(&posicao_usuario);
>>>>>>> f4401ebcc2f090615bd281eb07822bee3434983a
do{
printf("Insira o codigo do produto que voce deseja processar o pedido: ");
scanf("%d",&cod_pedido);
if (cod_pedido < 0)
printf("Insira um codigo valido");
}
while (cod_pedido < 0);
do{
printf("Voce deseja realmente processar esse pedido? Digite\n1. para Sim\n2 para Nao\n\nInsira sua opcao: ");
scanf("%d",&opcao);
if (opcao == 1){
return 1;
}
if (opcao == 2){
return 0;
}
<<<<<<< HEAD
else
=======
else
>>>>>>> f4401ebcc2f090615bd281eb07822bee3434983a
printf("Favor digitar 1 ou 2!");
}
while (opcao != 1 || opcao != 2);
}