← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-addons/pso-dev-addons3 into lp:~openerp-dev/openobject-addons/trunk-dev-addons3

 

pso (Open ERP) has proposed merging lp:~openerp-dev/openobject-addons/pso-dev-addons3 into lp:~openerp-dev/openobject-addons/trunk-dev-addons3.

Requested reviews:
  mra (Open ERP) (mra-tinyerp)
  pso (Open ERP) (pso-openerp)
Related bugs:
  #617974 trunk - hr payment - rounding issue payment slip
  https://bugs.launchpad.net/bugs/617974
  #663585 [6.0rc1] suggested improvements to PO and SO form view
  https://bugs.launchpad.net/bugs/663585
  #663967 [RC1] SO -History - can delete related invoice
  https://bugs.launchpad.net/bugs/663967
  #666592 save and close crash adding product in point of sale
  https://bugs.launchpad.net/bugs/666592
  #669360 hr_timeeshet_sheet : installation fails on 1st (and probably last) date of the month.
  https://bugs.launchpad.net/bugs/669360
  #669533 [hr_timesheet] Employee timesheet reports confuse employee id and user id
  https://bugs.launchpad.net/bugs/669533
  #672684 Manual Global Tax
  https://bugs.launchpad.net/bugs/672684


Hello,

I have done following changes:

If account has secondary currency, it will not display currency in report otherwise it will display sum of all the move_line on that account have the same secondary currency.

1. Improvement in general and partner ledger reports of account.
2. Fixed problem of Initial balance row printed two times.
3. Improved account_general_ledger.rml as like landscape mode.

Thanks,
pso.


-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/pso-dev-addons3/+merge/41694
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/pso-dev-addons3.
=== modified file 'account/report/account_general_ledger.py'
--- account/report/account_general_ledger.py	2010-11-23 12:08:16 +0000
+++ account/report/account_general_ledger.py	2010-11-24 09:20:57 +0000
@@ -168,13 +168,20 @@
         else:
             sql_sort='l.date'
         sql = """
-            SELECT l.id AS lid, l.date AS ldate, j.code AS lcode, l.currency_id,l.amount_currency,l.ref AS lref, l.name AS lname, COALESCE(l.debit,0) AS debit, COALESCE(l.credit,0) AS credit, l.period_id AS lperiod_id, l.partner_id AS lpartner_id,
+            SELECT l.id AS lid, l.date AS ldate, j.code AS lcode, l.currency_id,
+            case when a.currency_id is not null then
+                         l.amount_currency
+                        else
+                        0.0
+                        end as amount_currency,
+            l.ref AS lref, l.name AS lname, COALESCE(l.debit,0) AS debit, COALESCE(l.credit,0) AS credit, l.period_id AS lperiod_id, l.partner_id AS lpartner_id,
             m.name AS move_name, m.id AS mmove_id,
             c.symbol AS currency_code,
             i.id AS invoice_id, i.type AS invoice_type, i.number AS invoice_number,
             p.name AS partner_name
             FROM account_move_line l
             JOIN account_move m on (l.move_id=m.id)
+            LEFT JOIN account_account a ON (l.account_id=a.id)
             LEFT JOIN res_currency c on (l.currency_id=c.id)
             LEFT JOIN res_partner p on (l.partner_id=p.id)
             LEFT JOIN account_invoice i on (m.id =i.move_id)
@@ -187,23 +194,31 @@
         if res_lines and self.init_balance:
             #FIXME: replace the label of lname with a string translatable
             sql = """
-                SELECT 0 AS lid, '' AS ldate, '' AS lcode, COALESCE(SUM(l.amount_currency),0.0) AS amount_currency, '' AS lref, 'Initial Balance' AS lname, COALESCE(SUM(l.debit),0.0) AS debit, COALESCE(SUM(l.credit),0.0) AS credit, '' AS lperiod_id, '' AS lpartner_id,
-                '' AS move_name, '' AS mmove_id,
-                '' AS currency_code,
-                NULL AS currency_id,
+                SELECT 0 AS lid, '' AS ldate, '' AS lcode,
+                sum(case when a.currency_id is not null then
+                         l.amount_currency
+                        else
+                         0.0
+                        end) as amount_currency,
+                '' AS lref, 'Initial Balance' AS lname, COALESCE(SUM(l.debit),0.0) AS debit, COALESCE(SUM(l.credit),0.0) AS credit, '' AS lperiod_id, '' AS lpartner_id,
+                '' AS move_name, '' AS mmove_id,  
+                c.symbol AS currency_code,
+                l.currency_id AS currency_id,
                 '' AS invoice_id, '' AS invoice_type, '' AS invoice_number,
                 '' AS partner_name
                 FROM account_move_line l
                 LEFT JOIN account_move m on (l.move_id=m.id)
+                LEFT JOIN account_account a ON (l.account_id=a.id)
                 LEFT JOIN res_currency c on (l.currency_id=c.id)
                 LEFT JOIN res_partner p on (l.partner_id=p.id)
                 LEFT JOIN account_invoice i on (m.id =i.move_id)
                 JOIN account_journal j on (l.journal_id=j.id)
-                WHERE %s AND m.state IN %s AND l.account_id = %%s
+                WHERE %s AND m.state IN %s AND l.account_id = %%s   
+                group by c.symbol , l.currency_id
             """ %(self.init_query, tuple(move_state))
             self.cr.execute(sql, (account.id,))
             res_init = self.cr.dictfetchall()
-        res = res_init + res_lines
+        res = res_init + res_lines 
         account_sum = 0.0
         inv_types = { 'out_invoice': 'CI', 'in_invoice': 'SI', 'out_refund': 'OR', 'in_refund': 'SR', }
         for l in res:
@@ -220,6 +235,8 @@
                     l['amount_currency'] = abs(l['amount_currency']) * -1
             if l['amount_currency'] != None:
                 self.tot_currency = self.tot_currency + l['amount_currency']
+            self.cr.execute("select distinct currency_id from account_invoice")
+            l['cur_id']=self.cr.fetchall()
         return res
 
     def _sum_debit_account(self, account):

=== modified file 'account/report/account_general_ledger.rml'
--- account/report/account_general_ledger.rml	2010-11-18 10:29:36 +0000
+++ account/report/account_general_ledger.rml	2010-11-24 09:20:57 +0000
@@ -333,7 +333,7 @@
                 <td alignment="right"><para style="P9b"><u>[[formatLang(sum_debit_account(o)) ]]</u></para></td>
                 <td alignment="right"><para style="P9b"><u>[[formatLang(sum_credit_account(o)) ]]</u></para></td>
                 <td><para style="P9b"><u>[[formatLang(sum_balance_account(o)) ]] [[ company.currency_id.symbol ]]</u></para></td>
-               <td><para style="P9b"><u>[[ o.currency_id and sum_currency_amount_account(o) +o.currency_id.symbol or '' ]]</u></para></td>
+                <td><para style="P9b"><u>[[ o.currency_id and sum_currency_amount_account(o) +o.currency_id.symbol or '' ]]</u></para></td>
               </tr>
           </blockTable>
       </td>
@@ -355,7 +355,7 @@
        <td><para style="P4">[[ formatLang(line['debit']) ]]</para></td>
        <td><para style="P4">[[ formatLang(line['credit']) ]]</para></td>
        <td><para style="P4">[[ formatLang(line['progress']) ]] [[ company.currency_id.symbol ]]</para></td>
-	   <td><para style="P4"><font>[[ (line.has_key('currency_id') and line['currency_id']==None or line['amount_currency']==None) and removeParentNode('font') ]] [[  formatLang(line['amount_currency'])]] [[  line['currency_code'] or '']]</font></para></td>
+	   <td><para style="P4"><font>[[ (len(line['cur_id'])==1 and o.currency_id.id==line['currency_id'] and formatLang(line['amount_currency'])) or removeParentNode('font') ]] [[  line['currency_code'] or '']]</font></para></td>
      </tr>
   </blockTable>
   </section>

=== modified file 'account/report/account_general_ledger_landscape.rml'
--- account/report/account_general_ledger_landscape.rml	2010-11-22 13:05:33 +0000
+++ account/report/account_general_ledger_landscape.rml	2010-11-24 09:20:57 +0000
@@ -268,7 +268,6 @@
     <images/>
   </stylesheet>
   <story>
-
   	<pto>
   	<pto_header>
   		<blockTable colWidths="45.0,55.0,72.0,64.0,64.0,77.0,85.0,71.0,71.0,88.0,80.0" style="Table7">[[data['form']['amount_currency'] == True or removeParentNode('blockTable')]]
@@ -493,7 +492,7 @@
             <para style="terp_default_Bold_9_Right">[[ formatLang(sum_balance_account(o), digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para>
           </td>
           <td>
-            <para style="terp_default_Bold_9_Right">[[ o.currency_id and formatLang(sum_currency_amount_account(o), digits=get_digits(dp='Account')) + o.currency_id.code or '' ]]</para>
+            <para style="terp_default_Bold_9_Right">[[ o.currency_id and formatLang(sum_currency_amount_account(o), digits=get_digits(dp='Account')) + o.currency_id.symbol or '' ]]</para>
           </td>
         </tr>
       </blockTable>
@@ -532,7 +531,7 @@
               <para style="terp_default_Right_8">[[ formatLang(line['progress'], digits=get_digits(dp='Account')) ]] [[ company.currency_id.symbol ]]</para>
             </td>
             <td>
-              <para style="terp_default_Right_9"><font size="8.0">[[ (line.has_key('currency_id') and line['currency_id']==None or line['amount_currency']==None) and removeParentNode('font') ]] [[ formatLang(line['amount_currency'])]] [[ line['currency_code'] or '']]</font></para>
+                <para style="terp_default_Right_8"><font>[[ (len(line['cur_id'])==1 and o.currency_id.id==line['currency_id'] and formatLang(line['amount_currency'])) or removeParentNode('font') ]] [[  line['currency_code'] or '']]</font></para>
             </td>
           </tr>
         </blockTable>
@@ -628,6 +627,7 @@
         </blockTable>
       </section>
     </section>
+>>>>>>> MERGE-SOURCE
     </pto>
   </story>
 </document>
\ No newline at end of file

=== modified file 'account/report/account_partner_ledger.py'
--- account/report/account_partner_ledger.py	2010-11-22 07:19:21 +0000
+++ account/report/account_partner_ledger.py	2010-11-24 09:20:57 +0000
@@ -51,6 +51,8 @@
             'display_initial_balance':self._display_initial_balance,
             'display_currency':self._display_currency,
             'get_target_move': self._get_target_move,
+            'get_currency': self._get_currency,
+            'sum_currency_amount_account': self._sum_currency_amount_account
         })
 
     def set_context(self, objects, data, ids, report_type=None):
@@ -161,6 +163,10 @@
             full_account.append(r)
         return full_account
 
+    def _get_currency(self):
+        self.cr.execute("select distinct currency_id from account_invoice")
+        return self.cr.fetchall()
+
     def _get_intial_balance(self, partner):
         move_state = ['draft','posted']
         if self.target_move == 'posted':
@@ -390,16 +396,27 @@
             return 'Receivable and Payable Accounts'
         return ''
 
-    def _sum_currency_amount_account(self, account, form):
-        self._set_get_account_currency_code(account.id)
-        self.cr.execute("SELECT sum(aml.amount_currency) FROM account_move_line as aml,res_currency as rc WHERE aml.currency_id = rc.id AND aml.account_id= %s ", (account.id,))
+#    def _set_get_account_currency_code(self, account_id):
+#        self.cr.execute("SELECT c.symbol AS code "\
+#                        "FROM res_currency c, account_account AS ac "\
+#                        "WHERE ac.id = %s AND ac.currency_id = c.id" % (account_id))
+#        result = self.cr.fetchone()
+#        if result:
+#            self.account_currency = result[0]
+#        else:
+#            self.account_currency = False
+
+    def _sum_currency_amount_account(self, account):
+#        self._set_get_account_currency_code(account.id)
+        self.cr.execute("SELECT sum(aml.amount_currency) FROM account_move_line as aml,res_currency as rc WHERE aml.currency_id = rc.id AND aml.account_id= %s" %(account.id))
         total = self.cr.fetchone()
-        if self.account_currency:
-            return_field = str(total[0]) + self.account_currency
-            return return_field
-        else:
-            currency_total = self.tot_currency = 0.0
-            return currency_total
+        return total[0] or 0.0
+#        if self.amount_currency:
+#            return_field = total[0] + self.amount_currency
+#            return return_field
+#        else:
+#            currency_total = self.tot_currency = 0.0
+#            return currency_total
 
     def _display_initial_balance(self, data):
          if self.initial_balance:

=== modified file 'account/report/account_partner_ledger_other.rml'
--- account/report/account_partner_ledger_other.rml	2010-11-18 11:56:06 +0000
+++ account/report/account_partner_ledger_other.rml	2010-11-24 09:20:57 +0000
@@ -327,7 +327,8 @@
     <paraStyle name="Table index 1" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica"/>
     <paraStyle name="Table" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
     <paraStyle name="Table index heading" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="16.0" leading="20" spaceBefore="12.0" spaceAfter="6.0"/>
-  <paraStyle name="terp_default_Right_1" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_1" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="P9b" fontName="Helvetica-Bold" fontSize="8.5" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
     <images/>
   </stylesheet>
   <story>
@@ -636,9 +637,7 @@
           <para style="P5">[[ formatLang((sum_debit_partner(p) - sum_credit_partner(p))) ]] [[ company.currency_id.symbol ]]</para>
         </td>
         <td>
-          <para style="P5">
-            <font color="white"> </font>
-          </para>
+          <para style="terp_default_Right_9">[[ p.property_account_receivable.currency_id and formatLang(sum_currency_amount_account(p.property_account_receivable), digits=get_digits(dp='Account')) + p.property_account_receivable.currency_id.symbol or '' ]]</para>
         </td>
       </tr>
         <tr>
@@ -655,7 +654,7 @@
           <para style="terp_default_Right_9">[[ formatLang(get_intial_balance(p)[0][2]) ]] [[ company.currency_id.symbol ]]</para>
         </td>
        <td>
-          <para style="terp_default_Right_9"></para>
+          <para style="terp_default_Right_9">[[ len(get_currency())==1 and p.property_account_receivable.currency_id and formatLang(sum_currency_amount_account(p.property_account_receivable), digits=get_digits(dp='Account')) + p.property_account_receivable.currency_id.symbol or '' ]]</para>
         </td>
         </tr>
     </blockTable>
@@ -688,7 +687,7 @@
             <para style="terp_default_Right_9">[[ formatLang((line['progress'])) ]] [[ company.currency_id.symbol ]]</para>
           </td>
           <td>
-            <para style="terp_default_Right_9"><font>[[ (line['currency_id']==None or line['amount_currency']==None) and removeParentNode('font') ]] [[ formatLang(line['amount_currency'] ) ]] [[ line['currency_code'] or '' ]]</font></para>
+            <para style="terp_default_Right_9"><font>[[ (len(get_currency())==1 and p.property_account_receivable.currency_id and formatLang(line['amount_currency'])) or removeParentNode('font') ]] [[  line['currency_code'] or '']] </font></para>
           </td>
         </tr>
       </blockTable>


Follow ups