<?php
// Dosya: admin/controller/extension/module/hb_buybox.php

// SimpleXLSX kütüphanesini dahil edin
include(DIR_SYSTEM . '/library/SimpleXLSX.php');

class ControllerExtensionModuleHbBuybox extends Controller {
    private $error = array();

    public function index() {
        // Dil dosyasını yükle ve başlık ayarla
        $this->load->language('extension/module/hb_buybox');
        $this->document->setTitle($this->language->get('heading_title'));

        // Gerekirse ayar modelini de yükleyin
        $this->load->model('setting/setting');

        // Form gönderilmiş ve validate() başarılıysa işlemi başlat
        if ($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) {
            // Yüklenen dosya var mı kontrol et
            if (!empty($this->request->files['excel_file']['tmp_name'])
                && is_file($this->request->files['excel_file']['tmp_name'])) {

                $file = $this->request->files['excel_file']['tmp_name'];
                $total_updated = 0;

                // XLSX dosyasını parse et
                if ($xlsx = @SimpleXLSX::parse($file)) {
                    // "Listelerim" sekmesindeki tüm satırları al
                    $rows = $xlsx->rows(1);


                    // Başlık satırını atla
                    array_shift($rows);

                    foreach ($rows as $row) {
                        // 0. sütun = SKU, 1. sütun = Buybox sırası
                        $hb_sku      = trim($row[3]);
                        $buyboxOrder = (int) trim($row[1]);

                        if ($hb_sku !== '' && $buyboxOrder > 0) {
                            // Veritabanını güncelle
                            $this->db->query(
                                "UPDATE `market_product` SET
                                   `buybox` = " . (int)$buyboxOrder . "
                                 WHERE
                                   `marketplace_product_id` = '" . $this->db->escape($hb_sku) . "'"
                            );

                            if ($this->db->countAffected() > 0) {
                                $total_updated++;
                            }
                        }
                    }
                }

                // Başarı mesajı
                $this->session->data['success'] =
                    $this->language->get('text_success')
                    . " Toplam {$total_updated} adet ürün güncellendi!";
            } else {
                $this->error['warning'] = $this->language->get('error_upload');
            }
        }

        // Hata mesajını view'a aktar
        if (isset($this->error['warning'])) {
            $data['error_warning'] = $this->error['warning'];
        } else {
            $data['error_warning'] = '';
        }

        // Form action ve iptal linkleri
        $data['action'] = $this->url->link(
            'extension/module/hb_buybox',
            'user_token=' . $this->session->data['user_token'],
            true
        );
        $data['cancel'] = $this->url->link(
            'marketplace/extension',
            'user_token=' . $this->session->data['user_token'],
            true
        );

        // Dil değişkenleri
        $data['heading_title'] = $this->language->get('heading_title');
        $data['text_edit']     = $this->language->get('text_edit');
        $data['button_save']   = $this->language->get('button_save');
        $data['button_cancel'] = $this->language->get('button_cancel');

        // Breadcrumbs
        $data['breadcrumbs'] = array(
            array(
                'text' => $this->language->get('text_home'),
                'href' => $this->url->link(
                    'common/dashboard',
                    'user_token=' . $this->session->data['user_token'],
                    true
                )
            ),
            array(
                'text' => $this->language->get('text_extension'),
                'href' => $this->url->link(
                    'marketplace/extension',
                    'user_token=' . $this->session->data['user_token'],
                    true
                )
            ),
            array(
                'text' => $this->language->get('heading_title'),
                'href' => $this->url->link(
                    'extension/module/hb_buybox',
                    'user_token=' . $this->session->data['user_token'],
                    true
                )
            )
        );

        // Header, column_left, footer
        $data['header']      = $this->load->controller('common/header');
        $data['column_left'] = $this->load->controller('common/column_left');
        $data['footer']      = $this->load->controller('common/footer');

        // Görünümü render et
        $this->response->setOutput(
            $this->load->view('extension/module/hb_buybox', $data)
        );
    }

    protected function validate() {
        // Gerekirse izin kontrollerini ekleyin
        return !$this->error;
    }
}
