diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2023-01-18 14:34:26 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2023-01-18 14:34:26 +0700 |
| commit | 780f1a71a5fe3d053b0163f7be495497c84349d7 (patch) | |
| tree | 541a829529f86f7b4cd32282d2e31e75ba3830aa | |
| parent | f5eecb48f361dd0bc45c2d8b4cf12f34aea5f243 (diff) | |
add salesname, and achievement in sales target
| -rw-r--r-- | indoteknik_custom/models/sales_target.py | 18 | ||||
| -rw-r--r-- | indoteknik_custom/views/sales_target.xml | 21 |
2 files changed, 37 insertions, 2 deletions
diff --git a/indoteknik_custom/models/sales_target.py b/indoteknik_custom/models/sales_target.py index ac6405e5..9069fa6a 100644 --- a/indoteknik_custom/models/sales_target.py +++ b/indoteknik_custom/models/sales_target.py @@ -16,6 +16,24 @@ class SalesTarget(models.Model): ongoing_omset_adempiere = fields.Float(string='Omset Berjalan ADempiere') ongoing_omset_total = fields.Float(string='Total Omset', compute='_compute_total_omset') target = fields.Float(string='Target') + ach_per_year = fields.Float(string='Ach/Year%', compute='_compute_achievement') + ach_per_month = fields.Float(string='Ach/Month%', compute='_compute_achievement') + sales_id = fields.Many2one('res.users', string='Salesperson', compute='_compute_salesperson') + + def _compute_salesperson(self): + for sales_target in self: + sales_target.sales_id = sales_target.partner_id.user_id + + def _compute_achievement(self): + for sales_target in self: + if not sales_target.target or sales_target.target <= 0: + sales_target.ach_per_year = 0 + sales_target.ach_per_month = 0 + return + current_time = datetime.now() + current_month = current_time.month + sales_target.ach_per_year = sales_target.ongoing_omset_total/sales_target.target*100 + sales_target.ach_per_month = sales_target.ongoing_omset_total/((sales_target.target/12)*current_month) def _compute_total_omset(self): for target in self: diff --git a/indoteknik_custom/views/sales_target.xml b/indoteknik_custom/views/sales_target.xml index 6ccea260..b77ea5d4 100644 --- a/indoteknik_custom/views/sales_target.xml +++ b/indoteknik_custom/views/sales_target.xml @@ -1,26 +1,39 @@ <?xml version="1.0" encoding="UTF-8" ?> <odoo> <data> + <record id="view_sales_target_filter" model="ir.ui.view"> + <field name="name">sales.target.list.select</field> + <field name="model">sales.target</field> + <field name="priority" eval="15"/> + <field name="arch" type="xml"> + <search string="Search Content"> + <field name="partner_id"/> + <field name="period"/> + </search> + </field> + </record> <record id="sales_target_action" model="ir.actions.act_window"> <field name="name">Sales Target</field> <field name="res_model">sales.target</field> + <field name="search_view_id" ref="view_sales_target_filter"/> <field name="view_mode">tree,form</field> </record> - <record id="sales_target_tree" model="ir.ui.view"> <field name="name">Sales Target</field> <field name="model">sales.target</field> <field name="arch" type="xml"> <tree> <field name="partner_id"/> + <field name="sales_id"/> <field name="period"/> <field name="omset_last_year"/> <field name="ongoing_omset_total"/> <field name="target"/> + <field name="ach_per_year"/> + <field name="ach_per_month"/> </tree> </field> </record> - <record id="sales_target_form" model="ir.ui.view"> <field name="name">Sales Target</field> <field name="model">sales.target</field> @@ -30,12 +43,16 @@ <group> <group> <field name="partner_id"/> + <field name="sales_id"/> <field name="period"/> <field name="omset_last_year"/> <field name="ongoing_omset_odoo"/> <field name="ongoing_omset_accurate"/> <field name="ongoing_omset_adempiere"/> + <field name="ongoing_omset_total"/> <field name="target"/> + <field name="ach_per_year"/> + <field name="ach_per_month"/> </group> </group> </sheet> |
