Beispiel #1
0
void BNK_DEFTER_FISI_SIL( BNK_DEFTER_FIS_STRUCT * P_FIS, int p_fis_id )
{
    SQL_QUERY query ( DB );
    query.PREPARE_SELECT ( "bnk_defter_fisler","modul_id, program_id,base_fis_id ",
                           "fis_id = :fis_id" );
    query.SET_VALUE      ( ":fis_id" , p_fis_id );

   if ( query.SELECT() EQ 0 ) {
        return;
    }
    query.NEXT();

    int         modul_id           =   query.VALUE ( 0 ).toInt();
    int         program_id         =   query.VALUE ( 1 ).toInt();
    int         base_fis_id        =   query.VALUE ( 2 ).toInt();

    if ( P_FIS->modul_id NE modul_id OR P_FIS->program_id NE program_id OR P_FIS->base_fis_id NE base_fis_id ) {
        return;
    }

    query.PREPARE_SELECT ( "bnk_defter_fis_satirlari","fis_satiri_id","fis_id = :fis_id" );
    query.SET_VALUE      ( ":fis_id", p_fis_id );

    // Fis'e ait satirlar siliniyor
    if ( query.SELECT() > 0 ) {
        while ( query.NEXT() EQ true ) {
            BNK_DEFTER_FIS_SATIRI_SIL ( P_FIS, query.VALUE ( 0 ).toInt() );
        }
    }

    query.PREPARE_DELETE ( "bnk_defter_fisler","fis_id = :fis_id" );
    query.SET_VALUE      ( ":fis_id", p_fis_id );
    query.DELETE();
}
void GRP_KAYDIN_GRUPLARINI_SIL ( int program_id , int module_id ,int record_id )
{
    //Kaydi silmeden once tum gruplardan dusurulmesi lazim.
    GRP_KAYDI_GRUPLARA_EKLE(program_id,module_id,record_id,new QList<int>());

    SQL_QUERY query (DB);

    query.PREPARE_DELETE("adak_kaydin_gruplari", "record_id=:record_id AND program_id = :program_id AND module_id = :module_id");

    query.SET_VALUE(":record_id" ,  record_id   );
    query.SET_VALUE(":program_id",  program_id  );
    query.SET_VALUE(":module_id" ,  module_id   );

    query.DELETE();
}
void DMR_AMORTISMAN_AYIRMA_BATCH::RUN_BATCH()
{
    SQL_QUERY query ( DB ) ;

    QList<int> gruplara_kayitli_demirbaslar_id_list;

    gruplara_kayitli_demirbaslar_id_list = GRP_GRUBA_EKLI_KAYITLARI_BUL(E9_PROGRAMI,DEMIRBAS_GRUP_MODULU,m_grup_idleri);

    QString where_str;

    for ( int i = 0 ; i < gruplara_kayitli_demirbaslar_id_list.size() ; i++ ) {

        where_str = "demirbas_id = :demirbas_id ";

        if (m_sube_id > 0) {
            where_str.append(" AND sube_id = :sube_id");
        }
        where_str.append(" AND amortisman_ayrilacak_mi = :amortisman_ayrilacak_mi");

        query.PREPARE_SELECT ( "dmr_demirbaslar","demirbas_id,yeniden_degerleme_yapilacak_mi,"
                               "yeniden_degerleme_yapildi, alis_tarihi , yillik_ayrilan_amor_yuzdesi",
                                where_str);
        query.SET_VALUE      ( ":demirbas_id" , QVariant ( gruplara_kayitli_demirbaslar_id_list.at(i)).toInt() );

        if ( m_sube_id > 0) {
            query.SET_VALUE(":sube_id" , m_sube_id);
        }
        query.SET_VALUE(":amortisman_ayrilacak_mi" , 1);

        if ( query.SELECT() EQ 0 ) {
            continue;
        }

        while ( query.NEXT() ) {
            int yeniden_degerleme_yapilacak_mi = query.VALUE(1).toInt();
            int yeniden_degerleme_yapildi      = query.VALUE(2).toInt();
            QDate demirbas_alis_tarihi         = QDate::fromString(query.VALUE(3).toString(),"yyyy.MM.dd");

            if ( demirbas_alis_tarihi.year() EQ m_ui->adakDate_fis_tarihi->QDATE().year() ) {
                if ( demirbas_alis_tarihi.month() > m_ui->adakDate_fis_tarihi->QDATE().month()) {
                    gruplara_kayitli_demirbaslar_id_list.removeAt(i);
                    continue;
                }

                double ayrilacak_amor_orani = DMR_GET_AYRILACAK_AMORTISMAN_ORANI(demirbas_alis_tarihi.month());

                if ( ayrilacak_amor_orani NE m_ui->commaEdit_dusulecek_amortisman_yuzdesi->GET_DOUBLE()) {
                    gruplara_kayitli_demirbaslar_id_list.removeAt(i);
                    continue;
                }
            }

            if ( yeniden_degerleme_yapilacak_mi EQ 1 ) {
                if ( yeniden_degerleme_yapildi EQ 0 ) {
                    //Demirbasin alis tarihine bakilir.Islem yili ile demirbas ayni yil alinmissa,
                    //demirbas yeniden degerlemeye tabi degildir


                    int demirbas_alim_yili = demirbas_alis_tarihi.year();
                    int current_year       = m_ui->adakDate_fis_tarihi->QDATE().year();

                    if ( demirbas_alim_yili NE current_year ) {
                        gruplara_kayitli_demirbaslar_id_list.removeAt(i);
                        continue;
                    }
                }
            }

            double yillik_ayrilan_amortisman_yuzdesi = query.VALUE("yillik_ayrilan_amor_yuzdesi").toDouble();

            if ( yillik_ayrilan_amortisman_yuzdesi EQ 100 ) {
                //Demirbasin yillik amortismani ayrilmis demektir
                gruplara_kayitli_demirbaslar_id_list.removeAt(i);
                continue;
            }

            yillik_ayrilan_amortisman_yuzdesi += m_ui->commaEdit_dusulecek_amortisman_yuzdesi->GET_DOUBLE();

            if ( yillik_ayrilan_amortisman_yuzdesi > 100 ) {
                gruplara_kayitli_demirbaslar_id_list.removeAt(i);
                continue;
            }


        }

    }

    if ( gruplara_kayitli_demirbaslar_id_list.size() EQ 0 ) {
        m_ui->textEdit_aciklama->setHidden ( false );
        m_ui->textEdit_aciklama->setPlainText ( "Gruba Kayıtlı,Amortismanı Ayrılacak Demirbaş Bulunmamaktadır.Amortisman Ayırma İşlemi Gerçekleşmedi!..");

        return;
    }

    DB->START_TRANSACTION();

    DMR_FIS_STRUCT * DMR_FISI = new DMR_FIS_STRUCT;

    DMR_CLEAR_FIS_STRUCT(DMR_FISI);

    DMR_FISI->program_id             = E9_PROGRAMI;
    DMR_FISI->modul_id               = DEMIRBAS_MODULU;
    DMR_FISI->fis_tarihi             = m_ui->adakDate_fis_tarihi->DATE();
    DMR_FISI->aciklama               = QObject::tr("Toplu Amortisman Ayırma Fişi" );
    DMR_FISI->fis_turu               = AMORTISMAN_AYIRMA_FISI;
    DMR_FISI->dusulecek_amor_yuzdesi = m_ui->commaEdit_dusulecek_amortisman_yuzdesi->GET_DOUBLE();

    int fis_id = DMR_FIS_EKLE(DMR_FISI);


    DMR_FIS_SATIRI_STRUCT * DMR_FIS_SATIRI = new DMR_FIS_SATIRI_STRUCT;



    for ( int i = 0 ; i < gruplara_kayitli_demirbaslar_id_list.size() ; i++ ) {

        int demirbas_id = QVariant(gruplara_kayitli_demirbaslar_id_list.at(i)).toInt();

        DMR_CLEAR_FIS_SATIRI_STRUCT(DMR_FIS_SATIRI);

        DMR_FIS_SATIRI->demirbas_id        = demirbas_id;
        DMR_FIS_SATIRI->satir_tutari       = 0.0;
        //Ayrilacak amortisman tutari fonksiyonda hesaplanacak
        DMR_FIS_SATIRI->fis_id             = fis_id;
        DMR_FIS_SATIRI->modul_id           = DMR_FISI->modul_id;
        DMR_FIS_SATIRI->program_id         = DMR_FISI->program_id;

        DMR_FIS_SATIRI_EKLE(DMR_FISI , DMR_FIS_SATIRI);

    }


    m_ui->textEdit_aciklama->setHidden ( false );

    query.PREPARE_SELECT ( "dmr_fis_satirlari","fis_satiri_id","fis_id = :fis_id" );
    query.SET_VALUE      ( ":fis_id" , fis_id );

    if ( query.SELECT() EQ 0 ) {
        //Olusturulan amortisman fisinin hic satiri yoksa,fisin kendiside silinmeli

        query.PREPARE_DELETE ( "dmr_fisler","fis_id = :fis_id" );
        query.SET_VALUE      ( ":fis_id" , fis_id );
        query.DELETE();

        m_ui->textEdit_aciklama->setPlainText ( "Ayrılacak amortisman yüzdesine uygun demirbaş,seçilen grupta bulunamadı.Fiş oluşturulamadı!..");
    }
    else {
        m_ui->textEdit_aciklama->setPlainText ( QString ( "'%1' nolu Amortisman Fişi Oluşturuldu." ).arg ( QVariant(DMR_FISI->fis_no).toString()));
    }



    QString log_detaylari = QObject::tr ( "Toplu Amortisman Ayırma , " );
    log_detaylari.append ( "Gruplar : " + m_ui->textEdit_gruplar->toPlainText() + "  " + "\n");
    log_detaylari.append ( "Düşülecek Amortisman Yüzdesi : % "  +
                         m_ui->commaEdit_dusulecek_amortisman_yuzdesi->GET_TEXT() );

    E9_LOG_KAYDI_EKLE ( DEMIRBAS_MODULU,LOG_DMR_AMORTISMAN_AYIRMA,LOG_ISLEM_ADD,log_detaylari );


    DB->COMMIT_TRANSACTION();


}
Beispiel #4
0
void DMR_FIS_SATIRI_SIL(DMR_FIS_STRUCT *P_FIS, int p_fis_satiri_id)
{
    SQL_QUERY query ( DB );

    query.PREPARE_SELECT("dmr_fis_satirlari , dmr_fisler" , "dmr_fisler.program_id,"
                         "dmr_fisler.modul_id,base_fis_id ,fis_tarihi , "
                         "demirbas_id , toplam_tutar , satir_tutari , "
                         "dmr_fis_satirlari.fis_id , toplam_birikmis_amor_tutari,"
                         "birikmis_amortisman_tutari,base_record_id",
                         "dmr_fisler.fis_id = dmr_fis_satirlari.fis_id AND "
                         "fis_satiri_id = :fis_satiri_id");

    query.SET_VALUE(":fis_satiri_id" , p_fis_satiri_id);

    if ( query.SELECT() EQ 0 ) {
        return;
    }

    query.NEXT();

    int program_id  = query.VALUE(0).toInt();
    int modul_id    = query.VALUE(1).toInt();
    int base_fis_id = query.VALUE(2).toInt();

    if ( P_FIS->program_id NE program_id OR P_FIS->modul_id NE modul_id OR
         P_FIS->base_fis_id NE base_fis_id ) {
        return;
    }

    QDate  fis_tarihi                  = QDate::fromString(query.VALUE(3).toString() , "yyyy.MM.dd");
    int    demirbas_id                 = query.VALUE(4).toInt();
    double toplam_tutar                = query.VALUE(5).toDouble();
    double satir_tutari                = query.VALUE(6).toDouble();
    int    fis_id                      = query.VALUE(7).toInt();
    double toplam_birikmis_amor_tutari = query.VALUE(8).toDouble();
    double birikmis_amor_tutari        = query.VALUE(9).toDouble();
    int    base_record_id              = query.VALUE(10).toInt();

    query.PREPARE_SELECT ( "dmr_demirbaslar","yillik_ayrilan_amor_yuzdesi,"
                           "toplamda_ayrilan_amor_yuzdesi,"
                           "amortisman_orani,"
                           "amortisman_ayrilabilir_mi , yeniden_degerleme_yapildi ,"
                           "yeni_brkms_amortisman_tutari , demirbasin_yeni_degeri",
                           "demirbas_id = :demirbas_id" );
    query.SET_VALUE      (":demirbas_id" , demirbas_id);

    if ( query.SELECT() EQ 0 ) {
        return;
    }

    query.NEXT();

    double yillik_ayrilan_amortisman_yuzdesi   = query.VALUE(0).toDouble();
    double toplamda_ayrilan_amortisman_yuzdesi = query.VALUE(1).toDouble();
    double amortisman_orani                    = query.VALUE(2).toDouble();
    int    amortisman_ayrilabilir_mi           = query.VALUE(3).toInt();
    int    yeniden_degerleme_yapildi           = query.VALUE(4).toInt();
    double yeni_birikmis_amortisman_tutari     = query.VALUE(5).toDouble();
    double demirbasin_yeni_degeri              = query.VALUE(6).toDouble();



    if ( P_FIS->fis_turu EQ YENIDEN_DEGERLEME_FISI ) {
        yeniden_degerleme_yapildi       = 0;
        yeni_birikmis_amortisman_tutari = 0;
        demirbasin_yeni_degeri          = 0;
    }
    else {
        if ( yillik_ayrilan_amortisman_yuzdesi EQ 100 ) {
            toplamda_ayrilan_amortisman_yuzdesi -= amortisman_orani;
        }

        yillik_ayrilan_amortisman_yuzdesi -= P_FIS->dusulecek_amor_yuzdesi;
        if ( toplamda_ayrilan_amortisman_yuzdesi < 100 ) {
            amortisman_ayrilabilir_mi = 1;
        }


    }

    query.PREPARE_UPDATE ( "dmr_demirbaslar","demirbas_id","yillik_ayrilan_amor_yuzdesi ,"
                            "toplamda_ayrilan_amor_yuzdesi  , "
                            "amortisman_ayrilabilir_mi ,"
                            "yeniden_degerleme_yapildi , yeni_brkms_amortisman_tutari,"
                            "demirbasin_yeni_degeri",
                            "demirbas_id = :demirbas_id" );
    query.SET_VALUE      ( ":yillik_ayrilan_amor_yuzdesi"      , yillik_ayrilan_amortisman_yuzdesi );
    query.SET_VALUE      ( ":toplamda_ayrilan_amor_yuzdesi"    , toplamda_ayrilan_amortisman_yuzdesi );
    query.SET_VALUE      ( ":amortisman_ayrilabilir_mi"        , amortisman_ayrilabilir_mi );
    query.SET_VALUE      ( ":yeniden_degerleme_yapildi"        , yeniden_degerleme_yapildi );
    query.SET_VALUE      ( ":yeni_brkms_amortisman_tutari"     , yeni_birikmis_amortisman_tutari);
    query.SET_VALUE      ( ":demirbasin_yeni_degeri"           , demirbasin_yeni_degeri);
    query.SET_VALUE      ( ":demirbas_id"                      , demirbas_id );
    query.UPDATE();

    toplam_tutar -= satir_tutari;
    toplam_birikmis_amor_tutari -= birikmis_amor_tutari;

    P_FIS->toplam_tutar = toplam_tutar;
    P_FIS->top_birikmis_amor_tutari = toplam_birikmis_amor_tutari;

    query.PREPARE_UPDATE ( "dmr_fisler","fis_id","toplam_tutar ,toplam_birikmis_amor_tutari",
                           "fis_id = :fis_id");
    query.SET_VALUE      ( ":toplam_tutar" , P_FIS->toplam_tutar );
    query.SET_VALUE      ( ":toplam_birikmis_amor_tutari" , P_FIS->top_birikmis_amor_tutari);
    query.SET_VALUE      ( ":fis_id"       , fis_id );
    query.UPDATE();

    query.PREPARE_DELETE ( "dmr_fis_satirlari","fis_satiri_id = :fis_satiri_id" );
    query.SET_VALUE      ( ":fis_satiri_id" , p_fis_satiri_id);
    query.DELETE();

    if ( P_FIS->fis_turu EQ AMORTISMAN_AYIRMA_FISI ) {

        DMR_AMORTISMAN_TUTARINI_AZALT ( demirbas_id, MALI_YIL_ARRAY_INDIS ( fis_tarihi),satir_tutari);
    }

    if ( base_record_id EQ 0 ) {
        base_record_id = p_fis_satiri_id;
    }

    if ( P_FIS->base_fis_id EQ 0 ) {
        P_FIS->base_fis_id = fis_id;
    }

    //ISLETME_ENTEGRASYONU

    int isl_fis_id = ISL_GET_ENT_FIS_ID(P_FIS->modul_id , P_FIS->program_id , P_FIS->base_fis_id);

    if ( isl_fis_id > 0 ) {

        ISL_FIS_STRUCT * ISL_FISI = new ISL_FIS_STRUCT;

        ISL_CLEAR_FIS_STRUCT(ISL_FISI);

        ISL_FIS_BILGILERINI_OKU(ISL_FISI , isl_fis_id);

        int isl_fis_satiri_id = ISL_GET_ENT_FIS_SATIRI_ID(P_FIS->modul_id , P_FIS->program_id , base_record_id);

        ISL_FIS_SATIRI_SIL(ISL_FISI , isl_fis_satiri_id);

        delete ISL_FISI;

    }



    //MUHASEBE ENTEGRASYONU

    MUH_FIS_STRUCT * MUHASEBE_FISI = new MUH_FIS_STRUCT;

    MUH_CLEAR_FIS_STRUCT(MUHASEBE_FISI);

    MUH_FIS_BILGILERINI_OKU(MUHASEBE_FISI , P_FIS->muh_fis_id);


    QStringList MUH_ROW_ID_LIST = MUH_GET_ENT_ROW_ID_LIST(P_FIS->program_id,P_FIS->modul_id ,
                                                          base_record_id);

    for ( int i = 0 ; i < MUH_ROW_ID_LIST.size() ; i++ ) {

        int muh_fis_satiri_id = QVariant(MUH_ROW_ID_LIST.at(i)).toInt();

        MUH_FIS_SATIRINI_SIL(MUHASEBE_FISI , muh_fis_satiri_id);
    }

    delete MUHASEBE_FISI;

}
Beispiel #5
0
void BNK_DEFTER_FIS_SATIRI_SIL ( BNK_DEFTER_FIS_STRUCT * P_FIS, int p_fis_satiri_id  ,ADAK_SQL * P_GELEN_DB)
{
    ADAK_SQL * USE_DB ;

    if ( P_GELEN_DB EQ NULL ) {
        USE_DB = DB;
    }
    else {
        USE_DB = P_GELEN_DB;
    }

    SQL_QUERY query ( USE_DB );
    query.PREPARE_SELECT ( "bnk_defter_fisler, bnk_defter_fis_satirlari",
                           "bnk_defter_fisler.fis_id, fis_tarihi, hesaba_giren, hesaptan_cikan,             "
                           "toplam_hesaba_giren, toplam_hesaptan_cikan, bnk_defter_fis_satirlari.modul_id,  "
                           "bnk_defter_fis_satirlari.program_id, hesap_turu,                                "
                           "base_fis_id , fis_turu , bnk_defter_fis_satirlari.hesap_id,base_record_id",
                           "bnk_defter_fisler.fis_id = bnk_defter_fis_satirlari.fis_id                      "
                           "AND fis_satiri_id  = :fis_satiri_id                                             " );

    query.SET_VALUE      ( ":fis_satiri_id", p_fis_satiri_id );

    if ( query.SELECT() EQ 0 ) {
        return;
    }
    query.NEXT();

    int     fis_id                          =  query.VALUE( 0  ).toInt();
    QString fis_tarihi                      =  query.VALUE( 1  ).toString();
    double  hesaba_giren                    =  query.VALUE( 2  ).toDouble();
    double  hesaptan_cikan                  =  query.VALUE( 3  ).toDouble();
    double  toplam_hesaba_giren             =  query.VALUE( 4  ).toDouble();
    double  toplam_hesaptan_cikan           =  query.VALUE( 5  ).toDouble();
    int     modul_id                        =  query.VALUE( 6  ).toInt();
    int     program_id                      =  query.VALUE( 7  ).toInt();
    int     hesap_turu                      =  query.VALUE( 8  ).toInt();
    int     base_fis_id                     =  query.VALUE( 9  ).toInt();
    int     fis_turu                        =  query.VALUE( 10 ).toInt();
    int     hesap_id                        =  query.VALUE( 11 ).toInt();
    int     base_record_id                  =  query.VALUE(12).toInt();

    if ( modul_id NE P_FIS->modul_id OR program_id NE P_FIS->program_id OR P_FIS->base_fis_id NE base_fis_id) {
        return;
    }
    int gun_no =  MALI_YIL_ARRAY_INDIS ( QDate::fromString ( fis_tarihi, "yyyy.MM.dd" ) );

    if ( fis_turu EQ ENUM_BANKA_ACILIS_FISI ) {
        gun_no = 0;
    }

    int hesap_no_id = P_FIS->hesap_no_id;
    if ( P_FIS->fis_turu EQ ENUM_BANKA_VIRMAN_FISI ) {
        hesap_no_id = hesap_id;
    }
    // bakiyeler azaltma islemi yapiliyor
    switch ( hesap_turu ) {
        case ENUM_BNK_KREDI_KARTI_HESABI:
                BANKA_HESAP_BAKIYELERINI_AZALT ( gun_no, hesap_no_id ,hesaba_giren, hesaptan_cikan,
                                                 ENUM_BNK_KREDI_KARTI_HESABI, P_FIS->kaydedilecek_sirket ,USE_DB);
            break;
        case ENUM_BNK_POS_HESABI :
                BANKA_HESAP_BAKIYELERINI_AZALT ( gun_no, hesap_no_id, hesaba_giren, hesaptan_cikan,
                                             ENUM_BNK_POS_HESABI, P_FIS->kaydedilecek_sirket ,USE_DB);
           break;
        case ENUM_BNK_BANKA_HESABI:
                BANKA_HESAP_BAKIYELERINI_AZALT ( gun_no, hesap_no_id, hesaba_giren, hesaptan_cikan,
                                             ENUM_BNK_BANKA_HESABI, P_FIS->kaydedilecek_sirket ,USE_DB) ;
           break;
    default: break;
    }

    if ( fis_turu NE ENUM_BANKA_ACILIS_FISI ) {

        switch ( hesap_turu )
        {
        case ENUM_BNK_BANKA_HESABI:
        case ENUM_BNK_KREDI_KARTI_HESABI:
        case ENUM_BNK_POS_HESABI:
            {    
                 QStringList muh_row_list = MUH_GET_FISE_GORE_ENT_ROW_ID_LIST( P_FIS->program_id, P_FIS->modul_id, base_record_id ,P_FIS->muh_fis_id,USE_DB);

                 if ( muh_row_list.count() > 0 ) {

                     MUH_FIS_STRUCT * MUH_FIS = new MUH_FIS_STRUCT;
                     MUH_FIS->modul_id         = P_FIS->modul_id;
                     MUH_FIS->program_id       = P_FIS->program_id;
                     MUH_FIS->base_fis_id      = P_FIS->base_fis_id;
                     MUH_FIS->kaydedilecek_sirket       = P_FIS->kaydedilecek_sirket;

                     for ( int i = 0; i< muh_row_list.count(); i++ ) {
                             MUH_FIS_SATIRINI_SIL( MUH_FIS, QVariant ( muh_row_list.at( i ) ).toInt() ,USE_DB);
                     }

                     delete MUH_FIS;
                 }
            }
            break;
         }
    }

    query.PREPARE_DELETE ( "bnk_defter_fis_satirlari","fis_satiri_id = :fis_satiri_id" );
    query.SET_VALUE      ( ":fis_satiri_id", p_fis_satiri_id );
    query.DELETE();

    P_FIS->toplam_hesaba_giren   = ROUND ( toplam_hesaba_giren   - hesaba_giren  );
    P_FIS->toplam_hesaptan_cikan = ROUND ( toplam_hesaptan_cikan - hesaptan_cikan);

    query.PREPARE_UPDATE ( "bnk_defter_fisler","fis_id","toplam_hesaba_giren ,     "
                           "toplam_hesaptan_cikan  ",
                           "fis_id = :fis_id");

    query.SET_VALUE      ( ":toplam_hesaba_giren"   , P_FIS->toplam_hesaba_giren    );
    query.SET_VALUE      ( ":toplam_hesaptan_cikan" , P_FIS->toplam_hesaptan_cikan  );
    query.SET_VALUE      ( ":fis_id"                , fis_id                        );
    query.UPDATE();

}