Files
abrechnungsrechner/mainwindow.cpp
M4RKUS28 7514b41c4c init
2023-04-30 16:21:26 +02:00

165 lines
5.6 KiB
C++

#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
dbMngr = new DbManager("C:/Users/Markus/Desktop/DBSQL-Liste.db");
updateListWidgets();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::updateListWidgets()
{
ui->listWidget_Settings->clear();
ui->listWidget_Ereignisse->clear();
auto r = dbMngr->getAllRooms();
for( auto &e : r) {
QString titel =" NAME: " + e.name + " SIZE: " + QString::number( e.size ) + " Miete: " + QString::number( e.miete );
ui->listWidget_Settings->addItem( titel );
keyByListWidgetText.insert( "ROOM_" + titel, e.name );
}
auto r1 = dbMngr->getAllPersons();
for( auto &e : r1) {
QString titel = " NAME: " + e.name + " ROOM: " + e.roomName + " DATE: " + e.date.toString() ;
ui->listWidget_Settings->addItem( titel );
keyByListWidgetText.insert( "PERSON_" + titel, e.name );
}
auto r2 = dbMngr->getAllAbrechnungen();
for( auto &e : r2) {
QString titel = " NAME: " + e.name + " ART: " + QString::number( e.abrechnusart ) + " WERT: " + QString::number( e.betrag );
ui->listWidget_Settings->addItem( titel );
keyByListWidgetText.insert( "ABRECHNUNG_" + titel, e.name );
}
auto r3 = dbMngr->getAllEreignisse();
for( auto &e : r3) {
QString titel = e.date.toString("dd.MM.yyyy") + ": Titel: " + e.titel;
ui->listWidget_Ereignisse->addItem( titel );
keyByListWidgetText.insert( "EREIGNIS_" + titel, e.id );
}
}
void MainWindow::on_pushButton_einausklappen_clicked()
{
ui->groupBox_rechteBox->setHidden( ! ui->groupBox_rechteBox->isHidden() );
ui->pushButton_einausklappen->setText( ui->groupBox_rechteBox->isHidden() ? "<" : ">" );
}
void MainWindow::on_pushButton_AddSetting_clicked()
{
NewSettingWindow w(dbMngr, this);
if( w.exec() )
updateListWidgets();
}
void MainWindow::on_pushButton_addEreignis_clicked()
{
newEreignisWindow w(dbMngr, this);
if( w.exec() )
updateListWidgets();
}
void MainWindow::on_pushButtonAbrechnungErstellen_clicked()
{
AbrechnungsGenerator ar(dbMngr, this);
if( ar.exec() )
updateListWidgets();
}
void MainWindow::on_pushButton_entferneEreignis_clicked()
{
ui->pushButton_entferneEreignis->setDisabled( true );
QListWidgetItem * currentItem = ui->listWidget_Ereignisse->currentItem();
int index = ui->listWidget_Ereignisse->currentRow();
if (currentItem != nullptr) {
if ( ( currentItem = ui->listWidget_Ereignisse->takeItem( index ) ) != nullptr) {
if( keyByListWidgetText.contains( "EREIGNIS_" + currentItem->text() ) ) {
qDebug() << "ROMOVE ID: " << keyByListWidgetText["EREIGNIS_" + currentItem->text()];
if( dbMngr->removeEreignis( keyByListWidgetText["EREIGNIS_" + currentItem->text()] ) != 0)
ui->statusbar->showMessage("Konnte Item nicht in Tabelle löschen!", 1000);
} else
ui->statusbar->showMessage(">>Konnte Item nicht in Map finden<<", 1000);
//delete Var
delete currentItem;
} else
ui->statusbar->showMessage("Konnte Eintrag nicht aus der Liste entfernen!", 1000);
} else
ui->statusbar->showMessage("Kein Eintrag ausgewählt!", 1000);
updateListWidgets();
ui->pushButton_entferneEreignis->setDisabled( false );
}
void MainWindow::on_pushButtonEntferneSetting_clicked()
{
ui->pushButtonEntferneSetting->setDisabled( true );
QListWidgetItem * currentItem = ui->listWidget_Settings->currentItem();
int index = ui->listWidget_Settings->currentRow();
if (currentItem != nullptr) {
if ( ( currentItem = ui->listWidget_Settings->takeItem( index ) ) != nullptr) {
qDebug() << "ROMOVE ID: " <<currentItem->text();
if( keyByListWidgetText.contains( "EREIGNIS_" + currentItem->text() ) ) {
if( dbMngr->removeEreignis( keyByListWidgetText["EREIGNIS_" + currentItem->text()] ) != 0)
ui->statusbar->showMessage("Konnte Item nicht in Tabelle löschen!", 1000);
} else if( keyByListWidgetText.contains( "ROOM_" + currentItem->text() ) ) {
if( dbMngr->removeRoom( keyByListWidgetText["ROOM_" + currentItem->text()] ) != 0)
ui->statusbar->showMessage("Konnte Item nicht in Tabelle löschen!", 1000);
} else if( keyByListWidgetText.contains( "ABRECHNUNG_" + currentItem->text() ) ) {
if( dbMngr->removeAbrechnung( keyByListWidgetText["ABRECHNUNG_" + currentItem->text()] ) != 0)
ui->statusbar->showMessage("Konnte Item nicht in Tabelle löschen!", 1000);
} else if( keyByListWidgetText.contains( "PERSON_" + currentItem->text() ) ) {
if( dbMngr->removePerson( keyByListWidgetText["PERSON_" + currentItem->text()] ) != 0)
ui->statusbar->showMessage("Konnte Item nicht in Tabelle löschen!", 1000);
} else
ui->statusbar->showMessage(">>Konnte Item nicht in Map finden<<", 1000);
//delete Var
delete currentItem;
} else
ui->statusbar->showMessage("Konnte Eintrag nicht aus der Liste entfernen!", 1000);
} else
ui->statusbar->showMessage("Kein Eintrag ausgewählt!", 1000);
updateListWidgets();
ui->pushButtonEntferneSetting->setDisabled( false );
}