\"feat(#4): A¤ade l¢gica de autogeneraci¢n y campo de origen\"
This commit is contained in:
parent
aef6e49c50
commit
da27d0bc83
|
@ -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',
|
||||
],
|
||||
|
|
13
lims_management/data/ir_sequence.xml
Normal file
13
lims_management/data/ir_sequence.xml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<!-- Secuencia para el Identificador de Paciente -->
|
||||
<record id="seq_patient_identifier" model="ir.sequence">
|
||||
<field name="name">Patient Identifier Sequence</field>
|
||||
<field name="code">res.partner.patient_identifier</field>
|
||||
<field name="prefix">P</field>
|
||||
<field name="padding">6</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
|
@ -6,7 +6,8 @@
|
|||
<record id="demo_patient_1" model="res.partner">
|
||||
<field name="name">Ana Torres</field>
|
||||
<field name="is_patient" eval="True"/>
|
||||
<field name="patient_identifier">P0001</field>
|
||||
<field name="patient_identifier">P-A87B01</field>
|
||||
<field name="origin">Carga Inicial</field>
|
||||
<field name="birthdate_date">1985-05-15</field>
|
||||
<field name="gender">female</field>
|
||||
<field name="phone">+1-202-555-0174</field>
|
||||
|
@ -16,7 +17,8 @@
|
|||
<record id="demo_patient_2" model="res.partner">
|
||||
<field name="name">Carlos Ruiz</field>
|
||||
<field name="is_patient" eval="True"/>
|
||||
<field name="patient_identifier">P0002</field>
|
||||
<field name="patient_identifier">P-C45D02</field>
|
||||
<field name="origin">Carga Inicial</field>
|
||||
<field name="birthdate_date">1992-11-20</field>
|
||||
<field name="gender">male</field>
|
||||
<field name="phone">+1-202-555-0192</field>
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
<group>
|
||||
<group>
|
||||
<field name="is_patient"/>
|
||||
<field name="patient_identifier" invisible="not is_patient"/>
|
||||
<field name="patient_identifier" invisible="not is_patient" readonly="patient_identifier"/>
|
||||
<field name="origin" readonly="id" invisible="not is_patient"/>
|
||||
<field name="birthdate_date" invisible="not is_patient"/>
|
||||
<field name="gender" invisible="not is_patient"/>
|
||||
</group>
|
||||
|
|
Loading…
Reference in New Issue
Block a user