From 5353123921f4ee10fed83cb030df4ee4bf19779b Mon Sep 17 00:00:00 2001 From: panariga Date: Sun, 14 Dec 2025 11:42:14 +0200 Subject: [PATCH] Update admin/model/payment/hutko.php --- admin/model/payment/hutko.php | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/admin/model/payment/hutko.php b/admin/model/payment/hutko.php index 26050af..e7563d1 100644 --- a/admin/model/payment/hutko.php +++ b/admin/model/payment/hutko.php @@ -3,24 +3,40 @@ namespace Opencart\Admin\Model\Extension\Hutko\Payment; class Hutko extends \Opencart\System\Engine\Model { public function install(): void { + // Drop old table if exists (Clean start for new architecture if needed) + // $this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "hutko_order`"); + + // Create new Transaction Table $this->db->query(" - CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "hutko_order` ( - `hutko_order_pk_id` INT(11) NOT NULL AUTO_INCREMENT, + CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "hutko_transaction` ( + `hutko_transaction_id` INT(11) NOT NULL AUTO_INCREMENT, `order_id` INT(11) NOT NULL, - `hutko_transaction_ref` VARCHAR(255) NOT NULL, + `hutko_ref` VARCHAR(64) NOT NULL, + `type` VARCHAR(32) NOT NULL, + `status` VARCHAR(32) NOT NULL, + `amount` DECIMAL(15,4) NOT NULL DEFAULT '0.0000', + `currency` VARCHAR(10) NOT NULL, + `payload` MEDIUMTEXT, `date_added` DATETIME NOT NULL, - PRIMARY KEY (`hutko_order_pk_id`), - UNIQUE KEY `idx_order_id` (`order_id`) + PRIMARY KEY (`hutko_transaction_id`), + KEY `idx_order_id` (`order_id`), + KEY `idx_hutko_ref` (`hutko_ref`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; "); } public function uninstall(): void { - // table drop optional + // Optional: $this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "hutko_transaction`"); } - public function getHutkoOrder(int $order_id): array { - $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "hutko_order` WHERE `order_id` = '" . (int)$order_id . "'"); - return $query->row; + public function getTransactions(int $order_id): array { + $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "hutko_transaction` WHERE `order_id` = '" . (int)$order_id . "' ORDER BY `date_added` DESC"); + return $query->rows; + } + + // Helper for history (OC4 compatibility) + public function addOrderHistory(int $order_id, int $order_status_id, string $comment = '', bool $notify = false): void { + $this->db->query("INSERT INTO `" . DB_PREFIX . "order_history` SET `order_id` = '" . (int)$order_id . "', `order_status_id` = '" . (int)$order_status_id . "', `notify` = '" . (int)$notify . "', `comment` = '" . $this->db->escape($comment) . "', `date_added` = NOW()"); + $this->db->query("UPDATE `" . DB_PREFIX . "order` SET `order_status_id` = '" . (int)$order_status_id . "', `date_modified` = NOW() WHERE `order_id` = '" . (int)$order_id . "'"); } } \ No newline at end of file