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();



}