endregion region TAKİPTEKİ KALEMLER
426913
function f_kalem_takipte_mi(_kalem, _tahta_id) {
        return result.dbQ.sismember(result.kp.tahta.ssetTakiptekiKalemleri(_tahta_id), _kalem.Id)
            .then(function (_iTakip) {
                _kalem.Takip = _iTakip == 1;
                return _kalem;
            });
    }
915816
@Override
    public void visitEnd() {
        if (!fieldAlreadyExists) {
            FieldVisitor fv = super.visitField(
                                               Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL + Opcodes.ACC_STATIC,
                                               versionFieldName,
                                               Type.getDescriptor(String.class),
                                               null,
                                               versionFieldValue);
            fv.visitEnd();
        }

        super.visitEnd();
    }
1240065
protected void __endSection(boolean def) {
        if (null == tmpOut && null == tmpCaller) throw new IllegalStateException("section has not been started");
        __addLayoutSection(section, __buffer.toString(), def);
        __buffer = tmpOut;
        __caller = tmpCaller;
        tmpOut = null;
        tmpCaller = null;
    }
120856
public void endInvalidatingRegion() {
		synchronized (this) {
			if (--regionInvalidations == 0) {
				regionInvalidationTimestamp = timeSource.nextTimestamp();
				if (trace) {
					log.tracef("Finished invalidating region %s at %d", cache.getName(), regionInvalidationTimestamp);
				}
			}
			else {
				if (trace) {
					log.tracef("Finished invalidating region %s, but there are %d ongoing invalidations", cache.getName(), regionInvalidations);
				}
			}
		}
	}
689458
public function endSlot()
    {
        end($this->componentStack);
        $currentSlot = array_pop(
            $this->slotStack[$this->currentComponent()]
        );
        $this->slots[$this->currentComponent()]
        [$currentSlot] = trim(ob_get_clean());
    }
1287610
function f_indekslenen_ve_takip_edilen_kalem_idler(_tahta_id) {

        var db_kalem = require("./db_kalem");
        return result.dbQ.Q.all([
                db_kalem.f_db_kalem_indeksli_idler(_tahta_id),
                db_kalem.f_db_kalem_takip_idler(_tahta_id)
            ])
            .then(function (_ress) {

                var indeksliler = _ress[0],
                    takipteki_kalemler = _ress[1];

                return indeksliler.unionXU(takipteki_kalemler);
            });
    }
724997
function f_tahtanin_gizlenen_ihaleleri(_ihale_id, _tahta_id) {
        f_tahtanin_gizlenen_ihale_idleri(_tahta_id)
            .then(function (_ihale_idler) {
                if (_ihale_idler.length > 0) {
                    /** @type {OptionsIhale} */
                    var opt = {};
                    opt.bArrKalemleri = false;
                    opt.bTakip = true;
                    opt.bYapanKurum = true;
                    return f_id(_ihale_idler, _tahta_id, opt);
                } else {
                    return [];
                }
            })
    }
263463
function f_ekle(es_ihale, db_ihale, kurum_id, tahta_id, _kul_id) {

        //SON EKLENEN İHALENİN İD SİNİ ÇEK VE EKLEME İŞLEMİNE BAŞLA
        return result.dbQ.incr(result.kp.ihale.idx)
            .then(function (_id) {
                db_ihale.Id = _id;
                es_ihale.Id = _id;

                return result.dbQ.Q.all([
                        result.dbQ.hset(result.kp.ihale.tablo, _id, JSON.stringify(db_ihale)),
                        result.dbQ.zadd(result.kp.ihale.zsetYapilmaTarihi, db_ihale.IhaleTarihi, db_ihale.Id)

                    ])
                    .then(function () {

                        if (tahta_id && tahta_id > 0) {
                            //tahta ile ilişkilendir
                            return result.dbQ.sadd(result.kp.tahta.ssetOzelIhaleleri(tahta_id, true), db_ihale.Id);
                        } else {
                            return result.dbQ.sadd(result.kp.ihale.ssetGenel, db_ihale.Id);
                        }

                    })
                    .then(function () {
                        //kurumun ihalelerine ekle
                        //ihalenin kurumunu ata
                        if (kurum_id > 0) {
                            return result.dbQ.Q.all([
                                result.dbQ.sadd(result.kp.kurum.ssetIhaleleri(kurum_id), db_ihale.Id),
                                result.dbQ.hset(result.kp.ihale.hsetYapanKurumlari, db_ihale.Id, kurum_id)
                            ]);
                        }
                        return db_ihale;
                    })
                    .then(function () {
                        //sisteme eklenme tarihini ekle
                        if (db_ihale.SistemeEklenmeTarihi) {
                            return result.dbQ.zadd(result.kp.ihale.zsetSistemeEklenmeTarihi, db_ihale.SistemeEklenmeTarihi, db_ihale.Id)
                        }
                        return db_ihale;
                    })
                    .then(function () {
                        //saglıkbank_id sini ekle
                        if (db_ihale.SBIhale_Id && db_ihale.SBIhale_Id > 0) {
                            return result.dbQ.zadd(result.kp.ihale.zsetSaglikbank, db_ihale.Id, db_ihale.SBIhale_Id)
                        }
                        return db_ihale;
                    })
                    .then(function () {
                        emitter.emit(schema.SABIT.OLAY.IHALE_EKLENDI, es_ihale, kurum_id, tahta_id, _kul_id);

                        //ihale bilgisini dön
                        /** @type {OptionsIhale} */
                        var opts = {};
                        opts.bArrKalemleri = true;
                        opts.bYapanKurum = true;
                        opts.bTakip = true;
                        return f_id(db_ihale.Id, tahta_id, opts);
                    });
            })
            .fail(function (_err) {
                throw new exception.Istisna("İhale Eklenemedi!", "İhale eklenirken Hata oluştu: " + _err);
            });
    }
810161
function f_rol_sil_tumu(_tahta_id, _kul_id) {
        return result.dbQ.smembers(result.kp.tahta.ssetOzelTahtaRolleri(_tahta_id, true))
            .then(function (_rol_idler) {
                if (_rol_idler && _rol_idler.length > 0) {
                    return _rol_idler.map(function (_id) {
                        return f_rol_sil_tahta(_tahta_id, _id, _kul_id);
                    });
                }
            });
    }
695592
function f_tahta_teklif_idleri(_tahta_id) {
        return result.dbQ.smembers(result.kp.tahta.ssetTeklifleri(_tahta_id, true));
    }
190541
function f_bolge_sehir_sil(_sehir_id, _bolge_id, _tahta_id) {
        return result.dbQ.srem(result.kp.bolge.ssetSehirleri(_bolge_id), _sehir_id);
    }
31002
function f_tahta_ekle(_tahta_db, _kul_id) {

        if (!_kul_id) {
            throw new exception.Istisna("Kullanıcı bilgisi eksik", "Tahtayı ekleyen kullanıcı bilgisi bulunamadı!");
        }

        /**
         * Tahtanın ilk oluşturulmasında admin kullanıcısını(tahtanın sahibini) tüm rollerle ilişkilendiriyoruz
         * @param _tahta_id
         * @param _kul_id
         * @returns {*}
         */
        var tahta_kullanicilarini_rollerle_iliskilendir = function (_tahta_id, _kul_id) {
            l.info("f_kullaniciyi_rol_iliskilendir");
            // 3. Kullanıcıya rolü atayalım
            // 3.1 Kullanıcının rollerini çek
            // 3.2 Rollerine yeni rolü ekle
            return result.dbQ.Q.all([
                result.dbQ.smembers(result.kp.tahta.ssetOzelTahtaRolleri(_tahta_id, true)),
                result.dbQ.hget(result.kp.tahta.hsUyeleri(_tahta_id), _kul_id) // 3.1
            ]).then(function (_arrDbReplies) {
                var dbRol_idler = _arrDbReplies[1];
                // 3.2
                var roller = Array.isArray(dbRol_idler) ? dbRol_idler : [];

                //şemaya uygun hale getirmek için int yapılıyor
                var arr_tahta_rol_idler = _arrDbReplies[0].mapX(null, parseInt);

                var son = roller.concat(arr_tahta_rol_idler);
                return f_tahta_uye_rol_guncelle(_tahta_id, _kul_id, son)
            });
        };

        delete _tahta_db.Kurum;

        //l.i("f_db_tahta_ekle > _tahta: " + JSON.stringify(_tahta_db));

        // 1. Tahta oluştur
        // 1.1 incr idx
        // 2. Tahta için temel rolleri oluştur ve tahtayla ilişkilendir
        // 3. Kullaniciyi tahtanın sahibi yap ve ilk rolleri(yonetici, gozlemci) rolünü ver
        // 4. Tahtanın ID sini kullanicinin sahip olduklarinin içine yaz
        // 5. bölgeleri ekle
        return result.dbQ.incr(result.kp.tahta.idx)
            .then(function (_id) {

                var rol = require('./db_rol');

                _tahta_db.Id = _id;
                // TODO: Tahta rollerini json'dan çekiyor ama bunu otomatik hale getirip json ilişkisi kaldırılacak.
                var arrTemelRoller = require("../lib/roller.json").data;

                return [
                    result.dbQ.hset(result.kp.tahta.tablo, _id, JSON.stringify(_tahta_db)), // 1
                    rol.f_db_rol_ekle(arrTemelRoller, _tahta_db.Id), // 2
                    result.dbQ.sadd(result.kp.kullanici.ssetSahipOlduguTahtalari(_kul_id, true), _id) // 4
                ].allX()
                    .then(function () {

                        l.info("kullanıcı rol ilşkilendir");
                        return tahta_kullanicilarini_rollerle_iliskilendir(_id, _kul_id); // 3

                    })
                    .then(function () {
                        l.info("HERŞEY BİTTİ TAHTA ID DEN DÖN");
                        return f_tahta_id(_id)//4
                            .then(function (_dbTahta) {
                                emitter.emit(schema.SABIT.OLAY.TAHTA_EKLENDI, _dbTahta, _kul_id);
                                return _dbTahta;
                            });
                    })
                    .fail(function (_err) {
                        l.e("f_db_tahta_ekle fail func> ERR: ", _err);
                        return _err;
                    });
            });
    }
1217831
function f_kalem_gizlenen_tumu(_tahta_id) {
        return f_kalem_gizlenen_idler(_tahta_id)
            .then(function (_kalem_idler) {
                if (_kalem_idler && _kalem_idler.length > 0) {
                    return f_kalem_id(_kalem_idler, _tahta_id);
                } else {
                    return [];
                }
            });
    }
959789
function f_tahta_anahtar_tumu(_tahta_id) {

        //tahtanın anahtar kelimelerini döner
        return result.dbQ.zrangebyscore([result.kp.tahta.zsetAnahtarKelimeleri(_tahta_id), '-inf', '+inf'])
            .then(function (_arr_anahtar_kelimeler) {
                if (_arr_anahtar_kelimeler && _arr_anahtar_kelimeler.length > 0) {

                    //önce anahtar kelimelere ait id leri tutuyoruz sonra da bilgilerini dönüyoruz
                    return result.f_db_anahtar_key(_arr_anahtar_kelimeler)
                        .then(function (_dbAnahtar_idler) {
                            return _arr_anahtar_kelimeler.map(function (_elm, _idx) {
                                /** @type {AnahtarKelime} */
                                return {Id: _dbAnahtar_idler[_idx], Anahtar: _elm};
                            }).allX();
                        });


                } else {
                    return [];
                }
            });
    }
26368
function f_kalem_gizlenen_sil(_tahta_id, _kalem_id) {

        return result.dbQ.srem(result.kp.tahta.ssetGizlenenKalemleri(_tahta_id), _kalem_id)
            .then(function () {
                //kalemin ihalesini buluyoruz ki ihale temp setinde kayıt varsa onları da silelim
                result.dbQ.hget(result.kp.kalem.hsetIhaleleri, _kalem_id)
                    .then(function (_ihale_id) {
                        emitter.emit(schema.SABIT.OLAY.KALEM_GIZLENDI_IPTAL, _kalem_id, _ihale_id, _tahta_id);
                        return _kalem_id;
                    });
            });
    }
272887
function f_tahta_kalem_idler_aktif(_tahta_id) {
        var db_ihale = require('./db_ihale'),
            defer = result.dbQ.Q.defer(),
            anahtar = result.kp.temp.ssetTahtaKalem(_tahta_id);

        result.dbQ.exists(anahtar)
            .then(function (_dbReply) {
                if (_dbReply == 1) {
                    //anahtar var yeniden oluşturmuyoruz

                } else {
                    //anahtar yok
                    //önce tahtanın aktif ihale id leri çekilir
                    //bu ihalelere bağlı kalemler temp.kalem.tumu setine eklenir
                    //aynı şekilde ezilen gizlenen kalemler istenmeyenler setine eklenir
                    //sonuçta kullanıcının göreceği set bu iki setin farkı olacaktır
                    db_ihale.f_db_tahta_ihale_idler_aktif(_tahta_id)
                        .then(function (_ihale_idler) {

                            var arrKalemKeys = [],
                                anahtarTumu = result.kp.temp.ssetTahtaKalemTumu(_tahta_id),
                                anahtarIstenmeyen = result.kp.temp.ssetTahtaKalemIstenmeyen(_tahta_id);

                            _ihale_idler.forEach(function (_elm) {
                                arrKalemKeys.push(result.kp.tahta.ssetOzelKalemleri(_tahta_id, _elm, true), result.kp.ihale.ssetKalemleri(_elm));
                            });
                            arrKalemKeys.unshift(anahtarTumu);

                            result.dbQ.Q.all([
                                result.dbQ.sunionstore_array(arrKalemKeys),
                                result.dbQ.sunionstore(anahtarIstenmeyen, result.kp.tahta.ssetEzilenKalemleri(_tahta_id), result.kp.tahta.ssetGizlenenKalemleri(_tahta_id))
                            ]).then(function () {
                                result.dbQ.sdiffstore(anahtar, anahtarTumu, anahtarIstenmeyen)
                            });
                        });
                }
            })
            .then(function () {
                result.dbQ.smembers(anahtar)
                    .then(function (_kalem_idler) {
                        defer.resolve(_kalem_idler);
                    });
            });

        return defer.promise;
    }
1118519
function f_bolge_sehir_ekle(_sehir_idler, _bolge_id, _tahta_id) {
        if (Array.isArray(_sehir_idler) && _sehir_idler.length > 0) {
            return _sehir_idler.mapX(null, function (_sehir_id) {
                return result.dbQ.sadd(result.kp.bolge.ssetSehirleri(_bolge_id), _sehir_id);
            }).allX();
        } else {
            return result.dbQ.sadd(result.kp.bolge.ssetSehirleri(_bolge_id), _sehir_idler);
        }
    }