docs: function f_kontrol(es_ihale, db_ihale, tahta_id, kurum_id, _kul_id) {
  
          var orj_ihale_id = db_ihale.Id;
          return f_id(orj_ihale_id, tahta_id)
              .then(function (_eski_ihale_bilgisi) {
  
                  return f_genel_kontrol(orj_ihale_id)
                      .then(function (_iGenelIhale) {
                          if (_iGenelIhale == 1) {
  
                              //genel ihaleler içinde kayıtlı
                              /*önce ezilen ihalelere ekle
                               * sonra ihale_id yi bir arttır ve yeni tahta ihalesi olarak ekle*/
                              return result.dbQ.sadd(result.kp.tahta.ssetEzilenIhaleleri(tahta_id), orj_ihale_id)
                                  .then(function () {
                                      return result.dbQ.incr(result.kp.ihale.idx)
                                          .then(function (_id) {
                                              es_ihale.Id = db_ihale.Id = _id;
                                              db_ihale.Orjinal_Id = orj_ihale_id;
  
                                              return result.dbQ.Q.all([
  
                                                  result.dbQ.hset(result.kp.ihale.tablo, _id, JSON.stringify(db_ihale)),
                                                  result.dbQ.sadd(result.kp.tahta.ssetOzelIhaleleri(tahta_id, true), _id),
                                                  result.dbQ.zadd(result.kp.ihale.zsetYapilmaTarihi, db_ihale.IhaleTarihi, db_ihale.Id)
  
                                              ]).then(function () {
  
                                                  /**ihaleyi indexle
                                                   * ama önce ihale id yi indexlenmişse listeden kaldırmalıyız.
                                                   * (gelen konu içinde indexlenecek anahtar var mı bilmiyoruz, bu nedenle kaldırılmalı)
                                                   */
  
                                                      //_ihale, _kurum_id, _tahta_id, _kul_id
                                                  emitter.emit(schema.SABIT.OLAY.IHALE_EKLENDI, es_ihale, kurum_id, tahta_id, _kul_id);
  
                                                  //ihalenin kurumunu ata
                                                  if (kurum_id > 0) {
                                                      return result.dbQ.Q.all([
                                                          result.dbQ.hset(result.kp.ihale.hsetYapanKurumlari, db_ihale.Id, kurum_id),
                                                          result.dbQ.srem(result.kp.kurum.ssetIhaleleri(_eski_ihale_bilgisi.Kurum_Id), db_ihale.Id),
                                                          result.dbQ.sadd(result.kp.kurum.ssetIhaleleri(kurum_id), db_ihale.Id)
                                                      ]);
                                                  } else {
                                                      return db_ihale;
                                                  }
  
                                              }).then(function () {
                                                  //satırları kopyala ve durumlarını düzenle
                                                  return f_guncellendi_satir_kontrol(tahta_id, db_ihale.Id, orj_ihale_id);
                                              }).then(function () {
                                                  //teklifi var mı kontrol et varsa düzenle
                                                  return f_guncellendi_teklif_kontrol(tahta_id, orj_ihale_id, db_ihale.Id);
                                              }).then(function () {
  
                                                  //ihale bilgisini dön
                                                  return f_id(db_ihale.Id, tahta_id);
                                              });
                                          });
                                  });
                          }
                          else {
  
                              // bu ihale genel değil, tahtaya eklenen özel ihaledir
  
                              return result.dbQ.Q.all([
                                  result.dbQ.hset(result.kp.ihale.tablo, db_ihale.Id, JSON.stringify(db_ihale)),
                                  result.dbQ.zrem(result.kp.ihale.zsetYapilmaTarihi, db_ihale.Id),
                                  result.dbQ.zadd(result.kp.ihale.zsetYapilmaTarihi, db_ihale.IhaleTarihi, db_ihale.Id)
  
                              ]).then(function () {
                                  /**ihaleyi indexle
                                   * ama önce ihale id yi indexlenmişse listeden kaldırmalıyız.
                                   * (gelen konu içinde indexlenecek anahtar var mı bilmiyoruz, bu nedenle kaldırılmalı)
                                   */
                                  emitter.emit(schema.SABIT.OLAY.IHALE_GUNCELLENDI,
                                      {
                                          eski_ihale: _eski_ihale_bilgisi,
                                          yeni_ihale: es_ihale,
                                          tahta_id: tahta_id,
                                          kul_id: _kul_id
                                      });
  
                                  if (kurum_id > 0) {
  
                                      //ihalenin kurumunu yenisiyle değiştiriyoruz
                                      //kurumun ihalelerinde eski kurumu çıkarıp yenisini ekliyoruz
  
                                      return result.dbQ.Q.all([
                                          result.dbQ.hset(result.kp.ihale.hsetYapanKurumlari, db_ihale.Id, kurum_id),
                                          result.dbQ.srem(result.kp.kurum.ssetIhaleleri(_eski_ihale_bilgisi.Kurum_Id), db_ihale.Id),
                                          result.dbQ.sadd(result.kp.kurum.ssetIhaleleri(kurum_id), db_ihale.Id)
                                      ]);
                                  }
                                  else {
                                      return db_ihale;
                                  }
                              }).then(function () {
                                  return f_id(db_ihale.Id, tahta_id);
                              });
                          }
                      });
              });
      }