[FIX]Possibility to choose journal none and period none
authorDenis Ledoux dle@openerp.com <>
Thu, 22 Nov 2012 15:06:45 +0000 (16:06 +0100)
committerDenis Ledoux dle@openerp.com <>
Thu, 22 Nov 2012 15:06:45 +0000 (16:06 +0100)
bzr revid: dle@openerp.com-20121122150645-kxfuwdfy6qxvjvxu

addons/account/account_move_line.py
addons/account/account_view.xml
addons/account/static/src/js/account_move_line_quickadd.js

index 1128ff4..4fb7839 100644 (file)
@@ -505,11 +505,11 @@ class account_move_line(osv.osv):
         'amount_residual_currency': fields.function(_amount_residual, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in its currency (maybe different of the company currency)."),
         'amount_residual': fields.function(_amount_residual, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in the company currency."),
         'currency_id': fields.many2one('res.currency', 'Currency', help="The optional other currency if it is a multi-currency entry."),
-        'journal_id': fields.related('move_id', 'journal_id', string='Journal', type='many2one', relation='account.journal', required=True, select=True, readonly=True,
+        'journal_id': fields.related('move_id', 'journal_id', string='Journal', type='many2one', relation='account.journal', required=True, select=True,
                                 store = {
                                     'account.move': (_get_move_lines, ['journal_id'], 20)
                                 }),
-        'period_id': fields.related('move_id', 'period_id', string='Period', type='many2one', relation='account.period', required=True, select=True, readonly=True,
+        'period_id': fields.related('move_id', 'period_id', string='Period', type='many2one', relation='account.period', required=True, select=True,
                                 store = {
                                     'account.move': (_get_move_lines, ['period_id'], 20)
                                 }),
@@ -565,6 +565,9 @@ class account_move_line(osv.osv):
         """
         Return  default account period value
         """
+        context = context or {}
+        if context.get('period_id', False):
+            return context['period_id']
         account_period_obj = self.pool.get('account.period')
         ids = account_period_obj.find(cr, uid, context=context)
         period_id = False
@@ -576,7 +579,9 @@ class account_move_line(osv.osv):
         """
         Return journal based on the journal type
         """
-
+        context = context or {}
+        if context.get('journal_id', False):
+            return context['journal_id']
         journal_id = False
 
         journal_pool = self.pool.get('account.journal')
index c62607e..eae8f90 100644 (file)
             <field eval="4" name="priority"/>
             <field name="arch" type="xml">
                 <tree colors="red:state == 'draft';black:state == 'valid'" string="Journal Items" create="true" on_write="on_create_write" version="7.0" editable="top">
-                    <field name="journal_id" invisible="context.get('journal_id',False)"/>
-                    <field name="period_id" invisible="context.get('period_id',False)"/>
+                    <field name="journal_id" options='{"no_open":True}' invisible="context.get('journal_id',False)"/>
+                    <field name="period_id" options='{"no_open":True}' invisible="context.get('period_id',False)"/>
                     <field name="date"/>
                     <field name="name"/>
                     <field name="ref"/>
                     <field name="amount_currency" readonly="True" invisible="not context.get('currency',False)"/>
                     <field name="currency_id" readonly="True" invisible="not context.get('currency',False)" />
                     <field name="state" />
+                    <field name="company_id" invisible="1"/>
                 </tree>
             </field>
         </record>
index 2535a88..8eda558 100644 (file)
@@ -91,7 +91,8 @@ openerp.account.quickadd = function (instance) {
             if (self.current_journal !== null) domain.push(["journal_id", "=", self.current_journal]);
             if (self.current_period !== null) domain.push(["period_id", "=", self.current_period]);
             self.last_context["journal_id"] = self.current_journal === null ? false : self.current_journal;
-            self.last_context["period_id"] = self.current_period === null ? false : self.current_period;
+            if (self.current_period === null) delete self.last_context["period_id"];
+            else self.last_context["period_id"] =  self.current_period;
             self.last_context["journal_type"] = self.current_journal_type;
             self.last_context["currency"] = self.current_journal_currency;
             self.last_context["analytic_journal_id"] = self.current_journal_analytic;