Uyarıyı sil
@param {integer} _tahta_id
@param {integer} _uyari_id
@param {integer} _kul_id
@returns {*}
178451
function f_uyari_sil(_tahta_id, _uyari_id, _kul_id) {
        return result.dbQ.Q.all([
            result.dbQ.srem(result.kp.tahta.ssetUyarilari(_tahta_id, true), _uyari_id),
            result.dbQ.sadd(result.kp.tahta.ssetUyarilari(_tahta_id, false), _uyari_id)
        ]);
    }
840539
function f_urun_id(_urun_id, _tahta_id, _opts) {
        //ürünü buluyoruz ve bilgilerini geri döndürüyoruz

        /**
         * ürün bilgisini şemasıyla getirir
         * @param {UrunDB} _urun
         * @param {OptionsUrun} _optsUrun
         * @returns {*}
         */
        function f_urun_bilgisi(_urun, _optsUrun) {

            if (!_urun) {
                return null;
            }

            var /** @type {Urun} */
            olusan_urun = schema.f_create_default_object(schema.SCHEMA.URUN);

            olusan_urun = _.extend(olusan_urun, _urun);

            return result.dbQ.Q.all([
                _optsUrun.bUreticiKurum ? f_urun_ureticisi(_urun.Id) : {Id: 0},
                _optsUrun.bArrAnahtarKelimeler ? f_urun_anahtar_tumu(_urun.Id, _tahta_id) : [{Id: 0}]
            ]).then(function (_ress) {
                olusan_urun.Uretici = /** @type {KurumDB} */_ress[0];
                olusan_urun.AnahtarKelimeler = /** @type {AnahtarKelime[]} */_ress[1];
                return olusan_urun;
            });
        }

        return (Array.isArray(_urun_id)
            ? result.dbQ.hmget_json_parse(result.kp.urun.tablo, _urun_id)
            : result.dbQ.hget_json_parse(result.kp.urun.tablo, _urun_id))
            .then(function (_dbUrun) {
                if (_dbUrun == null) {
                    return null;

                } else {

                    var /** @type {OptionsUrun} */
                    opts = result.OptionsUrun(_opts);

                    if (Array.isArray(_dbUrun)) {
                        opts.bUreticiKurum = false;

                        return _dbUrun
                            .mapX(null, f_urun_bilgisi, opts)
                            .allX()
                            .then(function (dbUrunBilgilerle) {

                                return f_urun_ureticisi(_urun_id)
                                    .then(function (dbUreticiKurumlar) {

                                        dbUrunBilgilerle.forEach(function (_elm, _idx) {
                                            if (_elm) {
                                                _elm.Uretici = dbUreticiKurumlar[_idx];
                                            }
                                        });

                                        return dbUrunBilgilerle;
                                    });
                            });
                    } else {
                        return f_urun_bilgisi(/** @type {UrunDB} */_dbUrun, opts);
                    }
                }
            });
    }
242635
function f_urun_anahtar_tumu(_urun_id, _tahta_id) {
        console.log("f_db_urun_anahtar_tumu");
        return (Array.isArray(_urun_id)
            ? _urun_id.mapX(null, f_urun_anahtar_bilgisi, _tahta_id).allX()
            : f_urun_anahtar_bilgisi(_urun_id, _tahta_id));

        function f_urun_anahtar_bilgisi(_dbUrun_id, _tahta_id) {
            return result.dbQ.zrangebyscore([result.kp.urun.zsetAnahtarKelimeleri(_tahta_id, _dbUrun_id), '-inf', '+inf'])
                .then(
                    /**
                     *Ürünle ilişkili anahtarlar dizisi
                     * @param {string[]} _arr_anahtar_kelimeler
                     * @returns {Array|AnahtarKelime[]}
                     */
                    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 [];
                        }
                    });
        }
    }
562296
function f_kurum_tumu(_tahta_id, _sayfalama) {
        console.log("f_db_kurum_tumu");
        return f_aktif_kurum_idleri(_tahta_id, _sayfalama)
            .then(function (_arrKurumId) {
                var sonucAnahtari = _tahta_id && _tahta_id > 0
                        ? result.kp.temp.ssetTahtaKurum(_tahta_id)
                        : result.kp.temp.ssetKurum,
                    sonuc = schema.f_create_default_object(schema.SCHEMA.LAZY_LOADING_RESPONSE);

                return _arrKurumId.length == 0
                    ? sonuc
                    : result.dbQ.scard(sonucAnahtari)
                    .then(function (_toplamKayitSayisi) {
                        sonuc.ToplamKayitSayisi = _toplamKayitSayisi;

                        return f_kurum_id(_arrKurumId)
                            .then(function (_dbKurumlar) {
                                sonuc.Data = _dbKurumlar;
                                return sonuc;
                            });
                    });
            });
    }
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;
            });
    }
373203
function f_haber_ekle(tahta_id, kul_id, haber) {

        if (kul_id && kul_id > 0) {
            return f_kullanici_haber_ekle(kul_id, haber)
        } else {
            return f_tahta_haber_ekle(tahta_id, haber)
        }
    }
630717
function f_tahtadan_ayril(_tahta_id, _kul_id) {

        return result.dbQ.Q.all([
            result.dbQ.srem(result.kp.kullanici.ssetUyeOlduguTahtalari(_kul_id, true), _tahta_id),
            result.dbQ.hdel(result.kp.tahta.hsUyeleri(_tahta_id), _kul_id)
        ]).then(function () {
            emitter.emit(schema.SABIT.OLAY.TAHTA_AYRIL, _tahta_id, _kul_id);
            return _tahta_id;
        });
    }
754369
function f_kurum_teklif_temp(_tahta_id, _kurum_id, _para_id, _onay_id) {
        //kurumun verdiği teklif id lerini içeren temp oluştur
        return result.dbQ.exists(result.kp.temp.ssetTahtaKurumTeklifleri(_tahta_id, _kurum_id))
            .then(function (_iExist) {
                if (_iExist) {
                    return 1;
                } else {
                    return result.dbQ.sinterstore(result.kp.temp.ssetTahtaKurumTeklifleri(_tahta_id, _kurum_id),
                        result.kp.kurum.ssetTeklifleri(_kurum_id),
                        result.kp.tahta.ssetTeklifleri(_tahta_id, true));
                }
            })
            .then(function () {
                if (_para_id && _para_id > 0 && _para_id != null) {
                    //teklif tarihine göre x para birimli kurum teklifleri temp i oluştur
                    var anahtar = result.kp.temp.zsetKurumTeklifleriParaBirimli(_tahta_id, _kurum_id, _para_id);
                    return result.dbQ.exists(anahtar)
                        .then(function (_iExist) {
                            if (_iExist) {
                                return 1;
                            } else {
                                return result.dbQ.zinterstore(anahtar, 2, result.kp.temp.ssetTahtaKurumTeklifleri(_tahta_id, _kurum_id), result.kp.teklif.ssetTeklifParaBirimli(_para_id))
                            }
                        });
                } else {
                    return 1;
                }
            })
            .then(function () {
                if (_onay_id && _onay_id > 0 && _onay_id != null) {
                    //teklif tarihine göre x onay durumlu kurum teklifleri temp i oluştur
                    var anahtar = result.kp.temp.zsetKurumTeklifleriOnayDurumunaGore(_tahta_id, _kurum_id, _onay_id);
                    return result.dbQ.exists(anahtar)
                        .then(function (_iExist) {
                            if (_iExist) {
                                return 1;
                            } else {
                                return result.dbQ.zinterstore(anahtar, 2, result.kp.temp.ssetTahtaKurumTeklifleri(_tahta_id, _kurum_id), result.kp.teklif.ssetTeklifOnayDurumlari(_onay_id))
                            }
                        });
                } else {
                    return 1;
                }
            })
            .then(function () {
                return result.dbQ.smembers(result.kp.temp.ssetTahtaKurumTeklifleri(_tahta_id, _kurum_id));
            });
    }
398188
function f_urunle_teklif_verilen_ihale_sayisi(_tahta_id, _urun_id, _onay_id, _para_id, _tarih1, _tarih2) {
        //1 ürünle verilen teklifler için temp oluştur
        //2 tarih aralığındaki ihaleleri bul
        //3 ihaleye verilen teklifleri ile ürüne verilen tekliflerin kesişimi varsa ihale tarihinde teklif verildi diye 1 yaz yoksa 0 yaz
        //4 geçici anahtarı sil
        //5 ihale tarihine göre grupla ve toplamları dön

        var ihale = require('./db_ihale');

        return result.dbQ.Q.all([
            f_urun_teklif_temp(_tahta_id, _urun_id, _para_id, _onay_id),//1
            ihale.f_db_ihale_idler_aktif_tarih_araligindakiler(_tahta_id, _tarih1, _tarih2)//2
        ]).then(function (_ress) {
            var ihale_idler = _ress[1];

            return result.dbQ.hmget_json_parse(result.kp.ihale.tablo, ihale_idler)
                .then(function (ihaleler) {
                    if (ihaleler && ihaleler.length > 0) {
                        var arr = _.map(ihaleler, function (_ihale) {
                            //3

                            return (_onay_id && _onay_id != null && _onay_id != "" && _onay_id > 0
                                ?
                                result.dbQ.zinterstore("temp_utg", "2",
                                    result.kp.ihale.ssetTeklifleri(_ihale.Id),
                                    result.kp.temp.zsetUrunTeklifleriOnayDurumunaGore(_tahta_id, _urun_id, _onay_id))
                                :
                                result.dbQ.zinterstore("temp_utg", "2",
                                    result.kp.ihale.ssetTeklifleri(_ihale.Id),
                                    result.kp.temp.zsetUrunTeklifleriParaBirimli(_tahta_id, _urun_id, _para_id)))
                                .then(function (_iteklif_idler) {
                                    return {
                                        Key: _ihale.IhaleTarihi,
                                        Count: _iteklif_idler ? 1 : 0
                                    };
                                });
                        });
                        return result.dbQ.Q.all(arr)
                            .then(function (_res) {
                                //4 geçici oluşturulan anahtarı siliyoruz
                                result.dbQ.del("temp_utg");
                                return _res;
                            });
                    } else {
                        return [];
                    }
                });

        }).then(function (_result) {
            //5
            //buraya ihale tarihinde teklif atılmış ise teklif toplamları gelir
            //şimdi günlere göre gruplayarak tekliflerin toplamlarını sum ile hesaplamalıyız.
            if (_result && _result.length > 0) {
                var result = _.chain(_result)
                    .groupBy("Key")
                    .map(function (value, key) {
                        return {
                            Key: key,
                            Count: _.sum(_.map(value, "Count"))
                        }
                    })
                    .value();
                return _.sortBy(result, "Key");
            } else {
                return [];
            }
        });
    }
57939
function (_kalem_id, _tahta_id) {
        return db.tahta.f_db_tahta_anahtar_tumu(_tahta_id)
            .then(
                /**
                 *
                 * @param {AnahtarKelime[]} _arrKelimeler
                 * @returns {*}
                 */
                function (_arrKelimeler) {

                    var arr_idler = _arrKelimeler.pluckX("Id");
                    return arr_idler.mapX(null, db.anahtar.f_db_anahtar_index_sil_kalem, _kalem_id).allX();
                });
    }
878317
function f_tahta_anahtar_ekle(_tahta_id, _anahtar, _kul_id) {

        return result.f_db_anahtar_ekle(_anahtar.Anahtar)
            .then(
                /**
                 *
                 * @param {AnahtarKelime} _anahtarObjesi
                 * @returns {*}
                 */
                function (_anahtarObjesi) {
                    l.info("JSON.stringify(_anahtarObjesi):");
                    l.info(JSON.stringify(_anahtarObjesi));
                    emitter.emit(schema.SABIT.OLAY.TAHTA_ANAHTAR_EKLENDI, _tahta_id, _anahtarObjesi, _kul_id);
                    return result.dbQ.zadd(result.kp.tahta.zsetAnahtarKelimeleri(_tahta_id), new Date().getTime(), _anahtar.Anahtar)
                        .then(function () {
                            return _anahtarObjesi;
                        });
                });
    }
1184884
function f_rol_sil_kullanici(_kul_id, _tahta_id, _rol_id) {
        if (_rol_id) {
            return result.dbQ.hget_json_parse(result.kp.tahta.hsUyeleri(_tahta_id), _kul_id)
                .then(function (_arrUyeRolId) {
                    // tek bir sayı ya da bir dizi gelebilir ve biz diziyle yola devam etmek için concat yapıyoruz
                    _arrUyeRolId = [].concat(_arrUyeRolId);
                    var idxOfRolId = _arrUyeRolId.indexOf(_rol_id);
                    l.info("idxOfRolId>" + idxOfRolId);

                    if (idxOfRolId == -1) {
                        return 0;
                    } else {
                        _arrUyeRolId.splice(idxOfRolId, 1);
                        return result.dbQ.hset(result.kp.tahta.hsUyeleri(_tahta_id), _kul_id, JSON.stringify(_arrUyeRolId));
                    }
                });
        } else {
            l.warning("Silinecek aktif bir rol bulunamadı");
        }
    }
280348
function (_ihale, _tahta_id) {

        if (_tahta_id && _tahta_id > 0) {

            f_ihaleyi_indexle(_ihale, _tahta_id);

        } else {
            //t�m tahtalar� �ek
            return db.tahta.f_db_tahta_tumu()
                .then(function (_arrTahtalar) {

                    //her biri i�inde d�n�p �r�n�n/kurumun/tahtan�n/kullan�c�n�n anahtarlar�na ba�l� sat�rlar� varsa ihale_id yi yaz ve indexle
                    var arrPromises = _.map(_arrTahtalar, function (_dbTahta) {
                        console.log("tahtalar i�inde d�n�yoruz");

                        return f_ihaleyi_indexle(_ihale, _dbTahta.Id)
                            .then(function () {
                                return _ihale;
                            });
                    });

                    return db.redis.dbQ.Q.all(arrPromises);
                })
                .then(function () {
                    return _ihale;
                });
        }
    }
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;
            });
    }
809676
function f_tahtanin_takipteki_ihale_idleri(_tahta_id) {

        return result.dbQ.smembers(result.kp.tahta.ssetTakiptekiIhaleleri(_tahta_id))
            .then(function (_takipteki_ihale_idler) {

                //herhangibir kayıt yoksa boş dizi dönüyoruz
                if (!_takipteki_ihale_idler || _takipteki_ihale_idler.length == 0) {
                    return [];
                }

                return f_tahta_ihale_idler_aktif(_tahta_id)
                    .then(function (_aktif_ihale_idler) {
                        return _.intersection(_aktif_ihale_idler, _takipteki_ihale_idler);
                    });
            });
    }
613438
function f_tahtanin_gizlenen_kalemleri(_ihale_id, _tahta_id) {
        f_tahtanin_gizlenen_kalem_idleri(_ihale_id, _tahta_id)
            .then(function (_kalem_idler) {
                var db_kalem = require("./db_kalem");
                /** @type {OptionsKalem} */
                var opt = {};
                opt.bArrTeklifleri = false;
                opt.bOnayDurumu = true;
                opt.bTakiptemi = true;
                return db_kalem.f_db_kalem_id(_kalem_idler, _tahta_id, opt);
            });
    }
1269712
function f_teklif_urunleri(_teklif_id, _tahta_id, _opts) {

        return f_teklif_urun_idleri(_teklif_id)
            .then(function (_dbUrun_idler) {
                if (_dbUrun_idler && _dbUrun_idler.length > 0) {
                    console.log("_dbUrun_idler>" + _dbUrun_idler);

                    var db_urun = require("./db_urun");
                    return db_urun.f_db_urun_id(_dbUrun_idler, _tahta_id, _opts)

                } else {
                    return []
                }
            });
    }