diff --git a/lims_management/__manifest__.py b/lims_management/__manifest__.py
index 91f86ee..3aecd8d 100644
--- a/lims_management/__manifest__.py
+++ b/lims_management/__manifest__.py
@@ -16,7 +16,7 @@
'website': "https://gitea.grupoconsiti.com/luis_portillo/clinical_laboratory",
'category': 'Industries',
'version': '18.0.1.0.0',
- 'depends': ['base', 'product', 'sale'],
+ 'depends': ['base', 'product', 'sale', 'base_setup'],
'assets': {
'web.assets_backend': [
'lims_management/static/src/css/lims_test.css',
@@ -34,6 +34,7 @@
'views/sale_order_views.xml',
'views/stock_lot_views.xml',
'views/lims_test_views.xml',
+ 'views/res_config_settings_views.xml',
'views/menus.xml',
],
'demo': [
diff --git a/lims_management/models/__init__.py b/lims_management/models/__init__.py
index a49eb6c..78eb9f2 100644
--- a/lims_management/models/__init__.py
+++ b/lims_management/models/__init__.py
@@ -6,3 +6,4 @@ from . import sale_order
from . import stock_lot
from . import lims_test
from . import lims_result
+from . import res_config_settings
diff --git a/lims_management/models/__pycache__/__init__.cpython-312.pyc b/lims_management/models/__pycache__/__init__.cpython-312.pyc
index f3a9a8e..8a440fc 100644
Binary files a/lims_management/models/__pycache__/__init__.cpython-312.pyc and b/lims_management/models/__pycache__/__init__.cpython-312.pyc differ
diff --git a/lims_management/models/lims_test.py b/lims_management/models/lims_test.py
index cdd8464..c047b98 100644
--- a/lims_management/models/lims_test.py
+++ b/lims_management/models/lims_test.py
@@ -105,10 +105,10 @@ class LimsTest(models.Model):
@api.depends('company_id')
def _compute_require_validation(self):
"""Calcula si la prueba requiere validación basado en configuración."""
+ IrConfig = self.env['ir.config_parameter'].sudo()
+ require_validation = IrConfig.get_param('lims_management.require_validation', 'True')
for record in self:
- # Por ahora, siempre requiere validación
- # TODO: Implementar cuando se agregue res.config.settings
- record.require_validation = True
+ record.require_validation = require_validation == 'True'
@api.model_create_multi
def create(self, vals_list):
@@ -148,13 +148,23 @@ class LimsTest(models.Model):
if not self.result_ids:
raise UserError(_('Debe ingresar al menos un resultado.'))
- self.state = 'result_entered'
-
- # Log en el chatter
- self.message_post(
- body=_('Resultados ingresados por %s') % self.env.user.name,
- subject=_('Resultados Ingresados')
- )
+ # Si no requiere validación, pasar directamente a validado
+ if not self.require_validation:
+ self.write({
+ 'state': 'validated',
+ 'validator_id': self.env.user.id,
+ 'validation_date': fields.Datetime.now()
+ })
+ self.message_post(
+ body=_('Resultados ingresados y auto-validados por %s') % self.env.user.name,
+ subject=_('Resultados Validados')
+ )
+ else:
+ self.state = 'result_entered'
+ self.message_post(
+ body=_('Resultados ingresados por %s') % self.env.user.name,
+ subject=_('Resultados Ingresados')
+ )
return True
diff --git a/lims_management/models/res_config_settings.py b/lims_management/models/res_config_settings.py
new file mode 100644
index 0000000..ed0ddcb
--- /dev/null
+++ b/lims_management/models/res_config_settings.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields, api
+
+
+class ResConfigSettings(models.TransientModel):
+ _inherit = 'res.config.settings'
+
+ lims_require_validation = fields.Boolean(
+ string='Requerir Validación de Resultados',
+ help='Si está activado, los resultados de las pruebas deben ser validados por un administrador antes de considerarse finales.',
+ config_parameter='lims_management.require_validation',
+ default=True
+ )
+
+ lims_auto_generate_tests = fields.Boolean(
+ string='Generar Pruebas Automáticamente',
+ help='Si está activado, se generarán automáticamente registros de pruebas (lims.test) cuando se confirme una orden de laboratorio.',
+ config_parameter='lims_management.auto_generate_tests',
+ default=False
+ )
\ No newline at end of file
diff --git a/lims_management/views/menus.xml b/lims_management/views/menus.xml
index b2123d5..e8e789b 100644
--- a/lims_management/views/menus.xml
+++ b/lims_management/views/menus.xml
@@ -167,5 +167,12 @@
parent="lims_menu_config"
action="action_lims_sample_type_catalog"
sequence="20"/>
+
+
+
diff --git a/lims_management/views/res_config_settings_views.xml b/lims_management/views/res_config_settings_views.xml
new file mode 100644
index 0000000..1e7e15a
--- /dev/null
+++ b/lims_management/views/res_config_settings_views.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ res.config.settings.view.form.inherit.lims
+ res.config.settings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuración
+ ir.actions.act_window
+ res.config.settings
+ form
+ inline
+ {'module' : 'lims_management'}
+
+
+
+
\ No newline at end of file