[PYTHON] +default value on expenses lines
authorLudovic CHEVALIER <ludovic@beurresarrasin.net>
Wed, 29 Mar 2023 11:36:47 +0000 (13:36 +0200)
committerLudovic CHEVALIER <ludovic@beurresarrasin.net>
Wed, 29 Mar 2023 11:36:47 +0000 (13:36 +0200)
__openerp__.py
lhc.py

index dceab53..d9179dd 100644 (file)
@@ -34,6 +34,8 @@ Custom module for L'Heureux Cyclage
 - Event management optimization;
 - Add some partners fields;
 - Budget module customization;
+- Add default values for name and ref fields in expenses lines based on
+  products description;
 - …
     """,
     'author': 'L\'Heureux Cyclage',
diff --git a/lhc.py b/lhc.py
index aefa162..27e1462 100644 (file)
--- a/lhc.py
+++ b/lhc.py
@@ -2,7 +2,7 @@
 ##############################################################################
 #
 #    lhc module for OpenERP, Customize OpenERP for L'Heureux Cyclage Copyright
-#    (C) 2013-2022 L'Heureux Cyclage (<http://www.heureux-cyclage.org>)
+#    (C) 2013-2023 L'Heureux Cyclage (<http://www.heureux-cyclage.org>)
 #
 #    This file is a part of lhc_custom_oe
 #
@@ -200,4 +200,26 @@ class event_registration(orm.Model):
                 vals['value']['phone'] = mobile
         return vals
 
+
+class hr_expense_line(orm.Model):
+    _inherit = 'hr.expense.line'
+
+    def onchange_product_id(self, cr, uid, ids, product_id, context=None):
+        """Override to manage default name and ref value based on product
+        properties"""
+
+        vals = super(hr_expense_line, self).onchange_product_id(cr, uid, ids, product_id, context)
+        res = vals['value']
+        if product_id:
+            product = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
+            res['ref'] = ''
+            if product.description:
+                description = product.description.split('|')
+                if len(description) == 1:
+                    res['name'] = description[0]
+                elif len(description) >= 2:
+                    res['name'] = description[0]
+                    res['ref'] = description[1]
+        return {'value': res}
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: