From 87abbadc619bc1488be053a836b86cf9d8145f66 Mon Sep 17 00:00:00 2001 From: Benjamin <Benjamin@MBP-de-Benj.(none)> Date: Wed, 27 Sep 2017 21:36:35 +0200 Subject: [PATCH] =?UTF-8?q?add=20pr=C3=A9vi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/lefilament_tdb.py | 41 +++++++++++++++++++++++++++++++++++++++ models/res_company.py | 14 +++++++++++++- views/assets.xml | 1 + views/views.xml | 42 ++++++++++++++++++++++++---------------- 4 files changed, 80 insertions(+), 18 deletions(-) diff --git a/models/lefilament_tdb.py b/models/lefilament_tdb.py index 493989e..7d20fe0 100644 --- a/models/lefilament_tdb.py +++ b/models/lefilament_tdb.py @@ -200,3 +200,44 @@ class LeFilamentTdb(models.Model): return { 'tresorerie': tresorerie, 'fonds_propres': fonds_propres } + @api.model + def previ_tresorerie(self): + self._cr.execute("""SELECT to_char(date_trunc('month', date),'YYYY-MM') as mois, sum(sum(amount)) + over ( order by date_trunc('month', date) ) as treso + from account_bank_statement_line + group by date_trunc('month', date) + order by date_trunc('month', date) desc limit 6;""") + tresorerie = self._cr.dictfetchall() + + self._cr.execute("""SELECT + (select sum(es.total_amount) as fonds_propres from hr_expense_sheet es, hr_expense e where es.id = e.sheet_id and e.payment_mode='own_account' and es.state!='done') as cca, + (select sum(capital) as capital from hr_employee) as capital;""") + fonds_propres = self._cr.dictfetchall()[0] + + self._cr.execute("""SELECT to_char(date_trunc('month', date_due),'YYYY-MM') as mois, + sum(case when type='in_invoice' then residual_company_signed else 0 end ) as f_fournisseur, + sum(case when type='out_invoice' then residual_company_signed else 0 end ) as f_client + from account_invoice + where state!='draft' and state!='paid' + group by date_trunc('month', date_due) + order by date_trunc('month', date_due);""") + factures = self._cr.dictfetchall() + + self._cr.execute("""SELECT periode, + sum(montant) + from previ_treso + where periode != 1 + group by periode;""") + charges_periode = self._cr.dictfetchall() + + self._cr.execute("""SELECT to_char(date_trunc('month', date),'YYYY-MM') as mois, + sum(montant) + from previ_treso + where periode = 1 + group by date_trunc('month', date);""") + charges_fixes = self._cr.dictfetchall() + + if not fonds_propres['cca']: + fonds_propres['cca'] = 0 + + return { 'tresorerie': tresorerie, 'fonds_propres': fonds_propres, 'factures': factures, 'charges_fixes': charges_fixes, 'charges_periode':charges_periode, } diff --git a/models/res_company.py b/models/res_company.py index 04f7702..d86c08e 100644 --- a/models/res_company.py +++ b/models/res_company.py @@ -6,5 +6,17 @@ class res_company(models.Model): _inherit = "res.company" ca_target = fields.Integer( "Objectif Chiffre d'Affaire" ) - charges_fixes = fields.Integer( "Charges Fixes" ) + charges_fixes = fields.Integer( 'Charges Fixes' ) + previ_treso_ids = fields.One2many('previ.treso', 'company_id', 'Prévisionnel') + + +class previ_treso(models.Model): + _name = "previ.treso" + _description = "Previsionnel de tresorerie" + + company_id = fields.Many2one('res.company', 'Company', default=lambda self: self.env.user.company_id.id ) + name = fields.Char('Nom') + periode = fields.Selection([(12,'Mensuel'),(3,'Trimestriel'),(1,'Annuel')], srting='Période') + date = fields.Date('Date') + montant = fields.Float('Montant') \ No newline at end of file diff --git a/views/assets.xml b/views/assets.xml index 4faa4cc..e608245 100644 --- a/views/assets.xml +++ b/views/assets.xml @@ -15,6 +15,7 @@ <script type="text/javascript" src="/lefilament_tdb/static/src/js/lefilament_tdb.js"></script> <script type="text/javascript" src="/lefilament_tdb/static/src/js/dashboard_year.js"></script> <script type="text/javascript" src="/lefilament_tdb/static/src/js/tresorerie.js"></script> + <script type="text/javascript" src="/lefilament_tdb/static/src/js/previ_tresorerie.js"></script> </xpath> </template> diff --git a/views/views.xml b/views/views.xml index 9a07910..ba72dac 100644 --- a/views/views.xml +++ b/views/views.xml @@ -27,12 +27,19 @@ <field name="target">new</field> </record> + <record id="action_previ_tresorerie" model="ir.actions.client"> + <field name="name">Trésorerie</field> + <field name="tag">lefilament_tdb.previ_tresorerie</field> + <field name="target">new</field> + </record> + <menuitem id="lefilament_dashboard_menu" name="Dashboard" sequence="10" groups="group_dashboard"/> <menuitem id="lefilament_dashboard_report" parent="lefilament_dashboard_menu" name="Rapports" sequence="1"/> <menuitem id="lefilament_dashboard_report_month" parent="lefilament_dashboard_report" name="Mensuel" sequence="2" action="action_home_page"/> <menuitem id="lefilament_dashboard_report_year" parent="lefilament_dashboard_report" name="Annuel" sequence="1" action="action_year_page" /> - <menuitem id="lefilament_tresorerie" parent="lefilament_dashboard_report" name="Trésorerie" sequence="3" action="action_tresorerie" /> + <menuitem id="lefilament_tresorerie" parent="lefilament_dashboard_report" name="Tréso" sequence="3" action="action_tresorerie" /> + <menuitem id="lefilament_previ_tresorerie" parent="lefilament_dashboard_report" name="Prévi Tréso" sequence="3" action="action_previ_tresorerie" /> <menuitem id="lefilament_dashboard_conf" parent="lefilament_dashboard_menu" name="Configuration" sequence="10"/> <menuitem id="lefilament_dashboard_datas" parent="lefilament_dashboard_conf" name="Données" action="lefilament_dashboard_action" sequence="10"/> @@ -159,7 +166,10 @@ <field name="charges_fixes" /> </group> </group> - </page> + </page> + <page name="tdb" string="Prévisonnel"> + <field name="previ_treso_ids" /> + </page> </xpath> </field> </record> @@ -175,23 +185,21 @@ </xpath> </field> </record> - - <!-- <record id="lefilament_dashboard_data" model="ir.ui.view"> - <field name="name">Le Filament Dashboard Data</field> - <field name="model">lefilament.dashboard.data</field> - <field name="type">pivot</field> + + <!-- Prévi Tréso --> + <record id="view_tree_lefilament_previ_treso" model="ir.ui.view"> + <field name="name">previ.treso</field> + <field name="model">previ.treso</field> <field name="arch" type="xml"> - <pivot class="test_pivot"> - <field name="facture" type="measure" /> - <field name="commandes" type="measure" /> - <field name="pipe" type="measure" /> - <field name="tresorerie" type="measure" /> - <field name="entree" type="measure" /> - <field name="sortie" type="measure" /> - <field name="variation" type="measure" /> - </pivot> + <tree string="Prévisionnel Tréso" editable="top"> + <field name="name" /> + <field name="periode" /> + <field name="date" /> + <field name="montant" /> + </tree> </field> - </record> --> + </record> + </data> </odoo> -- GitLab