aaaaaaaaaaaa
This commit is contained in:
		@@ -70,6 +70,8 @@ void interface_admin(vector<Park_spot>& spots) {
 | 
				
			|||||||
        cout << "[2] See weekly report of ALL parking spots\n";
 | 
					        cout << "[2] See weekly report of ALL parking spots\n";
 | 
				
			||||||
        cout << "[3] See monthly report of a specific parking spot\n";
 | 
					        cout << "[3] See monthly report of a specific parking spot\n";
 | 
				
			||||||
        cout << "[4] See weekly report of a specific parking spot\n";
 | 
					        cout << "[4] See weekly report of a specific parking spot\n";
 | 
				
			||||||
 | 
					        cout << "[5] See monthly report of a specific customer\n";
 | 
				
			||||||
 | 
					        cout << "[6] See weekly report of a specific customer\n";
 | 
				
			||||||
        cout << "Enter option number: ";
 | 
					        cout << "Enter option number: ";
 | 
				
			||||||
        int option_1;
 | 
					        int option_1;
 | 
				
			||||||
        cin >> option_1;
 | 
					        cin >> option_1;
 | 
				
			||||||
@@ -91,6 +93,12 @@ void interface_admin(vector<Park_spot>& spots) {
 | 
				
			|||||||
            report_single_spot(true);
 | 
					            report_single_spot(true);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        case 5: {
 | 
				
			||||||
 | 
					            report_customer(0);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        case 6: {
 | 
				
			||||||
 | 
					            report_customer(0, true);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        default:
 | 
					        default:
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,7 +60,7 @@ std::ostream& operator<<(std::ostream& os, const Park_time& pt) {
 | 
				
			|||||||
    os << "Customer # " << pt.customer_id << "at parking spot " << pt.spot_id << "\n";
 | 
					    os << "Customer # " << pt.customer_id << "at parking spot " << pt.spot_id << "\n";
 | 
				
			||||||
    os << "Clocked in :" << std::ctime(&start_);
 | 
					    os << "Clocked in :" << std::ctime(&start_);
 | 
				
			||||||
    os << "clocked out : " << std::ctime(&end_);
 | 
					    os << "clocked out : " << std::ctime(&end_);
 | 
				
			||||||
    os << "duration : " << pt.duration << "\n";
 | 
					    os << "duration : " << pt.duration/3600 << "\n";
 | 
				
			||||||
    os << "- - - - - - - - - - - - - - - - - - - -\n";
 | 
					    os << "- - - - - - - - - - - - - - - - - - - -\n";
 | 
				
			||||||
    return os;
 | 
					    return os;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								Query.cpp
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								Query.cpp
									
									
									
									
									
								
							@@ -135,35 +135,46 @@ void reports_from_allparkspots(pair<int, int> period) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void current_status_parkspots(vector<Park_spot>& spots) {
 | 
					void current_status_parkspots(vector<Park_spot>& spots) {
 | 
				
			||||||
 | 
					    cout << "P.spot \t\tStatus\t\t Customer\n";
 | 
				
			||||||
    for (auto& i : spots) {
 | 
					    for (auto& i : spots) {
 | 
				
			||||||
        cout << "---------------------------\n";
 | 
					        cout << "\n"<< i.id << "\t\t" <<  ((i.taken) ? "true" : "false");
 | 
				
			||||||
        cout << "PS #" << i.id << "\n";
 | 
					 | 
				
			||||||
        cout << "Taken: " << ((i.taken) ? "true" : "false") << "\n";
 | 
					 | 
				
			||||||
        if (i.taken) {
 | 
					        if (i.taken) {
 | 
				
			||||||
            cout << "Customer#" << i.parked_customer << "  parked there\n";
 | 
					            cout << "\t\t" << i.parked_customer;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    cout << "\n";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vector<Park_time> reports_from_customer(int cid, pair<int, int> period) {
 | 
					vector<Park_time> reports_from_customer(int cid, pair<int, int> period) {
 | 
				
			||||||
    vector<Park_time> park_times;
 | 
					    vector<Park_time> park_times;
 | 
				
			||||||
 | 
					    // debug
 | 
				
			||||||
 | 
					    cout << "it called";
 | 
				
			||||||
    SQLite::Statement query(
 | 
					    SQLite::Statement query(
 | 
				
			||||||
        data::db, "SELECT * FROM Park_time WHERE customer_id = ? AND start > ? AND end < ?;");
 | 
					        data::db, "SELECT * FROM Park_time WHERE 'customer_id' = '?' AND start > ? AND end < ?;");
 | 
				
			||||||
    query.bind(1, cid);
 | 
					    query.bind(1, cid);
 | 
				
			||||||
    query.bind(2, period.first);
 | 
					    query.bind(2, period.first);
 | 
				
			||||||
    query.bind(3, period.second);
 | 
					    query.bind(3, period.second);
 | 
				
			||||||
    while (query.executeStep()) {
 | 
					    while (query.executeStep()) {
 | 
				
			||||||
        int id = query.getColumn(0);
 | 
					        int id = query.getColumn(1);
 | 
				
			||||||
        int spotid = query.getColumn(2);
 | 
					        int spotid = query.getColumn(2);
 | 
				
			||||||
        int start = query.getColumn(3);
 | 
					        int start = query.getColumn(3);
 | 
				
			||||||
        int duration = query.getColumn(5);
 | 
					        int duration = query.getColumn(6);
 | 
				
			||||||
        Park_time result{id, cid, spotid, start, duration};
 | 
					        Park_time result{id, cid, spotid, start, duration};
 | 
				
			||||||
        park_times.push_back(result);
 | 
					        park_times.push_back(result);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    query.reset();
 | 
					    query.reset();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SQLite::Statement vtype(data::db, "SELECT * FROM Customer WHERE 'id' = '?' ;");
 | 
				
			||||||
 | 
					    query.bind(1, cid);
 | 
				
			||||||
 | 
					    int verhicle = 0;
 | 
				
			||||||
 | 
					    while (vtype.executeStep()) {
 | 
				
			||||||
 | 
					        verhicle = query.getColumn(4);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    float sum;
 | 
				
			||||||
    for (auto i : park_times) {
 | 
					    for (auto i : park_times) {
 | 
				
			||||||
        cout << i;
 | 
					        cout << i;
 | 
				
			||||||
 | 
					        sum += i.duration/3600;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    cout << "Your fees for this month: $" << sum << "/n";
 | 
				
			||||||
    return park_times;
 | 
					    return park_times;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								data.cpp
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								data.cpp
									
									
									
									
									
								
							@@ -20,7 +20,7 @@ SQLite::Database start_db() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    db.exec(
 | 
					    db.exec(
 | 
				
			||||||
        "create table if not exists Customer (id integer primary key, name "
 | 
					        "create table if not exists Customer (id integer primary key, name "
 | 
				
			||||||
        "text, password text, vehicle int, telephone text)");
 | 
					        "text, password text, vehicle int, telephone text, role int, address text)");
 | 
				
			||||||
    db.exec(
 | 
					    db.exec(
 | 
				
			||||||
        "create table if not exists Park_spot (id integer primary key, taken "
 | 
					        "create table if not exists Park_spot (id integer primary key, taken "
 | 
				
			||||||
        "int, customer_id int, vehicle_type int)");
 | 
					        "int, customer_id int, vehicle_type int)");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,3 +17,4 @@ pair<int, int> create_week_period();
 | 
				
			|||||||
// report stuff
 | 
					// report stuff
 | 
				
			||||||
void report_single_spot(bool weekly = false);
 | 
					void report_single_spot(bool weekly = false);
 | 
				
			||||||
void report_all_spots(bool weekly = false);
 | 
					void report_all_spots(bool weekly = false);
 | 
				
			||||||
 | 
					void report_customer(int customerID, bool weekly = false);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user