diff --git a/lims_management/__manifest__.py b/lims_management/__manifest__.py index 71c4ec4..e3116fd 100644 --- a/lims_management/__manifest__.py +++ b/lims_management/__manifest__.py @@ -20,6 +20,7 @@ 'data': [ 'security/lims_security.xml', 'security/ir.model.access.csv', + 'data/ir_sequence.xml', 'views/menus.xml', 'views/partner_views.xml', ], diff --git a/lims_management/data/ir_sequence.xml b/lims_management/data/ir_sequence.xml new file mode 100644 index 0000000..1bb0b3c --- /dev/null +++ b/lims_management/data/ir_sequence.xml @@ -0,0 +1,13 @@ + + + + + + Patient Identifier Sequence + res.partner.patient_identifier + P + 6 + + + + diff --git a/lims_management/data/lims_demo.xml b/lims_management/data/lims_demo.xml index c373c56..145c6d7 100644 --- a/lims_management/data/lims_demo.xml +++ b/lims_management/data/lims_demo.xml @@ -6,7 +6,8 @@ Ana Torres - P0001 + P-A87B01 + Carga Inicial 1985-05-15 female +1-202-555-0174 @@ -16,7 +17,8 @@ Carlos Ruiz - P0002 + P-C45D02 + Carga Inicial 1992-11-20 male +1-202-555-0192 diff --git a/lims_management/models/partner.py b/lims_management/models/partner.py index e691ffe..f90bc73 100644 --- a/lims_management/models/partner.py +++ b/lims_management/models/partner.py @@ -6,6 +6,11 @@ class ResPartner(models.Model): is_patient = fields.Boolean(string="Es Paciente") patient_identifier = fields.Char(string="Identificador de Paciente", copy=False) + origin = fields.Char( + string="Origen", + default='Manual', + help="Este campo indica el origen del registro del paciente (ej. Manual, Carga Inicial)." + ) birthdate_date = fields.Date(string="Fecha de Nacimiento") gender = fields.Selection([ ('male', 'Masculino'), @@ -20,3 +25,10 @@ class ResPartner(models.Model): ('patient_identifier_unique', 'unique(patient_identifier)', 'El identificador del paciente debe ser único.'), ('doctor_license_unique', 'unique(doctor_license)', 'La licencia médica debe ser única.') ] + + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + if vals.get('is_patient') and not vals.get('patient_identifier'): + vals['patient_identifier'] = self.env['ir.sequence'].next_by_code('res.partner.patient_identifier') + return super(ResPartner, self).create(vals_list) diff --git a/lims_management/views/partner_views.xml b/lims_management/views/partner_views.xml index de3e73b..4610484 100644 --- a/lims_management/views/partner_views.xml +++ b/lims_management/views/partner_views.xml @@ -12,7 +12,8 @@ - + +