Skip to content

Commit

Permalink
Big fix 21102020
Browse files Browse the repository at this point in the history
  • Loading branch information
Minh Đức Trương committed Oct 21, 2020
1 parent bcc760d commit 1cd5f3e
Show file tree
Hide file tree
Showing 8 changed files with 169 additions and 65 deletions.
35 changes: 22 additions & 13 deletions QuanLyChiTieu/chitieu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,36 +125,45 @@ void ChiTieu::on_btn_OK_clicked()

}

////
//

/// Thêm tiền trong danh mục

//// Thêm vào bảng KhoanChi
SoTien += DanhMucQL.LaySoTienTong(MaDanhMuc, Username);

qry.prepare("INSERT KhoanChi ( SoTien, NgayChiTieu, GhiChu, MaDanhMuc, TenChu, TenTaiKhoan )" "VALUES ( :SoTien, :NgayChiTieu, :GhiChu, :MaDanhMuc, :TenChu, :TenTaiKhoan )");
qry.prepare("UPDATE DanhMucChiTieu SET TongTien = :SoTien WHERE TenChu = :Username AND MaDanhMuc = :MaDanhMuc; ");

qry.bindValue(":SoTien", SoTien);
qry.bindValue(":NgayChiTieu", NgayChiTieu);
qry.bindValue(":GhiChu", MoTa);
qry.bindValue(":Username", Username);
qry.bindValue(":MaDanhMuc", MaDanhMuc);
qry.bindValue(":TenChu", Username);
qry.bindValue(":TenTaiKhoan", TenTaiKhoan);

qry.exec();

////
///done

//// Thêm tiền trong danh mục
////Lấy ID_DanhMuc đưa vào bảng KhoanChi

SoTien += DanhMucQL.LaySoTienTong(MaDanhMuc,Username);
int ID_DanhMuc = DanhMucQL.LayID_DanhMuc(MaDanhMuc, Username);

qry.prepare("UPDATE DanhMucChiTieu SET TongTien = :SoTien WHERE TenChu = :Username AND MaDanhMuc = :MaDanhMuc; ");
////

/// Thêm vào bảng KhoanChi

qry.prepare("INSERT KhoanChi ( SoTien, NgayChiTieu, GhiChu, MaDanhMuc, TenChu, TenTaiKhoan, ID_DanhMuc )" "VALUES ( :SoTien, :NgayChiTieu, :GhiChu, :MaDanhMuc, :TenChu, :TenTaiKhoan, :ID_DanhMuc )");

qry.bindValue(":SoTien", SoTien);
qry.bindValue(":Username", Username);
qry.bindValue(":NgayChiTieu", NgayChiTieu);
qry.bindValue(":GhiChu", MoTa);
qry.bindValue(":MaDanhMuc", MaDanhMuc);
qry.bindValue(":TenChu", Username);
qry.bindValue(":TenTaiKhoan", TenTaiKhoan);
qry.bindValue(":ID_DanhMuc", ID_DanhMuc);

qry.exec();

////
///done


buttonPressed();

this->hide();
Expand Down
18 changes: 7 additions & 11 deletions QuanLyChiTieu/loan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ Loan::Loan()

}

int Loan::LayMaTaiKhoan(QString Username, QString TenTaiKhoan){
int Loan::LayMaTaiKhoanInLoan(QString Username, QString TenTaiKhoan){
int res = -1;

this->TenChu = Username;
this->TenTaiKhoan = TenTaiKhoan;

QSqlQuery qry;

if( qry.exec("SELECT MaTaiKhoan FROM Loan WHERE TenChu = '"+TenChu+"' AND Ten = N'"+TenTaiKhoan+"' ") ){
if( qry.exec("SELECT MaTaiKhoan FROM TaiKhoan WHERE TenChu = '"+TenChu+"' AND Ten = N'"+TenTaiKhoan+"' ") ){
while ( qry.next() ) {
res = qry.value("MaTaiKhoan").toInt();
}
Expand All @@ -30,7 +30,7 @@ void Loan::CapNhatDuNo(QString Username, int MaTaiKhoan, lli SoDuNo){

QSqlQuery qry;

qry.prepare("UPDATE Loan SET TienNo = :SoDuNo WHERE MaTaiKhoan = :MaTaiKhoan AND TenChu = :Username; ");
qry.prepare("UPDATE TaiKhoan SET SoDu = :SoDuNo WHERE MaTaiKhoan = :MaTaiKhoan AND TenChu = :Username; ");

qry.bindValue(":SoDuNo", SoDuNo);
qry.bindValue(":MaTaiKhoan", MaTaiKhoan);
Expand All @@ -47,7 +47,7 @@ void Loan::XoaNo(QString Username, int MaTaiKhoan){

QSqlQuery qry;

qry.prepare("DELETE FROM Loan WHERE TenChu = :Username AND MaTaiKhoan = :MaTaiKhoan ");
qry.prepare("DELETE lo FROM Loan lo INNER JOIN TaiKhoan tk ON tk.MaTaiKhoan = lo.MaTaiKhoan WHERE tk.TenChu = :Username AND lo.MaTaiKhoan = :MaTaiKhoan ");

qry.bindValue(":MaTaiKhoan", MaTaiKhoan);
qry.bindValue(":Username", Username);
Expand All @@ -57,22 +57,18 @@ void Loan::XoaNo(QString Username, int MaTaiKhoan){
}
}

void Loan::ThemNo(QString Username, QString TenNo, lli TienNo, QString KyHan, int MaTaiKhoan){
this->TenChu = Username;
void Loan::ThemNo(QString TenNo, QString KyHan, int MaTaiKhoan){
this->TenNo = TenNo;
this->TienNo = TienNo;
this->KyHan = KyHan;
this->MaTaiKhoan = MaTaiKhoan;

QSqlQuery qry;

qry.prepare("INSERT INTO Loan ( TenNo, TienNo, KyHan, MaTaiKhoan, TenChu )" "VALUES ( :TenNo, :TienNo, :KyHan, :MaTaiKhoan, :TenChu )");
qry.prepare("INSERT INTO Loan ( TenNo, KyHan, MaTaiKhoan)" "VALUES ( :TenNo, :KyHan, :MaTaiKhoan )");

qry.bindValue(":TenNo", TenNo);
qry.bindValue(":TienNo", TienNo);
qry.bindValue(":KyHan", KyHan);
qry.bindValue(":MaTaiKhoan", MaTaiKhoan);
qry.bindValue(":TenChu", Username);

if( !qry.exec() ){
qDebug()<<"Lỗi không kết nối được CSDL!";
Expand All @@ -83,7 +79,7 @@ lli Loan::KiemTraDuNo(QString Username, int MaTaiKhoan){
QSqlQuery qry;
lli res = 0;

qry.prepare("SELECT TienNo FROM Loan WHERE TenChu = :Username AND MaTaiKhoan = :MaTaiKhoan");
qry.prepare("SELECT tk.SoDu FROM Loan lo JOIN TaiKhoan tk ON tk.MaTaiKhoan = lo.MaTaiKhoan WHERE tk.TenChu = :Username AND lo.MaTaiKhoan = :MaTaiKhoan");

qry.bindValue(":Username", Username);
qry.bindValue(":MaTaiKhoan", MaTaiKhoan);
Expand Down
2 changes: 1 addition & 1 deletion QuanLyChiTieu/loan.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class Loan : public QuanLyTaiKhoan

void XoaNo(QString Username, int MaTaiKhoan);

void ThemNo(QString Username, QString TenNo, lli TienNo, QString KyHan, int MaTaiKhoan);
void ThemNo(QString TenNo, QString KyHan, int MaTaiKhoan);

lli KiemTraDuNo(QString Username, int MaTaiKhoan);

Expand Down
47 changes: 43 additions & 4 deletions QuanLyChiTieu/loginapp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,53 @@ LoginAPP::LoginAPP(QWidget *parent)

myDB = QSqlDatabase::addDatabase("QODBC");

//myDB.setDatabaseName("DRIVER={SQL Server Native Client 11.0};SERVER=.;DATABASE=DO_AN_THU_CHI;UID=.;PWD=.;WSID=.;Trusted_connection=yes");
myDB.setDatabaseName("DRIVER={SQL Server Native Client 11.0};SERVER=DEREKPC\\DEREK;DATABASE=DO_AN_THU_CHI;UID=.;PWD=.;WSID=.;Trusted_connection=yes");
bool connected = myDB.open();

/*QString dbFilename = QDir::toNativeSeparators(QCoreApplication::applicationDirPath()+"/DO_AN_THU_CHI.mdf");
QString dbFilename = QDir::toNativeSeparators(QCoreApplication::applicationDirPath()+"/DO_AN_THU_CHI.mdf");
qDebug()<<QCoreApplication::applicationDirPath();
QString connStr = "DRIVER={ODBC Driver 13 for SQL Server};SERVER=%1;AttachDbFilename=%2;Integrated Security=true;";
myDB.setDatabaseName(connStr.arg("(localdb)\\MSSQLLocalDB").arg(dbFilename));
QString connStr0 = "DRIVER={ODBC Driver 13.1 for SQL Server};SERVER=%1;AttachDbFilename=%2;Integrated Security=true;";
QString connStr1 = "DRIVER={ODBC Driver 13 for SQL Server};SERVER=%1;AttachDbFilename=%2;Integrated Security=true;";
QString connStr2 = "DRIVER={ODBC Driver 17 for SQL Server};SERVER=%1;AttachDbFilename=%2;Integrated Security=true;";
QString connStr3 = "DRIVER={ODBC Driver 11 for SQL Server};SERVER=%1;AttachDbFilename=%2;Integrated Security=true;";
QString connStr4 = "DRIVER={SQL Server Native Client 11.0};SERVER=%1;AttachDbFilename=%2;Integrated Security=true;";
QString connStr5 = "DRIVER={SQL Server};SERVER=%1;AttachDbFilename=%2;Integrated Security=true;";
QString connStr6 = "DRIVER={SQL Server Native Client RDA};SERVER=%1;AttachDbFilename=%2;Integrated Security=true;";
myDB.setDatabaseName(connStr1.arg("(localdb)\\MSSQLLocalDB").arg(dbFilename));
bool connected = myDB.open();
if( !connected ){
myDB.setDatabaseName(connStr2.arg("(localdb)\\MSSQLLocalDB").arg(dbFilename));
connected = myDB.open();
}
if( !connected ){
myDB.setDatabaseName(connStr0.arg("(localdb)\\MSSQLLocalDB").arg(dbFilename));
connected = myDB.open();
}
if( !connected ){
myDB.setDatabaseName(connStr3.arg("(localdb)\\MSSQLLocalDB").arg(dbFilename));
connected = myDB.open();
}
if( !connected ){
myDB.setDatabaseName(connStr4.arg("(localdb)\\MSSQLLocalDB").arg(dbFilename));
connected = myDB.open();
}
if( !connected ){
myDB.setDatabaseName(connStr5.arg("(localdb)\\MSSQLLocalDB").arg(dbFilename));
connected = myDB.open();
}
if( !connected ){
myDB.setDatabaseName(connStr6.arg("(localdb)\\MSSQLLocalDB").arg(dbFilename));
connected = myDB.open();
}*/
//qDebug()<<myDB.lastError().text();

if(!connected) ui->label_TrangThai->setText(QString::fromUtf8("Lỗi! Không kết nối được CSDL!"));
Expand Down
69 changes: 51 additions & 18 deletions QuanLyChiTieu/quanlychitieu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ void QuanLyChiTieu::ThemDanhMucMacDinh(QString Username){

}

//DMCT
QString QuanLyChiTieu::LayMaDanhMuc(QString TenDanhMuc, QString Username){
QString MDM;

Expand All @@ -41,6 +42,38 @@ QString QuanLyChiTieu::LayMaDanhMuc(QString TenDanhMuc, QString Username){
return MDM;

}
//DMCT
int QuanLyChiTieu::LayID_DanhMuc(QString MaDanhMuc, QString Username){
int res = 0;

this->TenChu = Username;

QSqlQuery qry;

if( qry.exec("SELECT ID_DanhMuc FROM DanhMucChiTieu WHERE TenDanhMuc = '"+MaDanhMuc+"' AND TenChu = '"+Username+"'") ){
while ( qry.next() ) {
res = qry.value("ID_DanhMuc").toInt();
}
}
return res;

}

//Hàm này chỉ được gọi sau khi INSERT vào bảng KhoanChi
int QuanLyChiTieu::LayMaKhoanChi(){
int res = 0;

QSqlQuery qry;

if( qry.exec("SELECT MaKhoanChi FROM KhoanChi WHERE MaKhoanChi = SCOPE_IDENTITY()") ){
while ( qry.next() ) {
res = qry.value("MaKhoanChi").toInt();
}
}
return res;

}
//

lli QuanLyChiTieu::LaySoTienTong(QString MaDanhMuc, QString Username){

Expand Down Expand Up @@ -72,7 +105,7 @@ void QuanLyChiTieu::XoaTaiKhoanInChiTieu(QString Username, QString TenTaiKhoan )
lli TienGD = 0, TienSK = 0, TienMS = 0, TienHP = 0, TienHD = 0, TienKD = 0, TienOT = 0, TienQT = 0, TienDC = 0, TienGT = 0, TienBH = 0;


qry.prepare("SELECT MaDanhMuc, SoTien FROM KhoanChi WHERE TenChu = :Username AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT dmct.MaDanhMuc, kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND kc.TenTaiKhoan = :TenTaiKhoan");

qry.bindValue(":Username", Username);
qry.bindValue(":TenTaiKhoan", TenTaiKhoan);
Expand Down Expand Up @@ -102,7 +135,7 @@ void QuanLyChiTieu::XoaTaiKhoanInChiTieu(QString Username, QString TenTaiKhoan )

//Xoá trong bảng KhoanChi

qry.prepare("DELETE FROM KhoanChi WHERE TenChu = :Username AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("DELETE kc FROM KhoanChi kc INNER JOIN dbo.DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND kc.TenTaiKhoan = :TenTaiKhoan");

qry.bindValue(":Username", Username);
qry.bindValue(":TenTaiKhoan", TenTaiKhoan);
Expand Down Expand Up @@ -171,13 +204,13 @@ QVector<QVector<lli>> QuanLyChiTieu::LayThongKe7NgayTruoc(QString Username, QStr
}

if( TenDanhMuc == "Tất Cả" && TenTaiKhoan == "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year");
if( TenDanhMuc != "Tất Cả" && TenTaiKhoan == "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND MaDanhMuc = :MDM");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND dmct.MaDanhMuc = :MDM");
if( TenDanhMuc == "Tất Cả" && TenTaiKhoan != "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND kc.TenTaiKhoan = :TenTaiKhoan");
if( TenDanhMuc != "Tất Cả" && TenTaiKhoan != "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND MaDanhMuc = :MDM AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND dmct.MaDanhMuc = :MDM AND kc.TenTaiKhoan = :TenTaiKhoan");

qry.bindValue(":Username", Username);
qry.bindValue(":day", i);
Expand Down Expand Up @@ -241,13 +274,13 @@ QVector<QVector<lli>> QuanLyChiTieu::LayThongKe30NgayTruoc(QString Username, QSt

//Xử lý query tuỳ theo trường hợp
if( TenDanhMuc == "Tất Cả" && TenTaiKhoan == "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year");
if( TenDanhMuc != "Tất Cả" && TenTaiKhoan == "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND MaDanhMuc = :MDM");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND dmct.MaDanhMuc = :MDM");
if( TenDanhMuc == "Tất Cả" && TenTaiKhoan != "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND kc.TenTaiKhoan = :TenTaiKhoan");
if( TenDanhMuc != "Tất Cả" && TenTaiKhoan != "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND MaDanhMuc = :MDM AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND dmct.MaDanhMuc = :MDM AND kc.TenTaiKhoan = :TenTaiKhoan");

qry.bindValue(":Username", Username);
qry.bindValue(":day", i);
Expand Down Expand Up @@ -316,13 +349,13 @@ QVector<QVector<lli>> QuanLyChiTieu::LayThongKe3ThangTruoc(QString Username, QSt
}
//Xử lý query tuỳ theo trường hợp
if( TenDanhMuc == "Tất Cả" && TenTaiKhoan == "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year");
if( TenDanhMuc != "Tất Cả" && TenTaiKhoan == "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND MaDanhMuc = :MDM");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND dmct.MaDanhMuc = :MDM");
if( TenDanhMuc == "Tất Cả" && TenTaiKhoan != "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND kc.TenTaiKhoan = :TenTaiKhoan");
if( TenDanhMuc != "Tất Cả" && TenTaiKhoan != "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Day(NgayChiTieu) =:day AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND MaDanhMuc = :MDM AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Day(kc.NgayChiTieu) =:day AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND dmct.MaDanhMuc = :MDM AND kc.TenTaiKhoan = :TenTaiKhoan");

qry.bindValue(":Username", Username);
qry.bindValue(":day", i);
Expand Down Expand Up @@ -363,13 +396,13 @@ QVector<lli> QuanLyChiTieu::LayThongKe1Nam(QString Username, QString TenDanhMuc,
for( int i = 12; i > 0; --i ){
//Xử lý query tuỳ theo trường hợp
if( TenDanhMuc == "Tất Cả" && TenTaiKhoan == "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year");
if( TenDanhMuc != "Tất Cả" && TenTaiKhoan == "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND MaDanhMuc = :MDM");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND dmct.MaDanhMuc = :MDM");
if( TenDanhMuc == "Tất Cả" && TenTaiKhoan != "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND kc.TenTaiKhoan = :TenTaiKhoan");
if( TenDanhMuc != "Tất Cả" && TenTaiKhoan != "Tất Cả" )
qry.prepare("SELECT SoTien FROM KhoanChi WHERE TenChu = :Username AND Month(NgayChiTieu) = :month AND Year(NgayChiTieu) = :year AND MaDanhMuc = :MDM AND TenTaiKhoan = :TenTaiKhoan");
qry.prepare("SELECT kc.SoTien FROM KhoanChi kc JOIN DanhMucChiTieu dmct ON kc.ID_DanhMuc = dmct.ID_DanhMuc WHERE dmct.TenChu = :Username AND Month(kc.NgayChiTieu) = :month AND Year(kc.NgayChiTieu) = :year AND dmct.MaDanhMuc = :MDM AND kc.TenTaiKhoan = :TenTaiKhoan");

qry.bindValue(":Username", Username);
qry.bindValue(":month", i);
Expand Down
Loading

0 comments on commit 1cd5f3e

Please sign in to comment.