[FIX] account: fix profit/loss report which was not considering the sign correctly...
authorXavier ALT <xal@openerp.com>
Thu, 6 Dec 2012 12:10:56 +0000 (13:10 +0100)
committerXavier ALT <xal@openerp.com>
Thu, 6 Dec 2012 12:10:56 +0000 (13:10 +0100)
bzr revid: xal@openerp.com-20121206121056-pzgvfd14yh13fco0

addons/account/report/account_profit_horizontal.rml
addons/account/report/account_profit_loss.py
addons/account/report/account_profit_loss.rml
addons/account/wizard/account_report_profit_loss.py
addons/account/wizard/account_report_profit_loss_view.xml

index 9eec949..1c4407d 100644 (file)
             </para>
           </td>
           <td>
-            <para style="terp_default_Right_9"><font>[[ a['level']&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(abs(a['balance'])) ]] [[ company.currency_id.symbol ]]</font></para>
+            <para style="terp_default_Right_9"><font>[[ a['level']&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(a['balance']) ]] [[ company.currency_id.symbol ]]</font></para>
           </td>
           <td>
             <para style="terp_default_9">
             </para>
           </td>
           <td>
-            <para style="terp_default_Right_9"><font>[[ a['level1']&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[(a['code1'] and a['name1']) and  formatLang(abs(a['balance1'])) or removeParentNode('font') ]] [[ company.currency_id.symbol ]]</font></para>
+            <para style="terp_default_Right_9"><font>[[ a['level1']&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[(a['code1'] and a['name1']) and  formatLang(-a['balance1']) or removeParentNode('font') ]] [[ company.currency_id.symbol ]]</font></para>
           </td>
         </tr>
       </blockTable>
           <para style="terp_default_Bold_9"></para>
         </td>
         <td>
-          <para style="terp_default_Bold_9">[[ final_result()['type'] == get_trans('Net Profit') and translate(final_result()['type']) or '' ]]</para>
+          <para style="terp_default_Bold_9">[[ final_result()['code'] == 'net_profit' and final_result()['type'] or '' ]]</para>
         </td>
         <td>
-          <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == get_trans('Net Profit') and  formatLang(abs(final_result()['balance'])) ]] [[ company.currency_id.symbol ]]</para>
+          <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['code'] == 'net_profit' and  formatLang(final_result()['balance']) ]] [[ company.currency_id.symbol ]]</para>
         </td>
         <td>
           <para style="terp_default_Bold_9"></para>
         </td>
         <td>
-          <para style="terp_default_Bold_9">[[ final_result()['type'] == get_trans('Net Loss') and translate(final_result()['type']) or '' ]]</para>
+          <para style="terp_default_Bold_9">[[ final_result()['code'] == 'net_loss' and final_result()['type'] or '' ]]</para>
         </td>
         <td>
-          <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == get_trans('Net Loss') and  formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == get_trans('Net Loss') and company.currency_id.symbol ]]</para>
+          <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['code'] == 'net_loss' and  formatLang(final_result()['balance']) ]] [[ final_result()['balance'] and final_result()['code'] == 'net_loss' and company.currency_id.symbol ]]</para>
         </td>
       </tr>
     </blockTable>
           <para style="terp_default_Bold_9">Total:</para>
         </td>
         <td>
-          <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_dr())) ]] [[ company.currency_id.symbol ]]</u></para>
+          <para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_dr()) ]] [[ company.currency_id.symbol ]]</u></para>
         </td>
         <td>
           <para style="terp_default_Bold_9">Total:</para>
         </td>
         <td>
-          <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_cr())) ]] [[ company.currency_id.symbol ]]</u></para>
+          <para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_cr()) ]] [[ company.currency_id.symbol ]]</u></para>
         </td>
       </tr>
     </blockTable>
index b03ea98..b043e5a 100644 (file)
@@ -71,18 +71,18 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
         return self.res_pl
 
     def sum_dr(self):
-        if self.res_pl['type'] == _('Net Profit'):
+        if self.res_pl['code'] == 'net_profit':
             self.result_sum_dr += self.res_pl['balance']
         return self.result_sum_dr
 
     def sum_cr(self):
-        if self.res_pl['type'] == _('Net Loss'):
+        if self.res_pl['code'] == 'net_loss':
             self.result_sum_cr += self.res_pl['balance']
         return self.result_sum_cr
 
     def _get_trans(self, source):
         return _(source)
-    
+
     def get_data(self, data):
         cr, uid = self.cr, self.uid
         db_pool = pooler.get_pool(self.cr.dbname)
@@ -104,6 +104,7 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
         elif data['form']['filter'] == 'filter_date':
             ctx['date_from'] = data['form'].get('date_from', False)
             ctx['date_to'] =  data['form'].get('date_to', False)
+        ctx['state'] = data['form'].get('target_move', 'all')
 
         cal_list = {}
         account_id = data['form'].get('chart_account_id', False)
@@ -116,9 +117,9 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
                 if (account.user_type.report_type) and (account.user_type.report_type == typ):
                     currency = account.currency_id and account.currency_id or account.company_id.currency_id
                     if typ == 'expense' and account.type <> 'view' and (account.debit <> account.credit):
-                        self.result_sum_dr += abs(account.debit - account.credit)
+                        self.result_sum_dr += account.debit - account.credit
                     if typ == 'income' and account.type <> 'view' and (account.debit <> account.credit):
-                        self.result_sum_cr += abs(account.debit - account.credit)
+                        self.result_sum_cr += account.credit - account.debit
                     if data['form']['display_account'] == 'bal_movement':
                         if (not currency_pool.is_zero(self.cr, self.uid, currency, account.credit)) or (not currency_pool.is_zero(self.cr, self.uid, currency, account.debit)) or (not currency_pool.is_zero(self.cr, self.uid, currency, account.balance)):
                             accounts_temp.append(account)
@@ -128,9 +129,11 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
                     else:
                         accounts_temp.append(account)
             if self.result_sum_dr > self.result_sum_cr:
+                self.res_pl['code'] = 'net_loss'
                 self.res_pl['type'] = _('Net Loss')
                 self.res_pl['balance'] = (self.result_sum_dr - self.result_sum_cr)
             else:
+                self.res_pl['code'] = 'net_profit'
                 self.res_pl['type'] = _('Net Profit')
                 self.res_pl['balance'] = (self.result_sum_cr - self.result_sum_dr)
             self.result[typ] = accounts_temp
index 28655de..d2ab00d 100644 (file)
           </para>
         </td>
          <td>
-          <para style="terp_default_Right_9"><font>[[ a.level&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'}))  or removeParentNode('font') ]]</font><font>[[ formatLang(abs(a.balance)) ]] [[ company.currency_id.symbol ]]</font></para>
+          <para style="terp_default_Right_9"><font>[[ a.level&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'}))  or removeParentNode('font') ]]</font><font>[[ formatLang(a.balance) ]] [[ company.currency_id.symbol ]]</font></para>
         </td>
       </tr>
     </blockTable>
           <para style="terp_default_Bold_9"></para>
         </td>
         <td>
-          <para style="terp_default_Bold_9">[[ final_result()['type'] == get_trans('Net Profit') and translate(final_result()['type']) or removeParentNode('blockTable') ]]</para>
+          <para style="terp_default_Bold_9">[[ final_result()['code'] == 'net_profit' and final_result()['type'] or removeParentNode('blockTable') ]]</para>
         </td>
         <td>
-          <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == get_trans('Net Profit') and  formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == get_trans('Net Profit') and company.currency_id.symbol ]]</para>
+          <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['code'] == 'net_profit' and  formatLang(final_result()['balance']) ]] [[ final_result()['balance'] and final_result()['code'] == 'net_profit' and company.currency_id.symbol ]]</para>
         </td>
       </tr>
     </blockTable>
           <para style="terp_default_Bold_9">Total:</para>
         </td>
         <td>
-          <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_dr())) ]] [[ company.currency_id.symbol ]]</u></para>
+          <para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_dr()) ]] [[ company.currency_id.symbol ]]</u></para>
         </td>
       </tr>
     </blockTable>
           </para>
         </td>
         <td>
-          <para style="terp_default_Right_9"><font>[[ a.level&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'}))  or removeParentNode('font') ]]</font><font>[[ formatLang(abs(a.balance)) ]] [[ company.currency_id.symbol ]]</font></para>
+          <para style="terp_default_Right_9"><font>[[ a.level&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'}))  or removeParentNode('font') ]]</font><font>[[ formatLang(-a.balance) ]] [[ company.currency_id.symbol ]]</font></para>
         </td>
       </tr>
     </blockTable>
           <para style="terp_default_Bold_9"></para>
         </td>
         <td>
-          <para style="terp_default_Bold_9">[[ final_result()['type'] == get_trans('Net Loss') and translate(final_result()['type']) or removeParentNode('blockTable') ]]</para>
+          <para style="terp_default_Bold_9">[[ final_result()['code'] == 'net_loss' and final_result()['type'] or removeParentNode('blockTable') ]]</para>
         </td>
         <td>
-          <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == get_trans('Net Loss') and  formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == get_trans('Net Loss') and company.currency_id.symbol ]]</para>
+          <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['code'] == 'net_loss' and  formatLang(final_result()['balance']) ]] [[ final_result()['balance'] and final_result()['code'] == 'net_loss' and company.currency_id.symbol ]]</para>
         </td>
       </tr>
     </blockTable>
           <para style="terp_default_Bold_9">Total:</para>
         </td>
         <td>
-          <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_cr())) ]] [[ company.currency_id.symbol ]]</u></para>
+          <para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_cr()) ]] [[ company.currency_id.symbol ]]</u></para>
         </td>
       </tr>
     </blockTable>
index c526550..64a5752 100644 (file)
@@ -35,7 +35,6 @@ class account_pl_report(osv.osv_memory):
     _defaults = {
         'display_type': True,
         'journal_ids': [],
-        'target_move': False
     }
 
     def _print_report(self, cr, uid, ids, data, context=None):
index d9876f5..709b2a7 100644 (file)
@@ -9,9 +9,6 @@
             <field name="inherit_id" ref="account.account_common_report_view" />
             <field name="arch" type="xml">
             <data>
-            <xpath expr="//field[@name='target_move']" position="replace">
-                <field name="target_move" required="0" readonly="1"/>
-            </xpath>
             <xpath expr="//field[@name='journal_ids']" position="replace">
                 <field name="journal_ids" required="0" colspan="4" nolabel="1" readonly="1"/>
             </xpath>
@@ -19,7 +16,7 @@
                 <separator string="Profit And Loss" colspan="4"/>
                 <label nolabel="1" colspan="4" string="The Profit and Loss report gives you an overview of your company profit and loss in a single document"/>
             </xpath>
-            <xpath expr="//field[@name='fiscalyear_id']" position="after">
+            <xpath expr="//field[@name='target_move']" position="after">
                    <field name="display_account"/>
                    <field name="display_type"/>
             </xpath>