docs: function f_teklif_id(_teklif_id, _tahta_id, _opts) {
  
          function f_teklif_bilgisi(_teklif) {
              if (!_teklif) {
                  return null;
              }
  
              var olusan_teklif = schema.f_create_default_object(schema.SCHEMA.TEKLIF);
              olusan_teklif = _.extend(olusan_teklif, _teklif);
  
              return result.dbQ.Q.all([
                      opts.bKurumBilgisi ? result.dbQ.hget_json_parse(result.kp.kurum.tablo, _teklif.Kurum_Id) : {Id: 0},
                      opts.bKalemBilgisi ? result.dbQ.hget_json_parse(result.kp.kalem.tablo, _teklif.Kalem_Id) : {Id: 0},
                      opts.bIhaleBilgisi ? result.dbQ.hget_json_parse(result.kp.ihale.tablo, _teklif.Ihale_Id) : {Id: 0},
                      opts.bArrUrunler ? f_teklif_urunleri(_teklif.Id, _tahta_id, opts.optUrun) : []
                  ])
                  .then(function (_ress) {
                      olusan_teklif.Kurum = _ress[0];
                      olusan_teklif.Kalem = _ress[1];
                      olusan_teklif.Ihale = _ress[2];
                      olusan_teklif.Urunler = _ress[3];
                      return olusan_teklif;
                  });
          }
  
          var /** @type {OptionsTeklif} */
          opts = result.OptionsTeklif(_opts);
  
          return (Array.isArray(_teklif_id)
              ? result.dbQ.hmget_json_parse(result.kp.teklif.tablo, _teklif_id)
              : result.dbQ.hget_json_parse(result.kp.teklif.tablo, _teklif_id))
              .then(function (_dbTeklif) {
                  if (!_dbTeklif) {
                      return null;
                  } else {
  
  
                      return (Array.isArray(_dbTeklif)
                          ? _dbTeklif.mapX(null, f_teklif_bilgisi)
                          .allX()
                          : f_teklif_bilgisi(_dbTeklif))
                  }
              });
      }