Bölgeden şehir ilişkisini kaldırıyoruz
@param _sehir_id
@param _bolge_id
@param _tahta_id
@returns {*}
190541
function f_bolge_sehir_sil(_sehir_id, _bolge_id, _tahta_id) {
        return result.dbQ.srem(result.kp.bolge.ssetSehirleri(_bolge_id), _sehir_id);
    }
255648
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)
            });
        }
955537
function f_kurumla_iliskili_teklif_templerini_sil(_teklif, _tahta_id) {
    return [
        db.redis.dbQ.del(db.redis.kp.temp.zsetKurumTeklifleriParaBirimli(_tahta_id, _teklif.Kurum_Id, _teklif.ParaBirim_Id)),
        db.redis.dbQ.del(db.redis.kp.temp.zsetKurumTeklifleriOnayDurumunaGore(_tahta_id, _teklif.Kurum_Id, _teklif.TeklifDurumu_Id)),
        db.redis.dbQ.del(db.redis.kp.temp.ssetTahtaKurumTeklifleri(_tahta_id, _teklif.Kurum_Id))
    ].allX();
}
896833
function f_tahta_ihale_gizlenen_sil(_tahta_id, _ihale_id) {
        return result.dbQ.srem(result.kp.tahta.ssetGizlenenIhaleleri(_tahta_id), _ihale_id)
            .then(function () {
                emitter.emit(schema.SABIT.OLAY.IHALE_GIZLENDI, _ihale_id, _tahta_id);
                return _ihale_id;
            });
    }
362792
function f_teklifleri(tahta_id, ihale_id) {
        var defer = result.dbQ.Q.defer();

        //ihaleye bağlı teklifleri bul
        result.rc.multi()
            .sinterstore("temp_ihale_teklif", result.kp.ihale.ssetTeklifleri(ihale_id), result.kp.tahta.ssetTeklifleri(tahta_id, true))
            .smembers("temp_ihale_teklif")
            .expire("temp_ihale_teklif", 10)
            .exec(function (err, replies) {
                l.info("MULTI REPLY" + JSON.stringify(replies));

                if (replies[1] && replies[1].length > 0) {
                    defer.resolve(replies[1]);

                } else {
                    defer.resolve(null);
                }
            });

        return defer.promise;
    }
1310821
function f_kalemin_onay_durumu_kazandi_mi(_tahta_id, _kalem_id, _onay_durum_id) {
        l.info("f_db_kalemin_onay_durumu_kazandi_mi");
        return result.dbQ.sinter(
            result.kp.kalem.ssetTeklifleri(_kalem_id),
            result.kp.tahta.ssetTeklifleri(_tahta_id, true),
            result.kp.teklif.ssetTeklifOnayDurumlari(schema.SABIT.ONAY_DURUM.teklif.KAZANDI))
            .then(function (_teklif_idler) {
                return (_teklif_idler && _teklif_idler.length > 0 && _onay_durum_id == schema.SABIT.ONAY_DURUM.teklif.KAZANDI)
                    ? true
                    : false;
            });
    }
566055
function f_kullanici_tahta_idleri(kul_id) {
        // 1. + Kullanıcının sahip oldukları
        // 2. + Kullanıcının üyesi olduğu tahta id leri
        // 3. - Kullanıcının sildikleri
        return [
            result.dbQ.sunion(
                result.kp.kullanici.ssetSahipOlduguTahtalari(kul_id, true),//1.
                result.kp.kullanici.ssetUyeOlduguTahtalari(kul_id, true)//2.
            ),
            result.dbQ.smembers(result.kp.tahta.ssetSilinen) //3.
        ].allX().then(function (_arrReplies) {
            var arrAktifTahtalar = _arrReplies[0],
                arrPasifTahtalar = _arrReplies[1],
                kullaniciTahtalari = arrAktifTahtalar.differenceXU(arrPasifTahtalar);

            return kullaniciTahtalari.mapX(null, parseInt);
        }).fail(function (_err) {
            extension.ssr = [{"_err": _err}];
            throw _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 [];
                }
            });
    }
898951
function f_temp_sil_kalem(_tahta_id) {
    if (_tahta_id) {
        return [
            db.redis.dbQ.del(db.redis.kp.temp.ssetTahtaKalem(_tahta_id)),
            db.redis.dbQ.del(db.redis.kp.temp.ssetTahtaKalemTumu(_tahta_id)),
            db.redis.dbQ.del(db.redis.kp.temp.ssetTahtaKalemIstenmeyen(_tahta_id)),
            db.redis.dbQ.del(db.redis.kp.temp.ssetTahtaAnahtarKalemleri(_tahta_id))
        ].allX();
    } else {
        return null;
    }
}
1007135
function f_rol_bolgesi_ekle(_rol_id, _bolge_id, _tahta_id) {
        return result.dbQ.sadd(result.kp.rol.ssetBolgeleri(_rol_id), _bolge_id);
    }
1284856
function f_tahta_ihale_indeksli_toplami(_tahta_id) {
        return f_tahta_ihale_indeksli_idler_tarihe_gore_sirali(_tahta_id)
            .then(function () {
                /**
                 * önce tüm sıralı indekslenen ihale sayısı
                 * sonra da işlem yapılan tarihten (bugun) itibaren ihale sayısını buluyoruz
                 * 1. bulduklarımız tüm ihale sayısını
                 * 2.si ise tarihi geçmemiş teklif verilebilir ihale sayısını getirir
                 */

                return result.dbQ.Q.all([
                    result.dbQ.zcount(result.kp.temp.zsetTahtaAnahtaraGoreSiraliIhaleTarihineGore(_tahta_id), "-inf", "+inf"),//1
                    result.dbQ.zcount(result.kp.temp.zsetTahtaAnahtaraGoreSiraliIhaleTarihineGore(_tahta_id), new Date().getTime(), "+inf")//2
                ]).then(function (_results) {
                    console.log("_results>" + JSON.stringify(_results));

                    var toplam = parseInt(_results[0] || 0),
                        gecerli = parseInt(_results[1] || 0);

                    return {
                        Toplam: toplam,
                        Gecerli: gecerli,
                        Gecersiz: toplam - gecerli
                    };
                });
            });
    }
203588
function f_urunun_kazandigi_teklif_fiyatlari(_tahta_id, _urun_id, _parabirim_id) {
        //l.info("f_db_urunun_kazandigi_teklif_fiyatlari");
        //ürünün kazandığı teklifleri bul
        //bu tekliflerin fiyatlarını getir
        return f_urunun_teklif_fiyatlari_onay_durumuna_gore(_tahta_id, _urun_id, schema.SABIT.ONAY_DURUM.teklif.KAZANDI, _parabirim_id);
    }
239029
function f_bolge_ekle(_bolge, _tahta_id) {

        /**
         *
         * @param {Bolge} _bolge
         * @param {integer} _tahta_id
         * @returns {*}
         */
        function f_bolge_ekle(_bolge, _tahta_id) {
            //SON EKLENEN bölgenin İD SİNİ ÇEK VE EKLEME İŞLEMİNE BAŞLA

            return result.dbQ.sismember(result.kp.bolge.ssetAdlari, _bolge.Adi)
                .then(function (_iKayitli) {
                    if (_iKayitli == 1) {
                        return f_bolge_bul_adindan(_bolge.Adi);
                    } else {
                        return result.dbQ.incr(result.kp.bolge.idx)
                            .then(function (_id) {
                                _bolge.Id = _id;

                                //tahta_id yoksa genele eklenecek varsa da tahtanın özel bölgelerine
                                return result.dbQ.Q.all([
                                        result.dbQ.hset(result.kp.bolge.tablo, _id, JSON.stringify(_bolge)),
                                        result.dbQ.sadd(result.kp.bolge.ssetAdlari, _bolge.Adi),
                                        !_tahta_id ? result.dbQ.sadd(result.kp.bolge.ssetBolgeGenel, _id) : null,
                                        _tahta_id ? result.dbQ.sadd(result.kp.tahta.ssetBolgeleri(_tahta_id, true), _id) : null
                                    ])
                                    .then(function () {
                                        return f_bolge_id(_id);
                                    });
                            });
                    }
                });
        }

        if (Array.isArray(_bolge) && _bolge.length > 0) {
            return _bolge.mapX(null, f_bolge_ekle, _tahta_id).allX();
        }
        else {
            return f_bolge_ekle(_bolge, _tahta_id);
        }
    }
1197792
function f_kurum_gizlenen_tumu(_tahta_id) {
        return f_kurum_gizlenen_idler(_tahta_id)
            .then(function (_kurum_idler) {
                if (_kurum_idler && _kurum_idler.length > 0) {
                    return f_kurum_id(_kurum_idler);
                } else {
                    return [];
                }
            });
    }
1297757
function f_uyari_id(_uyari_id, _tahta_id, _opt) {

        /** @type {OptionsUyari} */
        var opts = result.OptionsUyari(_opt);

        return (Array.isArray(_uyari_id)
            ? result.dbQ.hmget_json_parse(result.kp.uyari.tablo, _uyari_id)
            : result.dbQ.hget_json_parse(result.kp.uyari.tablo, _uyari_id))
            .then(function (_dbUyari) {
                if (!_dbUyari) {
                    return null;
                } else {
                    var kullanici = require('./db_kullanici'),
                        rol = require('./db_rol');

                    function f_uyari_bilgisi(_uyari) {
                        if (!_uyari) {//uyarı yoksa null dön
                            return null;
                        }
                        var olusan_uyari = schema.f_create_default_object(schema.SCHEMA.UYARI);
                        _.extend(olusan_uyari, _uyari);

                        return result.dbQ.Q.all([
                                opts.bArrUyeleri ? kullanici.f_db_uye_id(_uyari.Uye_Idler, _tahta_id) : [],
                                opts.bArrRolleri ? rol.f_db_rol_id(_uyari.Rol_Idler) : []
                            ])
                            .then(function (_ress) {
                                olusan_uyari.Uyeler = _ress[0];
                                olusan_uyari.Roller = _ress[1];
                                return olusan_uyari;
                            });
                    }

                    return (Array.isArray(_dbUyari)
                        ? _dbUyari.map(f_uyari_bilgisi).allX()
                        : f_uyari_bilgisi(_dbUyari))
                        .then(function (_olusan_uyari) {
                            return _olusan_uyari;
                        });
                }

            });
    }
457119
function f_tahta_kurum_gizlenen_sil(_tahta_id, _kurum_id) {
        return result.dbQ.srem(result.kp.tahta.ssetGizlenenKurumlari(_tahta_id), _kurum_id)
            .then(function () {
                emitter.emit(schema.SABIT.OLAY.KURUM_GIZLENDI, _kurum_id, _tahta_id);
                return _kurum_id;
            });
    }
1024348
function f_tahta_kurum_idleri(_tahta_id) {
        return result.dbQ.smembers(result.kp.tahta.ssetOzelKurumlari(_tahta_id, true));
    }