Files
2024-08-31 12:07:21 +03:00

75 lines
2.3 KiB
C++

#include "domain.h"
#include "repository.h"
#include "controller.h"
#include "UI.h"
#include <stdio.h>
#include <vector>
#include <string.h>
#include <iostream>
UI::UI(){
this->_controller.add("Orange","123",100,true);
this->_controller.add("Digi","124",200,false);
this->_controller.add("Vodafone","125",300,true);
}
UI::~UI(){
}
void UI::run(){
char option;
while(true){
printf("1. Add bill\n");
printf("2. Show all bills\n");
printf("3. Show all paid bills\n");
printf("4. Exit\n");
option=fgetc(stdin);
while (fgetc(stdin)!='\n');
switch(option){
case '1':{
char company_name[100];
char serial_number[100];
int sum;
bool isPaid;
printf("Company name: ");
fgets(company_name,100,stdin);
company_name[strlen(company_name)-1] = '\0';
printf("Serial number: ");
fgets(serial_number,100,stdin);
serial_number[strlen(serial_number)-1] = '\0';
printf("Sum: ");
scanf("%d",&sum);
printf("Is paid: ");
std::cin>>isPaid;
bool check = this->_controller.add(company_name,serial_number,sum,isPaid);
if(check)
printf("Bill added\n");
else
printf("Bill not added\n");
break;
}
case '2':{
auto v = this->_controller.getBills();
for (Bill bill : v)
std::cout<<bill.company_name()<<";"<<bill.serial_number()<<";"<<bill.sum()<<";"<<bill.isPaid()<<std::endl;
break;
}
case '3':{
auto v = this->_controller.getPaidBills();
int sum=0;
for (Bill bill : v){
sum+=bill.sum();
std::cout<<bill.company_name()<<";"<<bill.serial_number()<<";"<<bill.sum()<<";"<<bill.isPaid()<<std::endl;
}
std::cout<<"Sum: "<<sum<<std::endl;
break;
}
case '4':
return;
default:
printf("Invalid option");
}
}
}