Esempio n. 1
0
bool CInputDialogOrdering::settings(bool bUpdate)
{
    bool b;
    CSettings settings;
    QList<QString> lsSType,lsSValue,lsSUpdateType,lsSUpdateValue;
    lsSType.push_back(QString("DLG_ORDERING_TABLE_COLUMNS_WIDTHS_WARES"));
    lsSType.push_back(QString("TABLE_SORT_ORDER_DLG_ORDERING"));
    //-
    b=settings.load(lsSType,lsSValue);//load all settings
    if(b)
    {
        if(!bUpdate)//set
        {
            //table width
            if(lsSValue.count()>0)
                settings.set_table_columns_width(ui->tableWidgetWares,lsSValue[0],200);
            //table sort
            if(lsSValue.count()>1)
                settings.set_table_sort(ui->tableWidgetWares,lsSValue[1],1);
        }
        if(bUpdate)//write
        {
            //table width
            if(lsSValue.count()>0)
            {
                if(settings.get_table_columns_width(ui->tableWidgetWares,lsSValue[0]))//setting change?
                {
                    lsSUpdateType.push_back(lsSType[0]);
                    lsSUpdateValue.push_back(lsSValue[0]);
                }
            }
            //table sort
            if(lsSValue.count()>1)
            {
                if(settings.get_table_sort(ui->tableWidgetWares,lsSValue[1]))//setting change?
                {
                    lsSUpdateType.push_back(lsSType[1]);
                    lsSUpdateValue.push_back(lsSValue[1]);
                }
            }

            //write updates
            if(lsSUpdateType.count()>0 && lsSUpdateType.count()==lsSUpdateValue.count())
                b=settings.write(lsSUpdateType,lsSUpdateValue);
        }
    }
    //-
    lsSValue.clear();
    lsSType.clear();
    lsSUpdateValue.clear();
    lsSUpdateType.clear();
    return b;
}
bool CInputDialogWaregroup::settings(bool bUpdate)
{
    bool b;
    CSettings settings;
    QList<QString> lsSType,lsSValue,lsSUpdateType,lsSUpdateValue;
    lsSType.push_back(QString("DLG_WAREGROUP_TREE"));
    //-
    b=settings.load(lsSType,lsSValue);//load all settings
    if(b)
    {
        if(!bUpdate)//set
        {
            //tree width
            if(lsSValue.count()>0)
                settings.set_tree_width(ui->treeWidgetParents,lsSValue[0],500);
        }
        if(bUpdate)//write
        {
            //tree width
            if(lsSValue.count()>0)
            {
                if(settings.get_tree_width(ui->treeWidgetParents,lsSValue[0]))//setting change?
                {
                    lsSUpdateType.push_back(lsSType[0]);
                    lsSUpdateValue.push_back(lsSValue[0]);
                }
            }

            //write updates
            if(lsSUpdateType.count()>0 && lsSUpdateType.count()==lsSUpdateValue.count())
                b=settings.write(lsSUpdateType,lsSUpdateValue);
        }
    }
    //-
    lsSValue.clear();
    lsSType.clear();
    lsSUpdateValue.clear();
    lsSUpdateType.clear();
    return b;
}
Esempio n. 3
0
bool CLogoDialog::push_start(void)
{
    if(m_pDb==NULL)
    {//error no database interface
        close();
        return false;
    }

    int i;
    QFileInfo file_info;
    QDateTime dtTiLastSession;
    QDateTime dtTi=QDateTime().currentDateTime();
    QString s,sPath,sError;
    QString curSel=ui->comboBoxUser->currentText();
    QStringList sls;
    CSettings settings;
    QMessageBox msg(QMessageBox::Critical,"","");
    msg.setWindowTitle(tr("Fehler!"));

    //database path------------------------check & open db
    sPath=ui->lineEdit->text();
    if(!QFile::exists(sPath))
        sError=QString::fromUtf8("Die angegebene Datei \"%1\" existiert nicht!").arg(sPath);
    else
    {
        file_info.setFile(sPath);
        if(!file_info.permission(QFile::WriteUser))
            sError=QString::fromUtf8("Sie haben keine Schreibrechte an dem Ort \"%1\"!").arg(sPath);
        else
        {
            if(!m_pDb->open_db(sPath,QString::fromUtf8("localhost")))//open db?
            {
                s=m_pDb->last_error();
                sError=QString::fromUtf8("Die Datei \"%1\" konnte nicht geöffnet werden!\n(error: %2)").arg(sPath,s);
            }
            else
            {
                if(!m_pDb->check_and_update_db_version())//database old version? -> update
                    sError=QString::fromUtf8("Fehler beim update der Datenbankdatei auf Version %1!").arg(CURRENT_DB_VERSION);
                else
                {
                    if(!m_pDb->check_database_file(true))
                        sError=QString::fromUtf8("Die Datei \"%1\" ist beschädigt oder nicht kompatibel!").arg(sPath);
                    else
                    {
                        //save path->settings
                        settings.write(QString::fromUtf8("DB_PATH"),sPath);//save setting

                        //mark path
                        m_sDbPath=sPath;

                        //check last session(time) and current
                        dtTiLastSession=m_pDb->get_last_session();
                        if(dtTiLastSession>QDateTime(QDate(0,0,0),QTime(0,0,0)))//set?
                        {
                            if(dtTiLastSession.date()>dtTi.date())
                            {
                                s=QString::fromUtf8("Bitte prüfen Sie Ihre Systemzeit-/datumseinstellungen Ihres Betriebssystems. Das Datum Ihrer letzten Sitzung "
                                           "ist später als das aktuelle Datum. Falsche Einstellungen können die chronologische Reihenfolge der Artikelmengen"
                                           " beim Warenausgang beeinflussen.");
                                msg.setWindowTitle(QString::fromUtf8("Achtung!"));
                                msg.setText(s);
                                msg.exec();
                            }
                        }
                    }
                }
            }
        }
    }
    //-------------------------------------


    if(sError.length()>0)
    {
        msg.setText(sError);
        msg.exec();
        m_pDb->close_db();
    }
    else
    {
        //user name-----------------------------
        //mark user name
        if(settings.load(QString::fromUtf8("USERS"),s))
        {
            if(s.length()>0)
                sls=s.split(",");
        }

        //add current selection text in front
        sls.push_front(curSel);

        //remove dupl.
        sls.removeDuplicates();

        //max mark user = 10
        while(sls.count()>10)
            sls.removeLast();

        //save user setting
        for(i=0,s=QString::fromUtf8("");i<sls.count();i++)
        {
            if(sls[i]!=QString::fromUtf8(""))
            {
                s+=sls[i];
                if(i+1<sls.count())//not last
                    s+=QString::fromUtf8(",");
            }
        }
        settings.write(QString::fromUtf8("USERS"),s);//save setting
        sls.clear();
        //-------------------------------------------

        m_sUser=curSel;
        m_bStart=true;
        close();
    }
    return true;
}