-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmenu.h
148 lines (121 loc) · 2.99 KB
/
menu.h
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
#ifndef PROJB_24473_MENU_H
#define PROJB_24473_MENU_H
#include "user.h"
#include "budget.h"
/*
* Clears the menu screen
*/
void clear_menu();
/*
* Prompts the user to press enter to continue
*/
void any_key();
/*
* Initial menu
* - return 0: Success
* - return -1: Exit program
*/
int initial_menu(NODE *users, USER **auth);
/*
* Login menu
* - return 0: Success
* - return -1: Exit
*/
int auth_menu(NODE *users, USER **auth);
/*
* Admin menu
* - return -4: Sign out
*/
int admin_menu(USER auth, NODE **users, NODE **budgets, NODE **queue);
/*
* User menu
* - return -4: Sign out
*/
int user_menu(USER auth, NODE **budgets, NODE **queue);
/*
* Listing menu
*/
int budget_listing_menu(NODE **budgets, NODE **queue);
/*
* Budgets CRUD menu
*/
int budget_crud_menu(NODE **budgets, NODE **queue);
/*
* Prompts the user for new user info
* - return 0: Success
* - return -1: Failed to create user
* - return -3: Out of memory
*/
int create_user(NODE **users);
/*
* Prompts the user for new budget info
* - return 0: Success
* - return -1: Failed to create budget
* - return -3: Out of memory
*/
int create_budget(NODE **budgets, NODE **queue);
/*
* Prompts the user the ID to list the budget
*/
void read_budget_by_id(NODE **budgets);
/*
* Prompts the user the ID and new info to update the budget
*/
void update_budget_by_id(NODE **budgets, NODE **queue);
/*
* Menu to update te user details
*/
void budget_details_menu(NODE **budgets, BUDGET *budget);
/*
* Prompts the user the ID to remove the budget
*/
void crud_remove_budget_by_id(NODE **budgets, NODE **queue);
/*
* Prompts the user for new detail info
* - return 0: Success
* - return -1: Failed to create detail
* - return -2: Maximum details reached
* - return -3: Out of memory
*/
int create_detail(NODE **details);
/*
* Lists all information about the pending budgets
*/
void list_pending_budgets(NODE *queue);
/*
* Lists all information about the finished budgets
*/
void list_finished_budgets(NODE *budgets);
/*
* Lists all information about the approved budgets
*/
void list_approved_budgets(NODE *budgets);
/*
* Lists all information about the budgets that are above a given amount
*/
void list_budgets_above_amount(NODE *budgets, float amount);
/*
* Lists all information about the budgets given the supplier
*/
void list_budgets_by_supplier(NODE *budgets, char supplier[MAX]);
/*
* Generates a ranking of users ordered by the number of budgets analysed
*/
void list_user_ranking(NODE *users, NODE *budgets);
/*
* Lists all information about the finished budgets analysed by a certain user
* ordered by date and result
*/
void list_finished_budgets_by_user(NODE *budgets, char username[MAX]);
/*
* Saves to a text file all finished budgets
* ordered by amount
* - return 0: Success
* - return -3: Error opening file
*/
int save_finished_budgets(NODE *budgets);
/*
* Prompts the user with budget info to analyse
*/
void analyse_budget(USER auth, NODE **budgets, NODE **queue);
#endif //PROJB_24473_MENU_H