summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2023-01-18 14:34:26 +0700
committerstephanchrst <stephanchrst@gmail.com>2023-01-18 14:34:26 +0700
commit780f1a71a5fe3d053b0163f7be495497c84349d7 (patch)
tree541a829529f86f7b4cd32282d2e31e75ba3830aa
parentf5eecb48f361dd0bc45c2d8b4cf12f34aea5f243 (diff)
add salesname, and achievement in sales target
-rw-r--r--indoteknik_custom/models/sales_target.py18
-rw-r--r--indoteknik_custom/views/sales_target.xml21
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>