// Chi tiet hoa don

#include<stdlib.h>
#include<iostream>
#include<fstream>
#include<conio.h>
#include <string.h>
#define MAX 100
static const float VAT = 0.1;//thue vat

using namespace std;

class CT_HOADON {
	private: 
		int soHD;
		int maVT;
		int soLuong;
		double donGia;
	public:
		CT_HOADON (int sohd = 0, int mavt = 0, int soluong = 0, double dongia = 0);
		
		void setSoHoaDon(int);
		int getSoHoaDon();
		void setMaVatTu(int);
		int getMaVatTu();
		void setSoLuong(int);
		int getSoLuong();
		void setDonGia(double);
		double getDonGia();
		
		void Nhap();
        void Xuat();
};

CT_HOADON slct[MAX];
int n = 3; // luu tru so chi tiet hoa don trong mang  so luong chi tiet hoa don

// Khai bao phuong thuc ngoai class
CT_HOADON::CT_HOADON(int sohd, int mavt, int soluong, double dongia) {
	soHD = sohd;
	maVT = mavt;
	soLuong = soluong;
	donGia = dongia;
}

void CT_HOADON::setSoHoaDon(int sohd) {
	soHD = sohd;
}

int CT_HOADON::getSoHoaDon() {
	return soHD;
}

void CT_HOADON::setMaVatTu(int mavt) {
	maVT = mavt;
}

int CT_HOADON::getMaVatTu() {
	return maVT;
}

void CT_HOADON::setSoLuong(int soluong) {
	soLuong = soluong;
}

int CT_HOADON::getSoLuong() {
	return soLuong;
}

void CT_HOADON::setDonGia(double dongia) {
	donGia = dongia;
}

double CT_HOADON::getDonGia() {
	return donGia;
}


// NHAP THONG TIN CHI TIET HOA DON
void CT_HOADON::Nhap() {
	int sohd;
	int mavt;
	int soluong;
	double dongia;
	cout << "\nNhap so hoa don: "; 
	cin >> sohd;	setSoHoaDon(sohd);
	cout << "Nhap ma vat tu: "; 
	cin >> mavt; 	setMaVatTu(mavt);	
	cout << "Nhap so luong: "; 
	cin >> soluong;	setSoLuong(soluong);
	cout << "Nhap don gia: "; 
	cin >> 	dongia;	setDonGia(dongia);
}

void CT_HOADON::Xuat() {
		cout << "\nSo hoa don: " << getSoHoaDon();
		cout << "\nMa vat tu: " << getMaVatTu();
		cout << "\nSo luong: " << getSoLuong();
		cout << "\nDon gia: " << getDonGia();
} 

void menu(){
	cout << "\nNhan phim 1 de nhap" << endl;
	cout << "Nhan phim 2 de xem" << endl;
	cout << "Nhan phim 3 de them" << endl;
//	cout << "Nhan phim 4 de xoa" << endl;
//	cout << "Nhan phim 5 de sua" << end;
	cout << "Nhan phim 0 de exit" << endl;
}

void Xoa(CT_HOADON &cthd, int vt) {
	for(int i = 0; i < n; i++) {
		
	}
}

void option(){
	
	int choose;
	int n;
	cout << "\nNhap so luong chi tiet hoa don: "; cin >> n;
	CT_HOADON *cthd = new CT_HOADON[n];
	do{
		menu();
		cout << "Moi ban chon: ";
		cin >> choose;
		
		switch (choose){
			case 1:{
				ofstream fileout;
				fileout.open("CT_HOADON.txt", ios::out|ios::binary);
				if(!fileout){
					cout << "Khong mo duoc tep tin" << endl;
					exit(1);
				}
				
				
				for(int  i = 0; i < n; i++) {
					
					cout << "\nNhap thong tin hoa don thu: " << i + 1;
					cthd[i].Nhap();
					fileout.write( reinterpret_cast <char *> (&cthd[i]), sizeof(CT_HOADON));
				}
				
				
				fileout.close();
				break;
			}
			case 2:{    
				ifstream filein("CT_HOADON.txt", ios::in);
				if(!filein){
					cout << "Khong mo duoc file " << endl;
					exit(1);
				}
				
				
				if (filein.fail() == true) {
					cout << "Mo file khong thanh cong";
					break;
				}
				for (int i = 0; i < n; i++) {
					filein.read(reinterpret_cast <char *> (&cthd[i]), sizeof(CT_HOADON));
					cout << "\nXuat thong tin chi tiet hoa don thu " << i + 1;
					cthd[i].Xuat();
				}
				
				filein.close();
				break;
			}
			case 3: {
				
				break;
			}
			case 4: {
				
				break;
			}
			case 5: {
				
				break;
			}
		}
	} while(choose != 0);	
}

int main(){
	option();
	return 0;
}
