/** * 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]); }
/** * 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)]); }
/** * 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)]); }
/** * 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)]); }