diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-08-23 11:40:12 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-08-23 11:40:12 +0700 |
| commit | e8731dea7c65b94df563f3e9a11f6bf1ed56ded1 (patch) | |
| tree | 47fb8959f2e862eb72df4bfac4bab8d4a8c9945b /indoteknik_custom/models/base_import_import.py | |
| parent | 98f8e7d9c548dccf519f0ac53143b61f2151eb9b (diff) | |
Add disable import function
Diffstat (limited to 'indoteknik_custom/models/base_import_import.py')
| -rw-r--r-- | indoteknik_custom/models/base_import_import.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/indoteknik_custom/models/base_import_import.py b/indoteknik_custom/models/base_import_import.py new file mode 100644 index 00000000..c277f9a2 --- /dev/null +++ b/indoteknik_custom/models/base_import_import.py @@ -0,0 +1,47 @@ +from odoo import models +from odoo.exceptions import UserError +from datetime import datetime + +class Import(models.TransientModel): + _inherit = 'base_import.import' + + def _get_config_enable_import(self): + return self.env['ir.config_parameter'].get_param('base_import.import.enable_import', '') + + def _check_time_range(self, config_string): + current_time = datetime.now().time() + ranges = config_string.split(' / ') + + for time_range in ranges: + start_str, end_str = time_range.split(' - ') + start_time = datetime.strptime(start_str, '%H:%M:%S').time() + end_time = datetime.strptime(end_str, '%H:%M:%S').time() + + if start_time <= current_time and current_time <= end_time: + return True + + return False + + def _check_enable_import(self): + enable_import = self._get_config_enable_import() + if enable_import.lower() == 'true': + return True + elif enable_import.lower() == 'false': + return False + elif '-' in enable_import: + return self._check_time_range(enable_import) + + return True + + def _unable_import_notif(self): + enable_import_config = self._get_config_enable_import() + message = 'Import tidak dapat dilakukan saat ini. Hubungi Tim IT.' + if '-' in enable_import_config: + message = f'Import tidak dapat dilakukan saat ini. Anda bisa melakukannya di rentang waktu berikut: {enable_import_config}' + raise UserError(message) + + def do(self, fields, columns, options, dryrun=False): + enable_import = self._check_enable_import() + if not enable_import: + self._unable_import_notif() + return super(Import, self).do(fields, columns, options, dryrun) |
