From d36d011f69ee1085448645d2541d4f4377d82c69 Mon Sep 17 00:00:00 2001
From: jordan <jordan@le-filament.com>
Date: Mon, 3 May 2021 12:21:18 +0200
Subject: [PATCH] [updtae] fields are monetary

---
 models/scop_cotisations_idf.py | 21 +++++++++++++++------
 models/scop_invoice_idf.py     | 10 +++++++---
 views/scop_cotisations_idf.xml | 31 +++++++++++++++++++------------
 views/scop_invoice_idf.xml     | 17 ++++++++++-------
 4 files changed, 51 insertions(+), 28 deletions(-)

diff --git a/models/scop_cotisations_idf.py b/models/scop_cotisations_idf.py
index 64c0df5..7538fb0 100644
--- a/models/scop_cotisations_idf.py
+++ b/models/scop_cotisations_idf.py
@@ -32,12 +32,16 @@ class ScopCotisationsIDF(models.Model):
         ('pay', 'Paiment')],
         string='Type', )
     lettrage = fields.Char('Lettrage')
-    debit = fields.Float(string='Débit')
-    credit = fields.Float(string='Crédit')
-    amount_residual = fields.Float(
+    currency_id = fields.Many2one(
+        comodel_name='res.currency',
+        string='Monnaie',
+        related='company_id.currency_id')
+    debit = fields.Monetary(string='Débit', currency_field='currency_id')
+    credit = fields.Monetary(string='Crédit', currency_field='currency_id')
+    amount_residual = fields.Monetary(
         string='Reste à payer',
         compute='_compute_amount_residual',
-        store=True)
+        store=True, currency_field='currency_id')
     state = fields.Selection(
         string='Etat',
         selection=[('no_invoice', 'Pas de cotisation associée'),
@@ -59,14 +63,19 @@ class ScopCotisationsIDF(models.Model):
         required=False, readonly=True)
 
     exoneration = fields.Boolean(
-        string='Exoneration',
+        string='Exonération',
         compute='_compute_exoneration',
         store=True)
-    cotiz_zero = fields.Boolean(string='Non appelé')
+    cotiz_zero = fields.Boolean(string='Non appelée')
 
     # ------------------------------------------------------
     # Computed fields
     # ------------------------------------------------------
+    # @api.multi
+    # def _compute_currency(self):
+    #     for r in self:
+    #         r.currency_id = r.env
+
     @api.depends('payment_or_refund_ids', 'debit',
                  'payment_or_refund_ids.debit', 'payment_or_refund_ids.debit')
     @api.multi
diff --git a/models/scop_invoice_idf.py b/models/scop_invoice_idf.py
index 132956e..b8b51a9 100644
--- a/models/scop_invoice_idf.py
+++ b/models/scop_invoice_idf.py
@@ -32,12 +32,16 @@ class ScopinvoiceIDF(models.Model):
         ('pay', 'Paiment')],
         string='Type',)
     lettrage = fields.Char('Lettrage')
-    debit = fields.Float(string='Débit')
-    credit = fields.Float(string='Crédit')
+    currency_id = fields.Many2one(
+        comodel_name='res.currency',
+        string='Monnaie',
+        related='company_id.currency_id')
+    debit = fields.Monetary(string='Débit', currency_field='currency_id')
+    credit = fields.Monetary(string='Crédit', currency_field='currency_id')
     amount_residual = fields.Float(
         string='Reste à payer',
         compute='_compute_amount_residual',
-        store=True
+        store=True, currency_field='currency_id'
     )
     state = fields.Selection(
         string='Etat',
diff --git a/views/scop_cotisations_idf.xml b/views/scop_cotisations_idf.xml
index 3be63e2..e1d8c32 100644
--- a/views/scop_cotisations_idf.xml
+++ b/views/scop_cotisations_idf.xml
@@ -31,9 +31,10 @@
                     <field name="partner_id"/>
                     <field name="year"/>
                     <field name="type"/>
-                    <field name="debit"/>
-                    <field name="credit"/>
-                    <field name='amount_residual'/>
+                    <field name="currency_id" invisible="1"/>
+                    <field name="debit" widget="monetary"/>
+                    <field name="credit" widget="monetary"/>
+                    <field name='amount_residual' widget="monetary"/>
                     <field name='invoice_id'/>
                     <field name='payment_or_refund_ids'/>
                     <field name='lettrage'/>
@@ -69,9 +70,10 @@
                             <group name="cotiz" string="Cotisation">
                                 <field name="type"/>
                                 <field name="name"/>
-                                <field name="credit" string="Montant" attrs="{'invisible': [('type', '=', 'inv')]}"/>
-                                <field name="debit" string="Montant" attrs="{'invisible': [('type', '!=', 'inv')]}"/>
-                                <field name="amount_residual"
+                                <field name="currency_id" invisible="1"/>
+                                <field name="credit" widget="monetary" string="Montant" attrs="{'invisible': [('type', '=', 'inv')]}"/>
+                                <field name="debit" widget="monetary" string="Montant" attrs="{'invisible': [('type', '!=', 'inv')]}"/>
+                                <field name="amount_residual" widget="monetary"
                                        attrs="{'invisible': [('type', '!=', 'inv')]}"/>
                                 <field name="invoice_id"
                                        domain="[('partner_id', '=', partner_id), ('type', '=', 'inv'), ('amount_residual', '>', 0)]"
@@ -90,7 +92,8 @@
                                         <field name="name"/>
                                         <field name="year"/>
                                         <field name="type"/>
-                                        <field name="credit" string="Montant"/>
+                                        <field name="currency_id" invisible="1"/>
+                                        <field name="credit" widget="monetary" string="Montant"/>
                                         <field name='lettrage'/>
                                         <field name='exoneration'/>
                                         <button name="action_open_payment" type="object"
@@ -127,7 +130,8 @@
             <field name="arch" type="xml">
                 <pivot string="Cotisations IDF" display_quantity="True">
                     <field name="partner_id" type="row"/>
-                    <field name="amount_residual" type="measure"/>
+                    <field name="currency_id" invisible="1"/>
+                    <field name="amount_residual" type="measure" widget="monetary"/>
                 </pivot>
             </field>
         </record>
@@ -142,10 +146,13 @@
                     <field name="partner_id"/>
                     <filter name="with_issue" domain="[('state','in',['no_invoice', 'overpaid'])]" string="Erreur lettrage et/ou montant"/>
                     <separator/>
-                    <filter name="is_type_invoice" domain="[('type','=','inv')]" string="Factures"/>
-                    <filter name="inv_paid" domain="[('type','=','inv'),('state','=','paid')]" string="Factures payées"/>
-                    <filter name="inv_unpaid" domain="[('type','=','inv'),('state','=','awaiting_payments')]" string="Factures reste à payées"/>
-                    <filter name="inv_with_issue" domain="[('type','=','inv'),('state','=','overpaid')]" string="Factures en erreur"/>
+                    <filter name="is_type_invoice" domain="[('type','=','inv')]" string="Cotisations"/>
+                    <filter name="cotiz_paid" domain="[('type','=','inv'),('state','=','paid')]" string="Cotisations payées"/>
+                    <filter name="cotiz_unpaid" domain="[('type','=','inv'),('state','=','awaiting_payments')]" string="Cotisations reste à payées"/>
+                    <filter name="cotiz_with_issue" domain="[('type','=','inv'),('state','=','overpaid')]" string="Cotisations en erreur"/>
+                    <separator/>
+                    <filter name="cotiz_exo" domain="[('exoneration','=',True)]" string="Exonérations"/>
+                    <filter name="cotiz_not_called" domain="[('type','=','inv'),('cotiz_zero','=',True)]" string="Cotisations non appelées"/>
                     <group expand="0" string="Group By">
                         <filter name="group_by_partner_id" string="Adhérent" context="{'group_by':'partner_id'}"/>
                         <separator/>
diff --git a/views/scop_invoice_idf.xml b/views/scop_invoice_idf.xml
index ab58336..2074f36 100644
--- a/views/scop_invoice_idf.xml
+++ b/views/scop_invoice_idf.xml
@@ -31,9 +31,10 @@
                     <field name="partner_id"/>
                     <field name="year"/>
                     <field name="type"/>
-                    <field name="credit"/>
-                    <field name="debit"/>
-                    <field name='amount_residual'/>
+                    <field name="currency_id" invisible="1"/>
+                    <field name="credit" widget="monetary"/>
+                    <field name="debit" widget="monetary"/>
+                    <field name='amount_residual' widget="monetary"/>
                     <field name='invoice_id'/>
                     <field name='payment_or_refund_ids'/>
                     <field name='lettrage'/>
@@ -65,9 +66,10 @@
                             <group name="invoice" string="Facture">
                                 <field name="type"/>
                                 <field name="name"/>
-                                <field name="credit" string="Montant" attrs="{'invisible': [('type', '=', 'inv')]}"/>
-                                <field name="debit" string="Montant" attrs="{'invisible': [('type', '!=', 'inv')]}"/>
-                                <field name="amount_residual"
+                                <field name="currency_id" invisible="1"/>
+                                <field name="credit" widget="monetary" string="Montant" attrs="{'invisible': [('type', '=', 'inv')]}"/>
+                                <field name="debit" widget="monetary" string="Montant" attrs="{'invisible': [('type', '!=', 'inv')]}"/>
+                                <field name="amount_residual" widget="monetary"
                                        attrs="{'invisible': [('type', '!=', 'inv')]}"/>
                                 <field name="invoice_id"
                                        domain="[('partner_id', '=', partner_id), ('type', '=', 'inv'), ('amount_residual', '>', 0)]"
@@ -86,7 +88,8 @@
                                         <field name="name"/>
                                         <field name="year"/>
                                         <field name="type"/>
-                                        <field name="credit" string="Montant"/>
+                                        <field name="currency_id" invisible="1"/>
+                                        <field name="credit" string="Montant" widget="monetary"/>
                                         <field name='lettrage'/>
                                         <button name="action_open_payment" type="object"
                                                 string="Paiement / Avoir" icon="fa-eye"
-- 
GitLab