예제 #1
0
void DMR_DEMIRBAS_KARTI::UPDATE_RECORD ( int record_id )
{
    SQL_QUERY update_query( DB );

    SQL_QUERY query(DB);

    int personel_id = PRS_GET_CARI_PERSONEL_ID( m_cari_hesap_id );

    query.PREPARE_SELECT("dmr_demirbaslar" , "fatura_id,yeni_brkms_amortisman_tutari" , "demirbas_id = :demirbas_id");
    query.SET_VALUE(":demirbas_id" , record_id);

    int old_fatura_id = 0;
    double old_birikmis_amortisman_tutari = 0;

    if ( query.SELECT() NE 0 ) {
        query.NEXT();

        old_fatura_id = query.VALUE(0).toInt();
        old_birikmis_amortisman_tutari = query.VALUE(1).toDouble();
    }

    if ( old_birikmis_amortisman_tutari > 0 ) {
        DMR_AMORTISMAN_TUTARINI_AZALT(record_id , 0,old_birikmis_amortisman_tutari);
    }

    if ( old_fatura_id NE m_fatura_id ) {
        if ( old_fatura_id > 0 ) {
            DMR_ENTEGRASYON_FISI_OLUSTUR(old_fatura_id , 0);
        }
    }


    update_query.PREPARE_UPDATE    ( "dmr_demirbaslar","demirbas_id","demirbas_kodu  , demirbas_adi ,"
                                     "muh_hesap_id ,alis_tarihi,alis_bedeli ,"
                                     "uretici_firma ,marka ,model ,seri_numarasi ,"
                                     "garanti_suresi ,amortisman_orani ,"
                                     "amortisman_suresi ,yeniden_degerleme_yapilacak_mi ,"
                                     "kist_amortisman ,demirbasin_degeri,"
                                     "demirbasin_yeni_degeri ,amortisman_yontemi,grup_id,"
                                     "personel_id,fatura_id ,amor_gider_hesap_id ,"
                                     "bir_amor_hesap_id , sube_id , dmr_satis_kar_hesap_id,"
                                     "yeni_brkms_amortisman_tutari,dmr_satis_zarar_hesap_id",
                                     "demirbas_id = :demirbas_id" );

    update_query.SET_VALUE ( ":demirbas_kodu"     , m_ui->lineedit_demirbas_kodu->text() );
    update_query.SET_VALUE ( ":demirbas_adi"      , m_ui->lineedit_demirbas_adi->text() );
    update_query.SET_VALUE ( ":muh_hesap_id"      , m_muh_hesap_id);
    update_query.SET_VALUE ( ":alis_tarihi"       , m_ui->adakDate_alis_tarihi->DATE());
    update_query.SET_VALUE ( ":alis_bedeli"       , m_ui->commaEdit_alis_fiyati->GET_DOUBLE());
    update_query.SET_VALUE ( ":uretici_firma"     , m_ui->lineEdit_uretici_firma->text());
    update_query.SET_VALUE ( ":marka"             , m_ui->lineEdit_marka->text());
    update_query.SET_VALUE ( ":model"             , m_ui->lineEdit_model->text());
    update_query.SET_VALUE ( ":seri_numarasi"     , m_ui->lineEdit_seri_no->text());
    update_query.SET_VALUE ( ":garanti_suresi"    , m_ui->lineedit_garanti_suresi->text().toInt());
    update_query.SET_VALUE ( ":amortisman_orani"  , m_ui->commaEdit_amortisman_orani->GET_DOUBLE());
    update_query.SET_VALUE ( ":amortisman_suresi" , m_ui->lineedit_amortisman_suresi->text().toInt());
    update_query.SET_VALUE ( ":yeniden_degerleme_yapilacak_mi" , QVariant(m_ui->checkBox_yeniden_degerleme->isChecked()).toInt());
    update_query.SET_VALUE ( ":kist_amortisman"   , QVariant(m_ui->checkBox_kist_amortisman->isChecked()).toInt());
    update_query.SET_VALUE ( ":demirbasin_degeri" , m_ui->commaEdit_alis_fiyati->GET_DOUBLE());
    update_query.SET_VALUE ( ":demirbasin_yeni_degeri" , m_ui->commaEdit_alis_fiyati->GET_DOUBLE());
    update_query.SET_VALUE ( ":amortisman_yontemi" , DMR_GET_AMORTISMAN_SEKLI_ENUM ( m_ui->comboBox_amortisman_yontemi->currentText()));
    update_query.SET_VALUE ( ":grup_id"            , m_grup_id);
    update_query.SET_VALUE ( ":personel_id"        , personel_id);
    update_query.SET_VALUE ( ":fatura_id"          , m_fatura_id);
    update_query.SET_VALUE ( ":amor_gider_hesap_id", m_amor_gider_hesap_id);
    update_query.SET_VALUE ( ":bir_amor_hesap_id"  , m_bir_amor_hesap_id);
    update_query.SET_VALUE ( ":sube_id"            , m_sube_id);
    update_query.SET_VALUE ( ":dmr_satis_kar_hesap_id" , m_dmr_satis_kar_hesap_id);
    update_query.SET_VALUE ( ":yeni_brkms_amortisman_tutari" , m_ui->commaEdit_birikmis_amortisman->GET_DOUBLE());
    update_query.SET_VALUE ( ":dmr_satis_zarar_hesap_id" , m_dmr_satis_zarar_hesap_id);;
    update_query.SET_VALUE ( ":demirbas_id"        , record_id );

    update_query.UPDATE();

    DMR_AMORTISMAN_TUTARINI_ARTTIR(record_id , 0 , m_ui->commaEdit_birikmis_amortisman->GET_DOUBLE());

    GRP_KAYDI_GRUPLARA_EKLE(E9_PROGRAMI,DEMIRBAS_GRUP_MODULU, record_id , &m_rpr_isl_grubu_idler);

    if ( m_grup_id > 0 ) {
        QList<int> grup_id_list ;
        grup_id_list << m_grup_id;

        GRP_KAYDI_GRUPLARA_EKLE(E9_PROGRAMI , DEMIRBAS_MODULU , record_id , &grup_id_list);
    }



    QString log_detaylari = QObject::tr ( "Demirbaş Kodu / Adı : " );
    log_detaylari.append ( m_ui->lineedit_demirbas_kodu->text() + "  " + m_ui->lineedit_demirbas_adi->text());

    E9_LOG_KAYDI_EKLE ( DEMIRBAS_MODULU , LOG_DMR_DEMIRBASLAR , LOG_ISLEM_UPDATE , log_detaylari );

    if ( m_fatura_id > 0 ) {
        DMR_ENTEGRASYON_FISI_OLUSTUR(m_fatura_id , record_id);
    }



}
예제 #2
0
int DMR_DEMIRBAS_KARTI::ADD_RECORD ()
{
    SQL_QUERY insert_query ( DB );

    int personel_id = PRS_GET_CARI_PERSONEL_ID( m_cari_hesap_id );

    insert_query.PREPARE_INSERT     ( "dmr_demirbaslar","demirbas_id","demirbas_kodu , demirbas_adi,"
                                      "muh_hesap_id,alis_tarihi,alis_bedeli,"
                                      "uretici_firma,marka,model,seri_numarasi,garanti_suresi,"
                                      "amortisman_orani,amortisman_suresi,yeniden_degerleme_yapilacak_mi,"
                                      "kist_amortisman,demirbasin_degeri,yeniden_degerleme_yapildi, "
                                      "amortisman_ayrilabilir_mi,demirbasin_yeni_degeri,"
                                      "amortisman_yontemi,muh_yili_ayrilacak_amor_tutari,"
                                      "personel_id,grup_id , fatura_id , bir_amor_hesap_id,"
                                      "amor_gider_hesap_id , sube_id,demirbas_satildi_mi ,"
                                      "dmr_satis_kar_hesap_id ,amortisman_ayrilacak_mi,"
                                      "muh_devir_yili_ayrilacak_amor,yeni_brkms_amortisman_tutari,"
                                      "dmr_satis_zarar_hesap_id");

    insert_query.SET_VALUE          ( ":demirbas_kodu"                         , m_ui->lineedit_demirbas_kodu->text() );
    insert_query.SET_VALUE          ( ":demirbas_adi"                          , m_ui->lineedit_demirbas_adi->text() );
    insert_query.SET_VALUE          ( ":muh_hesap_id"                          , m_muh_hesap_id );
    insert_query.SET_VALUE          ( ":alis_tarihi"                           , m_ui->adakDate_alis_tarihi->DATE());
    insert_query.SET_VALUE          ( ":alis_bedeli"                           , m_ui->commaEdit_alis_fiyati->GET_DOUBLE());
    insert_query.SET_VALUE          ( ":uretici_firma"                         , m_ui->lineEdit_uretici_firma->text() );
    insert_query.SET_VALUE          ( ":marka"                                 , m_ui->lineEdit_marka->text() );
    insert_query.SET_VALUE          ( ":model"                                 , m_ui->lineEdit_model->text() );
    insert_query.SET_VALUE          ( ":seri_numarasi"                         , m_ui->lineEdit_seri_no->text() );
    insert_query.SET_VALUE          ( ":garanti_suresi"                        , m_ui->lineedit_garanti_suresi->text().toInt() );
    insert_query.SET_VALUE          ( ":amortisman_orani"                      , m_ui->commaEdit_amortisman_orani->GET_DOUBLE() );
    insert_query.SET_VALUE          ( ":amortisman_suresi"                     , m_ui->lineedit_amortisman_suresi->text().toInt());
    insert_query.SET_VALUE          ( ":yeniden_degerleme_yapilacak_mi"        , QVariant(m_ui->checkBox_yeniden_degerleme->isChecked()).toInt());
    insert_query.SET_VALUE          ( ":kist_amortisman"                       , QVariant(m_ui->checkBox_kist_amortisman->isChecked()).toInt());
    insert_query.SET_VALUE          ( ":demirbasin_degeri"                     , m_ui->commaEdit_alis_fiyati->GET_DOUBLE());
    insert_query.SET_VALUE          ( ":demirbasin_yeni_degeri"                , m_ui->commaEdit_alis_fiyati->GET_DOUBLE());  //Demirbas alindigi yil yeniden degerlendirilemez.O yuzden demirbasin yeniden degerleme sonrasindaki degeri alis fiyetiyla setliyoruz.
    insert_query.SET_VALUE          ( ":amortisman_yontemi"                    , DMR_GET_AMORTISMAN_SEKLI_ENUM(m_ui->comboBox_amortisman_yontemi->currentText()));
    insert_query.SET_VALUE          ( ":muh_yili_ayrilacak_amor_tutari"        , 0);
    insert_query.SET_VALUE          ( ":yeniden_degerleme_yapildi"             , 0);
    insert_query.SET_VALUE          ( ":amortisman_ayrilabilir_mi"             , 1 );
    insert_query.SET_VALUE          ( ":personel_id"                           , personel_id);
    insert_query.SET_VALUE          ( ":grup_id"                               , m_grup_id );
    insert_query.SET_VALUE          ( ":fatura_id"                             , m_fatura_id);
    insert_query.SET_VALUE          ( ":bir_amor_hesap_id"                     , m_bir_amor_hesap_id);
    insert_query.SET_VALUE          ( ":amor_gider_hesap_id"                   , m_amor_gider_hesap_id);
    insert_query.SET_VALUE          ( ":sube_id"                               , m_sube_id);
    insert_query.SET_VALUE          ( ":demirbas_satildi_mi"                   , 0);
    insert_query.SET_VALUE          ( ":dmr_satis_kar_hesap_id"                , m_dmr_satis_kar_hesap_id);
    insert_query.SET_VALUE          ( ":amortisman_ayrilacak_mi"               , QVariant(m_ui->checkBox_amortisman_ayrilacak_mi->isChecked()).toInt());
    insert_query.SET_VALUE          ( ":muh_devir_yili_ayrilacak_amor"         , 0);
    insert_query.SET_VALUE          ( ":yeni_brkms_amortisman_tutari"          , m_ui->commaEdit_birikmis_amortisman->GET_DOUBLE());
    insert_query.SET_VALUE          ( ":dmr_satis_zarar_hesap_id"              , m_dmr_satis_zarar_hesap_id);

    int demirbas_id = insert_query.INSERT();

    DMR_AMORTISMAN_TUTARINI_ARTTIR(demirbas_id,0,m_ui->commaEdit_birikmis_amortisman->GET_DOUBLE());

    GRP_KAYDI_GRUPLARA_EKLE(E9_PROGRAMI,DEMIRBAS_GRUP_MODULU, demirbas_id , &m_rpr_isl_grubu_idler);

    if ( m_grup_id > 0 ) {
        QList<int> grup_id_list ;
        grup_id_list << m_grup_id;

        GRP_KAYDI_GRUPLARA_EKLE(E9_PROGRAMI , DEMIRBAS_MODULU , demirbas_id , &grup_id_list);
    }



    QString log_detaylari = QObject::tr ( "Demirbaş Kodu / Adı : " );
    log_detaylari.append ( m_ui->lineedit_demirbas_kodu->text() + "  " + m_ui->lineedit_demirbas_adi->text());

    E9_LOG_KAYDI_EKLE ( DEMIRBAS_MODULU , LOG_DMR_DEMIRBASLAR , LOG_ISLEM_ADD , log_detaylari );

    if ( m_fatura_id > 0 ) {
        DMR_ENTEGRASYON_FISI_OLUSTUR(m_fatura_id , demirbas_id);
    }

    return demirbas_id;
}
예제 #3
0
void DMR_FIS_SATIRI_GUNCELLE(DMR_FIS_STRUCT *P_FIS, DMR_FIS_SATIRI_STRUCT *P_FIS_SATIRI, int p_fis_satiri_id)
{
    SQL_QUERY query(DB);

    query.PREPARE_SELECT("dmr_fis_satirlari,dmr_fisler" , "demirbas_id,satir_tutari,toplam_tutar,"
                         "toplam_birikmis_amor_tutari,birikmis_amortisman_tutari,fis_tarihi",
                         "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    demirbas_id                 = query.VALUE(0).toInt();
    double satir_tutari                = query.VALUE(1).toDouble();
    double toplam_tutar                = query.VALUE(2).toDouble();
    double toplam_birikmis_amor_tutari = query.VALUE(3).toDouble();
    double birikmis_amortisman_tutari  = query.VALUE(4).toDouble();
    QDate  fis_tarihi                  = QDate::fromString(query.VALUE(5).toString() , "yyyy.MM.dd");

    if ( demirbas_id NE P_FIS_SATIRI->demirbas_id ) {
        //Eski demirbas bilgileri guncellenecek

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

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


        query.NEXT();

        double yillik_ayrilan_amor_yuzdesi   = query.VALUE(0).toDouble();
        double toplamda_ayrilan_amor_yuzdesi = query.VALUE(1).toDouble();
        double amortisman_orani              = query.VALUE(2).toDouble();
        double demirbasin_yeni_degeri        = query.VALUE(3).toDouble();
        double yeni_brkms_amortisman_tutari  = query.VALUE(4).toDouble();
        int    yeniden_degerleme_yapildi     = query.VALUE(5).toInt();
        int    amortisman_ayrilabilir_mi     = query.VALUE(6).toInt();



        if ( P_FIS->fis_turu EQ YENIDEN_DEGERLEME_FISI ) {
            demirbasin_yeni_degeri       = 0;
            yeni_brkms_amortisman_tutari = 0;
            yeniden_degerleme_yapildi    = 0;
        }
        else {
            yillik_ayrilan_amor_yuzdesi   -= P_FIS->dusulecek_amor_yuzdesi;
            toplamda_ayrilan_amor_yuzdesi -= amortisman_orani;

            if ( toplamda_ayrilan_amor_yuzdesi < 100 ) {
                amortisman_ayrilabilir_mi = 1;
            }

        }

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

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

        query.UPDATE();

        int gun_no = MALI_YIL_ARRAY_INDIS(fis_tarihi);

        if ( P_FIS->fis_turu EQ AMORTISMAN_AYIRMA_FISI ) {

            DMR_AMORTISMAN_TUTARINI_AZALT ( demirbas_id,gun_no,satir_tutari );
        }

        toplam_tutar                -= satir_tutari;
        toplam_birikmis_amor_tutari -= birikmis_amortisman_tutari;

        //Eski demirbas bilgileri guncellendi


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

        query.SET_VALUE(":demirbas_id" , P_FIS_SATIRI->demirbas_id);


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

        query.NEXT();

        yillik_ayrilan_amor_yuzdesi      = query.VALUE(0).toDouble();
        toplamda_ayrilan_amor_yuzdesi    = query.VALUE(1).toDouble();
        amortisman_orani                 = query.VALUE(2).toDouble();
        amortisman_ayrilabilir_mi        = query.VALUE(3).toInt();
        demirbasin_yeni_degeri           = query.VALUE(4).toDouble();
        yeniden_degerleme_yapildi        = query.VALUE(5).toInt();
        yeni_brkms_amortisman_tutari     = query.VALUE(6).toDouble();



        if ( P_FIS->fis_turu EQ AMORTISMAN_AYIRMA_FISI ) {

            yillik_ayrilan_amor_yuzdesi += P_FIS->dusulecek_amor_yuzdesi;

            if ( yillik_ayrilan_amor_yuzdesi EQ 100 ) {

                toplamda_ayrilan_amor_yuzdesi += amortisman_orani;

                if ( toplamda_ayrilan_amor_yuzdesi EQ 100 ) {
                    amortisman_ayrilabilir_mi = 0;
                }
            }


            DMR_AMORTISMAN_TUTARINI_ARTTIR ( P_FIS_SATIRI->demirbas_id,gun_no,P_FIS_SATIRI->satir_tutari);
        }
        else {

            demirbasin_yeni_degeri       = P_FIS_SATIRI->satir_tutari;
            yeniden_degerleme_yapildi    = 1;
            yeni_brkms_amortisman_tutari = P_FIS_SATIRI->yeni_birikmis_amor_tutari;
        }


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

        query.SET_VALUE(":yillik_ayrilan_amor_yuzdesi"   , yillik_ayrilan_amor_yuzdesi);
        query.SET_VALUE(":toplamda_ayrilan_amor_yuzdesi" , toplamda_ayrilan_amor_yuzdesi);
        query.SET_VALUE(":amortisman_ayrilabilir_mi"     , amortisman_ayrilabilir_mi);
        query.SET_VALUE(":demirbasin_yeni_degeri"        , demirbasin_yeni_degeri);
        query.SET_VALUE(":yeniden_degerleme_yapildi"     , yeniden_degerleme_yapildi);
        query.SET_VALUE(":yeni_brkms_amortisman_tutari"  , yeni_brkms_amortisman_tutari);
        query.SET_VALUE(":demirbas_id"                   , P_FIS_SATIRI->demirbas_id );

        query.UPDATE();

        toplam_tutar                += P_FIS_SATIRI->satir_tutari;
        toplam_birikmis_amor_tutari += P_FIS_SATIRI->birikmis_amor_tutari;
    }


    query.PREPARE_UPDATE("dmr_fis_satirlari" , "fis_satiri_id" , "demirbas_id , aciklama,"
                         "satir_tutari , birikmis_amortisman_tutari ",
                         "fis_satiri_id = :fis_satiri_id");
    query.SET_VALUE(":demirbas_id"                , P_FIS_SATIRI->demirbas_id);
    query.SET_VALUE(":aciklama"                   , P_FIS_SATIRI->aciklama   );
    query.SET_VALUE(":satir_tutari"               , P_FIS_SATIRI->satir_tutari);
    query.SET_VALUE(":birikmis_amortisman_tutari" , P_FIS_SATIRI->birikmis_amor_tutari);
    query.SET_VALUE(":fis_satiri_id"              , p_fis_satiri_id);

    query.UPDATE();

    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"                      , P_FIS_SATIRI->fis_id );
    query.UPDATE();



    if ( P_FIS_SATIRI->base_record_id EQ 0 ) {
        P_FIS_SATIRI->base_record_id = p_fis_satiri_id;
    }

    if ( P_FIS->base_fis_id EQ 0 ) {
        P_FIS->base_fis_id = P_FIS_SATIRI->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);

        ISL_FIS_SATIRI_STRUCT * ISL_FIS_SATIRI = new ISL_FIS_SATIRI_STRUCT;

        ISL_CLEAR_FIS_SATIRI_STRUCT(ISL_FIS_SATIRI);

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

        ISL_FIS_SATIRI_BILGILERINI_OKU(ISL_FIS_SATIRI ,isl_satir_id);

        ISL_FIS_SATIRI->aciklama = P_FIS_SATIRI->aciklama;
        ISL_FIS_SATIRI->satir_kdv_dahil_tutar = P_FIS_SATIRI->satir_tutari;
        ISL_FIS_SATIRI->satir_kdv_haric_tutar = P_FIS_SATIRI->satir_tutari;

        if ( isl_satir_id > 0 ) {
            ISL_FIS_SATIRI_GUNCELLE(ISL_FISI , ISL_FIS_SATIRI , isl_satir_id);
        }

        delete ISL_FISI;
        delete ISL_FIS_SATIRI;
    }


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

    MUH_FIS_SATIRI_STRUCT * MUH_FIS_SATIRI = new MUH_FIS_SATIRI_STRUCT;


    QStringList MUH_ROW_ID_LIST = MUH_GET_ENT_ROW_ID_LIST(P_FIS->program_id,P_FIS->modul_id ,
                                                          P_FIS_SATIRI->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_CLEAR_FIS_SATIRI_STRUCT(MUH_FIS_SATIRI);

        MUH_FIS_SATIRINI_OKU(MUH_FIS_SATIRI , muh_fis_satiri_id );

        MUH_FIS_SATIRI->aciklama                = P_FIS_SATIRI->aciklama;

        if ( MUH_FIS_SATIRI->borc_tutari > 0 ) {
            MUH_FIS_SATIRI->borc_tutari   = P_FIS_SATIRI->satir_tutari;
            MUH_FIS_SATIRI->alacak_tutari = 0;
        }
        else {
            MUH_FIS_SATIRI->borc_tutari   = 0 ;
            MUH_FIS_SATIRI->alacak_tutari = P_FIS_SATIRI->satir_tutari;
        }

        MUH_FIS_SATIRINI_GUNCELLE ( MUHASEBE_FISI, MUH_FIS_SATIRI, muh_fis_satiri_id );
    }

    delete MUHASEBE_FISI;
    delete MUH_FIS_SATIRI;

}
예제 #4
0
int DMR_FIS_SATIRI_EKLE(DMR_FIS_STRUCT *P_FIS, DMR_FIS_SATIRI_STRUCT *P_FIS_SATIRI, 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(DB);

    query.PREPARE_SELECT("dmr_fisler" , "modul_id , program_id,base_fis_id,"
                         "last_order_number , toplam_tutar , fis_tarihi , "
                         "toplam_birikmis_amor_tutari","fis_id = :fis_id");

    query.SET_VALUE(":fis_id" , P_FIS_SATIRI->fis_id);

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

    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 0;
    }
    int    last_order_number            = query.VALUE(3).toInt();
    double toplam_tutar                 = query.VALUE(4).toDouble();
    QDate  fis_tarihi                   = QDate::fromString(query.VALUE(5).toString(),"yyyy.MM.dd");
    double toplam_bir_amortisman_tutari = query.VALUE(6).toDouble();

    if ( P_FIS_SATIRI->order_number EQ 0 ) {
        P_FIS_SATIRI->order_number = last_order_number + 1024;
    }

    query.PREPARE_SELECT ( "dmr_demirbaslar","yillik_ayrilan_amor_yuzdesi,toplamda_ayrilan_amor_yuzdesi, "
                           "amortisman_orani,demirbasin_yeni_degeri ,"
                           "yeni_brkms_amortisman_tutari , yeniden_degerleme_yapildi ,"
                           "muh_yili_ayrilacak_amor_tutari , amortisman_yontemi,"
                           "kist_amortisman , alis_tarihi , amortisman_suresi,"
                           "demirbasin_degeri , amortisman_ayrilabilir_mi,bir_amor_hesap_id,"
                           "amor_gider_hesap_id , fatura_id ,muh_devir_yili_ayrilacak_amor",
                           "demirbas_id = :demirbas_id");
    query.SET_VALUE      ( ":demirbas_id" , P_FIS_SATIRI->demirbas_id );

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


    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();
    double demirbasin_yeni_degeri              = query.VALUE(3).toDouble();
    double yeni_brkms_amortisman_tutari        = query.VALUE(4).toDouble();
    int    yeniden_degerleme_yapildi           = query.VALUE(5).toInt();
    double muh_yili_ayrilacak_amortisman_tutari= query.VALUE(6).toDouble();
    int    amortisman_yontemi                  = query.VALUE(7).toInt();
    int    kist_amortisman_uygulanacak_mi      = query.VALUE(8).toInt();
    QDate  alis_tarihi                         = QDate::fromString(query.VALUE(9).toString() , "yyyy.MM.dd");
    int    amortisman_suresi                   = query.VALUE(10).toInt();
    double demirbasin_degeri                   = query.VALUE(11).toDouble();
    int    amortisman_ayrilabilir_mi           = query.VALUE(12).toInt();
    int    bir_amortismanlar_hesap_id          = query.VALUE(13).toInt();
    int    amor_gider_hesap_id                 = query.VALUE(14).toInt();
    int    fatura_id                           = query.VALUE(15).toInt();
    double muh_devir_yili_ayrilacak_amor_tutari= query.VALUE("muh_devir_yili_ayrilacak_amor").toDouble();

    int gun_no = MALI_YIL_ARRAY_INDIS ( fis_tarihi );

    if ( P_FIS_SATIRI->birikmis_amor_tutari EQ 0 ) {
        P_FIS_SATIRI->birikmis_amor_tutari = DMR_GET_BIRIKMIS_AMORTISMAN_TUTARI(P_FIS_SATIRI->demirbas_id , gun_no);
    }

    if ( P_FIS->fis_turu EQ YENIDEN_DEGERLEME_FISI ) {
        if ( P_FIS_SATIRI->satir_tutari EQ 0 ) {
            demirbasin_yeni_degeri = demirbasin_degeri * ( 1 + ( P_FIS->degerleme_orani / 100));
            P_FIS_SATIRI->satir_tutari = demirbasin_yeni_degeri;
        }
        else {
            demirbasin_yeni_degeri       = P_FIS_SATIRI->satir_tutari;
        }

        if ( P_FIS_SATIRI->yeni_birikmis_amor_tutari EQ 0 ) {
            yeni_brkms_amortisman_tutari = P_FIS_SATIRI->birikmis_amor_tutari
                                           * ( 1 + ( P_FIS->degerleme_orani / 100));
        }
        else {
            yeni_brkms_amortisman_tutari = P_FIS_SATIRI->yeni_birikmis_amor_tutari;
        }
        yeniden_degerleme_yapildi    = 1;
    }
    else { //AMORTISMAN FISI

        yillik_ayrilan_amortisman_yuzdesi += P_FIS->dusulecek_amor_yuzdesi;

        if ( yillik_ayrilan_amortisman_yuzdesi EQ 100 ) { //Eger yillik amortismanin tamami ayrilmissa\ayni yil icinde bir daha amortisman ayrilamaz.

            toplamda_ayrilan_amortisman_yuzdesi += amortisman_orani;

           if ( toplamda_ayrilan_amortisman_yuzdesi EQ 100) {
              amortisman_ayrilabilir_mi = 0; // Eger demirbasin tum amortismani ayrilmmissa,demirbastan bir daha amortisman ayrilamaz.
           }

        }

        if ( muh_yili_ayrilacak_amortisman_tutari EQ 0 OR muh_devir_yili_ayrilacak_amor_tutari EQ 0) {
            //Muhasebe yilinda ayrilacak olan amortisman tutari henuz hesaplanmamissa

            if ( fatura_id > 0 ) {

                FATURA_FISI_STRUCT * FAT_FIS = new FATURA_FISI_STRUCT;



                FAT_FIS->KDV_ORANLARI_ARRAY                =   new double  [KDV_OTV_ORANLARI_SAYISI];
                FAT_FIS->KDV_HESAPLARI_ID_ARRAY            =   new int     [KDV_OTV_ORANLARI_SAYISI];
                FAT_FIS->KDV_ORANINA_GORE_TUTARLAR_ARRAY   =   new double  [KDV_OTV_ORANLARI_SAYISI];

                FAT_FIS->OTV_ORANLARI_ARRAY                =   new double  [KDV_OTV_ORANLARI_SAYISI];
                FAT_FIS->OTV_HESAPLARI_ID_ARRAY            =   new int     [KDV_OTV_ORANLARI_SAYISI];
                FAT_FIS->OTV_ORANINA_GORE_TUTARLAR_ARRAY   =   new double  [KDV_OTV_ORANLARI_SAYISI];

                FAT_FIS->TEVKIFATLI_KDV_HESAPLARI_ID_ARRAY =   new int     [KDV_OTV_ORANLARI_SAYISI];

                FATURA_CLEAR_FIS_STRUCT ( FAT_FIS );

                FATURA_FIS_BILGILERINI_OKU( FAT_FIS, fatura_id );

                double fatura_tutari = FAT_FIS->fatura_tutari;
                double kdv_tutari    = FAT_FIS->isk_sonrasi_kdv_tutari;

                double kdv_haric_tutar = fatura_tutari - kdv_tutari;

                if (  amortisman_yontemi EQ NORMAL_BAKIYE ) {
                    muh_yili_ayrilacak_amortisman_tutari = kdv_haric_tutar * ( amortisman_orani/100);
                }
                else {
                    muh_yili_ayrilacak_amortisman_tutari = ( fatura_tutari - (demirbasin_yeni_degeri - yeni_brkms_amortisman_tutari))
                                                                       * ( ( amortisman_orani * 2)/100);
                }
            }
            else {
                if ( amortisman_yontemi EQ NORMAL_BAKIYE ) {
                    muh_yili_ayrilacak_amortisman_tutari = demirbasin_yeni_degeri * ( amortisman_orani / 100);
                }
                else {
                    muh_yili_ayrilacak_amortisman_tutari = (demirbasin_yeni_degeri - yeni_brkms_amortisman_tutari) * ((amortisman_orani * 2)/100);
                }

            }

            muh_devir_yili_ayrilacak_amor_tutari = muh_yili_ayrilacak_amortisman_tutari;


            //KIST AMORTISMAN VAR ISE,ILK YIL BINEK OTOMOBILIN FIRMAYA GIRDIGI AY DAHIL OLMAK UZERE YIL SONUNA KADAR KALAN TUM AYLAR ICIN,
            //SON YIL ISE ILK YILDAN AMORTISMAN AYRILMAYAN AYLAR VE SON YILIN TAMAMI ICIN AMORTISMAN AYRILIR.



            if ( kist_amortisman_uygulanacak_mi EQ 1 ) {


                int demirbasin_alindigi_ay = alis_tarihi.month();

                if ( alis_tarihi.year() EQ fis_tarihi.year() ) {
                     muh_yili_ayrilacak_amortisman_tutari = ( muh_yili_ayrilacak_amortisman_tutari/12) * ((12-demirbasin_alindigi_ay) + 1);
                }

                if ( ( alis_tarihi.year() + amortisman_suresi) EQ fis_tarihi.year() ) {
                     double ayrilacak_amortisman_tutari = (muh_yili_ayrilacak_amortisman_tutari/12) * (demirbasin_alindigi_ay-1);

                     muh_yili_ayrilacak_amortisman_tutari += ayrilacak_amortisman_tutari;

                }

                if ( ( alis_tarihi.year() + amortisman_suresi) EQ fis_tarihi.year() + 1 ) {
                    double ayrilacak_amortisman_tutari = (muh_yili_ayrilacak_amortisman_tutari/12) * (demirbasin_alindigi_ay-1);

                    muh_yili_ayrilacak_amortisman_tutari += ayrilacak_amortisman_tutari;
                }

            }

        }

        if ( P_FIS_SATIRI->satir_tutari EQ 0 ) {

            if ( fis_tarihi.year() EQ MALI_YIL_FIRST_DATE().year() ) {

                P_FIS_SATIRI->satir_tutari = muh_yili_ayrilacak_amortisman_tutari *  ( P_FIS->dusulecek_amor_yuzdesi / 100);
            }
            else {
                P_FIS_SATIRI->satir_tutari = muh_devir_yili_ayrilacak_amor_tutari *  ( P_FIS->dusulecek_amor_yuzdesi / 100);
            }
        }

        DMR_AMORTISMAN_TUTARINI_ARTTIR ( P_FIS_SATIRI->demirbas_id,gun_no,
                                     P_FIS_SATIRI->satir_tutari );
    }


    query.PREPARE_UPDATE ( "dmr_demirbaslar","demirbas_id",
                                  "yillik_ayrilan_amor_yuzdesi  , "
                                  "toplamda_ayrilan_amor_yuzdesi ,"
                                  "amortisman_ayrilabilir_mi,  "
                                  "yeni_brkms_amortisman_tutari,"
                                  "demirbasin_yeni_degeri,"
                                  "yeniden_degerleme_yapildi,"
                                  "muh_yili_ayrilacak_amor_tutari,"
                                  "muh_devir_yili_ayrilacak_amor",
                                  "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      ( ":yeni_brkms_amortisman_tutari"      , yeni_brkms_amortisman_tutari);
    query.SET_VALUE      ( ":demirbasin_yeni_degeri"            , demirbasin_yeni_degeri);
    query.SET_VALUE      ( ":yeniden_degerleme_yapildi"         , yeniden_degerleme_yapildi);
    query.SET_VALUE      ( ":muh_yili_ayrilacak_amor_tutari"    , ROUND(muh_yili_ayrilacak_amortisman_tutari,-2));
    query.SET_VALUE      ( ":muh_devir_yili_ayrilacak_amor"     , ROUND(muh_devir_yili_ayrilacak_amor_tutari,-2));
    query.SET_VALUE      ( ":demirbas_id"                       , P_FIS_SATIRI->demirbas_id );
    query.UPDATE();



    toplam_tutar                 += P_FIS_SATIRI->satir_tutari;
    toplam_bir_amortisman_tutari += P_FIS_SATIRI->yeni_birikmis_amor_tutari;

    P_FIS->toplam_tutar             = toplam_tutar;
    P_FIS->top_birikmis_amor_tutari = toplam_bir_amortisman_tutari;





    query.PREPARE_INSERT("dmr_fis_satirlari" , "fis_satiri_id" , "fis_id , demirbas_id,"
                         "aciklama ,satir_tutari , birikmis_amortisman_tutari , order_number,"
                         "base_record_id , modul_id , program_id");
    query.SET_VALUE(":fis_id"                     , P_FIS_SATIRI->fis_id);
    query.SET_VALUE(":demirbas_id"                , P_FIS_SATIRI->demirbas_id);
    query.SET_VALUE(":aciklama"                   , P_FIS_SATIRI->aciklama);
    query.SET_VALUE(":satir_tutari"               , ROUND(P_FIS_SATIRI->satir_tutari,-2));
    query.SET_VALUE(":birikmis_amortisman_tutari" , ROUND(P_FIS_SATIRI->birikmis_amor_tutari,-2));
    query.SET_VALUE(":order_number"               , P_FIS_SATIRI->order_number);
    query.SET_VALUE(":base_record_id"             , P_FIS_SATIRI->base_record_id);
    query.SET_VALUE(":modul_id"                   , P_FIS_SATIRI->modul_id);
    query.SET_VALUE(":program_id"                 , P_FIS_SATIRI->program_id);

    int fis_satiri_id = query.INSERT();


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

    if ( P_FIS_SATIRI->base_record_id EQ 0 ) {
        P_FIS_SATIRI->base_record_id = fis_satiri_id;
    }


    //ISLETME ENTEGRASYONU

    //Amortisman tutari kadar isletme modulune gelir fisi satiri eklenir.
    //Kdv yoktur.

    ISL_FIS_STRUCT * ISL_FISI = new ISL_FIS_STRUCT;

    ISL_CLEAR_FIS_STRUCT(ISL_FISI);

    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 EQ 0 ) {

        ISL_FISI->aciklama    = QObject::tr("Fiş Sabit Kıymet Modülü tarafından üretilmiştir.Fiş No : %1").arg(P_FIS->fis_no) + P_FIS->aciklama;
        ISL_FISI->base_fis_id = P_FIS_SATIRI->fis_id;
        ISL_FISI->fis_tarihi  = P_FIS->fis_tarihi;
        ISL_FISI->fis_turu    = ENUM_GIDER_FISI;
        ISL_FISI->modul_id    = P_FIS->modul_id;
        ISL_FISI->program_id  = P_FIS->program_id;

        isl_fis_id = ISL_FISI_EKLE(ISL_FISI);
    }
    else {
        ISL_FIS_BILGILERINI_OKU(ISL_FISI , isl_fis_id);
    }

    ISL_FIS_SATIRI_STRUCT * ISL_FIS_SATIRI = new ISL_FIS_SATIRI_STRUCT;

    ISL_CLEAR_FIS_SATIRI_STRUCT(ISL_FIS_SATIRI);

    ISL_FIS_SATIRI->modul_id              = P_FIS->modul_id;
    ISL_FIS_SATIRI->program_id            = P_FIS->program_id;
    ISL_FIS_SATIRI->base_record_id        = P_FIS_SATIRI->base_record_id;
    ISL_FIS_SATIRI->aciklama              = P_FIS_SATIRI->aciklama;
    ISL_FIS_SATIRI->fis_id                = isl_fis_id;
    ISL_FIS_SATIRI->satir_kdv_haric_tutar = P_FIS_SATIRI->satir_tutari;
    ISL_FIS_SATIRI->satir_kdv_dahil_tutar = P_FIS_SATIRI->satir_tutari;
    ISL_FIS_SATIRI->gider_turu            = ENUM_GENEL_GIDERLER;

    ISL_FIS_SATIRI_EKLE(ISL_FISI , ISL_FIS_SATIRI);

    delete ISL_FISI;
    delete ISL_FIS_SATIRI;

    //MUHASEBE ENTEGRASYONU


    MUH_FIS_STRUCT * MUH_FIS = new MUH_FIS_STRUCT;

    MUH_CLEAR_FIS_STRUCT ( MUH_FIS );

    MUH_FIS_BILGILERINI_OKU ( MUH_FIS, P_FIS->muh_fis_id,USE_DB );

    MUH_FIS_SATIRI_STRUCT * MUH_FIS_SATIRI = new MUH_FIS_SATIRI_STRUCT;

    MUH_CLEAR_FIS_SATIRI_STRUCT     ( MUH_FIS_SATIRI );

    MUH_FIS_SATIRI->aciklama                = P_FIS_SATIRI->aciklama;
    MUH_FIS_SATIRI->borc_tutari             = P_FIS_SATIRI->satir_tutari;
    MUH_FIS_SATIRI->alacak_tutari           = 0;
    MUH_FIS_SATIRI->fis_id                  = P_FIS->muh_fis_id;
    MUH_FIS_SATIRI->hesap_id                = amor_gider_hesap_id;
    MUH_FIS_SATIRI->program_id              = P_FIS_SATIRI->program_id;
    MUH_FIS_SATIRI->modul_id                = P_FIS_SATIRI->modul_id;
    MUH_FIS_SATIRI->base_record_id          = P_FIS_SATIRI->base_record_id;
    MUH_FIS_SATIRI->kaydedilecek_sirket              = 1;

    MUH_FIS_SATIRI_EKLE(MUH_FIS , MUH_FIS_SATIRI , USE_DB);

    MUH_FIS_SATIRI->borc_tutari             = 0;
    MUH_FIS_SATIRI->alacak_tutari           = P_FIS_SATIRI->satir_tutari;
    MUH_FIS_SATIRI->hesap_id                = bir_amortismanlar_hesap_id;

    MUH_FIS_SATIRI_EKLE(MUH_FIS , MUH_FIS_SATIRI , USE_DB);

    delete MUH_FIS;
    delete MUH_FIS_SATIRI;

    return fis_satiri_id;

}
예제 #5
0
void DMR_FIS_GUNCELLE(DMR_FIS_STRUCT *P_FIS, int p_fis_id)
{
    SQL_QUERY query (DB);

    query.PREPARE_SELECT("dmr_fisler" , "fis_tarihi , 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();

    QString fis_tarihi = query.VALUE(0).toString();
    int modul_id       = query.VALUE(1).toInt();
    int program_id     = query.VALUE(2).toInt();
    int base_fis_id    = query.VALUE(3).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;
    }

    if ( P_FIS->fis_turu EQ AMORTISMAN_AYIRMA_FISI ) {

        if ( fis_tarihi NE P_FIS->fis_tarihi ) {
            //fis tarihi degistiginde eski tarihten baslayarak amortisman tutari azaltilir\yeni tarihe gore tekrardan arttirilir

            int old_gun_no = MALI_YIL_ARRAY_INDIS ( QDate::fromString(fis_tarihi , "yyyy.MM.dd") );
            int gun_no     = MALI_YIL_ARRAY_INDIS ( QDate::fromString(P_FIS->fis_tarihi , "yyyy.MM.dd"));

            query.PREPARE_SELECT ( "dmr_fisler,dmr_fis_satirlari","demirbas_id,satir_tutari  ",
                                   "dmr_fisler.fis_id = dmr_fis_satirlari.fis_id AND "
                                   "dmr_fisler.fis_id = :fis_id" );
            query.SET_VALUE      ( ":fis_id" , p_fis_id );

            if ( query.SELECT() NE 0 ) {
                while ( query.NEXT() ) {
                    int demirbas_id       = query.VALUE(0).toInt();
                    double satir_tutari   = query.VALUE(1).toDouble();

                    DMR_AMORTISMAN_TUTARINI_AZALT  ( demirbas_id , old_gun_no , satir_tutari );
                    DMR_AMORTISMAN_TUTARINI_ARTTIR ( demirbas_id , gun_no     , satir_tutari );
                }
            }
        }
    }

    query.PREPARE_UPDATE("dmr_fisler" , "fis_id" , "fis_no,aciklama,fis_tarihi,"
                         "dusulecek_amortisman_yuzdesi,degerleme_orani" , "fis_id = :fis_id");
    query.SET_VALUE(":fis_no"                       , P_FIS->fis_no );
    query.SET_VALUE(":aciklama"                     , P_FIS->aciklama);
    query.SET_VALUE(":fis_tarihi"                   , P_FIS->fis_tarihi);
    query.SET_VALUE(":dusulecek_amortisman_yuzdesi" , P_FIS->dusulecek_amor_yuzdesi);
    query.SET_VALUE(":degerleme_orani"              , P_FIS->degerleme_orani);
    query.SET_VALUE(":fis_id"                       , p_fis_id);

    query.UPDATE();

    if ( P_FIS->base_fis_id EQ 0 ) {
        P_FIS->base_fis_id = p_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);

        QString aciklama     = QObject::tr("Fiş SABİT KIYMET modülü tarafından üretilmiştir.Fiş No : %1\n").arg(QVariant(P_FIS->fis_no).toString());
        aciklama             += P_FIS->aciklama;
        ISL_FISI->aciklama   = aciklama;
        ISL_FISI->fis_tarihi = P_FIS->fis_tarihi;

        ISL_FISI_GUNCELLE(ISL_FISI , isl_fis_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 );

    if ( P_FIS->modul_id EQ DEMIRBAS_MODULU ) {
        QString aciklama        = QObject::tr("Fiş SABİT KIYMET modülü tarafından üretilmiştir.Fiş No : %1\n").arg(QVariant(P_FIS->fis_no).toString());
        aciklama               += P_FIS->aciklama;
        MUHASEBE_FISI->aciklama = aciklama;
    }
    else {
        MUHASEBE_FISI->aciklama = P_FIS->aciklama;
    }
    MUHASEBE_FISI->fis_tarihi   = P_FIS->fis_tarihi;

    MUH_FISI_GUNCELLE ( MUHASEBE_FISI , P_FIS->muh_fis_id );

    delete MUHASEBE_FISI;

}