Skip to content
Extraits de code Groupes Projets
Valider 57c3f0c2 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[cgscop #143 & #144] ajout convention régionale et automatisation de la mise à...

[cgscop #143 & #144] ajout convention régionale et automatisation de la mise à jour depuis l'organisme
parent 06a4bef3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
"views/hr_timesheet_cgscop.xml", "views/hr_timesheet_cgscop.xml",
"views/res_partner.xml", "views/res_partner.xml",
"views/ur_financial_system.xml", "views/ur_financial_system.xml",
"views/ur_regional_convention.xml",
"report/report_hr_timesheet.xml", "report/report_hr_timesheet.xml",
"datas/cgscop_timesheet_code_data.xml", "datas/cgscop_timesheet_code_data.xml",
] ]
......
...@@ -5,5 +5,7 @@ from . import cgscop_timesheet_code ...@@ -5,5 +5,7 @@ from . import cgscop_timesheet_code
from . import cgscop_timesheet_sheet from . import cgscop_timesheet_sheet
from . import hr_timesheet from . import hr_timesheet
from . import project from . import project
from . import res_partner
from . import ur_financial_system from . import ur_financial_system
from . import ur_regional_convention
...@@ -19,6 +19,9 @@ class ScopHrTimesheet(models.Model): ...@@ -19,6 +19,9 @@ class ScopHrTimesheet(models.Model):
ur_financial_system_id = fields.Many2one( ur_financial_system_id = fields.Many2one(
comodel_name='ur.financial.system', comodel_name='ur.financial.system',
string='Dispositif Financier') string='Dispositif Financier')
ur_regional_convention_id = fields.Many2one(
comodel_name='ur.regional.convention',
string='Convention Régionale')
ur_id = fields.Many2one( ur_id = fields.Many2one(
'union.regionale', 'union.regionale',
string='Union Régionale', string='Union Régionale',
...@@ -41,10 +44,30 @@ class ScopHrTimesheet(models.Model): ...@@ -41,10 +44,30 @@ class ScopHrTimesheet(models.Model):
index=True, index=True,
readonly=True, readonly=True,
store=True,) store=True,)
ur_financial_system_nb = fields.Integer(
string="Nb Dispositifs Financiers",
compute="_compute_ur_system_nb")
ur_regional_convention_nb = fields.Integer(
string="Nb conventions régionales",
compute="_compute_ur_system_nb")
# ------------------------------------------------------ # ------------------------------------------------------
# Compute Functions # Compute Functions
# ------------------------------------------------------ # ------------------------------------------------------
@api.depends('ur_id')
def _compute_ur_system_nb(self):
for time in self:
# Calcul nombre de dispositifs financiers
financial_system = time.env['ur.financial.system'].search([
('ur_id', '=', time.ur_id.id)])
time.ur_financial_system_nb = len(
financial_system)
# Calcul nombre de conventions
regional_convention = time.env['ur.regional.convention'].search([
('ur_id', '=', time.ur_id.id)])
time.ur_regional_convention_nb = len(
regional_convention)
@api.depends('sheet_id', 'sheet_id.state') @api.depends('sheet_id', 'sheet_id.state')
def _compute_state(self): def _compute_state(self):
for timesheet in self: for timesheet in self:
...@@ -60,6 +83,15 @@ class ScopHrTimesheet(models.Model): ...@@ -60,6 +83,15 @@ class ScopHrTimesheet(models.Model):
def onchange_project_id(self): def onchange_project_id(self):
self.partner_id = self.project_id.partner_id self.partner_id = self.project_id.partner_id
@api.onchange('partner_id')
def onchange_partner_id(self):
if not self.partner_id.ur_financial_system_date or \
fields.Datetime.now() > self.partner_id.ur_financial_system_date:
self.ur_financial_system_id = self.partner_id.ur_financial_system_id
if not self.partner_id.ur_regional_convention_date or \
fields.Datetime.now() > self.partner_id.ur_regional_convention_date:
self.ur_regional_convention_id = self.partner_id.ur_regional_convention_id
# ------------------------------------------------------ # ------------------------------------------------------
# Override ORM # Override ORM
# ------------------------------------------------------ # ------------------------------------------------------
......
# © 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields
class ScopPartnerTimesheet(models.Model):
_inherit = "res.partner"
ur_financial_system_id = fields.Many2one(
comodel_name='ur.financial.system',
string='Dispositif Financier',
ondelete='set null')
ur_financial_system_date = fields.Date(
"Date de fin de dispositif")
ur_regional_convention_id = fields.Many2one(
comodel_name='ur.regional.convention',
string='Convention Régionale',
ondelete='set null')
ur_regional_convention_date = fields.Date(
"Date de fin de convention")
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields
class ScopRegionalConvention(models.Model):
_name = "ur.regional.convention"
_description = "Convention Régionale UR"
def _default_ur(self):
return self.env['res.company']._ur_default_get()
name = fields.Char('Nom')
company_id = fields.Many2one(
comodel_name='res.company',
string='Société',
default=lambda self: self.env.user.company_id)
ur_id = fields.Many2one(
'union.regionale',
string='Union Régionale',
index=True,
on_delete='restrict',
default=_default_ur)
...@@ -9,3 +9,6 @@ access_project_project_cg_manager,access_project_project_cg,model_project_projec ...@@ -9,3 +9,6 @@ access_project_project_cg_manager,access_project_project_cg,model_project_projec
access_account_analytic_account_ur_manager,access_account_analytic_account_ur,analytic.model_account_analytic_account,cgscop_partner.group_ur_list_modif,1,1,1,1 access_account_analytic_account_ur_manager,access_account_analytic_account_ur,analytic.model_account_analytic_account,cgscop_partner.group_ur_list_modif,1,1,1,1
access_account_analytic_account_cg_manager,access_account_analytic_account_cg,analytic.model_account_analytic_account,cgscop_partner.group_cg_administrator,1,1,1,1 access_account_analytic_account_cg_manager,access_account_analytic_account_cg,analytic.model_account_analytic_account,cgscop_partner.group_cg_administrator,1,1,1,1
access_cgscop_timesheet_sheet_user,access_cgscop_timesheet_sheet_user,model_cgscop_timesheet_sheet,hr_timesheet.group_hr_timesheet_user,1,1,1,1 access_cgscop_timesheet_sheet_user,access_cgscop_timesheet_sheet_user,model_cgscop_timesheet_sheet,hr_timesheet.group_hr_timesheet_user,1,1,1,1
access_ur_regional_convention,access_ur_regional_convention,model_ur_regional_convention,base.group_user,1,0,0,0
access_ur_regional_convention_ur_manager,access_ur_regional_convention_ur,model_ur_regional_convention,cgscop_partner.group_ur_list_modif,1,1,1,1
access_ur_regional_convention_cg_manager,access_ur_regional_convention_cg,model_ur_regional_convention,cgscop_partner.group_cg_administrator,1,1,1,1
...@@ -47,9 +47,13 @@ ...@@ -47,9 +47,13 @@
<attribute name="string">Code activité UR</attribute> <attribute name="string">Code activité UR</attribute>
</field> </field>
<field name="project_id" position="after" > <field name="project_id" position="after" >
<field name="partner_id" domain="[('is_company', '=', True), ('ur_id', '=', ur_id)]" required="True" class="td-ellipsis" options="{'no_open': True, 'no_create': True}" string="Contact" /> <field name="partner_id" domain="[('is_company', '=', True), ('ur_id', '=', ur_id)]" required="True" class="td-ellipsis" options="{'no_open': True, 'no_create': True}" string="Contact" />
<field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}"/> <field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}" attrs="{'required':[('ur_financial_system_nb', '>', 0)], 'invisible':[('ur_financial_system_nb', '=', 0)]}"/>
<field name="ur_id" options="{'no_open': True, 'no_create': True}"/> <field name="ur_regional_convention_id" options="{'no_open': True, 'no_create': True}" attrs="{'required':[('ur_regional_convention_nb', '>', 0)], 'invisible':[('ur_regional_convention_nb', '=', 0)]}"/>
<field name="ur_id" options="{'no_open': True, 'no_create': True}" groups="cgscop_partner.group_cg_administrator"/>
<field name="ur_regional_convention_nb" invisible="1"/>
<field name="ur_financial_system_nb" invisible="1"/>
</field> </field>
<field name="task_id" position="attributes"> <field name="task_id" position="attributes">
<attribute name="invisible">True</attribute> <attribute name="invisible">True</attribute>
...@@ -87,9 +91,12 @@ ...@@ -87,9 +91,12 @@
<attribute name="attrs">{'readonly': [('state', 'in', ('submit', 'valid'))]}</attribute> <attribute name="attrs">{'readonly': [('state', 'in', ('submit', 'valid'))]}</attribute>
</field> </field>
<field name="unit_amount" position="after"> <field name="unit_amount" position="after">
<field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}" attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}"/> <field name="ur_regional_convention_nb" invisible="1"/>
<field name="ur_financial_system_nb" invisible="1"/>
<field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('ur_financial_system_nb', '>', 0)], 'invisible': [('ur_financial_system_nb', '&lt;', 1)], 'readonly': [('state', 'in', ('submit', 'valid'))]}"/>
<field name="ur_regional_convention_id" options="{'no_open': True, 'no_create': True}" attrs="{'required':[('ur_regional_convention_nb', '>', 0)], 'invisible':[('ur_regional_convention_nb', '&lt;', 1)], 'readonly': [('state', 'in', ('submit', 'valid'))]}"/>
<field name="state" /> <field name="state" />
<field name="ur_id" attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}"/> <field name="ur_id" attrs="{'readonly': [('state', 'in', ('submit', 'valid'))]}" groups="cgscop_partner.group_cg_administrator"/>
</field> </field>
</field> </field>
</record> </record>
......
...@@ -17,5 +17,22 @@ ...@@ -17,5 +17,22 @@
</field> </field>
</record> </record>
<record id="view_partner_cooperative_timesheet_form" model="ir.ui.view">
<field name="name">cooperative.timesheet.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="cgscop_partner.scop_contact_view_form"/>
<field name="priority" eval="1"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='activity_federation_com']" position="before">
<separator></separator>
<field name="ur_financial_system_id" />
<field name="ur_financial_system_date" attrs="{'invisible':[('ur_financial_system_id','=',False)]}"/>
<field name="ur_regional_convention_id" options="{'no_open': True, 'no_create': True}"/>
<field name="ur_regional_convention_date" attrs="{'invisible':[('ur_regional_convention_id','=',False)]}"/>
<separator></separator>
</xpath>
</field>
</record>
</data> </data>
</odoo> </odoo>
\ No newline at end of file
<?xml version="1.0"?>
<!-- Copyright 2019 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data>
<record id="view_ur_regional_convention_tree" model="ir.ui.view">
<field name="name">ur.regional.convention.tree</field>
<field name="model">ur.regional.convention</field>
<field name="arch" type="xml">
<tree editable='top'>
<field name="name" />
<field name="ur_id" options="{'no_open': True, 'no_create': True}"/>
<field name="company_id" groups="base.group_no_one" options="{'no_open': True, 'no_create': True}"/>
</tree>
</field>
</record>
<record id="action_ur_regional_convention" model="ir.actions.act_window">
<field name="name">Conventions Régionales</field>
<field name="res_model">ur.regional.convention</field>
<field name="view_mode">tree</field>
</record>
<menuitem id="menu_ur_regional_convention"
name="Conventions Régionales"
parent="hr_timesheet.hr_timesheet_menu_configuration"
action="action_ur_regional_convention"
sequence="50"
groups="cgscop_partner.group_ur_list_modif"/>
</data>
</odoo>
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter