Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "data_table.hpp"
- #include "user_table.hpp"
- #include "headers.hpp"
- #include "congig.hpp"
- #include "input.hpp"
- #include "menu.hpp"
- /*
- User_table Create_User_database();
- int login_user();
- */
- int main(){
- User_table user_db( admin_password );
- Data_table providers;
- //providers.add_row( "Постащик" );
- providers.add_row( string("Продукция") );
- providers.add_row( string("Объём") );
- Data_table production;
- production.add_row( string("Тип") );
- production.add_row( string("Материал") );
- production.add_row( string("Количество на складе") );
- production.add_row( string("Стоимость") );
- user_db.sign_up( string("test"), string("test") );
- int user_id = 1;
- do{
- if( user_id < 0 ){
- if( user_id == -1 ){
- cout << "Вы ввели неверный пароль" << endl;
- }
- if( user_id == -2 ){
- cout << "Неизвестный пользователь" << endl;
- }
- cout << "Повторите попытку входа" << endl;
- }
- cout << "Введите логин > ";
- string login = input_string();
- cout << "Введите пароль > ";
- string pass = input_string();
- user_id = user_db.sign_in( login, pass );
- }while( user_id < 0 );
- Menu menu;
- menu.add_item( string("База сотрудников"), 0 );
- menu.add_item( string("База поставщиков"), 0 );
- menu.add_item( string("База производства и продаж"), 0 );
- menu.add_item( string("Импорт/Экспорт данных"), 0);
- menu.add_item( string("Выйти"), 0 );
- Menu menu1;
- menu1.add_item( string("Вывести всех сотрудников"), 0 );
- menu1.add_item( string("Добавить нового сотрудника"), 1 );
- menu1.add_item( string("Удалить сотрудника"), 1 );
- menu1.add_item( string("Дать права сотруднику"), 1 );
- menu1.add_item( string("Вернуться в главное меню"), 0);
- Menu menu2;
- menu2.add_item( string("Вывести всех поставщиков"), 0 );
- menu2.add_item( string("Добавить нового поставщика"), 1 );
- menu2.add_item( string("Изменить поставщика"), 1 );
- menu2.add_item( string("Удалить поставщика"), 1 );
- menu2.add_item( string("Сортировать поставщиков"), 1 );
- menu2.add_item( string("Фильтровать поставщиков"), 0 );
- menu2.add_item( string("Вернуться в главное меню"), 0);
- Menu menu3;
- menu3.add_item( string("Вывести все позиции"), 0 );
- menu3.add_item( string("Добавить новоую позицию"), 1 );
- menu3.add_item( string("Изменить позицию"), 1 );
- menu3.add_item( string("Удалить позицию"), 1 );
- menu3.add_item( string("Сортировать позиции"), 1 );
- menu3.add_item( string("Фильтровать позиции"), 0 );
- menu3.add_item( string("Вернуться в главное меню"), 0);
- Menu menu4;
- menu4.add_item( string("Сохранить состояние программы"), 0 );
- menu4.add_item( string("Восстановить состояние программы"), 1 );
- menu4.add_item( string("Сохранить базу пользователей в файл"), 0 );
- menu4.add_item( string("Загрузить базу пользователей из файла"), 1 );
- menu4.add_item( string("Сохранить базу поставщиков в файл"), 0 );
- menu4.add_item( string("Загрузить базу поставщиков из файла"), 1 );
- menu4.add_item( string("Сохранить базу производства и продаж в файл"), 0 );
- menu4.add_item( string("Загрузить базу производства и продаж из файла"), 1 );
- menu4.add_item( string("Вернуться в главное меню"), 0);
- bool exit = false;
- do{
- menu.print_menu( user_id );
- cout << "Выберете пункт > ";
- int select = input_int();
- switch( menu.select( select, user_id ) ){
- case 0:
- {
- bool exit1 = false;
- do{
- menu1.print_menu( user_id );
- cout << "Выберете пункт > ";
- int select = input_int();
- switch( menu1.select( select, user_id ) ){
- case 0:
- {
- for( auto i = user_db.users.begin(); i != user_db.users.end(); i++ ){
- cout << (*i).first << ' ' << get<User>( (*i).second[0] ) << endl;
- }
- }
- break;
- case 1:
- {
- cout << "Введите логин сотрудника > ";
- string login = input_string();
- cout << "Введите пароль сотрудника > ";
- string pass = input_string();
- cout << "1 Обычый пользователь" << endl;
- cout << "2 Администратор" << endl;
- cout << "Введите привелегии сотрудника > ";
- int perm = input_int();
- user_db.sign_up( login, pass, perm );
- }
- break;
- case 2:
- {
- for( auto i = user_db.users.begin(); i != user_db.users.end(); i++ ){
- cout << (*i).first << ' ' << get<User>( (*i).second[0] ) << endl;
- }
- cout << "Выберете удаляемого сотрудника > ";
- int id = input_int();
- user_db.users.delete_item( id );
- }
- break;
- case 3:
- {
- for( auto i = user_db.users.begin(); i != user_db.users.end(); i++ ){
- cout << (*i).first << ' ' << get<User>( (*i).second[0] ) << endl;
- }
- cout << "Выберете сотрудника > ";
- int id = input_int();
- cout << "1 Пользователь" << endl;
- cout << "2 Администратор" << endl;
- cout << "Введите привелегии сотрудника > ";
- int perm = input_int();
- if( id >= 0 && id < user_db.users.size() ){
- get<User>( user_db.users[id][0] ).permission = perm;
- }
- }
- break;
- case 4:
- {
- exit1 = true;
- }
- break;
- }
- }while(!exit1);
- }
- break;
- case 1:
- {
- bool exit2 = false;
- do{
- menu2.print_menu( user_id );
- cout << "Выберете пункт > ";
- int select = input_int();
- switch( menu2.select( select, user_id ) ){
- case 0:
- {
- providers.print_table();
- }
- break;
- case 1:
- {
- cout << "Введине наименование постовщика > ";
- string _prov = input_string();
- cout << "Введите тип товара > ";
- string _prod = input_string();
- cout << "Введите количество > ";
- int _count = input_int();
- vector< value > item;
- value prod( _prod );
- value count( _count );
- item.push_back( prod );
- item.push_back( count );
- providers.add_item( _prov, item );
- }
- break;
- case 2:
- {
- providers.print_table();
- cout << "Введите выбранного постовщика > ";
- string _prov = input_string();
- cout << "Введите тип товара > ";
- string _prod = input_string();
- cout << "Введите количество > ";
- int _count = input_int();
- vector< value > item;
- value prod( _prod );
- value count( _count );
- item.push_back( prod );
- item.push_back( count );
- providers.edit_item( _prod, item );
- }
- break;
- case 3:
- {
- providers.print_table();
- cout << "Введите выбранного постовщика > ";
- string _prov = input_string();
- providers.delete_item( _prov );
- }
- break;
- case 4:
- {
- for( int i = 0; i < providers.column_names.size(); i++ ){
- cout << i << ' ' << providers.column_names[i] << endl;
- }
- cout << "Выберете поле сотрировки > ";
- int num = input_int();
- providers.sort( [num]( vector<value> v1, vector<value> v2 )->bool{ return v1[num] > v2[num]; } );
- }
- break;
- case 5:
- {
- for( int i = 0; i < providers.column_names.size(); i++ ){
- cout << i << ' ' << providers.column_names[i] << endl;
- }
- cout << "Выберете поле фильтрации > ";
- int num = input_int();
- cout << "Выберете занчение поля > ";
- if ( num == 1 ){
- int v = input_int();
- production.filter( [v](vector<value> v1 )-> bool{ return get<int>( v1[1] ) == v; } );
- }else if( num == 0 ){
- string v = input_string();
- production.filter( [v](vector<value> v1 )-> bool{ return get<string>( v1[0] ) == v; } );
- }
- }
- break;
- case 6:
- {
- exit2 = true;
- }
- break;
- }
- }while(!exit2);
- }
- break;
- case 2:
- {
- bool exit3 = false;
- do{
- menu3.print_menu( user_id );
- cout << "Выберете пункт > ";
- int select = input_int();
- switch( menu3.select( select, user_id ) ){
- case 0:
- {
- production.print_table();
- }
- break;
- case 1:
- {
- cout << "Введите название продукции > ";
- string name = input_string();
- cout << "Введите тип продукции > ";
- string type = input_string();
- cout << "Введите материал продукции > ";
- string material = input_string();
- cout << "Введите количество продукции > ";
- int count = input_int();
- cout << "Введите цену продукции > ";
- int price = input_int();
- vector< value > item;
- item.push_back( value( type ) );
- item.push_back( value( material ) );
- item.push_back( value( count ) );
- item.push_back( value( price ) );
- production.add_item( name, item );
- }
- break;
- case 2:
- {
- production.print_table();
- cout << "Введите название изменяемой продукции > ";
- string name = input_string();
- cout << "Введите тип продукции > ";
- string type = input_string();
- cout << "Введите материал продукции > ";
- string material = input_string();
- cout << "Введите количество продукции > ";
- int count = input_int();
- cout << "Введите цену продукции > ";
- int price = input_int();
- vector< value > item;
- item.push_back( value( type ) );
- item.push_back( value( material ) );
- item.push_back( value( count ) );
- item.push_back( value( price ) );
- production.add_item( name, item );
- }
- break;
- case 3:
- {
- production.print_table();
- cout << "Введите название продукции > ";
- string name = input_string();
- production.delete_item( name );
- }
- break;
- case 4:
- {
- for( int i = 0; i < production.column_names.size(); i++ ){
- cout << i << ' ' << production.column_names[i] << endl;
- }
- cout << "Выберете поле сотрировки > ";
- int num = input_int();
- production.sort( [num]( vector<value> v1, vector<value> v2 )->bool{ return v1[num] > v2[num]; } );
- }
- break;
- case 5:
- {
- for( int i = 0; i < production.column_names.size(); i++ ){
- cout << i << ' ' << production.column_names[i] << endl;
- }
- cout << "Выберете поле фильтрации > ";
- int num = input_int();
- cout << "Выберете занчение поля > ";
- if( num == 0 ){
- string v = input_string();
- production.filter( [v](vector<value> v1 )-> bool{ return get<string>( v1[0] ) == v; } );
- }else if( num == 1 ){
- string v = input_string();
- production.filter( [v](vector<value> v1 )-> bool{ return get<string>( v1[1] ) == v; } );
- }else if ( num == 2 ){
- int v = input_int();
- production.filter( [v](vector<value> v1 )-> bool{ return get<int>( v1[2] ) == v; } );
- }else if ( num == 3 ){
- int v = input_int();
- production.filter( [v](vector<value> v1 )-> bool{ return get<int>( v1[3] ) == v; } );
- }
- }
- break;
- case 6:
- {
- exit3 = true;
- }
- break;
- }
- }while(!exit3);
- }
- break;
- case 3:
- {
- bool exit4 = false;
- do{
- menu4.print_menu( user_id );
- cout << "Выберете пункт > ";
- int select = input_int();
- switch( menu4.select( select, user_id ) ){
- case 0:
- {
- user_db.users.save_table( "users.dat");
- providers.save_table("prov.dat" );
- production.save_table("prod.dat");
- }
- break;
- case 1:
- {
- providers.column_names.clear();
- production.column_names.clear();
- user_db.users.column_names.clear();
- user_db.users.load_table( "users.dat");
- providers.load_table("prov.dat" );
- production.load_table("prod.dat");
- }
- break;
- case 2:
- {
- cout << "Ведите название файла > ";
- string file = input_string();
- user_db.users.save_table( file );
- }
- break;
- case 3:
- {
- cout << "Ведите название файла > ";
- string file = input_string();
- user_db.users.load_table( file );
- }
- break;
- case 4:
- {
- cout << "Ведите название файла > ";
- string file = input_string();
- providers.save_table( file );
- }
- break;
- case 5:
- {
- cout << "Ведите название файла > ";
- string file = input_string();
- providers.load_table( file );
- }
- break;
- case 6:
- {
- cout << "Ведите название файла > ";
- string file = input_string();
- production.save_table( file );
- }
- break;
- case 7:
- {
- cout << "Ведите название файла > ";
- string file = input_string();
- production.load_table( file );
- }
- break;
- case 8:
- {
- exit4 = true;
- }
- break; }
- }while(!exit4);
- }
- break;
- case 4:
- {
- exit = true;
- }
- break;
- }
- }while( !exit );
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement