diff --git a/pos_cash_move_reason/__openerp__.py b/pos_cash_move_reason/__openerp__.py
index 8bc37a59..0ba02fdf 100644
--- a/pos_cash_move_reason/__openerp__.py
+++ b/pos_cash_move_reason/__openerp__.py
@@ -5,10 +5,11 @@
'name': "POS cash in-out reason",
'summary': """""",
'author': 'ACSONE SA/NV,'
+ 'GRAP,'
'Odoo Community Association (OCA)',
'website': "http://acsone.eu",
'category': 'POS',
- 'version': '8.0.1.0.0',
+ 'version': '8.0.2.0.0',
'license': 'AGPL-3',
'depends': [
'point_of_sale',
@@ -16,4 +17,7 @@
'data': [
'wizard/pos_box.xml',
],
+ 'demo': [
+ 'demo/product_template.xml',
+ ],
}
diff --git a/pos_cash_move_reason/demo/product_template.xml b/pos_cash_move_reason/demo/product_template.xml
new file mode 100644
index 00000000..b79bdf11
--- /dev/null
+++ b/pos_cash_move_reason/demo/product_template.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Miscellaneous income
+
+
+
+
+
+ Miscellaneous expense
+
+
+
+
+
diff --git a/pos_cash_move_reason/i18n/fr.po b/pos_cash_move_reason/i18n/fr.po
index 10297c0d..dfba2deb 100644
--- a/pos_cash_move_reason/i18n/fr.po
+++ b/pos_cash_move_reason/i18n/fr.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-04-12 11:10+0000\n"
-"PO-Revision-Date: 2016-04-12 11:10+0000\n"
+"POT-Creation-Date: 2018-02-15 13:30+0000\n"
+"PO-Revision-Date: 2018-02-15 13:30+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"Language: \n"
@@ -18,31 +18,35 @@ msgstr ""
#. module: pos_cash_move_reason
#: code:addons/pos_cash_move_reason/wizard/pos_box.py:36
+#: code:addons/pos_cash_move_reason/wizard/pos_box.py:39
#, python-format
msgid "Description"
msgstr "Description"
#. module: pos_cash_move_reason
-#: field:cash.box.in,product_id:0 field:cash.box.out,product_id:0
+#: model:product.template,name:pos_cash_move_reason.expense_reason
+msgid "Miscellaneous expense"
+msgstr "Dépense diverse"
+
+#. module: pos_cash_move_reason
+#: model:product.template,name:pos_cash_move_reason.income_reason
+msgid "Miscellaneous income"
+msgstr "Revenu divers"
+
+#. module: pos_cash_move_reason
+#: field:cash.box.in,product_id:0
+#: field:cash.box.out,product_id:0
msgid "Reason"
msgstr "Motif"
#. module: pos_cash_move_reason
-#: code:addons/pos_cash_move_reason/wizard/pos_box.py:84
+#: code:addons/pos_cash_move_reason/wizard/pos_box.py:62
#, python-format
-msgid ""
-"You have to define an\n"
-" expense account on the related product"
-msgstr ""
-"Vous devez définir un\n"
-" compte de charge sur le produit lié"
+msgid "You have to define an expense account on the related product %s"
+msgstr "Vous devez définir un compte de charge sur le produit lié %s"
#. module: pos_cash_move_reason
-#: code:addons/pos_cash_move_reason/wizard/pos_box.py:60
+#: code:addons/pos_cash_move_reason/wizard/pos_box.py:55
#, python-format
-msgid ""
-"You have to define an\n"
-" income account on the related product"
-msgstr ""
-"Vous devez définir un\n"
-" compte de produit sur le produit lié"
+msgid "You have to define an income account on the related product %s"
+msgstr "Vous devez définir un compte de produit sur le produit lié %s"
diff --git a/pos_cash_move_reason/i18n/pos_cash_move_reason.pot b/pos_cash_move_reason/i18n/pos_cash_move_reason.pot
index 904a152e..fc83a25f 100644
--- a/pos_cash_move_reason/i18n/pos_cash_move_reason.pot
+++ b/pos_cash_move_reason/i18n/pos_cash_move_reason.pot
@@ -6,6 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-02-15 13:46+0000\n"
+"PO-Revision-Date: 2018-02-15 13:46+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -14,11 +16,21 @@ msgstr ""
"Plural-Forms: \n"
#. module: pos_cash_move_reason
-#: code:addons/pos_cash_move_reason/wizard/pos_box.py:36
+#: code:addons/pos_cash_move_reason/wizard/pos_box.py:39
#, python-format
msgid "Description"
msgstr ""
+#. module: pos_cash_move_reason
+#: model:product.template,name:pos_cash_move_reason.expense_reason
+msgid "Miscellaneous expense"
+msgstr ""
+
+#. module: pos_cash_move_reason
+#: model:product.template,name:pos_cash_move_reason.income_reason
+msgid "Miscellaneous income"
+msgstr ""
+
#. module: pos_cash_move_reason
#: field:cash.box.in,product_id:0
#: field:cash.box.out,product_id:0
@@ -26,16 +38,14 @@ msgid "Reason"
msgstr ""
#. module: pos_cash_move_reason
-#: code:addons/pos_cash_move_reason/wizard/pos_box.py:84
+#: code:addons/pos_cash_move_reason/wizard/pos_box.py:62
#, python-format
-msgid "You have to define an\n"
-" expense account on the related product"
+msgid "You have to define an expense account on the related product %s"
msgstr ""
#. module: pos_cash_move_reason
-#: code:addons/pos_cash_move_reason/wizard/pos_box.py:60
+#: code:addons/pos_cash_move_reason/wizard/pos_box.py:55
#, python-format
-msgid "You have to define an\n"
-" income account on the related product"
+msgid "You have to define an income account on the related product %s"
msgstr ""
diff --git a/pos_cash_move_reason/tests/test_pos_cash_move_reason.py b/pos_cash_move_reason/tests/test_pos_cash_move_reason.py
index dd56136b..ecf0da07 100644
--- a/pos_cash_move_reason/tests/test_pos_cash_move_reason.py
+++ b/pos_cash_move_reason/tests/test_pos_cash_move_reason.py
@@ -18,13 +18,11 @@ class TestPosCashMoveReason(common.TransactionCase):
self.cash_journal = self.env.ref('account.cash_journal')
self.income_account = self.env.ref('account.o_income')
self.expense_account = self.env.ref('account.a_expense')
+ self.income_reason = self.env.ref('pos_cash_move_reason.income_reason')
+ self.expense_reason = self.env.ref(
+ 'pos_cash_move_reason.expense_reason')
def test01(self):
- # I create one move reason
- vals = {'name': 'Miscellaneous income',
- 'property_account_income': self.income_account.id,
- 'income_pdt': True}
- move_reason = self.cash_move_reason_obj.create(vals)
# I set cash control on cash journal
self.cash_journal.cash_control = True
# I create and open a new session
@@ -44,7 +42,7 @@ class TestPosCashMoveReason(common.TransactionCase):
# I create a cash in
cash_in = self.cash_in_obj.with_context(ctx).create(
{'name': 'Initialization',
- 'product_id': move_reason.id,
+ 'product_id': self.income_reason.id,
'amount': 500.0})
cash_in.with_context(ctx).run()
# I close the session
@@ -63,11 +61,6 @@ class TestPosCashMoveReason(common.TransactionCase):
self.assertEquals(len(move_line.ids), 1)
def test02(self):
- # I create one move reason
- vals = {'name': 'Miscellaneous expense',
- 'property_account_expense': self.expense_account.id,
- 'expense_pdt': True}
- move_reason = self.cash_move_reason_obj.create(vals)
# I set cash control on cash journal
self.cash_journal.cash_control = True
# I create and open a new session
@@ -87,7 +80,7 @@ class TestPosCashMoveReason(common.TransactionCase):
# I create a cash out
cash_out = self.cash_out_obj.with_context(ctx).create(
{'name': 'Miscellaneous expense',
- 'product_id': move_reason.id,
+ 'product_id': self.expense_reason.id,
'amount': 500.0})
cash_out.with_context(ctx).run()
# I close the session
diff --git a/pos_cash_move_reason/wizard/pos_box.py b/pos_cash_move_reason/wizard/pos_box.py
index 0dde7aaa..bc09f5cf 100644
--- a/pos_cash_move_reason/wizard/pos_box.py
+++ b/pos_cash_move_reason/wizard/pos_box.py
@@ -12,6 +12,9 @@ import simplejson
class PosBoxCashMoveReason(PosBox):
_register = False
+ product_id = fields.Many2one(
+ comodel_name='product.template', string='Reason')
+
@api.onchange('product_id')
def onchange_reason(self):
for record in self:
@@ -37,50 +40,36 @@ class PosBoxCashMoveReason(PosBox):
res['arch'] = etree.tostring(doc)
return res
-
-class PosBoxIn(PosBoxCashMoveReason):
- _inherit = 'cash.box.in'
-
- product_id = fields.Many2one(
- comodel_name='product.template', string='Reason',
- domain="[('income_pdt', '=', True)]")
-
@api.model
def _compute_values_for_statement_line(self, box, record):
- values = super(PosBoxIn, self)._compute_values_for_statement_line(
- box, record)
+ values = super(
+ PosBoxCashMoveReason, self)._compute_values_for_statement_line(
+ box, record)
if self.env.context.get('active_model', '') == 'pos.session':
- if box.product_id.id:
- product = box.product_id
+ product = box.product_id
+ account_id = False
+ if self._name == 'cash.box.in':
account_id = product.property_account_income.id or\
product.categ_id.property_account_income_categ.id
- if account_id:
- values['account_id'] = account_id
- else:
- raise exceptions.Warning(_("""You have to define an
- income account on the related product"""))
+ if not account_id:
+ raise exceptions.Warning(_(
+ "You have to define an income account on the related"
+ " product %s") % (product.name))
+ elif self._name == 'cash.box.out':
+ account_id = product.property_account_expense.id or\
+ product.categ_id.property_account_expense_categ.id
+ if not account_id:
+ raise exceptions.Warning(_(
+ "You have to define an expense account on the related"
+ " product %s") % (product.name))
+ values['account_id'] = account_id
return values
-class PosBoxOut(PosBoxCashMoveReason):
- _inherit = 'cash.box.out'
+# the following lines are required for correct inheritance mechanism
+class PosBoxIn(PosBoxCashMoveReason):
+ _inherit = 'cash.box.in'
- product_id = fields.Many2one(
- comodel_name='product.template', string='Reason',
- domain="[('expense_pdt', '=', True)]")
- @api.model
- def _compute_values_for_statement_line(self, box, record):
- values = super(PosBoxOut, self)._compute_values_for_statement_line(
- box, record)
- if self.env.context.get('active_model', '') == 'pos.session':
- if box.product_id.id:
- product = box.product_id
- account_id = product.property_account_expense.id or\
- product.categ_id.property_account_expense_categ.id
- if account_id:
- values['account_id'] = account_id
- else:
- raise exceptions.Warning(_("""You have to define an
- expense account on the related product"""))
- return values
+class PosBoxOut(PosBoxCashMoveReason):
+ _inherit = 'cash.box.out'
diff --git a/pos_cash_move_reason/wizard/pos_box.xml b/pos_cash_move_reason/wizard/pos_box.xml
index ffcf7d7a..dcb0e823 100644
--- a/pos_cash_move_reason/wizard/pos_box.xml
+++ b/pos_cash_move_reason/wizard/pos_box.xml
@@ -1,26 +1,26 @@
-
-
-
- cash.box.in.form
- cash.box.in
-
-
-
-
-
-
-
+
-
- cash.box.out.form
- cash.box.out
-
-
-
-
-
-
-
-
-
+
+ cash.box.in
+
+
+
+
+
+
+
+
+
+ cash.box.out
+
+
+
+
+
+
+
+
+