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

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

class EIAConfiguration
{
    const TABLE_NAME_IMPORT = 'mpm_ipexportimport_settings';
    const TABLE_NAME_IMPORT_WITH_PREFIX = _DB_PREFIX_ . self::TABLE_NAME_IMPORT;

    public static function update($id_settings, $configuration)
    {
        Db::getInstance(_PS_USE_SQL_SLAVE_)->update(self::TABLE_NAME_IMPORT, $configuration, 'id_setting=' . (int)$id_settings);
    }

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

    public static function add($configuration)
    {
        Db::getInstance(_PS_USE_SQL_SLAVE_)->insert(self::TABLE_NAME_IMPORT, $configuration);
        $id_configuration = Db::getInstance(_PS_USE_SQL_SLAVE_)->Insert_ID();
        if (!$id_configuration) {
            throw new Exception(EIATranslatorWrapper::l('Can\'t save export configuration. Please contact us!'));
        }
        return $id_configuration;
    }

    public function getModuleSettingsList($with_date = false)
    {
        $sql = '
			  SELECT *
              FROM ' . self::TABLE_NAME_IMPORT_WITH_PREFIX . '  AS s
              WHERE 1
			';
        $res = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
        if($with_date){
            foreach ($res as $key => $val){
                $res[$key]['date_import'] = self::getLastRunDate($val['id_setting']);
            }
        }
        return $res;
    }

    public function getLastRunDate($id_settings)
    {
        $sql = '
			  SELECT p.start
              FROM ' .  _DB_PREFIX_  . 'mpm_ipexportimport_process  AS p
              WHERE p.id_settings = '.(int)$id_settings.'
              ORDER BY  p.start DESC 
			';
        $res = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
        if($res){
            return date(Context::getContext()->language->date_format_full, $res);
        }
        return false;
    }

    public static function getModuleSettingsById($id_setting)
    {
        $sql = "
			  SELECT *
              FROM " . self::TABLE_NAME_IMPORT_WITH_PREFIX . "  AS s
              WHERE s.id_setting = ".(int)$id_setting."
			";
        $res = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
        if(isset($res[0]) && $res[0]){
            return $res[0];
        }
        return false;
    }

    public function getCountModuleSettings()
    {
        $sql = '
			  SELECT count(*) as count_settings
              FROM ' . self::TABLE_NAME_IMPORT_WITH_PREFIX . '  AS s
              WHERE 1
			';
        $res = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
        if(isset($res[0]['count_settings']) && $res[0]['count_settings']){
            return $res[0]['count_settings'];
        }
        return 0;
    }
    
}