Example #1
0
/**
 * 2016-07-28
 * @see dfp_by_trans()
 * @param OP|int $payment
 * @param string $type
 * @return T|null
 */
function df_trans_by_payment($payment, $type)
{
    return dfcf(function ($paymentId, $type) {
        /** @var \Magento\Framework\DB\Select $select */
        $select = df_db_from('sales_payment_transaction', 'transaction_id');
        $select->where('? = payment_id', $paymentId);
        /**
         * 2016-08-17
         * Раньше здесь стояло условие
         * $select->where('parent_txn_id IS NULL');
         * потому что код использовался только для получения первой (родительской) транзакции.
         * Убрал это условие, потому что даже для первой транзакции оно не нужно:
         * ниже ведь используется операция order, и транзакция с минимальным идентификатором
         * и будет родительской.
         * Для функции же @used-by df_trans_by_payment_last() условие
         * $select->where('parent_txn_id IS NULL');
         * и вовсе ошибочно: оно отбраковывает все дочерние транзакции.
         */
        /**
         * 2016-07-28
         * Раньше стояла проверка: df_assert_eq(1, count($txnIds));
         * Однако при разработке платёжных модулей бывает,
         * что у первых транзакций данные не всегда корректны.
         * Негоже из-за этого падать, лучше вернуть просто первую транзакцию, как нас и просят.
         */
        $select->order('transaction_id ' . ('first' === $type ? 'asc' : 'desc'));
        /** @var int $id */
        $id = df_conn()->fetchOne($select, 'transaction_id');
        return !$id ? null : df_trans_r()->get($id);
    }, [df_idn($payment), $type]);
}
Example #2
0
/**
 * 2016-05-21
 * How to get an order backend URL programmatically? https://mage2.pro/t/1639
 * 2016-05-22
 * Даже если включена опция «Add Secret Key to URLs», адреса без ключей всё равно работают.
 * https://mage2.pro/tags/backend-url-secret-key
 * How to skip adding the secret key to a backend URL using the «_nosecret» parameter?
 * https://mage2.pro/t/1644
 * 2016-08-24
 * @see df_customer_backend_url()
 * @see df_cm_backend_url()
 * @param O|int $o
 * @return string
 */
function df_order_backend_url($o)
{
    return df_url_backend_ns('sales/order/view', ['order_id' => df_idn($o)]);
}
Example #3
0
/**
 * 2016-05-21
 * @see df_order_backend_url()
 * @param CM|int $cm
 * @return string
 */
function df_cm_backend_url($cm)
{
    return df_url_backend_ns('sales/order_creditmemo/view', ['creditmemo_id' => df_idn($cm)]);
}
Example #4
0
/**
 * 2016-08-24
 * By analogy with @see \Magento\Backend\Block\Dashboard\Tab\Customers\Newest::getRowUrl()
 * @see df_order_backend_url()
 * @see df_cm_backend_url()
 * @param C|int|null $c
 * @return string|null
 */
function df_customer_backend_url($c)
{
    return !$c ? null : df_url_backend_ns('customer/index/edit', ['id' => df_idn($c)]);
}