mirror of
https://bitbucket.org/presik/trytonpsk-crm_fiduprevisora.git
synced 2023-12-14 05:33:07 +01:00
Fix
This commit is contained in:
parent
f2d1fe8f03
commit
d158d1c728
10 changed files with 108 additions and 77 deletions
|
@ -1,4 +1,4 @@
|
||||||
Copyright (C) 2019 Presik Technologies.
|
Copyright (C) 2019-2023 Presik Technologies.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
14
__init__.py
14
__init__.py
|
@ -1,6 +1,5 @@
|
||||||
#This file is part product_barcode module for Tryton.
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
#The COPYRIGHT file at the top level of this repository contains
|
# this repository contains the full copyright notices and license terms.
|
||||||
#the full copyright notices and license terms.
|
|
||||||
|
|
||||||
from trytond.pool import Pool
|
from trytond.pool import Pool
|
||||||
from . import configuration
|
from . import configuration
|
||||||
|
@ -17,10 +16,6 @@ def register():
|
||||||
party.RegionFiduprevisora,
|
party.RegionFiduprevisora,
|
||||||
party.DepartmentCode,
|
party.DepartmentCode,
|
||||||
party.Party,
|
party.Party,
|
||||||
# customer_service.UserFiduprevisora,
|
|
||||||
# customer_service.FiduprevisoraDepartment,
|
|
||||||
# customer_service.FiduprevisoraCity,
|
|
||||||
# customer_service.FiduprevisoraRegionDepartment,
|
|
||||||
customer_service.ListSpecialty,
|
customer_service.ListSpecialty,
|
||||||
customer_service.ReceiverService,
|
customer_service.ReceiverService,
|
||||||
customer_service.CustomerService,
|
customer_service.CustomerService,
|
||||||
|
@ -32,6 +27,11 @@ def register():
|
||||||
customer_service.CustomerReceiver,
|
customer_service.CustomerReceiver,
|
||||||
customer_service.AppCustomerFiduprevisora,
|
customer_service.AppCustomerFiduprevisora,
|
||||||
dash.DashApp,
|
dash.DashApp,
|
||||||
|
dash.AppConsultaPQR,
|
||||||
|
# customer_service.UserFiduprevisora,
|
||||||
|
# customer_service.FiduprevisoraDepartment,
|
||||||
|
# customer_service.FiduprevisoraCity,
|
||||||
|
# customer_service.FiduprevisoraRegionDepartment,
|
||||||
module='crm_fiduprevisora', type_='model')
|
module='crm_fiduprevisora', type_='model')
|
||||||
Pool.register(
|
Pool.register(
|
||||||
customer_service.FiduprevisoraReportWizard,
|
customer_service.FiduprevisoraReportWizard,
|
||||||
|
|
4
case.py
4
case.py
|
@ -1,7 +1,7 @@
|
||||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
# this repository contains the full copyright notices and license terms.
|
# this repository contains the full copyright notices and license terms.
|
||||||
from trytond.model import ModelView, ModelSQL, fields
|
from trytond.model import fields
|
||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import PoolMeta
|
||||||
from trytond.pyson import Eval, Bool, Not
|
from trytond.pyson import Eval, Bool, Not
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,9 @@ from trytond.pool import PoolMeta
|
||||||
|
|
||||||
class Configuration(metaclass=PoolMeta):
|
class Configuration(metaclass=PoolMeta):
|
||||||
__name__ = 'crm.configuration'
|
__name__ = 'crm.configuration'
|
||||||
|
region_defect = fields.Many2One('crm.region_fiduprevisora',
|
||||||
region_defect = fields.Many2One('crm.region_fiduprevisora', 'Region For Defect')
|
'Region For Defect')
|
||||||
response_mail_template = fields.Many2One('email.template', 'Template Response Emails')
|
response_mail_template = fields.Many2One('email.template',
|
||||||
notification_mail_template = fields.Many2One('email.template', 'Template Notification Emails')
|
'Template Response Emails')
|
||||||
|
notification_mail_template = fields.Many2One('email.template',
|
||||||
|
'Template Notification Emails')
|
||||||
|
|
|
@ -1,14 +1,11 @@
|
||||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
# this repository contains the full copyright notices and license terms.
|
# this repository contains the full copyright notices and license terms.
|
||||||
from __future__ import with_statement
|
|
||||||
from bdb import effective
|
|
||||||
|
|
||||||
from datetime import datetime, timedelta, time
|
from datetime import datetime, timedelta, time
|
||||||
from trytond.model import Workflow, ModelView, ModelSQL, fields
|
from trytond.model import Workflow, ModelView, ModelSQL, fields
|
||||||
from trytond.pyson import Eval, If, In, Get, Or, Bool, Not
|
from trytond.pyson import Eval, Or, Bool, Not
|
||||||
from trytond.transaction import Transaction
|
from trytond.transaction import Transaction
|
||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.wizard import Wizard, StateView, Button, StateReport, StateTransition
|
from trytond.wizard import Wizard, StateView, Button, StateReport
|
||||||
from trytond.report import Report
|
from trytond.report import Report
|
||||||
from .exceptions import MessageUserError
|
from .exceptions import MessageUserError
|
||||||
from trytond.modules.dash.dash import DashAppBase
|
from trytond.modules.dash.dash import DashAppBase
|
||||||
|
@ -18,16 +15,16 @@ STATES = {
|
||||||
}
|
}
|
||||||
|
|
||||||
NEW_MEDIA = new_sel = [
|
NEW_MEDIA = new_sel = [
|
||||||
('', ''),
|
('', ''),
|
||||||
('sede', 'Sede'),
|
('sede', 'Sede'),
|
||||||
('web', 'Web'),
|
('web', 'Web'),
|
||||||
('supersalud', 'Supersalud'),
|
('supersalud', 'Supersalud'),
|
||||||
]
|
]
|
||||||
|
|
||||||
CLASSIFICATION = new_sel = [
|
CLASSIFICATION = new_sel = [
|
||||||
('', ''),
|
('', ''),
|
||||||
('riesgo_vida', 'Riesgo de Vida'),
|
('riesgo_vida', 'Riesgo de Vida'),
|
||||||
('regular', 'Regular'),
|
('regular', 'Regular'),
|
||||||
]
|
]
|
||||||
|
|
||||||
SEXUAL_DIVERSITY = [
|
SEXUAL_DIVERSITY = [
|
||||||
|
@ -63,9 +60,7 @@ class ReceiverService(ModelSQL, ModelView):
|
||||||
__name__ = 'crm.receiver_service'
|
__name__ = 'crm.receiver_service'
|
||||||
_rec_name = 'name'
|
_rec_name = 'name'
|
||||||
name = fields.Char('Name', required=True)
|
name = fields.Char('Name', required=True)
|
||||||
# email = fields.Char('Email', required=True)
|
emails = fields.One2Many('crm.receiver_service.email', 'receiver', 'Emails')
|
||||||
emails = fields.One2Many('crm.receiver_service.email',
|
|
||||||
'receiver', 'Emails')
|
|
||||||
|
|
||||||
def get_rec_name(self, name):
|
def get_rec_name(self, name):
|
||||||
return self.name
|
return self.name
|
||||||
|
@ -76,22 +71,23 @@ class ReceiverService(ModelSQL, ModelView):
|
||||||
bool_op = 'AND'
|
bool_op = 'AND'
|
||||||
else:
|
else:
|
||||||
bool_op = 'OR'
|
bool_op = 'OR'
|
||||||
return [bool_op,
|
return [
|
||||||
('name',) + tuple(clause[1:]),
|
bool_op,
|
||||||
]
|
('name',) + tuple(clause[1:]),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class ReceiverEmail(ModelSQL, ModelView):
|
class ReceiverEmail(ModelSQL, ModelView):
|
||||||
'Receiver - Emails'
|
'Receiver - Emails'
|
||||||
__name__ = 'crm.receiver_service.email'
|
__name__ = 'crm.receiver_service.email'
|
||||||
receiver = fields.Many2One('crm.receiver_service', 'Receiver', required=True)
|
receiver = fields.Many2One('crm.receiver_service', 'Receiver',
|
||||||
|
required=True)
|
||||||
email = fields.Char('Email')
|
email = fields.Char('Email')
|
||||||
|
|
||||||
|
|
||||||
class ListSpecialty(ModelSQL, ModelView):
|
class ListSpecialty(ModelSQL, ModelView):
|
||||||
'List Specialty'
|
'List Specialty'
|
||||||
__name__ = 'list.specialty'
|
__name__ = 'list.specialty'
|
||||||
|
|
||||||
name = fields.Char('Name', required=True)
|
name = fields.Char('Name', required=True)
|
||||||
code = fields.Char('Code', required=True)
|
code = fields.Char('Code', required=True)
|
||||||
|
|
||||||
|
@ -107,7 +103,7 @@ class HealthProvider(ModelSQL, ModelView):
|
||||||
name = fields.Function(fields.Char('Name'), 'get_rec_name')
|
name = fields.Function(fields.Char('Name'), 'get_rec_name')
|
||||||
party = fields.Many2One('party.party', 'Party')
|
party = fields.Many2One('party.party', 'Party')
|
||||||
city = fields.Many2One('party.city_code', 'City')
|
city = fields.Many2One('party.city_code', 'City')
|
||||||
asset = fields.Boolean('Asset', help="¡Check this if the provider is active!")
|
asset = fields.Boolean('Asset', help="Check this if the provider is active!")
|
||||||
|
|
||||||
def get_rec_name(self, name):
|
def get_rec_name(self, name):
|
||||||
return self.party.name
|
return self.party.name
|
||||||
|
@ -151,25 +147,26 @@ class CustomerService(metaclass=PoolMeta):
|
||||||
attach_customer_1 = fields.Char('Attach Customer Web...', readonly=True)
|
attach_customer_1 = fields.Char('Attach Customer Web...', readonly=True)
|
||||||
attach_customer_2 = fields.Char('Attach Customer Web...', readonly=True)
|
attach_customer_2 = fields.Char('Attach Customer Web...', readonly=True)
|
||||||
attachments = fields.One2Many('crm.fiduprevisora.attachments',
|
attachments = fields.One2Many('crm.fiduprevisora.attachments',
|
||||||
'service', 'Attachments')
|
'service', 'Attachments')
|
||||||
others_receivers = fields.One2Many('crm.customer_receiver',
|
others_receivers = fields.One2Many('crm.customer_receiver',
|
||||||
'customer_service', 'Receivers')
|
'customer_service', 'Receivers')
|
||||||
others_receivers_string = fields.Function(fields.Char('Others Receicers'),
|
others_receivers_string = fields.Function(fields.Char('Others Receicers'),
|
||||||
'get_others_receivers_string')
|
'get_others_receivers_string')
|
||||||
classification = fields.Selection(CLASSIFICATION, 'Classification',
|
classification = fields.Selection(CLASSIFICATION, 'Classification',
|
||||||
states={
|
states={
|
||||||
'required': (Eval('media') == 'supersalud'),
|
'required': (Eval('media') == 'supersalud'),
|
||||||
'invisible': (Eval('media') != 'supersalud'),
|
'invisible': (Eval('media') != 'supersalud'),
|
||||||
})
|
})
|
||||||
detailed_especific_1= fields.Many2One('list.specialty', 'Detailed Especific 1',
|
detailed_especific_1= fields.Many2One('list.specialty',
|
||||||
states={'required': True})
|
'Detailed Especific 1', states={'required': True})
|
||||||
detailed_especific_2= fields.Many2One('list.specialty', 'Detailed Especific 2')
|
detailed_especific_2= fields.Many2One('list.specialty', 'Detailed Especific 2')
|
||||||
detailed_especific_3= fields.Many2One('list.specialty', 'Detailed Especific 3')
|
detailed_especific_3= fields.Many2One('list.specialty', 'Detailed Especific 3')
|
||||||
ethnical_group = fields.Selection(ETHNICAL_GROUP, 'Ethnical Group',
|
ethnical_group = fields.Selection(ETHNICAL_GROUP, 'Ethnical Group',
|
||||||
states={'required': False})
|
states={'required': False})
|
||||||
sexual_diversity = fields.Selection(SEXUAL_DIVERSITY, 'Sexual Diversity',
|
sexual_diversity = fields.Selection(SEXUAL_DIVERSITY, 'Sexual Diversity',
|
||||||
states={'required': False})
|
states={'required': False})
|
||||||
displaced = fields.Selection(OPTION_SELECT, 'Displaced', states={'required': False})
|
displaced = fields.Selection(OPTION_SELECT, 'Displaced',
|
||||||
|
states={'required': False})
|
||||||
victim_of_violence = fields.Selection(OPTION_SELECT, 'Victim Of Violence',
|
victim_of_violence = fields.Selection(OPTION_SELECT, 'Victim Of Violence',
|
||||||
states={'required': False})
|
states={'required': False})
|
||||||
disabled_person = fields.Selection(OPTION_SELECT, 'Disabled Person',
|
disabled_person = fields.Selection(OPTION_SELECT, 'Disabled Person',
|
||||||
|
@ -211,7 +208,8 @@ class CustomerService(metaclass=PoolMeta):
|
||||||
config = Pool().get('crm.configuration')(1)
|
config = Pool().get('crm.configuration')(1)
|
||||||
template = config.response_mail_template
|
template = config.response_mail_template
|
||||||
if not template:
|
if not template:
|
||||||
service.get_message('No se ha definido una plantilla para el envío del correo.')
|
service.get_message(
|
||||||
|
'No se ha definido una plantilla para el envío del correo.')
|
||||||
_attachments = []
|
_attachments = []
|
||||||
if service.attachments:
|
if service.attachments:
|
||||||
for att in service.attachments:
|
for att in service.attachments:
|
||||||
|
@ -364,9 +362,11 @@ class CustomerService(metaclass=PoolMeta):
|
||||||
template.from_email = dmt_email
|
template.from_email = dmt_email
|
||||||
template.subject = template.subject + self.company.party.name
|
template.subject = template.subject + self.company.party.name
|
||||||
if attachments:
|
if attachments:
|
||||||
response = self._send_mails(template, self, self.email or self.party.email, True, attachments)
|
response = self._send_mails(
|
||||||
|
template, self, self.email or self.party.email, True, attachments)
|
||||||
else:
|
else:
|
||||||
response = self._send_mails(template, self, self.email or self.party.email, False, [])
|
response = self._send_mails(
|
||||||
|
template, self, self.email or self.party.email, False, [])
|
||||||
if response.status_code == 202:
|
if response.status_code == 202:
|
||||||
self.write([self], {'sended_mail': True})
|
self.write([self], {'sended_mail': True})
|
||||||
else:
|
else:
|
||||||
|
@ -378,12 +378,11 @@ class CustomerService(metaclass=PoolMeta):
|
||||||
config = pool.get('crm.configuration')(1)
|
config = pool.get('crm.configuration')(1)
|
||||||
template = config.notification_mail_template
|
template = config.notification_mail_template
|
||||||
if template:
|
if template:
|
||||||
attach_dict = {}
|
# attach_dict = {}
|
||||||
template.subject = template.subject + self.company.party.name
|
template.subject = template.subject + self.company.party.name
|
||||||
response = Template.send(template, self, email,
|
response = Template.send(template, self, email,
|
||||||
attach=False, attachments=[])
|
attach=False, attachments=[])
|
||||||
if not response or response.status_code != 202:
|
if not response or response.status_code != 202:
|
||||||
print(email)
|
|
||||||
self.write({self}, {'notes': 'Fallo envio al correo: ' + email})
|
self.write({self}, {'notes': 'Fallo envio al correo: ' + email})
|
||||||
|
|
||||||
def send_emails_department(self):
|
def send_emails_department(self):
|
||||||
|
@ -394,7 +393,7 @@ class CustomerService(metaclass=PoolMeta):
|
||||||
def send_emails_receivers(self, template, attachments=[]):
|
def send_emails_receivers(self, template, attachments=[]):
|
||||||
attach = False
|
attach = False
|
||||||
if attachments:
|
if attachments:
|
||||||
attach= True
|
attach = True
|
||||||
template.subject = template.subject + self.company.party.name
|
template.subject = template.subject + self.company.party.name
|
||||||
if self.department_region and self.department_region.emails:
|
if self.department_region and self.department_region.emails:
|
||||||
dmt_email = self.department_region.emails[0].email
|
dmt_email = self.department_region.emails[0].email
|
||||||
|
@ -427,18 +426,16 @@ class CustomerService(metaclass=PoolMeta):
|
||||||
today = Date.today()
|
today = Date.today()
|
||||||
date_ = today - timedelta(days=30)
|
date_ = today - timedelta(days=30)
|
||||||
dt = datetime.combine(date_, datetime.min.time())
|
dt = datetime.combine(date_, datetime.min.time())
|
||||||
# company = Transaction().context.get('company')
|
|
||||||
res = {
|
res = {
|
||||||
'status': 'success',
|
'status': 'success',
|
||||||
'msg': 'Requerimiento enviado satifactoriamente !!',
|
'msg': 'Requerimiento enviado satifactoriamente !!',
|
||||||
}
|
}
|
||||||
print(args, 'this is args teh..........', dt)
|
|
||||||
services = cls.search([
|
services = cls.search([
|
||||||
('party', '=', args['party']),
|
('party', '=', args['party']),
|
||||||
('cs_date', '>=', dt),
|
('cs_date', '>=', dt),
|
||||||
('state', '=', 'open'),
|
('state', '=', 'open'),
|
||||||
('case', '=', args['case']),
|
('case', '=', args['case']),
|
||||||
])
|
])
|
||||||
services = None
|
services = None
|
||||||
special_population = args.pop('special_population') if args.get('special_population') else []
|
special_population = args.pop('special_population') if args.get('special_population') else []
|
||||||
fields_ = [
|
fields_ = [
|
||||||
|
@ -489,11 +486,12 @@ class FiduprevisoraReportStart(ModelView):
|
||||||
party = fields.Many2One('party.party', 'Party')
|
party = fields.Many2One('party.party', 'Party')
|
||||||
region = fields.Many2One('crm.region_fiduprevisora', 'Region')
|
region = fields.Many2One('crm.region_fiduprevisora', 'Region')
|
||||||
receiver_service = fields.Many2One('crm.receiver_service', 'Receiver')
|
receiver_service = fields.Many2One('crm.receiver_service', 'Receiver')
|
||||||
department_region = fields.Many2One('party.department_code', 'Department', domain=[
|
department_region = fields.Many2One('party.department_code', 'Department',
|
||||||
('region', '=', Eval('region'))
|
domain=[
|
||||||
|
('region', '=', Eval('region'))
|
||||||
])
|
])
|
||||||
city_region = fields.Many2One('party.city_code', 'City', domain=[
|
city_region = fields.Many2One('party.city_code', 'City', domain=[
|
||||||
('department', '=', Eval('department_region'))
|
('department', '=', Eval('department_region'))
|
||||||
])
|
])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -516,11 +514,12 @@ class FiduprevisoraReportStart(ModelView):
|
||||||
class FiduprevisoraReportWizard(Wizard):
|
class FiduprevisoraReportWizard(Wizard):
|
||||||
'Fiduprevisora Report Wizard'
|
'Fiduprevisora Report Wizard'
|
||||||
__name__ = 'crm_fiduprevisora.fiduprevisora_report.wizard'
|
__name__ = 'crm_fiduprevisora.fiduprevisora_report.wizard'
|
||||||
start = StateView('crm_fiduprevisora.fiduprevisora_report.start',
|
start = StateView(
|
||||||
|
'crm_fiduprevisora.fiduprevisora_report.start',
|
||||||
'crm_fiduprevisora.fiduprevisora_report_start_view_form', [
|
'crm_fiduprevisora.fiduprevisora_report_start_view_form', [
|
||||||
Button('Cancel', 'end', 'tryton-cancel'),
|
Button('Cancel', 'end', 'tryton-cancel'),
|
||||||
Button('Print', 'print_', 'tryton-ok', default=True),
|
Button('Print', 'print_', 'tryton-ok', default=True),
|
||||||
])
|
])
|
||||||
print_ = StateReport('crm_fiduprevisora.fiduprevisora_report')
|
print_ = StateReport('crm_fiduprevisora.fiduprevisora_report')
|
||||||
|
|
||||||
def do_print_(self, action):
|
def do_print_(self, action):
|
||||||
|
@ -603,7 +602,6 @@ class FiduprevisoraReport(Report):
|
||||||
('city_region', '=', city_region),
|
('city_region', '=', city_region),
|
||||||
)
|
)
|
||||||
services = Service.search(dom_service)
|
services = Service.search(dom_service)
|
||||||
|
|
||||||
report_context['records'] = services
|
report_context['records'] = services
|
||||||
report_context['start_date'] = start_date
|
report_context['start_date'] = start_date
|
||||||
report_context['end_date'] = end_date
|
report_context['end_date'] = end_date
|
||||||
|
@ -614,10 +612,13 @@ class FiduprevisoraReport(Report):
|
||||||
class CustomerReceiver(ModelSQL, ModelView):
|
class CustomerReceiver(ModelSQL, ModelView):
|
||||||
'Customer Receiver'
|
'Customer Receiver'
|
||||||
__name__ = 'crm.customer_receiver'
|
__name__ = 'crm.customer_receiver'
|
||||||
customer_service = fields.Many2One('crm.customer_service', 'Customer Service', required=True)
|
customer_service = fields.Many2One('crm.customer_service',
|
||||||
receiver = fields.Many2One('crm.receiver_service', 'Receiver', required=True)
|
'Customer Service', required=True)
|
||||||
|
receiver = fields.Many2One('crm.receiver_service', 'Receiver',
|
||||||
|
required=True)
|
||||||
media = fields.Selection(NEW_MEDIA, 'Media', required=True)
|
media = fields.Selection(NEW_MEDIA, 'Media', required=True)
|
||||||
|
|
||||||
|
|
||||||
class AppCustomerFiduprevisora(DashAppBase):
|
class AppCustomerFiduprevisora(DashAppBase):
|
||||||
'App Customer Fiduprevisora'
|
'App Customer Fiduprevisora'
|
||||||
__name__ = 'dash.app.crm_fiduprevisora'
|
__name__ = 'dash.app.crm_fiduprevisora'
|
||||||
|
|
9
dash.py
9
dash.py
|
@ -1,6 +1,8 @@
|
||||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
# this repository contains the full copyright notices and license terms.
|
# this repository contains the full copyright notices and license terms.
|
||||||
|
|
||||||
from trytond.pool import PoolMeta
|
from trytond.pool import PoolMeta
|
||||||
|
from trytond.modules.dash.dash import DashAppBase
|
||||||
|
|
||||||
|
|
||||||
class DashApp(metaclass=PoolMeta):
|
class DashApp(metaclass=PoolMeta):
|
||||||
|
@ -11,6 +13,7 @@ class DashApp(metaclass=PoolMeta):
|
||||||
origins = super(DashApp, cls)._get_origin()
|
origins = super(DashApp, cls)._get_origin()
|
||||||
origins.extend([
|
origins.extend([
|
||||||
'dash.app.crm_fiduprevisora',
|
'dash.app.crm_fiduprevisora',
|
||||||
|
'dash.app.consulta_pqr'
|
||||||
])
|
])
|
||||||
return origins
|
return origins
|
||||||
|
|
||||||
|
@ -19,5 +22,11 @@ class DashApp(metaclass=PoolMeta):
|
||||||
options = super(DashApp, cls).get_selection()
|
options = super(DashApp, cls).get_selection()
|
||||||
options.extend([
|
options.extend([
|
||||||
('crm_fiduprevisora', 'Crm Fiduprevisora'),
|
('crm_fiduprevisora', 'Crm Fiduprevisora'),
|
||||||
|
('consulta_pqr', 'Cosulta PQR'),
|
||||||
])
|
])
|
||||||
return options
|
return options
|
||||||
|
|
||||||
|
|
||||||
|
class AppConsultaPQR(DashAppBase):
|
||||||
|
"App Consulta PQR"
|
||||||
|
__name__ = "dash.app.consulta_pqr"
|
||||||
|
|
19
dash.xml
Normal file
19
dash.xml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
|
this repository contains the full copyright notices and license terms. -->
|
||||||
|
<tryton>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<record model="dash.app.consulta_pqr" id="dash_app_consulta_pqr">
|
||||||
|
<field name="company">1</field>
|
||||||
|
<field name="icon"></field>
|
||||||
|
<field name="kind">external</field>
|
||||||
|
</record>
|
||||||
|
<record model="dash.app" id="app_consulta_pqr">
|
||||||
|
<field name="name">Consulta PQRs</field>
|
||||||
|
<field name="active">True</field>
|
||||||
|
<field name="app_name">consulta_pqr</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</tryton>
|
|
@ -1,7 +1,6 @@
|
||||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||||
# this repository contains the full copyright notices and license terms.
|
# this repository contains the full copyright notices and license terms.
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
from trytond.model.exceptions import ValidationError
|
|
||||||
|
|
||||||
|
|
||||||
class MessageUserError(UserError):
|
class MessageUserError(UserError):
|
||||||
|
|
30
party.py
30
party.py
|
@ -2,16 +2,14 @@
|
||||||
# this repository contains the full copyright notices and license terms.
|
# this repository contains the full copyright notices and license terms.
|
||||||
from trytond.model import fields, ModelSQL, ModelView
|
from trytond.model import fields, ModelSQL, ModelView
|
||||||
from trytond.pool import PoolMeta, Pool
|
from trytond.pool import PoolMeta, Pool
|
||||||
from trytond.pyson import Eval, If, In, Get, Or, Bool, Not
|
from trytond.pyson import Eval, Bool, Not
|
||||||
from trytond.transaction import Transaction
|
|
||||||
from operator import getitem, delitem, setitem
|
|
||||||
|
|
||||||
AFILIATION_STATE = [
|
AFILIATION_STATE = [
|
||||||
('', ''),
|
('', ''),
|
||||||
('retirado', 'Retirado'),
|
('retirado', 'Retirado'),
|
||||||
('activo', 'Activo'),
|
('activo', 'Activo'),
|
||||||
('proteccion_laboral', 'Protección Laboral'),
|
('proteccion_laboral', 'Protección Laboral'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
TYPE_DOCUMENT = {
|
TYPE_DOCUMENT = {
|
||||||
|
@ -47,7 +45,7 @@ class DepartmentCode(metaclass=PoolMeta):
|
||||||
__name__ = "party.department_code"
|
__name__ = "party.department_code"
|
||||||
region = fields.Many2One('crm.region_fiduprevisora', 'Region')
|
region = fields.Many2One('crm.region_fiduprevisora', 'Region')
|
||||||
emails = fields.One2Many('crm.fiduprevisora_department.email',
|
emails = fields.One2Many('crm.fiduprevisora_department.email',
|
||||||
'department', 'Emails')
|
'department', 'Emails')
|
||||||
|
|
||||||
|
|
||||||
class DepartmentEmail(ModelSQL, ModelView):
|
class DepartmentEmail(ModelSQL, ModelView):
|
||||||
|
@ -60,12 +58,14 @@ class DepartmentEmail(ModelSQL, ModelView):
|
||||||
class Party(metaclass=PoolMeta):
|
class Party(metaclass=PoolMeta):
|
||||||
__name__ = "party.party"
|
__name__ = "party.party"
|
||||||
is_affiliate_user = fields.Boolean('Is Affiliate User')
|
is_affiliate_user = fields.Boolean('Is Affiliate User')
|
||||||
city_attention = fields.Many2One('party.city_code', 'City Attention', states={
|
city_attention = fields.Many2One('party.city_code', 'City Attention',
|
||||||
'invisible': (Not(Bool(Eval('is_affiliate_user')))),
|
states={
|
||||||
})
|
'invisible': (Not(Bool(Eval('is_affiliate_user')))),
|
||||||
affiliation_state = fields.Selection(AFILIATION_STATE ,'Affiliation State', states={
|
})
|
||||||
'invisible': (Not(Bool(Eval('is_affiliate_user')))),
|
affiliation_state = fields.Selection(AFILIATION_STATE ,
|
||||||
})
|
'Affiliation State', states={
|
||||||
|
'invisible': (Not(Bool(Eval('is_affiliate_user')))),
|
||||||
|
})
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def __setup__(cls):
|
def __setup__(cls):
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[tryton]
|
[tryton]
|
||||||
version=6.0.1
|
version=6.0.2
|
||||||
depends:
|
depends:
|
||||||
crm
|
crm
|
||||||
email
|
email
|
||||||
|
@ -11,3 +11,4 @@ xml:
|
||||||
customer_service.xml
|
customer_service.xml
|
||||||
configuration.xml
|
configuration.xml
|
||||||
message.xml
|
message.xml
|
||||||
|
dash.xml
|
||||||
|
|
Loading…
Reference in a new issue