Skip to content
Extraits de code Groupes Projets
Valider bfe1e350 rédigé par Juliana's avatar Juliana
Parcourir les fichiers

[ADD] fix bug prm + add domain partner + other

parent 2e0c17b4
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -7,7 +7,8 @@
ENERCOOP - Base
===============
Ce module défini le modèle de données ENERCOOP.
Ce module défini le modèle de données ENERCOOP:
* Ajoute des champs à la table *res.partner* pour la définition des Consommateurs, Producteurs et PMO
* Création du modèle pour les opérations *enercoop.operation*, vues associées et menu
* Création du modèle pour les points de livraison et d'injection *enercoop.counter*, vues associées et menu
......
......@@ -13,9 +13,13 @@ class EnercoopCounter(models.Model):
# ------------------------------------------------------
# General Info
name = fields.Char("ID PRM", required=True)
enercoop_operation_id = fields.Many2one(
# enercoop_operation_id = fields.Many2one(
# comodel_name='enercoop.operation',
# string="Nom de l'opération")
enercoop_operation_ids = fields.Many2many(
comodel_name='enercoop.operation',
string="Nom de l'opération")
relation='counter_operation_rel',
string="Opérations liées")
street = fields.Char("Rue")
street2 = fields.Char("Complément de rue")
zip = fields.Char("Code postal")
......@@ -58,6 +62,16 @@ class EnercoopCounter(models.Model):
# ------------------------------------------------------
# Onchange / Constraints
# ------------------------------------------------------
@api.onchange('is_injection', 'is_delivery')
def _onchange_prm_type(self):
domain = []
if self.is_injection:
domain = [('is_producer', '=', True)]
if self.is_delivery:
domain = [('is_consumer', '=', True)]
if self.is_injection and self.is_delivery:
domain = ['|', ('is_producer', '=', True), ('is_consumer', '=', True)]
return {'domain': {'partner_id': domain}}
# ------------------------------------------------------
# CRUD methods (ORM overrides)
......
......@@ -28,6 +28,7 @@ class EnercoopEnedisCDC(models.Model):
)
power = fields.Float("Puissance en W")
date_slot = fields.Datetime("Date par Demi Heure")
year = fields.Char("Année", compute='_compute_year', store=True)
# ------------------------------------------------------
# SQL Constraints
......@@ -40,7 +41,11 @@ class EnercoopEnedisCDC(models.Model):
# ------------------------------------------------------
# Computed fields / Search Fields
# ------------------------------------------------------
@api.depends('date_slot')
def _compute_year(self):
for counter in self:
if counter.date_slot:
counter.year = str(counter.date_slot.year)
# ------------------------------------------------------
# Onchange / Constraints
# ------------------------------------------------------
......
......@@ -222,9 +222,23 @@ class EnercoopCounterOperation(models.Model):
# Fields declaration
# ------------------------------------------------------
enercoop_counter_id = fields.Many2one('enercoop.counter', string="PRM", required=True)
date_start_contract = fields.Date("Date de début")
date_end_contract = fields.Date("Date de fin")
date_start_contract = fields.Date("Date de début", default=fields.Datetime.now)
date_end_contract = fields.Date("Date de fin", default=fields.Datetime.now)
is_injection = fields.Boolean(related='enercoop_counter_id.is_injection', store=True)
is_delivery = fields.Boolean(related='enercoop_counter_id.is_delivery', store=True)
operation_id = fields.Many2one('enercoop.operation', string="Opération", ondelete='cascade')
partner_id = fields.Many2one('res.partner', string="Personne Physique", related='enercoop_counter_id.partner_id')
# ------------------------------------------------------
# Contraintes SQL
# ------------------------------------------------------
# Unicité des PRM pour une opération par type de compteur d'injection (counter - operation - is_injection)
# Unicité des PRM pour une opération par type de compteur de soutirage (counter - operation - is_delivery)
_sql_constraints = [
('injection_unique',
'unique(enercoop_counter_id, operation_id, is_injection)',
"Le point d'injection que vous souhaitez ajouter pour cette opération existe déjà"),
('delivery_unique',
'unique(enercoop_counter_id, operation_id, is_delivery)',
"Le point de soutirage que vous souhaitez ajouter pour cette opération existe déjà"),
]
\ No newline at end of file
......@@ -35,13 +35,16 @@
</group>
<group>
<field name="partner_id" required="True"/>
<field name="enercoop_operation_id"/>
<field name="street"/>
<field name="street2"/>
<field name="zip"/>
<field name="city"/>
</group>
<notebook>
<page string="Liste des opérations">
<field name="enercoop_operation_ids" readonly="1"/>
</page>
</notebook>
</sheet>
</form>
</field>
......@@ -53,7 +56,6 @@
<field name="arch" type="xml">
<tree string="PRM">
<field name="name"/>
<field name="enercoop_operation_id"/>
<field name="partner_id"/>
<field name="city"/>
<field name="zip"/>
......
......@@ -41,6 +41,7 @@
<field name="date_slot"/>
<field name="comp_data_type"/>
<field name="power"/>
<field name="year"/>
</tree>
</field>
</record>
......
......@@ -56,12 +56,13 @@
</group>
<notebook>
<page string="Points d'injection" name="injection">
<field name="enercoop_injection_operation_ids" widget="one2many" domain="[('is_injection', '=', True)]">
<tree string="Points d'injection" editable="top">
<tree string="Points d'injection" editable="bottom">
<field name="enercoop_counter_id" options="{'no_create': True}" domain="[('is_injection', '=', True)]"/>
<field name="partner_id"/>
<field name="date_start_contract"/>
<field name="date_end_contract"/>
<!-- <field name="date_start_contract"/>-->
<!-- <field name="date_end_contract"/>-->
</tree>
</field>
</page>
......@@ -70,8 +71,8 @@
<tree string="Points de soutirage" editable="top">
<field name="enercoop_counter_id" options="{'no_create': True}" domain="[('is_delivery', '=', True)]"/>
<field name="partner_id"/>
<field name="date_start_contract"/>
<field name="date_end_contract"/>
<!-- <field name="date_start_contract"/>-->
<!-- <field name="date_end_contract"/>-->
</tree>
</field>
</page>
......
......@@ -19,7 +19,7 @@
<page string="Points de soutirage" name="delivery" attrs="{'invisible': [('is_consumer', '!=', True)]}">
<field name="delivery_counter_ids" widget="one2many"/>
</page>
<page string="Liste des opérations" name="operation">
<page string="Liste des opérations" name="operation" attrs="{'invisible': [('is_producer', '=', False), ('is_consumer', '=', False), ('is_pmo', '=', False)]}">
<field name="enercoop_operation_ids" widget="one2many">
<tree string="Liste des opérations" >
<field name="name"/>
......
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