'wk_paypal_commerce_refund', 'primary' => 'id_paypal_commerce_refund', 'multilang' => false, 'fields' => array( 'order_trans_id' => array( 'type' => self::TYPE_INT, 'validate' => 'isUnsignedInt' ), 'paypal_refund_id' => array( 'type' => self::TYPE_STRING ), 'refund_amount' => array( 'type' => self::TYPE_FLOAT ), 'currency_code' => array( 'type' => self::TYPE_STRING ), 'refund_reason' => array( 'type' => self::TYPE_STRING ), 'refund_type' => array( 'type' => self::TYPE_INT, 'validate' => 'isUnsignedInt' ), 'response' => array( 'type' => self::TYPE_STRING ), 'refund_status' => array( 'type' => self::TYPE_STRING ), 'date_add' => array( 'type' => self::TYPE_DATE, 'required' => false, 'validate' => 'isDateFormat' ), 'date_upd' => array( 'type' => self::TYPE_DATE, 'required' => false, 'validate' => 'isDateFormat' ) ) ); public static function getRefundListByTransID($idTrans) { $refunds = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS( 'SELECT pcr.*, pco.`id_currency` FROM `'._DB_PREFIX_.'wk_paypal_commerce_refund` pcr LEFT JOIN `'._DB_PREFIX_.'wk_paypal_commerce_order` pco ON pcr.`order_trans_id` = pco.`id_paypal_commerce_order` WHERE pcr.`order_trans_id` = ' .(int) $idTrans.' ORDER BY pcr.`id_paypal_commerce_refund` DESC' ); if ($refunds) { foreach ($refunds as $key => $value) { $refunds[$key]['amount_refunded_formatted'] = Tools::displayPrice( $value['refund_amount'], new Currency((int)$value['id_currency']) ); } return $refunds; } return false; } /** * Get total refunded amount by order id * @param int $idTrans ID * @param bool $formatted Get formatted amount * @return float Total refunded amount */ public static function getTotalRefundedAmount($idTrans, $formatted = false) { $totalRefund = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow( 'SELECT SUM(pcr.`refund_amount`) AS sum_amount_refunded, pco.`id_currency` FROM `'._DB_PREFIX_.'wk_paypal_commerce_refund` pcr LEFT JOIN `'._DB_PREFIX_.'wk_paypal_commerce_order` pco ON pcr.`order_trans_id` = pco.`id_paypal_commerce_order` WHERE pcr.`order_trans_id` = ' .(int)$idTrans.' GROUP BY pcr.`order_trans_id`' ); if ($totalRefund) { $formattedAmt = Tools::displayPrice( $totalRefund['sum_amount_refunded'], new Currency((int)$totalRefund['id_currency']) ); return $formatted ? $formattedAmt : $totalRefund['sum_amount_refunded']; } return false; } }