Ejemplo n.º 1
0
int BNK_VIRMAN_FORMU::CHECK_VAR (QObject * object)
{

    if( object EQ m_ui->comboBox_fis_filtresi )
    {
        m_ent_filtresi_turu = K9_GET_FIS_FILTRESI_ENUM( m_ui->comboBox_fis_filtresi->currentText() );

        return ADAK_NEW_RECORD;
    }
    else if ( object EQ m_ui->comboBox_gonderen_hesap ) {

        int row = -1;

        row = m_ui->comboBox_gonderen_hesap->view()->currentIndex().row();

        if ( row EQ -1 ) {
            return ADAK_FAIL;
        }

        m_gonderen_hesap_no_id    = BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL( m_ui->comboBox_gonderen_hesap, row, 0 ).toInt();
        m_gon_hesabi_doviz_id   = BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_gonderen_hesap, row, 1 ).toInt();

        m_ui->lineEdit_gonderen_hesap_doviz_kodu->setText   ( DVZ_GET_DOVIZ_KODU ( m_gon_hesabi_doviz_id ) );
        m_ui->lineEdit_gonderenin_birim->setText            ( DVZ_GET_DOVIZ_KODU ( m_gon_hesabi_doviz_id ) );

        m_gonderen_banka_adi  = BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_gonderen_hesap, row, 4 ).toString();

        QString banka_bilgisi =BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_gonderen_hesap, row, 3 ).toString() + " / " +
                               BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_gonderen_hesap, row, 4 ).toString() + " " +
                               BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_gonderen_hesap, row, 5 ).toString() + " " +
                               BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_gonderen_hesap, row, 6 ).toString();

        m_ui->lineEdit_gonderen_hesap_adi->setText ( banka_bilgisi );
        m_ui->comboBox_gonderen_hesap->setCurrentIndex(row);

    }
    else if ( object EQ m_ui->comboBox_alici_hesap ) {

         int row = -1;
         row = m_ui->comboBox_alici_hesap->view()->currentIndex().row();

         if ( row EQ -1 ) {
             return ADAK_FAIL;
         }

         m_alici_banka_adi  = BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_alici_hesap, row, 4 ).toString();

         if ( m_alici_banka_adi NE m_gonderen_banka_adi ) {
             MSG_WARNING( tr("Farklı Bankalar Arasında Virman Yapamzsınız"), m_ui->comboBox_alici_hesap );
             return ADAK_FAIL_UNDO;
         }

         m_alici_hesap_no_id         = BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_alici_hesap, row, 0 ).toInt();
         m_alici_hesabi_doviz_id   = BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL( m_ui->comboBox_alici_hesap, row, 1 ).toInt();

         m_ui->lineEdit_alici_hesap_doviz_kodu->setText ( DVZ_GET_DOVIZ_KODU ( m_alici_hesabi_doviz_id ) );
         m_ui->lineEdit_alanin_birimi->setText          ( DVZ_GET_DOVIZ_KODU ( m_alici_hesabi_doviz_id ) );

         QString banka_bilgisi = BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_alici_hesap, row, 3 ).toString() + " / " +
                                 BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL( m_ui->comboBox_alici_hesap, row, 4 ).toString() + " " +
                                 BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL( m_ui->comboBox_alici_hesap, row, 5 ).toString() + " " +
                                 BNK_GET_DATA_FROM_BNK_HESAPLARI_MODEL ( m_ui->comboBox_alici_hesap, row, 6 ).toString();

         m_ui->lineEdit_alici_hesap_adi->setText ( banka_bilgisi );
         m_ui->comboBox_alici_hesap->setCurrentIndex(row);


         m_ui->commaEdit_kur->setVisible    ( false );
         m_ui->label_kur->setVisible        ( false );

         if ( m_gon_hesabi_doviz_id NE m_alici_hesabi_doviz_id ) {
             if( m_gon_hesabi_doviz_id EQ DVZ_GET_TEMEL_PARA_BIRIMI_ID() ) {
             }
             else if( m_alici_hesabi_doviz_id EQ DVZ_GET_TEMEL_PARA_BIRIMI_ID() ) {
             }
             else {
                 m_ui->commaEdit_kur->setVisible    ( true );
                 m_ui->label_kur->setVisible        ( true );
                 m_ui->commaEdit_kur->SET_DOUBLE( DVZ_DOVIZ_KURUNU_AL( m_gon_hesabi_doviz_id, m_ui->adakDate_tarih->QDATE(), ENUM_SATIS ));
             }
         }
         else {
             m_ui->commaEdit_alan_tutar->setEnabled( false );

             if ( m_gon_hesabi_doviz_id EQ DVZ_GET_TEMEL_PARA_BIRIMI_ID() ) {
             }
             else {
                 m_ui->commaEdit_kur->setVisible    ( true );
                 m_ui->label_kur->setVisible        ( true );
                 m_ui->commaEdit_kur->SET_DOUBLE( DVZ_DOVIZ_KURUNU_AL( m_gon_hesabi_doviz_id, m_ui->adakDate_tarih->QDATE(), ENUM_SATIS ));
             }
         }

         if ( m_gonderen_hesap_no_id NE 0 OR m_alici_hesap_no_id NE 0 ) {
             if ( m_gonderen_hesap_no_id EQ m_alici_hesap_no_id ) {
                 MSG_WARNING( tr( "Aynı Bankaya Virman İşlemi yapamazsınız." ), m_ui->comboBox_gonderen_hesap );
                 return ADAK_FAIL_UNDO;
             }
         }
     }

     else if ( object EQ m_ui->commaEdit_gonderen_tutar ) {
         if ( m_gon_hesabi_doviz_id EQ m_alici_hesabi_doviz_id ) {
             m_ui->commaEdit_alan_tutar->SET_DOUBLE( m_ui->commaEdit_gonderen_tutar->GET_DOUBLE() );
         }
     }

    return ADAK_OK;
}
int PRS_PUANTAJLARI_GOR_VE_DUZELT_FISI::GET_FIS_RECORD ( int record_id )
{

    SQL_QUERY  query    ( DB );
    SQL_QUERY  s_query  ( DB );

    QString bordro_bas_donemi = PRS_GET_BORDRO_DONEMI_BAS_STRING( m_bordro_yili, m_bordro_ayi );
    QString bordro_bts_donemi = PRS_GET_BORDRO_DONEMI_BTS_STRING( m_bordro_yili, m_bordro_ayi );

    // isten ayrilanlar

    query.PREPARE_SELECT("prs_personel_nufus_blgler, prs_personeller, prs_personel_kisisel_blgler " ,
                         "prs_personel_nufus_blgler.personel_id, "
                         "ucret_sekli,                  "
                         "net_ucret,                    "
                         "brut_ucret ,                  "
                         "ise_giris_tarihi,             "
                         "cari_hesap_id,                "
                         "ise_giris_tarihi,             "
                         "calisma_sekli,                "
                         "haftalik_calisilan_gun_sayisi,"
                         "isten_cikis_tarihi",

                         "prs_personel_nufus_blgler.personel_id         = prs_personeller.personel_id               "
                         "AND prs_personel_kisisel_blgler.personel_id   = prs_personeller.personel_id               "
                         "AND sube_id = :sube_id                              "
                         "AND ise_giris_tarihi   <= :ise_giris_tarihi         "
                         "AND isten_cikis_tarihi >= :isten_cikis_tarihi       " );
    query.SET_VALUE(":sube_id"            , m_sube_id);
    query.SET_VALUE(":ise_giris_tarihi"   , bordro_bts_donemi );
    query.SET_VALUE(":isten_cikis_tarihi" , bordro_bas_donemi );

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

    int current_row     = -1;
    int prs_doviz_id    =  0;

    while ( query.NEXT() NE 0 ) {

        int personel_id = query.VALUE("personel_id").toInt();


        int cari_hesap_id           = query.VALUE( "cari_hesap_id").toInt();
        QDate ise_giris_tarihi      = QDate::fromString( query.VALUE( "ise_giris_tarihi" ).toString(), "yyyy.MM.dd" );
        QString isten_cikis_tarihi  = query.VALUE( "isten_cikis_tarihi" ).toString();

        CARI_HESAP_STRUCT hesap_bilgileri;
        CARI_SET_HESAP_STRUCT_DEFAULTS(&hesap_bilgileri);

        CARI_KART_BILGILERINI_OKU( cari_hesap_id, &hesap_bilgileri  );

        current_row = ADD_NEW_LINE();

        QLineEdit * line_edit_adi_soyad       = ( QLineEdit * ) m_ui->table_widget_gun_satirlari->cellWidget(current_row ,ADI_COLUMN);

        line_edit_adi_soyad->setText( hesap_bilgileri.cari_hesap_ismi );

        int calisma_sekli                       = query.VALUE("calisma_sekli").toInt();

        prs_doviz_id                            = CARI_GET_PARA_BIRIM_ID( cari_hesap_id );

        int ucret_sekli_enum                    = query.VALUE( "ucret_sekli" ).toInt();
        double net_ucret                        = query.VALUE( "net_ucret"   ).toDouble();
        double brut_ucret                       = query.VALUE( "brut_ucret"  ).toDouble();
        double haftalik_calisilan_gun_sayisi    = query.VALUE( "haftalik_calisilan_gun_sayisi" ).toDouble();

        double prs_personel_ucret = net_ucret;
        if ( ucret_sekli_enum EQ PRS_BRUT ) {
            prs_personel_ucret    = brut_ucret;
        }

        QTableWidgetItem * new_item;

        new_item = new QTableWidgetItem(tr("%1").arg(personel_id));
        m_ui->table_widget_gun_satirlari->setItem(current_row ,ROW_ID_COLUMN ,new_item);

        new_item=new QTableWidgetItem(tr("%1").arg(record_id));
        m_ui->table_widget_gun_satirlari->setItem(current_row ,RECORD_ID_COLUMN ,new_item);

        QLineEdit * line_edit_calisma_sekli  = ( QLineEdit * ) m_ui->table_widget_gun_satirlari->cellWidget(current_row, CALISMA_SEKLI);
        line_edit_calisma_sekli->setText( QVariant ( calisma_sekli ).toString() );

        s_query.PREPARE_SELECT ("prs_puantaj","gun_sayisi ",
                                "personel_id = :personel_id  "
                                "AND bordro_donemi_yil    = :bordro_donemi_yil  "
                                "AND bordro_donemi_ay     = :bordro_donemi_ay   ");
        s_query.SET_VALUE (":personel_id"       ,  personel_id   );
        s_query.SET_VALUE (":bordro_donemi_yil" ,  m_bordro_yili );
        s_query.SET_VALUE (":bordro_donemi_ay"  ,  m_bordro_ayi );

        QCommaEdit * comma_edit_doviz_kuru              = ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget( current_row, KUR_COLUMN );
        QCommaEdit * comma_edit_aldigi_ucret            = ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget( current_row, ALDIGI_UCRET );
        QCommaEdit * comma_edit_ucret_tutari            = ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget( current_row, TEMEL_PARABIRIMI_UCRET );
        QCommaEdit * comma_edit_gun                     = ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget(current_row,CALISTIGI_GUN_COLUMN);
        QCommaEdit * comma_edit_ek_odenek               = ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget(current_row,EK_ODENEK_TUTARI);
        QCommaEdit * comma_edit_ek_kesinti              = ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget(current_row,EK_KESINTI_TUTARI);
        QCommaEdit * comma_edit_gunluk_ucret            = ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget(current_row,GUNLUK_UCRET   );
        QCommaEdit * comma_edit_yemek_verilen_gun_sayisi= ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget(current_row,YEMEK_VERILEN_GUN_SAYISI   );

        comma_edit_yemek_verilen_gun_sayisi->SET_DOUBLE( haftalik_calisilan_gun_sayisi * 4 );

        double eksik_gun_sayisi = PRS_GET_EKSIK_GUN_SAYISI( personel_id, m_bordro_ayi, m_bordro_yili );

        if ( eksik_gun_sayisi > 0.00 ) {

            if ( isten_cikis_tarihi NE "9999.99.99" ) {
                comma_edit_gun->SET_DOUBLE( QDate::fromString( isten_cikis_tarihi, "yyyy.MM.dd").daysInMonth() -  eksik_gun_sayisi );
            }
            else {
                comma_edit_gun->SET_DOUBLE( QDate::fromString( bordro_bts_donemi, "yyyy.MM.dd").daysInMonth() -  eksik_gun_sayisi );
            }
        }
        else {
            if ( isten_cikis_tarihi NE "9999.99.99" ) {
                QDate isten_cikis_date = QDate::fromString( isten_cikis_tarihi, "yyyy.MM.dd");
                comma_edit_gun->SET_DOUBLE( isten_cikis_date.day() );
            }
            else {
                comma_edit_gun->SET_DOUBLE( 30 );
            }
        }

        int gun_sayisi = comma_edit_gun->GET_DOUBLE();
        if ( ise_giris_tarihi.year() EQ m_bordro_yili )  {

            QDate bordro_tarihi;
            if ( ise_giris_tarihi.month() EQ m_bordro_ayi ) {
                int ise_giris_gunu = ise_giris_tarihi.day();

                bordro_tarihi = QDate::fromString( bordro_bts_donemi, "yyyy.MM.dd" );

                if ( isten_cikis_tarihi NE "9999.99.99" ) {
                    bordro_tarihi = QDate::fromString( isten_cikis_tarihi, "yyyy.MM.dd" );
                    gun_sayisi = bordro_tarihi.day();
                }
                else {
                    gun_sayisi = bordro_tarihi.daysInMonth();
                }

                gun_sayisi = gun_sayisi - ise_giris_gunu + 1 ;

                comma_edit_gun->SET_INTEGER( gun_sayisi );
            }

            comma_edit_yemek_verilen_gun_sayisi->SET_DOUBLE( haftalik_calisilan_gun_sayisi * floor( comma_edit_gun->GET_DOUBLE() / 7.0 ) );
        }

        // GUNLUK UCRET PUANTAJ'DA GUN DEGISTIRILIRSE OTOMATIK CARPILACAK
        comma_edit_gunluk_ucret->SET_DOUBLE( ROUND( prs_personel_ucret / 30 ));
        if ( calisma_sekli EQ ENUM_GUNLUK ) {
            comma_edit_gunluk_ucret->SET_DOUBLE( prs_personel_ucret );
        }
        if ( calisma_sekli EQ ENUM_AYLIK and gun_sayisi > 30 ) {
            comma_edit_gun->SET_DOUBLE( 30 );
        }

        if ( calisma_sekli EQ ENUM_GUNLUK ) {
            prs_personel_ucret = ROUND( comma_edit_gun->GET_DOUBLE() * comma_edit_gunluk_ucret->GET_DOUBLE() );
        }

        if ( prs_doviz_id NE DVZ_GET_TEMEL_PARA_BIRIMI_ID() ) {
            comma_edit_doviz_kuru->setEnabled( true );
        }

        // personel ek odenek bilgileri sorgulaniyor.

        double toplam_ek_odenek  = 0.00;
        double toplam_ek_kesinti = 0.00;

        SQL_QUERY t_query( DB );

        t_query.PREPARE_SELECT( "prs_ek_kesintiler_odenekler",
                                "yuzde_mi, yuzde_orani, tutar, kesinti_odenek_turu ",
                                "personel_id         = :personel_id       AND "
                                "bordro_donemi_yil   = :bordro_donemi_yil AND "
                                "bordro_donemi_ay    = :bordro_donemi_ay      ");

        t_query.SET_VALUE( ":personel_id"           , personel_id       );
        t_query.SET_VALUE( ":bordro_donemi_yil"     , m_bordro_yili     );
        t_query.SET_VALUE( ":bordro_donemi_ay "     , m_bordro_ayi      );

        if ( t_query.SELECT() NE 0 ) {
            while ( t_query.NEXT() EQ true ) {
                int     yuzde_mi            = t_query.VALUE( "yuzde_mi" ).toInt();
                int     kesinti_odenek_turu = t_query.VALUE( "kesinti_odenek_turu" ).toInt();
                double  yuzde_orani         = t_query.VALUE( "yuzde_orani" ).toDouble();
                double  tutar               = t_query.VALUE( "tutar" ).toDouble();

                if ( yuzde_mi EQ 1 ) {
                    if ( kesinti_odenek_turu EQ ENUM_PRS_ODENEK ) {
                        toplam_ek_odenek    += ROUND( prs_personel_ucret * yuzde_orani );
                    }
                    if ( kesinti_odenek_turu EQ ENUM_PRS_KESINTI ) {
                        toplam_ek_kesinti  += ROUND( prs_personel_ucret * yuzde_orani );
                    }
                }
                else {
                    if ( kesinti_odenek_turu EQ ENUM_PRS_ODENEK ) {
                        toplam_ek_odenek    += tutar;
                    }
                    if ( kesinti_odenek_turu EQ ENUM_PRS_KESINTI ) {
                        toplam_ek_kesinti  += tutar;
                    }
                }
            }
        }

        comma_edit_aldigi_ucret->SET_DOUBLE ( prs_personel_ucret );
        comma_edit_ek_odenek->SET_DOUBLE    ( toplam_ek_odenek   );
        comma_edit_ek_kesinti->SET_DOUBLE   ( toplam_ek_kesinti  );
        comma_edit_doviz_kuru->SET_DOUBLE   ( DVZ_DOVIZ_KURUNU_AL( prs_doviz_id, QDate::currentDate(), ENUM_SATIS ) );
        comma_edit_ucret_tutari->SET_DOUBLE ( ROUND( comma_edit_doviz_kuru->GET_DOUBLE() * prs_personel_ucret ) );

        if ( s_query.SELECT() EQ 0 ) {
            DB->START_TRANSACTION();
            QCommaEdit * comma_edit_kur   =  ( QCommaEdit * ) m_ui->table_widget_gun_satirlari->cellWidget(current_row ,KUR_COLUMN);
            SQL_QUERY insert_query(DB);
            insert_query.PREPARE_INSERT("prs_puantaj", "puantaj_id" ,
                                        "personel_id , gun_sayisi ,doviz_kuru,  "
                                        "temel_para_birim_tutari , bordro_donemi_yil, bordro_donemi_ay, yemek_verilen_gun_sayisi ");

            insert_query.SET_VALUE(":personel_id"               , personel_id);
            insert_query.SET_VALUE(":gun_sayisi"                , comma_edit_gun->GET_DOUBLE());
            insert_query.SET_VALUE(":doviz_kuru"                , comma_edit_kur->GET_DOUBLE());
            insert_query.SET_VALUE(":temel_para_birim_tutari"   , comma_edit_ucret_tutari->GET_DOUBLE() );
            insert_query.SET_VALUE(":bordro_donemi_yil"         , m_bordro_yili );
            insert_query.SET_VALUE(":bordro_donemi_ay"          , m_bordro_ayi );
            insert_query.SET_VALUE(":yemek_verilen_gun_sayisi"  , comma_edit_yemek_verilen_gun_sayisi->GET_DOUBLE() );

            insert_query.INSERT();
            DB->COMMIT_TRANSACTION();
        }

    }
    return ADAK_OK;
}