Current File : /var/www/vinorea/modules/ipexportimport/classes/import/order/EIAConfigurationFields.php
<?php
/**
 *
 * NOTICE OF LICENSE
 *
 *  @author    SmartPresta <tehran.alishov@gmail.com>
 *  @copyright 2024 SmartPresta
 *  @license   Commercial License
 */

if (!defined('_PS_VERSION_')) {
    exit;
}

class EIAConfigurationFields
{
    const TABLE_NAME_FIELDS = 'mpm_ipexportimport_fields';
    const TABLE_NAME_FIELDS_WITH_PREFIX = _DB_PREFIX_ . 'mpm_ipexportimport_fields';

    public static function removeBySettingsId($id_settings)
    {
        Db::getInstance(_PS_USE_SQL_SLAVE_)->delete(self::TABLE_NAME_FIELDS, 'id_setting=' . (int)$id_settings);
    }

    public static function save($id_settings, $fields)
    {
        foreach ($fields as $k => $tab) {
            foreach ($tab as $key => $field) {
                $fields_data = [
                    'id_setting'     => (int)$id_settings,
                    'field'          => pSQL($key),
                    'field_value'    => pSQL($field['val']),
                    'tab'            => pSQL($k),
                ];
                Db::getInstance(_PS_USE_SQL_SLAVE_)->insert(self::TABLE_NAME_FIELDS, $fields_data);
            }
        }
        return true;
    }

    public static function import($id_settings, $fields)
    {
        foreach ($fields as $field) {
            $field['id_setting'] = (int)$id_settings;
            Db::getInstance(_PS_USE_SQL_SLAVE_)->insert(self::TABLE_NAME_FIELDS, $field);
        }
        return true;
    }

    public static function getModuleSettingsFieldsById($id_setting, $prepare = false)
    {
        $sql = "
			  SELECT *
              FROM " . self::TABLE_NAME_FIELDS_WITH_PREFIX . "  AS s
              WHERE s.id_setting = ".(int)$id_setting."
			";
        $data = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
        if($prepare){
            return (new self())->prepareFields($data);
        }
        return $data;
    }

    public static function getSettingsFieldsById($id_setting)
    {
        $new_data = array();
        $sql = "
			  SELECT *
              FROM " . self::TABLE_NAME_FIELDS_WITH_PREFIX . "  AS s
              WHERE s.id_setting = ".(int)$id_setting."
			";
        $data = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
        foreach ($data as $val){
            $tab = $val['tab'];
            $field = $val['field'];
            $value = $val['field_value'];
            $new_data[$tab][$field]['val'] = $value;
        }
        return $new_data;
    }

    public function prepareFields($settings){
        $new_array = array();
        foreach ($settings as $val){
            $new_array[$val['field']] = $val['field_value'];
        }
        return $new_array;
    }

    public function prepareFieldsAjax($data){
        $new_array = array();
        foreach ($data as $value){
            foreach ($value as $key => $val){
                $new_array[$key] = $val['val'];
            }
        }
        return $new_array;
    }
    
}