#include "dialogcreateenterprise.h" #include "ui_dialogcreateenterprise.h" #include "sqltable.h" #include "mapplication.h" #include dialogCreateEnterprise::dialogCreateEnterprise(QWidget *parent) : QDialog(parent), ui(new Ui::dialogCreateEnterprise) { ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose, true); } dialogCreateEnterprise::~dialogCreateEnterprise() { delete ui; } void dialogCreateEnterprise::on_pushBack_released() { } void dialogCreateEnterprise::on_pushNext_released() { // TODO: guardar y crear la empresa if(ui->editName->text().isEmpty()) { return; } if(ui->editCIF->text().isEmpty()) { return; } createEnterprise(); close(); } void dialogCreateEnterprise::createEnterprise() { QString CIF = ui->editCIF->text().toUpper(); QString path = dApp->dataFolder() + CIF + QDir::separator(); QDir dir; dir.mkpath(path); QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE", CIF); database.setDatabaseName(path + CIF + ".db"); if(!database.open()) return; // Crear la base de datos: for(auto table : dbTables) { QSqlQuery qry(database); if (!qry.exec(table)) { // TODO: mandar un mensaje y repetir si es necesario } } QString ENTERPRISES = "INSERT INTO ENTERPRISES (" "NAME, CIF, DBNAME, PATH" ") VALUES (" ":NAME, :CIF, :DBNAME, :PATH" ");"; QString ENTERPRISESINFO = "INSERT INTO ENTERPRISESINFO (" "NAME, CIF, ADDRESS, POSTCODE, CITY, PROVINCE, COUNTRY, PHONE, MOBILE, FAX, " "EMAIL, WEB, CIF_COMMUNITY, IAE, CNAE, DCNAE, LOGO1, LOGO2" ") VALUES (" ":NAME, :CIF, :ADDRESS, :POSTCODE, :CITY, :PROVINCE, :COUNTRY, :PHONE, :MOBILE, :FAX, " ":EMAIL, :WEB, :CIF_COMMUNITY, :IAE, :CNAE, :DCNAE, :LOGO1, :LOGO2" ");"; QSqlQuery qry(database); //QSqlQuery *qry = new QSqlQuery(dApp->getDBConnection()); qry.prepare(ENTERPRISESINFO); qry.bindValue(":NAME", ui->editName->text()); qry.bindValue(":CIF", ui->editCIF->text()); qry.bindValue(":ADDRESS", ui->editAddress->toPlainText()); qry.bindValue(":POSTCODE", ui->editCP->text()); qry.bindValue(":CITY", ui->editCity->text()); qry.bindValue(":PROVINCE", ui->editProvince->text()); qry.bindValue(":COUNTRY", ui->editCountry->text()); qry.bindValue(":PHONE", ui->editPhone->text()); //qry.bindValue(":MOBILE", ui->edit->text()); qry.bindValue(":FAX", ui->editFax->text()); qry.bindValue(":EMAIL", ui->editEmail->text()); qry.bindValue(":WEB", ui->editWebside->text()); //qry.bindValue(":CIF_COMMUNITY", ui->edit->text()); //qry.bindValue(":IAE", ui->editName->text()); //qry.bindValue(":CNAE", ui->editName->text()); //qry.bindValue(":DCENAE", ui->editName->text()); //qry.bindValue(":LOGO1", ui->editName->text()); //qry.bindValue(":lOGO2", ui->editName->text()); if (!qry.exec()) { qDebug() << "Error ejecutando el query: " << qry.lastError().text() << "\n"; return; } qry.prepare(DBInfoCommand); qry.bindValue(":VERSION", dApp->applicationVersion().isEmpty() ? "0" : dApp->applicationVersion()); qry.bindValue(":SUBVERSION", "0"); if (!qry.exec()) { qDebug() << "Error ejecutando el query: " << qry.lastError().text() << "\n"; return; } qry.clear(); qry.finish(); database.close(); QSqlDatabase::removeDatabase(CIF); // 2. Poner la compaƱia en la lista: dApp->EnterpriseList().open(); QSqlQuery qryList(dApp->EnterpriseList()); qryList.prepare(ENTERPRISES); qryList.bindValue(":NAME", ui->editName->text()); qryList.bindValue(":CIF", ui->editCIF->text()); qryList.bindValue(":DBNAME", CIF); qryList.bindValue(":PATH", path); if (!qryList.exec()) { qDebug() << "Error ejecutando el query: " << qryList.lastError().text() << "\n"; return; } dApp->Enterprise().close(); // 3. Abrir la empresa dApp->openCompany(CIF); }