From dc0ba369f75f4428ce608d076f45099416911195 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Thu, 19 Mar 2009 17:47:38 +0000
Subject: [PATCH] initialize membership criterion base category list on budget
 line

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@26101 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/Document/CategoryBudgetVariation.py | 15 +++++++++++++--
 product/ERP5/Document/NodeBudgetVariation.py     | 15 +++++++++++++--
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/product/ERP5/Document/CategoryBudgetVariation.py b/product/ERP5/Document/CategoryBudgetVariation.py
index 6584039e4a..21e4d015ad 100644
--- a/product/ERP5/Document/CategoryBudgetVariation.py
+++ b/product/ERP5/Document/CategoryBudgetVariation.py
@@ -152,16 +152,27 @@ class CategoryBudgetVariation(BudgetVariation):
     """
     budget_line_variation_category_list =\
        list(budget_line.getVariationBaseCategoryList() or [])
+    budget_line_membership_criterion_base_category_list =\
+       list(budget_line.getMembershipCriterionBaseCategoryList() or [])
     base_category = self.getProperty('variation_base_category')
     if base_category:
       budget_line_variation_category_list.append(base_category)
       budget_line.setVariationBaseCategoryList(
               budget_line_variation_category_list)
+    if self.isMemberOf('budget_variation/budget_line'):
+      budget_line_membership_criterion_base_category_list.append(base_category)
+      budget_line.setMembershipCriterionBaseCategoryList(
+          budget_line_membership_criterion_base_category_list)
 
   def initializeBudget(self, budget):
     """Initialize a budget.
     """
-    # same as budget line
-    return self.initializeBudgetLine(budget)
+    budget_variation_category_list =\
+       list(budget.getVariationBaseCategoryList() or [])
+    base_category = self.getProperty('variation_base_category')
+    if base_category:
+      budget_variation_category_list.append(base_category)
+      budget.setVariationBaseCategoryList(
+              budget_variation_category_list)
 
 
diff --git a/product/ERP5/Document/NodeBudgetVariation.py b/product/ERP5/Document/NodeBudgetVariation.py
index 8cbcb26c48..9f190efc0e 100644
--- a/product/ERP5/Document/NodeBudgetVariation.py
+++ b/product/ERP5/Document/NodeBudgetVariation.py
@@ -146,16 +146,27 @@ class NodeBudgetVariation(BudgetVariation):
     """
     budget_line_variation_category_list =\
        list(budget_line.getVariationBaseCategoryList() or [])
+    budget_line_membership_criterion_base_category_list =\
+       list(budget_line.getMembershipCriterionBaseCategoryList() or [])
     base_category = self.getProperty('variation_base_category')
     if base_category:
       budget_line_variation_category_list.append(base_category)
       budget_line.setVariationBaseCategoryList(
               budget_line_variation_category_list)
+    if self.isMemberOf('budget_variation/budget_line'):
+      budget_line_membership_criterion_base_category_list.append(base_category)
+      budget_line.setMembershipCriterionBaseCategoryList(
+          budget_line_membership_criterion_base_category_list)
 
   def initializeBudget(self, budget):
     """Initialize a budget.
     """
-    # same as budget line
-    return self.initializeBudgetLine(budget)
+    budget_variation_category_list =\
+       list(budget.getVariationBaseCategoryList() or [])
+    base_category = self.getProperty('variation_base_category')
+    if base_category:
+      budget_variation_category_list.append(base_category)
+      budget.setVariationBaseCategoryList(
+              budget_variation_category_list)
 
 
-- 
2.30.9