Esempio n. 1
0
int VERITABANI_DEGISTIR ( ADAK_SQL ** p_program_db, QWidget * p_parent )
{
    QString veritabani_ismi;
    QString veritabani_tanimi;

    int veritabani_id = VERITABANI_SEC( KULLANICI_ID() , &veritabani_ismi , &veritabani_tanimi , (QDialog *)p_parent );

    ADAK_SQL * db_conn = CREATE_ADAK_SQL_CONNECTION( GET_PROGRAM_DB_STRUCTS() , SQL_DBNAME_ONEK() + "adak_" + veritabani_ismi , (*p_program_db)->GET_SQL_DRIVER_ENUM());

    if ( db_conn->CONNECT_TO_DATABASE( true ) EQ ADAK_OK ) {

        *p_program_db           = db_conn;

        SET_VERITABANI_ID       (veritabani_id);
        SET_VERITABANI_ISMI     (veritabani_ismi);
        SET_VERITABANI_TANIMI   (veritabani_tanimi);

        return veritabani_id;
    }

    return -1;
}
void MUH_HESAP_PLANI_KOPYALA_BATCH::RUN_BATCH ()
{

    QString db_name = SQL_DBNAME_ONEK() + "adak_" + m_ui->searchEdit_veritabani_ismi->GET_TEXT();

    TARGET_DB = CREATE_ADAK_SQL_CONNECTION( GET_PROGRAM_DB_STRUCTS() , db_name , GET_SQL_DB_DRIVER_ENUM(SQL_MOTORU()));

    if ( TARGET_DB->CONNECT_TO_DATABASE(true ) EQ ADAK_FAIL ) {

        MSG_WARNING(  tr("Seçilen veritabanı ile bağlantı kurulamadı"), NULL );
        return;
    }

    SQL_QUERY query_source_db(DB);

    SQL_QUERY query_target_db(TARGET_DB);

    query_target_db.PREPARE_SELECT("muh_hesaplar" , "hesap_id", "hesap_seviyesi = :hesap_seviyesi");
    query_target_db.SET_VALUE(":hesap_seviyesi" , 2);

    if ( query_target_db.SELECT() NE 0 ) {
        //Hesaplara alt hesap acilmis ise ,baska bir hesap palnindan kopyalama yapilmayacak
        MSG_WARNING(tr("Veritabanınızdaki hesaplara alt hesap açılmış durumda."
                       "Hesap Planı kopyalayamazsınız.") , NULL);
        return;
    }
    else {

        query_target_db.PREPARE_SELECT("muh_fis_satirlari" ,"fis_satiri_id");

        if ( query_target_db.SELECT() NE 0 ) {
            MSG_WARNING(tr("Veritabanınızdaki hesaplar işlem görmüş,"
                           "Hesap Planı kopyalayamazsınız.") , NULL);
            return;
        }

        TARGET_DB->START_TRANSACTION();

        query_source_db.PREPARE_SELECT("muh_hesaplar" , "hesap_id, parent_id, hesap_seviyesi,"
                                "hesap_kodu,hesap_ismi,tam_hesap_kodu,tali_hesap,"
                                "alt_hesap_sayisi");

        if ( query_source_db.SELECT() NE 0 ) {

            query_target_db.PREPARE_DELETE("muh_hesaplar" , "");
            query_target_db.DELETE();

            int hesap_id = 0;

            while ( query_source_db.NEXT() ) {

                query_target_db.PREPARE_INSERT("muh_hesaplar" , "hesap_id" ,
                                        "hesap_id,parent_id, hesap_seviyesi,"
                                        "hesap_kodu, hesap_ismi,tam_hesap_kodu,"
                                        "tali_hesap, alt_hesap_sayisi");
                query_target_db.SET_VALUE(":hesap_id"         , query_source_db.VALUE(0).toInt());
                query_target_db.SET_VALUE(":parent_id"        , query_source_db.VALUE(1).toInt());
                query_target_db.SET_VALUE(":hesap_seviyesi"   , query_source_db.VALUE(2).toInt());
                query_target_db.SET_VALUE(":hesap_kodu"       , query_source_db.VALUE(3).toString());
                query_target_db.SET_VALUE(":hesap_ismi"       , query_source_db.VALUE(4).toString());
                query_target_db.SET_VALUE(":tam_hesap_kodu"   , query_source_db.VALUE(5).toString());
                query_target_db.SET_VALUE(":tali_hesap"       , query_source_db.VALUE(6).toInt());
                query_target_db.SET_VALUE(":alt_hesap_sayisi" , query_source_db.VALUE(7).toInt());

                hesap_id = query_target_db.INSERT();
            }

            if ( hesap_id > 0 ) {
                DB->SET_TABLE_AUTO_INCREMENT_ID_VALUE("muh_hesaplar" , "hesap_id" ,hesap_id);
            }
        }

        TARGET_DB->COMMIT_TRANSACTION();

        MSG_WARNING(tr("İçerisinde bulunduğunuz veritabanı %1 Veritabanındaki hesap planına kopyalandı.").arg(m_ui->searchEdit_veritabani_ismi->GET_TEXT()),NULL);

    }
}
void LOGIN_BATCH::RUN_BATCH()
{
    if( G_YONETIM_DB->SQL_TABLES_EXISTS("") EQ true  ) {
        int user_db_count = GET_USER_DB_COUNT( m_user_info->kullanici_id );

        if ( user_db_count > 1 ) {
            int veritabani_secimi = VERITABANI_SEC( m_user_info->kullanici_id , &(m_user_info->veritabani_kodu)
                                                                      , &(m_user_info->veritabani_tanimi),this );
            if ( veritabani_secimi EQ -1 ) {
                return;
            }
        }
        else if (user_db_count EQ 1 ) {
            m_user_info->veritabani_kodu = GET_VERITABANI_ISMI( m_user_info );
        }
    }
    else {
        int secim = MSG_YES_NO( "Veritabanında Tablolar Yok Oluşturulsun mu ?", NULL );
        if ( secim EQ ADAK_YES ) {
            m_user_info->is_first_login = true;
        }
    }

    if ( m_user_info->veritabani_kodu.isEmpty() EQ false ) {

        if ( m_user_info->sql_motoru EQ "YOK" ) {
            if ( PROGRAM_DB_VAR_MI( m_user_info->veritabani_kodu ) EQ false ) {
                MSG_WARNING( "Veritabanı yok!", NULL );
                return;
            }
            else {
                CONNECT_TO_DB( ADAK_PROGRAM, m_user_info, false );
            }
        }
        else {
            DB = CREATE_ADAK_SQL_CONNECTION( GET_PROGRAM_DB_STRUCTS(), QString(SQL_DBNAME_ONEK()+ "adak_" + m_user_info->veritabani_kodu ),
                                              GET_SQL_DB_DRIVER_ENUM( m_user_info->sql_motoru ) );

            if( DB->CONNECT_TO_DATABASE( false ) EQ ADAK_FAIL ) {
                 MSG_WARNING( "Veritabanı yok!", NULL );
                return;
            }
        }

        if( DB->SQL_TABLES_EXISTS("") EQ false ) {
            int secim = MSG_YES_NO( "Veritabanında Tablolar Yok Oluşturulsun mu ?", NULL );
            if ( secim EQ ADAK_YES ) {
               // m_user_info->is_first_login = true;
            }
        }

    }

    m_user_info->kullanici_kodu    = m_ui->line_edit_kullanici_kodu->text();
    m_user_info->kullanici_sifre  = m_ui->line_edit_kullanici_sifre->text();

    *m_all_informations_completed = true;

    m_user_info->is_auto_login = m_ui->check_box_otomatik_login->isChecked();



}
bool CONNECT_TO_SQL_DATABASE(QString sunucu, int port, QString sql_motoru, QString veritabani_on_ek,
                             QString username, QString password, QString db_name, QString *return_error_text )
{

    if (sql_motoru.isEmpty() EQ true) {
        return false;
    }

    SET_SQL_MOTORU (sql_motoru);

    if (GET_SQL_DB_DRIVER_ENUM(sql_motoru) NE SQLITE) {
        if ( port <= 0 ) {
            port = GET_DEFAULT_SQL_PORT_NUMBER(GET_SQL_DB_DRIVER_ENUM(sql_motoru));
        }
        if (sunucu.isEmpty() EQ true) {
            sunucu = "localhost";
        }
    }

    SET_SQL_PORT    ( port   );
    SET_SQL_HOSTNAME( sunucu );
    SET_SQL_PASSWORD( QVariant( password ).toString() );
    SET_SQL_USERNAME( QVariant( username ).toString() );

    SET_SQL_DBNAME_ONEK (QVariant(veritabani_on_ek).toString());

    if( db_name.isEmpty() EQ true ) {
        db_name = "adak_yonetim";
    }
    else {
        db_name.prepend( "adak_");
    }

    ADAK_SQL * db_conn = CREATE_ADAK_SQL_CONNECTION( QList<ADAK_SQL_STRUCT *>(), QString(SQL_DBNAME_ONEK()+ db_name ), GET_SQL_DB_DRIVER_ENUM(SQL_MOTORU()) );

    if( db_conn->CONNECT_TO_DATABASE( false ) EQ ADAK_FAIL ) {
        if ( return_error_text NE NULL ) {
            *return_error_text = db_conn->GET_CONNECTION_LAST_ERROR();
        }
        return false;
    }

    return true;
}
Esempio n. 5
0
int FIRST_LOGIN( USER_LOGIN_INFO_STRUCT * P_USER_LOGIN_INFO, bool p_ilk_kurulum )
{
    //! PROGRAM ILK CALISTIGINDA BURAYA DUSER VE GEREKLI
    //! BUTUN VERI TABANLARINI VE YETKI ATAMASINI YAPAR.

    //! NOTE : VERITABANI ILK YARATILDIGINDA DEFAULT OLARAK
    //! OLUSACAK KULLANICI VE BILGISAYAR BILGILERI

    P_USER_LOGIN_INFO->bilgisayar_kodu    = QObject::tr ("C01");
    P_USER_LOGIN_INFO->bilgisayar_adi     = QObject::tr ("C01 Computer");
    P_USER_LOGIN_INFO->kullanici_kodu     = QObject::tr ("U01");
    P_USER_LOGIN_INFO->kullanici_adi      = QObject::tr ("U01 User");
    P_USER_LOGIN_INFO->kullanici_sifre   = "";

    if( p_ilk_kurulum EQ true ) {
        P_USER_LOGIN_INFO->sql_motoru         = "NONE";
        P_USER_LOGIN_INFO->secili_sql_profili = QObject::tr ("Local Disk");
        P_USER_LOGIN_INFO->veritabani_kodu    = "000";
    }

    P_USER_LOGIN_INFO->veritabani_tanimi  = QString(QObject::tr ("%1 Database")).arg( P_USER_LOGIN_INFO->veritabani_kodu );

    if ( P_USER_LOGIN_INFO->is_first_login EQ true ) {
        QSplashScreen * splash = CREATE_SPLASH_SCREEN();
        splash->show();
        splash->showMessage((QString("Configuring program for first usage. Please wait ...")), Qt::AlignCenter, Qt::white );
        splash->finish(NULL);
    }

    //! SQL_LITE VERITABANINA BAGLANILMAYA CALISILDIGINDA OTOMATIK OLARAK
    //! BAGLANILAN ISIMDE BIR VERITABANI OLUSTURUR

    QString program_db_name = SQL_DBNAME_ONEK() + "adak_" + P_USER_LOGIN_INFO->veritabani_kodu;
    QString yonetim_db_name = SQL_DBNAME_ONEK() + "adak_yonetim";

    G_YONETIM_DB = CONNECT_TO_DATABASE( ADAK_YONETIM, yonetim_db_name, P_USER_LOGIN_INFO->sql_motoru );
    DB           = CONNECT_TO_DATABASE( ADAK_PROGRAM, program_db_name, P_USER_LOGIN_INFO->sql_motoru );

    G_YONETIM_DB->START_TRANSACTION();

    //! [1] YENI BIR VERI TABANI OLSTURULUYOR

    if( p_ilk_kurulum EQ false ) {
        QString uyari_string = QString (QObject::tr("Tables needed do not exist in database!"
            "\nWill create tables and a new user according to the information you gave.\n\n Will do;\n"
            "Create database : %1 - %2 .\n"
            "Create %3 : user and give it all the permissions."))
            .arg( P_USER_LOGIN_INFO->veritabani_kodu )
            .arg( P_USER_LOGIN_INFO->veritabani_tanimi  )
            .arg( P_USER_LOGIN_INFO->kullanici_kodu  );

        if ( P_USER_LOGIN_INFO->is_first_login EQ true ) {
            ADAK_MSG_ENUM answer = ADAK_YES_NO_CANCEL(uyari_string , NULL, NULL);

            if (answer NE ADAK_YES) {
                return ADAK_OK;
            }
        }
    }

    if ( P_USER_LOGIN_INFO->kullanici_id EQ 1 ) {
        return ADAK_OK;
    }

    if ( CREATE_TABLES_OF_YONETIM( yonetim_db_name ) EQ ADAK_FAIL ) {
        return ADAK_FAIL;
    }

    SQL_QUERY sql_query ( G_YONETIM_DB );

    sql_query.PREPARE_SELECT("ynt_kullanicilar", "kullanici_kodu","kullanici_kodu = :kullanici_kodu","");
    sql_query.SET_VALUE ( ":kullanici_kodu" , P_USER_LOGIN_INFO->kullanici_kodu );

    if ( sql_query.SELECT() EQ 0 ) {

        ADD_YONETICI_USER( P_USER_LOGIN_INFO->kullanici_sifre );

        sql_query.PREPARE_INSERT ( "ynt_kullanicilar","kullanici_id","kullanici_kodu, kullanici_adi,silinmis_mi, parola");

        sql_query.SET_VALUE ( ":kullanici_kodu" , P_USER_LOGIN_INFO->kullanici_kodu );
        sql_query.SET_VALUE ( ":kullanici_adi"  , P_USER_LOGIN_INFO->kullanici_adi  );
        sql_query.SET_VALUE ( ":silinmis_mi"    , 0 );

        QByteArray hash = QCryptographicHash::hash(QString(P_USER_LOGIN_INFO->kullanici_sifre).toUtf8(), QCryptographicHash::Md5);

        sql_query.SET_VALUE ( ":parola", QString( hash.toHex()));

        P_USER_LOGIN_INFO->kullanici_id = sql_query.INSERT();

        QStringList mac_adresleri = GET_MAC_ADDRESS();

        sql_query.PREPARE_INSERT ( "ynt_bilgisayarlar","bilgisayar_id","bilgisayar_kodu, bilgisayar_adi, "
                                   "mac_adresi_kablolu,mac_adresi_kablosuz,mac_adresi_3g, silinmis_mi ");

        sql_query.SET_VALUE( ":bilgisayar_kodu"     , P_USER_LOGIN_INFO->bilgisayar_kodu );
        sql_query.SET_VALUE( ":bilgisayar_adi"      , P_USER_LOGIN_INFO->bilgisayar_adi  );

        if ( mac_adresleri.size() >= 1 ) {
            sql_query.SET_VALUE( ":mac_adresi_kablolu", GET_MAC_ADDRESS().at(0)  );
        }
        else {
            sql_query.SET_VALUE( ":mac_adresi_kablolu", "" );
        }

        if ( mac_adresleri.size() >= 2 ) {
            sql_query.SET_VALUE( ":mac_adresi_kablosuz", GET_MAC_ADDRESS().at(1) );
        }
        else {
            sql_query.SET_VALUE( ":mac_adresi_kablosuz", "" );
        }

        if ( mac_adresleri.size() >= 3 ) {
            sql_query.SET_VALUE( ":mac_adresi_3g", GET_MAC_ADDRESS().at(2) );
        }
        else {
            sql_query.SET_VALUE( ":mac_adresi_3g", "" );
        }

        sql_query.SET_VALUE( ":silinmis_mi", 0 );

        P_USER_LOGIN_INFO->bilgisayar_id = sql_query.INSERT();

        //! VERITABANI ID OLUSUYOR.
        if ( CREATE_TABLES_OF_PROGRAM( P_USER_LOGIN_INFO, false ) EQ ADAK_FAIL ) {
            return ADAK_FAIL;
        }
        //! END

        sql_query.PREPARE_INSERT( "ynt_bilgisayar_kullanicilari","id","bilgisayar_id, kullanici_id");
        sql_query.SET_VALUE( ":bilgisayar_id", P_USER_LOGIN_INFO->bilgisayar_id );
        sql_query.SET_VALUE( ":kullanici_id" , P_USER_LOGIN_INFO->kullanici_id  );
        sql_query.INSERT();

        sql_query.PREPARE_INSERT( "ynt_veritabani_kullanicilari","id","veritabani_id, kullanici_id");
        sql_query.SET_VALUE( ":veritabani_id", P_USER_LOGIN_INFO->veritabani_id );
        sql_query.SET_VALUE( ":kullanici_id",  P_USER_LOGIN_INFO->kullanici_id  );
        sql_query.INSERT();
    }

    SET_STATIC_VALUES( P_USER_LOGIN_INFO );

    SET_KULLANICININ_CALISABILECEGI_VERITABANI_SAYISI ( 1 );
    SET_BILGISAYARDA_KAYITLI_KULLANICI_SAYISI         ( 1 );

    KULLANICI_TAM_YETKILENDIR( P_USER_LOGIN_INFO->kullanici_id );

    if (g_auto_login_flag EQ false) {
        SHOW_YARDIM_HATIRLATMA_DIALOG();
    }

    G_YONETIM_DB->COMMIT_TRANSACTION();

    //! [1] END

    return ADAK_OK;
}