protected function getQueryItems()
    {
        /* this is primary query builder, not extender */
        $result = parent::getQueryItems();

        /* define tables aliases for internal usage (in this method) */
        $asAccCred = self::AS_ACC_CREDIT;
        $asAccDeb = self::AS_ACC_DEBIT;
        $asDwnlCred = self::AS_DWNL_CRED;
        $asDwnlDeb = self::AS_DWNL_DEB;

        /* LEFT JOIN prxgt_dwnl_customer as debit */
        $tbl = $this->resource->getTableName(self::E_DWNL_CUST);
        $as = $asDwnlDeb;
        $cols = [
            self::A_MLM_ID_DEBIT => EDownline::A_MLM_ID
        ];
        $cond = "$as." . EDownline::A_CUSTOMER_REF . '=' . $asAccDeb . '.' . EAccount::A_CUST_ID;
        $result->joinLeft([$as => $tbl], $cond, $cols);

        /* LEFT JOIN prxgt_dwnl_customer as credit */
        $tbl = $this->resource->getTableName(self::E_DWNL_CUST);
        $as = $asDwnlCred;
        $cols = [
            self::A_MLM_ID_CREDIT => EDownline::A_MLM_ID
        ];
        $cond = "$as." . EDownline::A_CUSTOMER_REF . '=' . $asAccCred . '.' . EAccount::A_CUST_ID;
        $result->joinLeft([$as => $tbl], $cond, $cols);

        /* return  result */
        return $result;
    }