docs: function f_kalem_onay_durumu_guncelle(_tahta_id, _ihale_id, _kalem_id, _onay_durumu) {
          var defer = result.dbQ.Q.defer();
  
          if (_onay_durumu && _onay_durumu.Id > 0) {
  
              f_kalem_onay_durumu(_kalem_id, _tahta_id)
                  .then(function (/** @type {OnayDurumu} */ _dbDurum) {
  
                      result.dbQ.Q.all([
                          (_dbDurum != null ? result.dbQ.srem(result.kp.kalem.ssetOnayDurumlari(_tahta_id, _dbDurum.Id), _kalem_id) : null),
                          result.dbQ.hset(result.kp.tahta.hsetKalemOnayDurumlari(_tahta_id), _kalem_id, JSON.stringify(_onay_durumu)),
                          result.dbQ.sadd(result.kp.kalem.ssetOnayDurumlari(_tahta_id, _onay_durumu.Id), _kalem_id)
                      ]);
                  })
                  .then(function () {
                      //kalemin durumu değiştiğinde elastic tarafını güncellememiz gerekiyor
                      //bu nedenle önce f_kalem_id metodundan kalem bilgisi alıp sonra da tetikleme işlemini yapıyoruz
                      f_kalem_id(_kalem_id, _tahta_id)
                          .then(function (_dbKalem) {
                              emitter.emit(schema.SABIT.OLAY.KALEM_DURUMU_GUNCELLENDI, _dbKalem, _ihale_id, _tahta_id);
  
                              defer.resolve(_kalem_id);
                          });
                  });
          } else {
              defer.resolve(_kalem_id);
          }
  
          return defer.promise;
      }