Skip to content
Snippets Groups Projects
Commit a5f73a54 authored by Marco Folco's avatar Marco Folco
Browse files

Merge branch 'SOF-46-Remodelar_OS_prestaciones' into '12.0-stage'

[MOD] medical benefit

See merge request !54
parents fb8ef2bc 72819550
No related branches found
No related tags found
1 merge request!54[MOD] medical benefit
No preview for this file type
...@@ -6,8 +6,8 @@ msgid "" ...@@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 12.0\n" "Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-21 14:38+0000\n" "POT-Creation-Date: 2020-08-26 19:36+0000\n"
"PO-Revision-Date: 2020-08-21 11:39-0300\n" "PO-Revision-Date: 2020-08-26 16:37-0300\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
...@@ -47,11 +47,6 @@ msgstr "<strong>Verifique que la obra social sea correcta!</strong>" ...@@ -47,11 +47,6 @@ msgstr "<strong>Verifique que la obra social sea correcta!</strong>"
msgid "Amount expressed in galenos" msgid "Amount expressed in galenos"
msgstr "Importe expresado en galenos" msgstr "Importe expresado en galenos"
#. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__descriptor_id
msgid "Benefit"
msgstr "Prestación"
#. module: medical_benefit #. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__benefit_date #: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__benefit_date
msgid "Benefit Date" msgid "Benefit Date"
...@@ -113,7 +108,6 @@ msgstr "Código" ...@@ -113,7 +108,6 @@ msgstr "Código"
#. module: medical_benefit #. module: medical_benefit
#: code:addons/medical_benefit/models/medical_benefit.py:103 #: code:addons/medical_benefit/models/medical_benefit.py:103
#: code:addons/medical_benefit/models/medical_benefit_backup.py:103
#, python-format #, python-format
msgid "Code %s already exists!" msgid "Code %s already exists!"
msgstr "¡Código %s ya existe!" msgstr "¡Código %s ya existe!"
...@@ -158,10 +152,11 @@ msgid "Description" ...@@ -158,10 +152,11 @@ msgid "Description"
msgstr "Descripción" msgstr "Descripción"
#. module: medical_benefit #. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__descriptor_id
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_tariff__benefit_descriptor_id #: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_tariff__benefit_descriptor_id
#: model:ir.model.fields,field_description:medical_benefit.field_tariff__benefit_descriptor_id #: model:ir.model.fields,field_description:medical_benefit.field_tariff__benefit_descriptor_id
msgid "Descriptor" msgid "Descriptor"
msgstr "Practica" msgstr "Práctica"
#. module: medical_benefit #. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__display_name #: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__display_name
...@@ -191,8 +186,7 @@ msgid "Draft SOFSA" ...@@ -191,8 +186,7 @@ msgid "Draft SOFSA"
msgstr "Borrador SOFSA" msgstr "Borrador SOFSA"
#. module: medical_benefit #. module: medical_benefit
#: code:addons/medical_benefit/models/medical_benefit.py:378 #: code:addons/medical_benefit/models/medical_benefit.py:386
#: code:addons/medical_benefit/models/medical_benefit_backup.py:348
#, python-format #, python-format
msgid "" msgid ""
"Error!\n" "Error!\n"
...@@ -200,8 +194,7 @@ msgid "" ...@@ -200,8 +194,7 @@ msgid ""
msgstr "Error: la fecha de la presentación debe estar en el mismo mes y año en que fue realizada la prestación" msgstr "Error: la fecha de la presentación debe estar en el mismo mes y año en que fue realizada la prestación"
#. module: medical_benefit #. module: medical_benefit
#: code:addons/medical_benefit/models/medical_benefit.py:373 #: code:addons/medical_benefit/models/medical_benefit.py:381
#: code:addons/medical_benefit/models/medical_benefit_backup.py:343
#, python-format #, python-format
msgid "" msgid ""
"Error!\n" "Error!\n"
...@@ -239,7 +232,9 @@ msgid "Group By..." ...@@ -239,7 +232,9 @@ msgid "Group By..."
msgstr "Agrupar por..." msgstr "Agrupar por..."
#. module: medical_benefit #. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__insurance_plan_id
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_descriptor__health_insurance_id #: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_descriptor__health_insurance_id
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_tariff__insurance_plan_id
msgid "Health Insurance" msgid "Health Insurance"
msgstr "Obra Social" msgstr "Obra Social"
...@@ -288,7 +283,6 @@ msgid "Init" ...@@ -288,7 +283,6 @@ msgid "Init"
msgstr "" msgstr ""
#. module: medical_benefit #. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_tariff__insurance_id
#: model:ir.model.fields,field_description:medical_benefit.field_wizard_tariff_import__insurance_plan_id #: model:ir.model.fields,field_description:medical_benefit.field_wizard_tariff_import__insurance_plan_id
msgid "Insurance" msgid "Insurance"
msgstr "Obra Social" msgstr "Obra Social"
...@@ -367,8 +361,7 @@ msgid "Lens Code" ...@@ -367,8 +361,7 @@ msgid "Lens Code"
msgstr "Código de lente" msgstr "Código de lente"
#. module: medical_benefit #. module: medical_benefit
#: code:addons/medical_benefit/models/medical_benefit.py:385 #: code:addons/medical_benefit/models/medical_benefit.py:393
#: code:addons/medical_benefit/models/medical_benefit_backup.py:356
#, python-format #, python-format
msgid "Lens code already present in benefit with order number {}" msgid "Lens code already present in benefit with order number {}"
msgstr "El código de lente ya se encuentra presente en la prestación con número de orden {}" msgstr "El código de lente ya se encuentra presente en la prestación con número de orden {}"
...@@ -492,12 +485,6 @@ msgstr "Periodo" ...@@ -492,12 +485,6 @@ msgstr "Periodo"
msgid "Persistent" msgid "Persistent"
msgstr "Persistente" msgstr "Persistente"
#. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__insurance_plan_id
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_tariff__insurance_plan_id
msgid "Plan"
msgstr ""
#. module: medical_benefit #. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__presentation_date #: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__presentation_date
msgid "Presentation date" msgid "Presentation date"
...@@ -534,6 +521,11 @@ msgstr "Registros a importar" ...@@ -534,6 +521,11 @@ msgstr "Registros a importar"
msgid "Reimport" msgid "Reimport"
msgstr "Reimportar" msgstr "Reimportar"
#. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__related_benefit_id
msgid "Related benefit"
msgstr "Prestación relacionada"
#. module: medical_benefit #. module: medical_benefit
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__requires_eye #: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit__requires_eye
#: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_descriptor__requires_eye #: model:ir.model.fields,field_description:medical_benefit.field_medical_benefit_descriptor__requires_eye
...@@ -592,15 +584,19 @@ msgid "Tariffs" ...@@ -592,15 +584,19 @@ msgid "Tariffs"
msgstr "Aranceles" msgstr "Aranceles"
#. module: medical_benefit #. module: medical_benefit
#: code:addons/medical_benefit/models/medical_benefit.py:211 #: code:addons/medical_benefit/models/medical_benefit.py:280
#: code:addons/medical_benefit/models/medical_benefit_backup.py:204 #, python-format
msgid "That descriptor cannot be applied in both eyes (bilateral)"
msgstr "La práctica no puede ser aplicada en ambos ojos (bilateral)"
#. module: medical_benefit
#: code:addons/medical_benefit/models/medical_benefit.py:210
#, python-format #, python-format
msgid "There is already another eye with code %s" msgid "There is already another eye with code %s"
msgstr "Existe otro ojo con código %s" msgstr "Existe otro ojo con código %s"
#. module: medical_benefit #. module: medical_benefit
#: code:addons/medical_benefit/models/medical_benefit.py:427 #: code:addons/medical_benefit/models/medical_benefit.py:438
#: code:addons/medical_benefit/models/medical_benefit_backup.py:385
#, python-format #, python-format
msgid "There is another benefit with that order number" msgid "There is another benefit with that order number"
msgstr "Existe otra prestación con ese número de orden" msgstr "Existe otra prestación con ese número de orden"
......
...@@ -174,9 +174,8 @@ class MedicalBenefitTariff(models.Model): ...@@ -174,9 +174,8 @@ class MedicalBenefitTariff(models.Model):
_name = 'medical.benefit.tariff' _name = 'medical.benefit.tariff'
_description = 'Medical Benefit Tariff' _description = 'Medical Benefit Tariff'
insurance_id = fields.Many2one('res.partner', domain=[('partner_type','=','insurance')], string='Insurance', ondelete='restrict')
insurance_plan_id = fields.Many2one( insurance_plan_id = fields.Many2one(
'health.insurance.plan', 'Plan', required=True, ondelete='restrict') 'health.insurance.plan', 'Health Insurance', required=True, ondelete='restrict')
benefit_descriptor_id = fields.Many2one( benefit_descriptor_id = fields.Many2one(
'medical.benefit.descriptor', 'Descriptor', required=True, ondelete='restrict') 'medical.benefit.descriptor', 'Descriptor', required=True, ondelete='restrict')
valid_from = fields.Date('Valid From') valid_from = fields.Date('Valid From')
...@@ -255,11 +254,11 @@ class MedicalBenefit(models.Model): ...@@ -255,11 +254,11 @@ class MedicalBenefit(models.Model):
patient_id = fields.Many2one( patient_id = fields.Many2one(
'res.partner', 'Patient', required=True, ondelete='restrict') 'res.partner', 'Patient', required=True, ondelete='restrict')
insurance_plan_id = fields.Many2one( insurance_plan_id = fields.Many2one(
'health.insurance.plan', 'Plan', ondelete='restrict', 'health.insurance.plan', 'Health Insurance', ondelete='restrict',
default=lambda x: x.get_default_insurance_plan_id(), default=lambda x: x.get_default_insurance_plan_id(),
domain=lambda x: x.get_domain_insurance_plan_id()) domain=lambda x: x.get_domain_insurance_plan_id())
descriptor_id = fields.Many2one( descriptor_id = fields.Many2one(
'medical.benefit.descriptor', 'Benefit', required=True, ondelete='restrict') 'medical.benefit.descriptor', 'Descriptor', required=True, ondelete='restrict')
benefit_date = fields.Date('Benefit Date', required=True) benefit_date = fields.Date('Benefit Date', required=True)
presentation_date = fields.Date('Presentation date') presentation_date = fields.Date('Presentation date')
eye = fields.Many2one('medical.benefit.eye','Eye') eye = fields.Many2one('medical.benefit.eye','Eye')
...@@ -271,6 +270,21 @@ class MedicalBenefit(models.Model): ...@@ -271,6 +270,21 @@ class MedicalBenefit(models.Model):
show_lens = fields.Boolean('Show Lens',compute='_compute_show_lens') show_lens = fields.Boolean('Show Lens',compute='_compute_show_lens')
insurance_ref = fields.Char('Insurance code', related='insurance_plan_id.insurance_id.ref') insurance_ref = fields.Char('Insurance code', related='insurance_plan_id.insurance_id.ref')
user_insurance_ref = fields.Char(compute='_get_user_insurance_ref', search='_search_user_insurance_ref') user_insurance_ref = fields.Char(compute='_get_user_insurance_ref', search='_search_user_insurance_ref')
related_benefit_id = fields.Many2one('medical.benefit','Related benefit')
@api.constrains('eye')
def check_descriptor_eye(self):
name_os_list = ['I01','I02','I03','I04','I05','I06','I07','I08','I09','I10','I11','I12','I13','I14']
_logger.info("%s"%(self.eye))
if self.related_benefit_id and self.descriptor_id:
if self.descriptor_id.name_os in name_os_list:
raise ValidationError(_("That descriptor cannot be applied in both eyes (bilateral)"))
@api.constrains('order_number')
def check_related_order_number(self):
if self.related_benefit_id:
if self.related_benefit_id.order_number != self.order_number:
self.related_benefit_id.order_number = self.order_number
@api.multi @api.multi
def _search_user_insurance_ref(self, operator, value): def _search_user_insurance_ref(self, operator, value):
...@@ -385,14 +399,16 @@ class MedicalBenefit(models.Model): ...@@ -385,14 +399,16 @@ class MedicalBenefit(models.Model):
for benefit in self: for benefit in self:
super(MedicalBenefit, benefit).write(vals[benefit.id]) super(MedicalBenefit, benefit).write(vals[benefit.id])
benefit.validate_order_number() benefit.validate_order_number()
benefit.validate_benefit()
benefit.validate_lens_code() benefit.validate_lens_code()
if benefit.state == 'for_invoicing':
benefit.validate_benefit()
else: else:
if 'validation' not in vals: if 'validation' not in vals:
super(MedicalBenefit, self).write(vals) super(MedicalBenefit, self).write(vals)
self.validate_order_number() self.validate_order_number()
self.validate_benefit()
self.validate_lens_code() self.validate_lens_code()
if self.state == 'for_invoicing':
self.validate_benefit()
else: else:
del vals['validation'] del vals['validation']
super(MedicalBenefit, self).write(vals) super(MedicalBenefit, self).write(vals)
...@@ -402,21 +418,22 @@ class MedicalBenefit(models.Model): ...@@ -402,21 +418,22 @@ class MedicalBenefit(models.Model):
if 'eye' in vals and vals['eye'] == self.env.ref('medical_benefit.bilateral_eye').id: if 'eye' in vals and vals['eye'] == self.env.ref('medical_benefit.bilateral_eye').id:
vals['eye'] = self.env.ref('medical_benefit.left_eye').id vals['eye'] = self.env.ref('medical_benefit.left_eye').id
benef_left = super(MedicalBenefit, self).create(vals) benef_left = super(MedicalBenefit, self).create(vals)
benef_left.validate_order_number()
vals['eye'] = self.env.ref('medical_benefit.right_eye').id vals['eye'] = self.env.ref('medical_benefit.right_eye').id
benef_right = super(MedicalBenefit, self).create(vals) vals['related_benefit_id'] = benef_left.id
benef_left.validate_benefit() benef_right = self.create(vals)
benef_right.validate_benefit() benef_left.related_benefit_id = benef_right
return benef_left return benef_left
benef = super(MedicalBenefit, self).create(vals) benef = super(MedicalBenefit, self).create(vals)
benef.validate_order_number() benef.validate_order_number()
benef.validate_benefit()
benef.validate_lens_code() benef.validate_lens_code()
return benef return benef
@api.multi @api.multi
def validate_order_number(self): def validate_order_number(self):
if self.order_number: if self.order_number:
benefits = self.search_count([('order_number','=',self.order_number),('id','!=',self.id)]) related_id = self.related_benefit_id.id if self.related_benefit_id else False
benefits = self.search_count([('order_number','=',self.order_number),('id','!=',self.id),('id','!=',related_id)])
if benefits >= 1: if benefits >= 1:
raise ValidationError(_("There is another benefit with that order number")) raise ValidationError(_("There is another benefit with that order number"))
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
<field name="name" <field name="name"
filter_domain="['|',('name','ilike',self), filter_domain="['|',('name','ilike',self),
('name_os','=',self)]"/> ('name_os','=',self)]"/>
<field name="description"/>
<field name="name_os"/> <field name="name_os"/>
<field name='health_insurance_id'/> <field name='health_insurance_id'/>
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment