Пример #1
0
int STOK_HIZMET_KARTI_FORMU::ADD_RECORD ()
{
    SQL_QUERY insert_query(DB);

    insert_query.PREPARE_INSERT("stk_urunler" , "urun_id" , "urun_kodu,urun_adi,barkod_numarasi,alis_fiyati,satis_fiyati,"
                                "urun_alis_doviz_id,urun_satis_doviz_id,aciklama,"
                                "alis_kdv_orani,hizmet_mi,muh_hesap_id,urun_temel_birimi,hizmet_turu, satis_kdv_orani ");

    insert_query.SET_VALUE(":urun_kodu"           , m_ui->lineEdit_hizmet_kodu->text());
    insert_query.SET_VALUE(":urun_adi"            , m_ui->lineEdit_hizmet_ismi->text());
    insert_query.SET_VALUE(":barkod_numarasi"     , m_ui->lineEdit_barkod_no->text());
    insert_query.SET_VALUE(":alis_fiyati"         , m_ui->commaEdit_alis_fiyati->GET_DOUBLE());
    insert_query.SET_VALUE(":satis_fiyati"        , m_ui->commaEdit_satis_fiyati->GET_DOUBLE());
    insert_query.SET_VALUE(":urun_alis_doviz_id"  , DVZ_GET_DOVIZ_ID(m_ui->comboBox_alis_doviz_cinsi->currentText()));
    insert_query.SET_VALUE(":urun_satis_doviz_id" , DVZ_GET_DOVIZ_ID(m_ui->comboBox_satis_doviz_cinsi->currentText()));
    insert_query.SET_VALUE(":aciklama"            , m_ui->limitedTextEdit->toPlainText());
    insert_query.SET_VALUE(":alis_kdv_orani"      , QVariant(m_ui->comboBox_alis_kdv_orani->currentText()).toDouble());
    insert_query.SET_VALUE(":satis_kdv_orani"     , QVariant(m_ui->comboBox_satis_kdv_orani->currentText()).toDouble());
    insert_query.SET_VALUE(":hizmet_mi"           , 1);
    insert_query.SET_VALUE(":muh_hesap_id"        , m_muh_hesap_id);
    insert_query.SET_VALUE(":urun_temel_birimi"   , m_ui->lineEdit_hizmet_birimi->text());
    insert_query.SET_VALUE(":hizmet_turu"         , STK_GET_HIZMET_TURU_ENUM(m_ui->comboBox_hizmet_turu->currentText()));

    int urun_id = insert_query.INSERT();

    QString log_detaylari = "Hizmet Kodu / Adı : " + m_ui->lineEdit_hizmet_kodu->text() + "  " + m_ui->lineEdit_hizmet_ismi->text();

    K9_LOG_KAYDI_EKLE ( FATURA_MODULU , LOG_FAT_HIZMETLER , LOG_ISLEM_ADD , log_detaylari);

    return urun_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
int WorkerThread::do_work(void)
{
        // At this point we should randomly select among a specific
        // set of SQL queries
        //  1) Insert a new entry to the database
        //  2) Read (and validate) an entry
        //  3) Modify an existing entry (need locking or can we use transactions?)
        //  4) Delete an existing entry (same as above)
        //Could implement this by using a query_generator class, storing 4 function
        //pointers and rand()

        switch(type) {
            case VALIDATOR:
                {
                    //Read sequentialy
                    int ret = get_row_count_slow(connection_string);
                    if (ret == CONNECTION_ERROR) {
                        std::cout << "Unable to connect to database!" << std::endl;
                        break;
                    }

                    int db_rows = ret;
                    std::cout << ">Table rows: " << db_rows << std::endl;
                    std::cout << ">Validating.." << std::endl;

                    int validation_errors = 0;
                    for (int i = 1; i < db_rows; ++i){
                        if(!read_query_sequential(i)){
                            ++validation_errors;
                        }
                    }
                    std::cout << "============================" << std::endl;
                    std::cout << ">Validated " << db_rows << " tuples." << std::endl;
                    std::cout << ">>Total # of errors: " << validation_errors << std::endl;
                }
                break;
            case GENERATOR:
                {
                    std::random_device rd;       
                    std::default_random_engine rng(rd());
                    std::uniform_int_distribution<int> dist(0, QUERY_MAX - 1);

                    while(1) {
                        try {
                            int op = dist(rng);
                            switch(op) {
                                case INSERT_QUERY:
                                    insert_query();
                                    break;
                                case READ_QUERY:
                                    read_query_random();
                                    break;
                                default:
                                    break;
                            }
                            boost::this_thread::interruption_point();
                        }
                        catch (boost::thread_interrupted const&)
                        {
                            break;
                        }
                    }
                }
                break;
            case POPULATOR:
                {
                    for (int i = 0; i < 100; ++i) {
                        insert_query();
                    }
                    break;
                }
            default:
                break;
        }
}
Пример #4
0
int 
reply_info_encode(struct query_info* qinfo, struct reply_info* rep, 
	uint16_t id, uint16_t flags, sldns_buffer* buffer, time_t timenow, 
	struct regional* region, uint16_t udpsize, int dnssec)
{
	uint16_t ancount=0, nscount=0, arcount=0;
	struct compress_tree_node* tree = 0;
	int r;
	size_t rr_offset; 

	sldns_buffer_clear(buffer);
	if(udpsize < sldns_buffer_limit(buffer))
		sldns_buffer_set_limit(buffer, udpsize);
	if(sldns_buffer_remaining(buffer) < LDNS_HEADER_SIZE)
		return 0;

	sldns_buffer_write(buffer, &id, sizeof(uint16_t));
	sldns_buffer_write_u16(buffer, flags);
	sldns_buffer_write_u16(buffer, rep->qdcount);
	/* set an, ns, ar counts to zero in case of small packets */
	sldns_buffer_write(buffer, "\000\000\000\000\000\000", 6);

	/* insert query section */
	if(rep->qdcount) {
		if((r=insert_query(qinfo, &tree, buffer, region)) != 
			RETVAL_OK) {
			if(r == RETVAL_TRUNC) {
				/* create truncated message */
				sldns_buffer_write_u16_at(buffer, 4, 0);
				LDNS_TC_SET(sldns_buffer_begin(buffer));
				sldns_buffer_flip(buffer);
				return 1;
			}
			return 0;
		}
	}
	/* roundrobin offset. using query id for random number.  With ntohs
	 * for different roundrobins for sequential id client senders. */
	rr_offset = RRSET_ROUNDROBIN?ntohs(id):0;

	/* "prepend" any local alias records in the answer section if this
	 * response is supposed to be authoritative.  Currently it should
	 * be a single CNAME record (sanity-checked in worker_handle_request())
	 * but it can be extended if and when we support more variations of
	 * aliases. */
	if(qinfo->local_alias && (flags & BIT_AA)) {
		struct reply_info arep;
		time_t timezero = 0; /* to use the 'authoritative' TTL */
		memset(&arep, 0, sizeof(arep));
		arep.flags = rep->flags;
		arep.an_numrrsets = 1;
		arep.rrset_count = 1;
		arep.rrsets = &qinfo->local_alias->rrset;
		if((r=insert_section(&arep, 1, &ancount, buffer, 0,
			timezero, region, &tree, LDNS_SECTION_ANSWER,
			qinfo->qtype, dnssec, rr_offset)) != RETVAL_OK) {
			if(r == RETVAL_TRUNC) {
				/* create truncated message */
				sldns_buffer_write_u16_at(buffer, 6, ancount);
				LDNS_TC_SET(sldns_buffer_begin(buffer));
				sldns_buffer_flip(buffer);
				return 1;
			}
			return 0;
		}
	}

	/* insert answer section */
	if((r=insert_section(rep, rep->an_numrrsets, &ancount, buffer, 
		0, timenow, region, &tree, LDNS_SECTION_ANSWER, qinfo->qtype, 
		dnssec, rr_offset)) != RETVAL_OK) {
		if(r == RETVAL_TRUNC) {
			/* create truncated message */
			sldns_buffer_write_u16_at(buffer, 6, ancount);
			LDNS_TC_SET(sldns_buffer_begin(buffer));
			sldns_buffer_flip(buffer);
			return 1;
		}
		return 0;
	}
	sldns_buffer_write_u16_at(buffer, 6, ancount);

	/* if response is positive answer, auth/add sections are not required */
	if( ! (MINIMAL_RESPONSES && positive_answer(rep, qinfo->qtype)) ) {
		/* insert auth section */
		if((r=insert_section(rep, rep->ns_numrrsets, &nscount, buffer, 
			rep->an_numrrsets, timenow, region, &tree,
			LDNS_SECTION_AUTHORITY, qinfo->qtype,
			dnssec, rr_offset)) != RETVAL_OK) {
			if(r == RETVAL_TRUNC) {
				/* create truncated message */
				sldns_buffer_write_u16_at(buffer, 8, nscount);
				LDNS_TC_SET(sldns_buffer_begin(buffer));
				sldns_buffer_flip(buffer);
				return 1;
			}
			return 0;
		}
		sldns_buffer_write_u16_at(buffer, 8, nscount);

		/* insert add section */
		if((r=insert_section(rep, rep->ar_numrrsets, &arcount, buffer, 
			rep->an_numrrsets + rep->ns_numrrsets, timenow, region, 
			&tree, LDNS_SECTION_ADDITIONAL, qinfo->qtype, 
			dnssec, rr_offset)) != RETVAL_OK) {
			if(r == RETVAL_TRUNC) {
				/* no need to set TC bit, this is the additional */
				sldns_buffer_write_u16_at(buffer, 10, arcount);
				sldns_buffer_flip(buffer);
				return 1;
			}
			return 0;
		}
		sldns_buffer_write_u16_at(buffer, 10, arcount);
	}
	sldns_buffer_flip(buffer);
	return 1;
}
Пример #5
0
int 
reply_info_encode(struct query_info* qinfo, struct reply_info* rep, 
	uint16_t id, uint16_t flags, ldns_buffer* buffer, uint32_t timenow, 
	struct regional* region, uint16_t udpsize, int dnssec)
{
	uint16_t ancount=0, nscount=0, arcount=0;
	struct compress_tree_node* tree = 0;
	int r;
	size_t rr_offset; 

	ldns_buffer_clear(buffer);
	if(udpsize < ldns_buffer_limit(buffer))
		ldns_buffer_set_limit(buffer, udpsize);
	if(ldns_buffer_remaining(buffer) < LDNS_HEADER_SIZE)
		return 0;

	ldns_buffer_write(buffer, &id, sizeof(uint16_t));
	ldns_buffer_write_u16(buffer, flags);
	ldns_buffer_write_u16(buffer, rep->qdcount);
	/* set an, ns, ar counts to zero in case of small packets */
	ldns_buffer_write(buffer, "\000\000\000\000\000\000", 6);

	/* insert query section */
	if(rep->qdcount) {
		if((r=insert_query(qinfo, &tree, buffer, region)) != 
			RETVAL_OK) {
			if(r == RETVAL_TRUNC) {
				/* create truncated message */
				ldns_buffer_write_u16_at(buffer, 4, 0);
				LDNS_TC_SET(ldns_buffer_begin(buffer));
				ldns_buffer_flip(buffer);
				return 1;
			}
			return 0;
		}
	}
	/* roundrobin offset. using query id for random number */
	rr_offset = RRSET_ROUNDROBIN?id:0;

	/* insert answer section */
	if((r=insert_section(rep, rep->an_numrrsets, &ancount, buffer, 
		0, timenow, region, &tree, LDNS_SECTION_ANSWER, qinfo->qtype, 
		dnssec, rr_offset)) != RETVAL_OK) {
		if(r == RETVAL_TRUNC) {
			/* create truncated message */
			ldns_buffer_write_u16_at(buffer, 6, ancount);
			LDNS_TC_SET(ldns_buffer_begin(buffer));
			ldns_buffer_flip(buffer);
			return 1;
		}
		return 0;
	}
	ldns_buffer_write_u16_at(buffer, 6, ancount);

	/* if response is positive answer, auth/add sections are not required */
	if( ! (MINIMAL_RESPONSES && positive_answer(rep, qinfo->qtype)) ) {
		/* insert auth section */
		if((r=insert_section(rep, rep->ns_numrrsets, &nscount, buffer, 
			rep->an_numrrsets, timenow, region, &tree,
			LDNS_SECTION_AUTHORITY, qinfo->qtype,
			dnssec, rr_offset)) != RETVAL_OK) {
			if(r == RETVAL_TRUNC) {
				/* create truncated message */
				ldns_buffer_write_u16_at(buffer, 8, nscount);
				LDNS_TC_SET(ldns_buffer_begin(buffer));
				ldns_buffer_flip(buffer);
				return 1;
			}
			return 0;
		}
		ldns_buffer_write_u16_at(buffer, 8, nscount);

		/* insert add section */
		if((r=insert_section(rep, rep->ar_numrrsets, &arcount, buffer, 
			rep->an_numrrsets + rep->ns_numrrsets, timenow, region, 
			&tree, LDNS_SECTION_ADDITIONAL, qinfo->qtype, 
			dnssec, rr_offset)) != RETVAL_OK) {
			if(r == RETVAL_TRUNC) {
				/* no need to set TC bit, this is the additional */
				ldns_buffer_write_u16_at(buffer, 10, arcount);
				ldns_buffer_flip(buffer);
				return 1;
			}
			return 0;
		}
		ldns_buffer_write_u16_at(buffer, 10, arcount);
	} else {
		ldns_buffer_write_u16_at(buffer, 8, nscount);
		ldns_buffer_write_u16_at(buffer, 10, arcount);
	}
	ldns_buffer_flip(buffer);
	return 1;
}
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;
}
void FAT_TOPLU_FATURALASTIR_ARAMA::FATURALASTIR( int p_irsaliye_fis_id )
{
    SQL_QUERY query ( DB );

    FATURA_FISI_STRUCT          * FATURA_FISI           =   new FATURA_FISI_STRUCT;
    FATURA_FIS_SATIRI_STRUCT    * FATURA_FIS_SATIRI     =   new FATURA_FIS_SATIRI_STRUCT;

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

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

    FATURA_FISI->TEVKIFATLI_KDV_HESAPLARI_ID_ARRAY      =   new int     [KDV_OTV_ORANLARI_SAYISI];

    FATURA_CLEAR_FIS_STRUCT ( FATURA_FISI );

    FATURA_KDV_OTV_DEGISKENLERINE_ILK_DEGERLERINI_YAZ  ( FATURA_FISI );

    STK_IRS_FIS_STRUCT       * STK_FIS        = new STK_IRS_FIS_STRUCT;
    STK_IRS_FIS_SATIR_STRUCT * STK_FIS_SATIRI = new STK_IRS_FIS_SATIR_STRUCT;

    STK_IRS_CLEAR_FIS_STRUCT( STK_FIS );

    STK_IRS_FIS_BILGILERINI_OKU( p_irsaliye_fis_id, STK_FIS );


    QString     cari_hesap_adresi;

    cari_hesap_adresi = CARI_GET_ADRES_BILGILERI( STK_FIS->cari_hesap_id );


    DB->START_TRANSACTION   ();

    //FATURA KAYDI EKLENECEK

    SUBE_UNITE_BILGILERI_STRUCT UNITE_BILG;

    SUBE_UNITE_BILGILERI_OKU( &UNITE_BILG, SUBE_GET_UNITE_ID() );

    FATURA_FISI->belge_numarasi                 = UNITE_BILG.fatura_belge_numarasi;
    FATURA_FISI->belge_seri                     = UNITE_BILG.fatura_belge_seri;

    FATURA_FISI->fis_no                         = FAT_SIRADAKI_FIS_NO_AL ( m_ui->adakDate_fatura_tarihi->DATE() );
    FATURA_FISI->aciklama                       = tr ( "Fatura, toplu irsaliye faturalaştırma işlemi sonucu üretilmiştir." );
    FATURA_FISI->fatura_tarihi                  = m_ui->adakDate_fatura_tarihi->DATE();
    FATURA_FISI->fatura_turu                    = ENUM_FAT_IRSALIYESIZ_SATIS_FATURASI;
    FATURA_FISI->fatura_alis_satis_turu         = ENUM_SATIS_IRSALIYESI_FATURASI;
    FATURA_FISI->acik_kapali_fatura             = ENUM_ACIK_FATURA;
    FATURA_FISI->cari_hesap_id                  = STK_FIS->cari_hesap_id;
    FATURA_FISI->cari_hesap_ismi                = STK_FIS->cari_hesap_ismi;
    FATURA_FISI->cari_hesap_adresi              = cari_hesap_adresi;
    FATURA_FISI->vergi_dairesi                  = STK_FIS->vergi_dairesi;
    FATURA_FISI->vergi_numarasi                 = STK_FIS->vergi_numarasi;
    FATURA_FISI->modul_id                       = FATURA_MODULU;
    FATURA_FISI->program_id                     = E9_PROGRAMI;
    FATURA_FISI->fatura_irsaliyelestirildi_mi   = 1;

    int fatura_fis_id = FATURA_FISI_EKLE ( FATURA_FISI );

    //FATURA SATIRLARI EKLENECEK
    //faturaya referans eden irsaliyeler kaydediliyor.

    query.PREPARE_INSERT("fat_irs_baglantisi" , "kayit_id" , "fatura_id, irsaliye_id");

    query.SET_VALUE ( ":fatura_id"   , fatura_fis_id      );
    query.SET_VALUE ( ":irsaliye_id" , p_irsaliye_fis_id  );
    query.INSERT    ();

    STK_UPDATE_IRSALIYE_FATURALASTIRILDI_MI( p_irsaliye_fis_id , 1);

    int order_number = 0;

    QList<int> irs_str_id_list = STK_GET_FIS_SATIRI_ID_LIST( p_irsaliye_fis_id );

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

        STK_IRS_CLEAR_SATIR_STRUCT   ( STK_FIS_SATIRI );

        STK_IRS_SATIR_BILGILERINI_OKU( irs_str_id_list.at( i ), STK_FIS_SATIRI );

        STK_FATURALANAN_MIKTARI_GUNCELLE( irs_str_id_list.at( i ) , STK_FIS_SATIRI->satirdaki_urun_miktari );

        order_number               += 1024;

        FATURA_CLEAR_FIS_SATIRI_STRUCT ( FATURA_FIS_SATIRI );

        FATURA_FIS_SATIRI->doviz_id   = STK_FIS_SATIRI->doviz_id;
        FATURA_FIS_SATIRI->doviz_kodu = STK_FIS_SATIRI->doviz_kodu;
        FATURA_FIS_SATIRI->fis_id     = fatura_fis_id;

        if ( STK_FIS_SATIRI->satir_tutari > 0 ) {
            FATURA_FIS_SATIRI->fiyat_irsaliyeden_alindi = 1;
        }

        FATURA_FIS_SATIRI->modul_id                         = FATURA_FISI->modul_id;
        FATURA_FIS_SATIRI->program_id                       = FATURA_FISI->program_id;
        FATURA_FIS_SATIRI->order_number                     = order_number;
        FATURA_FIS_SATIRI->irsaliyelenen_miktar             = STK_FIS_SATIRI->satirdaki_urun_miktari;
        FATURA_FIS_SATIRI->isk_oncesi_urun_birim_fiyati     = STK_FIS_SATIRI->isk_oncesi_urun_birim_fiyati;
        FATURA_FIS_SATIRI->isk_sonrasi_urun_birim_fiyati    = STK_FIS_SATIRI->isk_sonrasi_urun_birim_fiyati;
        FATURA_FIS_SATIRI->kdv_dahil_mi                     = STK_FIS_SATIRI->kdv_dahil_mi;
        FATURA_FIS_SATIRI->kdv_orani                        = STK_FIS_SATIRI->kdv_orani;
        FATURA_FIS_SATIRI->otv_orani                        = STK_FIS_SATIRI->otv_orani;
        FATURA_FIS_SATIRI->satirdaki_urun_miktari           = STK_FIS_SATIRI->satirdaki_urun_miktari;
        FATURA_FIS_SATIRI->satir_iskonto_yuzdesi            = STK_FIS_SATIRI->iskonto_yuzdesi;
        FATURA_FIS_SATIRI->satir_iskonto_tutari             = STK_FIS_SATIRI->iskonto_tutari;
        FATURA_FIS_SATIRI->satir_kdv_dahil_tutar            = STK_FIS_SATIRI->satir_kdv_dahil_tutar;
        FATURA_FIS_SATIRI->satir_kdv_tutari                 = STK_FIS_SATIRI->satir_kdv_tutari;
        FATURA_FIS_SATIRI->satir_otv_dahil_tutar            = STK_FIS_SATIRI->satir_otv_dahil_tutar;
        FATURA_FIS_SATIRI->satir_otv_tutari                 = STK_FIS_SATIRI->satir_otv_tutari;
        FATURA_FIS_SATIRI->satir_vergi_haric_tutar          = STK_FIS_SATIRI->satir_vergi_haric_tutar;
        FATURA_FIS_SATIRI->satir_tutari                     = STK_FIS_SATIRI->satir_tutari;
        FATURA_FIS_SATIRI->temel_birim_katsayisi            = STK_FIS_SATIRI->temel_birim_katsayisi;
        FATURA_FIS_SATIRI->t_is_son_birim_fiyati            = STK_FIS_SATIRI->t_is_sonrasi_birim_fiyat;
        FATURA_FIS_SATIRI->t_is_son_satir_tutari            = STK_FIS_SATIRI->t_is_sonrasi_satir_tutari;
        FATURA_FIS_SATIRI->t_is_son_str_vergi_haric_tutar   = STK_FIS_SATIRI->t_is_sonrasi_vergi_haric_tutar;
        FATURA_FIS_SATIRI->t_is_son_satir_otv_tutari        = STK_FIS_SATIRI->t_is_sonrasi_otv_tutari;
        FATURA_FIS_SATIRI->t_is_son_satir_otv_dahil_tutar   = STK_FIS_SATIRI->t_is_sonrasi_otv_dahil_tutar;
        FATURA_FIS_SATIRI->t_is_son_satir_kdv_tutari        = STK_FIS_SATIRI->t_is_sonrasi_kdv_tutari;
        FATURA_FIS_SATIRI->t_is_son_satir_kdv_dahil_tutar   = STK_FIS_SATIRI->t_is_sonrasi_kdv_dahil_tutar;
        FATURA_FIS_SATIRI->urun_adi                         = STK_FIS_SATIRI->urun_adi;
        FATURA_FIS_SATIRI->urun_birimi                      = STK_FIS_SATIRI->urun_birimi;
        FATURA_FIS_SATIRI->urun_id                          = STK_FIS_SATIRI->urun_id;

        //irsaliye satirinda fiyat varsa ,fatura satirina aynen kaydedilir.Degistirilemez.

        int fis_satiri_id = FATURA_FIS_SATIRI_EKLE ( FATURA_FISI, FATURA_FIS_SATIRI );

        SQL_QUERY insert_query( DB );

        insert_query.PREPARE_INSERT("fat_irs_satir_baglantisi" , "kayit_id" ,
                                    "fatura_satiri_id, irsaliye_satiri_id");

        insert_query.SET_VALUE  ( ":fatura_satiri_id",      fis_satiri_id );
        insert_query.SET_VALUE  ( ":irsaliye_satiri_id",    irs_str_id_list.at( i ) );
        insert_query.INSERT     ();
    }

    int hatali_fatura_mi = 0;


    query.PREPARE_SELECT ( "fat_fatura_satirlari","satir_tutari" ,"fis_id = :fis_id" );
    query.SET_VALUE      ( ":fis_id" , fatura_fis_id );

    if ( query.SELECT() > 0 ) {
        while ( query.NEXT() EQ true )  {
            if ( query.VALUE(0).toDouble() EQ 0 ) {
                //Fatura satirlarinda tutar bilgisi yoksa fatura hatali kabul edilir.
                hatali_fatura_mi = 1;
                break;
            }
        }
    }


    FATURA_FISI->iskonto_tutari  = ROUND ( FATURA_FISI->brut_tutar - FATURA_FISI->ara_toplam );
    FATURA_FISI->iskonto_yuzdesi = ROUND ( ( ( FATURA_FISI->iskonto_tutari ) / FATURA_FISI->brut_tutar ) * 100 );


    query.PREPARE_UPDATE ( "fat_faturalar ","fis_id",
                           "iskonto_yuzdesi , "
                           "iskonto_tutari,  "
                           "hatali_fatura_mi  ",
                           "fis_id = :fis_id" );

    query.SET_VALUE ( ":iskonto_yuzdesi",               FATURA_FISI->iskonto_yuzdesi );
    query.SET_VALUE ( ":iskonto_tutari",                FATURA_FISI->iskonto_tutari  );
    query.SET_VALUE ( ":hatali_fatura_mi",              hatali_fatura_mi             );
    query.SET_VALUE ( ":fis_id",                        fatura_fis_id                       );

    query.UPDATE();

    QString cari_hesap_kodu_adi = m_ui->searchEdit_cari_hesap_kodu->GET_TEXT() + "    " + m_ui->lineEdit_cari_hesap_ismi->text();
    QString fatura_no           = "<font color = \"red\">"+ QVariant ( FATURA_FISI->fis_no ).toString() + "</font>";

    if ( hatali_fatura_mi EQ 1 ) {
        QMessageBox::warning ( this, tr("Hatalı Fatura Oluşturldu"), tr("%1 cari hesabına ait, verilen tarih aralığındaki "
                                                                        "irsaliyeler faturalaştırılırken %2 'nolu "
                                                                        "hatalı fatura oluşturuldu.").arg ( cari_hesap_kodu_adi )
                                                                                                     .arg ( fatura_no ) );
        SET_FOCUS( m_ui->searchEdit_cari_hesap_kodu );

        delete FATURA_FISI;
        delete FATURA_FIS_SATIRI;

        DB->COMMIT_TRANSACTION();
        return;
    }

    FAT_FATURA_ENT_FISLERINI_OLUSTUR( FATURA_FISI, fatura_fis_id );

    QString log_detaylari = QObject::tr("Toplu İrsaliye Faturalaştırma , Cari Hesap Kodu / Adı : ");
    log_detaylari.append ( m_ui->searchEdit_cari_hesap_kodu->GET_TEXT() + "  " + m_ui->lineEdit_cari_hesap_ismi->text()
                         + " , Fatura Tarihi : " + m_ui->adakDate_fatura_tarihi->QDATE().toString("dd MMMM yyyy")
                         +" \nİrsaliye Tarih Aralığı : " + m_ui->adakDate_irs_baslangic_tarihi->QDATE().toString("dd MMMM yyyy")
                         + " - " + m_ui->adakDate_irs_bitis_tarihi->QDATE().toString("dd MMMM yyyy") +
                         "\nŞube Kodu / Adı : " + m_ui->searchEdit_sube_kodu->GET_TEXT() + "  " + m_ui->lineEdit_sube_ismi->text());

    E9_LOG_KAYDI_EKLE ( FATURA_MODULU , LOG_FAT_TOPLU_FATURALASTIRMA , -1, log_detaylari );

    DB->COMMIT_TRANSACTION();

    delete FATURA_FISI;
    delete FATURA_FIS_SATIRI;
    delete STK_FIS;
    delete STK_FIS_SATIRI;

    accept();
}
void TASARIM_YENI_TASARIM_BATCH::RUN_BATCH ()
{

    int record_id = m_copy_belge_id_list.at( m_ui->comboBox_belgeler->currentIndex() ).toInt();

    SQL_QUERY select_query(G_YONETIM_DB);
    SQL_QUERY insert_query(G_YONETIM_DB);

    G_YONETIM_DB->START_TRANSACTION();


    if ( record_id NE -1 ) {

        select_query.PREPARE_SELECT("ynt_belge_tasarimlari","belge_id,html_str,belge_width,belge_height,kopya_sayisi,kopya_konumu,"
                                    "row_count,row_space_mm,row_space_satir, belge_satir_sayisi,belge_toplam_karakter_sayisi,printer_type",
                                    "tasarim_id=:tasarim_id","");
        select_query.SET_VALUE(":tasarim_id", record_id);
        if ( select_query.SELECT() EQ 0 ) {
            G_YONETIM_DB->COMMIT_TRANSACTION();
            return;
        }
        select_query.NEXT();

        insert_query.PREPARE_INSERT("ynt_belge_tasarimlari","tasarim_id","belge_id,tasarim_adi,html_str,belge_width,belge_height,kopya_sayisi,kopya_konumu, "
                                    "row_count,row_space_mm,row_space_satir,belge_satir_sayisi,belge_toplam_karakter_sayisi,printer_type,readonly");

        insert_query.SET_VALUE(":belge_id"                      ,select_query.VALUE(0).toString());
        insert_query.SET_VALUE(":tasarim_adi"                   ,m_ui->lineEdit_belge_adi->text());
        insert_query.SET_VALUE(":html_str"                      ,select_query.VALUE(1).toString());
        insert_query.SET_VALUE(":belge_width"                   ,select_query.VALUE(2).toString());
        insert_query.SET_VALUE(":belge_height"                  ,select_query.VALUE(3).toString());
        insert_query.SET_VALUE(":kopya_sayisi"                  ,select_query.VALUE(4).toString());
        insert_query.SET_VALUE(":kopya_konumu"                  ,select_query.VALUE(5).toString());
        insert_query.SET_VALUE(":row_count"                     ,select_query.VALUE(6).toString());
        insert_query.SET_VALUE(":row_space_mm"                  ,select_query.VALUE(7).toString());
        insert_query.SET_VALUE(":row_space_satir"               ,select_query.VALUE(8).toString());
        insert_query.SET_VALUE(":belge_satir_sayisi"            ,select_query.VALUE(9).toString());
        insert_query.SET_VALUE(":belge_toplam_karakter_sayisi"  ,select_query.VALUE(10).toString());
        insert_query.SET_VALUE(":printer_type"                  ,select_query.VALUE(11).toString());
        insert_query.SET_VALUE(":readonly"                      ,0);

        int yeni_tasarim_id = insert_query.INSERT();

        select_query.PREPARE_SELECT("ynt_belge_degiskenleri","degisken_id,font_size,align,pos_x,pos_y,is_visible_variable,grup_enum,size_vertical, "
                                    "size_horizontal,pixmap,text, text_size" , "tasarim_id = :tasarim_id","");
        select_query.SET_VALUE(":tasarim_id",record_id);
        if ( select_query.SELECT() EQ 0 ) {
            G_YONETIM_DB->CANCEL_TRANSACTION();
            return;
        }

        while (select_query.NEXT() EQ true) {
            insert_query.PREPARE_INSERT("ynt_belge_degiskenleri","tasarim_id","tasarim_id,degisken_id,font_size,align,pos_x,pos_y, "
                                        "is_visible_variable,grup_enum,size_vertical,size_horizontal,pixmap,text, text_size");


            insert_query.SET_VALUE(":tasarim_id",               yeni_tasarim_id                                         );
            insert_query.SET_VALUE(":degisken_id",              select_query.VALUE("degisken_id").toString()            );
            insert_query.SET_VALUE(":font_size",                select_query.VALUE("font_size").toString()              );
            insert_query.SET_VALUE(":align",                    select_query.VALUE("align").toString()                  );
            insert_query.SET_VALUE(":pos_x",                    select_query.VALUE("pos_x").toString()                  );
            insert_query.SET_VALUE(":pos_y",                    select_query.VALUE("pos_y").toString()                  );
            insert_query.SET_VALUE(":is_visible_variable",      select_query.VALUE("is_visible_variable").toInt()       );
            insert_query.SET_VALUE(":grup_enum",                select_query.VALUE("grup_enum").toString()                   );
            insert_query.SET_VALUE(":size_vertical",            select_query.VALUE("size_vertical").toString()          );
            insert_query.SET_VALUE(":size_horizontal",          select_query.VALUE("size_horizontal").toString()        );
            insert_query.SET_VALUE(":pixmap",                   select_query.VALUE("pixmap").toString()                 );
            insert_query.SET_VALUE(":text",                     select_query.VALUE("text").toString()                   );
            insert_query.SET_VALUE(":text_size",                select_query.VALUE("text_size").toString()              );

            insert_query.INSERT();
        }
    }
    else {

        SQL_QUERY query(G_YONETIM_DB);

        query.PREPARE_INSERT("ynt_belge_tasarimlari",
                             "tasarim_id","tasarim_adi, belge_id, kopya_konumu, readonly, "
                             "printer_type, belge_width, belge_height, kopya_sayisi, row_count, belge_satir_sayisi, belge_toplam_karakter_sayisi, row_space_satir");

        query.SET_VALUE(":tasarim_adi"                  , m_ui->lineEdit_belge_adi->text() );
        query.SET_VALUE(":belge_id"                     , m_belge_id);
        query.SET_VALUE(":kopya_konumu"                 , 0);
        query.SET_VALUE(":readonly"                     , 0);
        query.SET_VALUE(":printer_type"                 , GET_PRINTER_TYPE_ENUM( m_ui->comboBox_yazici_tipi->currentText() ));
        query.SET_VALUE(":belge_width"                  , 210.00 );
        query.SET_VALUE(":belge_height"                 , 295.00 );
        query.SET_VALUE(":kopya_sayisi"                 , 1 );
        query.SET_VALUE(":row_count"                    , 5);
        query.SET_VALUE(":belge_satir_sayisi"           , 66);
        query.SET_VALUE(":belge_toplam_karakter_sayisi" , 80);
        query.SET_VALUE(":row_space_satir"              , 1);

        query.INSERT();
    }
    G_YONETIM_DB->COMMIT_TRANSACTION();


    MSG_INFO( tr( "Created" ), NULL );
    close();
}
Пример #9
0
size_t
stumpd::insert::insert_data(std::vector <std::vector <std::string> > data)
{

  fprintf(stdout, "insert_data size %ld\n", data.size());
  FILE *fp;
  size_t document_count;
  document_count = 0;

  bool start;
  start = 1;

  char *ymd;
  ymd = (char*)calloc(sizeof(char), 10);

  char *ymd_old;
  ymd_old = (char*)calloc(sizeof(char), 10);

  struct tm *date_buf;
  date_buf = (struct tm*)calloc(sizeof(struct tm), 1);

  if(strcmp(DB_TYPE, "mysql") == 0)
  {

  std::string insert_query("START TRANSACTION;");
  std::vector <std::vector < std::string > > results;

    if(data.size() > 0)
      std::sort(data.begin(), data.end(), sort_dates);

    size_t i;
    time_t str_to_date;

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

      str_to_date = strtol(data[i][0].c_str(), NULL, 0);

      localtime_r(&str_to_date, date_buf);
      strftime(ymd, 10, "%Y%m%d", date_buf);

      if(strcmp(ymd, ymd_old) != 0)
      {
        if(strlen(ymd_old) != 0)
        {
          //fprintf(stdout, "ymd_old length is %ld\n", strlen(ymd_old));
          insert_query.erase(insert_query.length() - 1);
          insert_query.append(";");
        } else {
          if(i<data.size()-1&&start == 0)
            insert_query.append(",");
        }
        fprintf(stdout, "Starting new insert query, capping off the last one\n");
        start = 1;
      }
      

      if(start == 1)
      {

        strncpy(ymd_old, ymd, 10);
        //insert_query.clear();
        insert_query
          .append("INSERT INTO `documents_")
          .append(
            std::string(ymd)
              .substr(0, 4))
          .append("`.`")
          .append(ymd)
          .append("` (date, host, input, content) VALUES ");
          start = !start;
      }

        insert_query
          .append("(FROM_UNIXTIME(")
          .append(data[i][0])
          .append("),'")
          .append(data[i][1])
          .append("','")
          .append(data[i][2])
          .append("','")
          .append(data[i][3])
          .append("')");
          
          if(i<data.size()-1&&start == 0)
            insert_query.append(",");

    }

    insert_query
      .append(";COMMIT;");

    fp = fopen("/tmp/insert.log", "w+");
    fprintf(fp, "%s", insert_query.c_str());
    fclose(fp);


    results = mysql_conn->query(insert_query.c_str());
    free(ymd);
    free(ymd_old);
    if(results.size()  == 0)
      return 1;
    else
      return 0;
  } else
  if(strcmp(DB_TYPE, "clucene") == 0)
  {
    free(ymd);
    free(ymd_old);
    fprintf(stderr, "CLucene DB_TYPE is not yet supported\n");
    return 0;
  }


  free(ymd);
  free(ymd_old);

  return document_count;
}