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