← Back to team overview

openerp-community-reviewer team mailing list archive

[Merge] lp:~camptocamp/account-financial-report/7.0-add-reference-field-xls-mdh into lp:account-financial-report

 

Matthieu Dietrich @ camptocamp has proposed merging lp:~camptocamp/account-financial-report/7.0-add-reference-field-xls-mdh into lp:account-financial-report.

Commit message:
[IMP] add move line reference field to XLS reports (open invoices, general ledger, partner ledgers)

Requested reviews:
  Account Report Core Editors (account-report-core-editor)

For more details, see:
https://code.launchpad.net/~camptocamp/account-financial-report/7.0-add-reference-field-xls-mdh/+merge/214905

Related to lp:~camptocamp/account-financial-report/7.0-add-reference-field-mdh, this adds the reference fiels to XLS reports.
-- 
https://code.launchpad.net/~camptocamp/account-financial-report/7.0-add-reference-field-xls-mdh/+merge/214905
Your team Account Report Core Editors is requested to review the proposed merge of lp:~camptocamp/account-financial-report/7.0-add-reference-field-xls-mdh into lp:account-financial-report.
=== modified file 'account_financial_report_webkit_xls/report/general_ledger_xls.py'
--- account_financial_report_webkit_xls/report/general_ledger_xls.py	2013-10-31 18:01:41 +0000
+++ account_financial_report_webkit_xls/report/general_ledger_xls.py	2014-04-09 09:16:35 +0000
@@ -38,32 +38,33 @@
     ('journal', 12),
     ('account_code', 12),
     ('partner', 30),
+    ('ref', 20),
     ('label', 45),
     ('counterpart', 30),
-    ('debit', 15), 
+    ('debit', 15),
     ('credit', 15),
     ('cumul_bal', 15),
-    ('curr_bal', 15), 
+    ('curr_bal', 15),
     ('curr_code', 7),
 ]
 
 class general_ledger_xls(report_xls):
     column_sizes = [x[1] for x in _column_sizes]
-    
+
     def generate_xls_report(self, _p, _xs, data, objects, wb):
-        
+
         ws = wb.add_sheet(_p.report_name[:31])
         ws.panes_frozen = True
         ws.remove_splits = True
         ws.portrait = 0 # Landscape
         ws.fit_width_to_pages = 1
         row_pos = 0
-        
+
         # set print header/footer
         ws.header_str = self.xls_headers['standard']
         ws.footer_str = self.xls_footers['standard']
-        
-        # cf. account_report_general_ledger.mako  
+
+        # cf. account_report_general_ledger.mako
         initial_balance_text = {'initial_balance': _('Computed'), 'opening_balance': _('Opening Entries'), False: _('No')}
 
         # Title
@@ -71,7 +72,7 @@
         report_name =  ' - '.join([_p.report_name.upper(), _p.company.partner_id.name, _p.company.currency_id.name])
         c_specs = [
             ('report_name', 1, 0, 'text', report_name),
-        ]       
+        ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
         row_pos = self.xls_write_row(ws, row_pos, row_data, row_style=cell_style)
 
@@ -79,8 +80,8 @@
         c_sizes = self.column_sizes
         c_specs = [('empty%s'%i, 1, c_sizes[i], 'text', None) for i in range(0,len(c_sizes))]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_pos = self.xls_write_row(ws, row_pos, row_data, set_column_size=True)        
-        
+        row_pos = self.xls_write_row(ws, row_pos, row_data, set_column_size=True)
+
         # Header Table
         cell_format = _xs['bold'] + _xs['fill_blue'] + _xs['borders_all']
         cell_style = xlwt.easyxf(cell_format)
@@ -93,7 +94,7 @@
             ('tm', 2, 0, 'text',  _('Target Moves')),
             ('ib', 2, 0, 'text',  _('Initial Balance')),
 
-        ]       
+        ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
         row_pos = self.xls_write_row(ws, row_pos, row_data, row_style=cell_style_center)
 
@@ -106,7 +107,7 @@
         ]
         df = _('From') + ': '
         if _p.filter_form(data) == 'filter_date':
-            df += _p.start_date if _p.start_date else u'' 
+            df += _p.start_date if _p.start_date else u''
         else:
             df += _p.start_period.name if _p.start_period else u''
         df += ' ' + _('To') + ': '
@@ -119,10 +120,10 @@
             ('af', 1, 0, 'text', _p.accounts(data) and ', '.join([account.code for account in _p.accounts(data)]) or _('All')),
             ('tm', 2, 0, 'text', _p.display_target_move(data)),
             ('ib', 2, 0, 'text', initial_balance_text[_p.initial_balance_mode]),
-        ]       
+        ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_pos = self.xls_write_row(ws, row_pos, row_data, row_style=cell_style_center)  
-        ws.set_horz_split_pos(row_pos)   
+        row_pos = self.xls_write_row(ws, row_pos, row_data, row_style=cell_style_center)
+        ws.set_horz_split_pos(row_pos)
         row_pos += 1
 
         # Column Title Row
@@ -150,19 +151,20 @@
             ('journal', 1, 0, 'text', _('Journal'), None, c_hdr_cell_style),
             ('account_code', 1, 0, 'text', _('Account'), None, c_hdr_cell_style),
             ('partner', 1, 0, 'text', _('Partner'), None, c_hdr_cell_style),
+            ('ref', 1, 0, 'text', _('Reference'), None, c_hdr_cell_style),
             ('label', 1, 0, 'text', _('Label'), None, c_hdr_cell_style),
             ('counterpart', 1, 0, 'text', _('Counterpart'), None, c_hdr_cell_style),
             ('debit', 1, 0, 'text', _('Debit'), None, c_hdr_cell_style_right),
             ('credit', 1, 0, 'text', _('Credit'), None, c_hdr_cell_style_right),
-            ('cumul_bal', 1, 0, 'text', _('Cumul. Bal.'), None, c_hdr_cell_style_right),                    
-        ]  
+            ('cumul_bal', 1, 0, 'text', _('Cumul. Bal.'), None, c_hdr_cell_style_right),
+        ]
         if _p.amount_currency(data):
             c_specs += [
             ('curr_bal', 1, 0, 'text', _('Curr. Bal.'), None, c_hdr_cell_style_right),
             ('curr_code', 1, 0, 'text', _('Curr.'), None, c_hdr_cell_style_center),
             ]
         c_hdr_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        
+
         # cell styles for ledger lines
         ll_cell_format = _xs['borders_all']
         ll_cell_style = xlwt.easyxf(ll_cell_format)
@@ -170,7 +172,7 @@
         ll_cell_style_center = xlwt.easyxf(ll_cell_format + _xs['center'])
         ll_cell_style_date = xlwt.easyxf(ll_cell_format + _xs['left'], num_format_str = report_xls.date_format)
         ll_cell_style_decimal = xlwt.easyxf(ll_cell_format + _xs['right'], num_format_str = report_xls.decimal_format)
-        
+
         cnt = 0
         for account in objects:
 
@@ -188,36 +190,36 @@
                     ('acc_title', 11, 0, 'text', ' - '.join([account.code, account.name])),
                 ]
                 row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                row_pos = self.xls_write_row(ws, row_pos, row_data, c_title_cell_style)    
-                row_pos = self.xls_write_row(ws, row_pos, c_hdr_data)   
+                row_pos = self.xls_write_row(ws, row_pos, row_data, c_title_cell_style)
+                row_pos = self.xls_write_row(ws, row_pos, c_hdr_data)
                 row_start = row_pos
 
                 if display_initial_balance:
                     cumul_debit = account.init_balance.get('debit') or 0.0
                     cumul_credit = account.init_balance.get('credit') or 0.0
                     cumul_balance = account.init_balance.get('init_balance') or 0.0
-                    cumul_balance_curr = account.init_balance.get('init_balance_currency') or 0.0     
-                    debit_cell = rowcol_to_cell(row_pos, 8)                
-                    credit_cell = rowcol_to_cell(row_pos, 9)
-                    bal_formula = debit_cell + '-' + credit_cell                              
-                    c_specs = [('empty%s' %x, 1, 0, 'text', None) for x in range(6)]
+                    cumul_balance_curr = account.init_balance.get('init_balance_currency') or 0.0
+                    debit_cell = rowcol_to_cell(row_pos, 9)
+                    credit_cell = rowcol_to_cell(row_pos, 10)
+                    bal_formula = debit_cell + '-' + credit_cell
+                    c_specs = [('empty%s' %x, 1, 0, 'text', None) for x in range(7)]
                     c_specs += [
                         ('init_bal', 1, 0, 'text', _('Initial Balance')),
                         ('counterpart', 1, 0, 'text', None),
                         ('debit', 1, 0, 'number', cumul_debit, None, c_init_cell_style_decimal),
                         ('credit', 1, 0, 'number', cumul_credit, None, c_init_cell_style_decimal),
-                        ('cumul_bal', 1, 0, 'number', cumul_balance, None, c_init_cell_style_decimal),                    
-                    ]  
+                        ('cumul_bal', 1, 0, 'number', cumul_balance, None, c_init_cell_style_decimal),
+                    ]
                     if _p.amount_currency(data):
                         c_specs += [
                         ('curr_bal', 1, 0, 'number', cumul_balance_curr, None, c_init_cell_style_decimal),
                         ('curr_code', 1, 0, 'text', None),
                         ]
                     row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                    row_pos = self.xls_write_row(ws, row_pos, row_data, c_init_cell_style) 
+                    row_pos = self.xls_write_row(ws, row_pos, row_data, c_init_cell_style)
 
                 for line in account.ledger_lines:
-                    
+
                     cumul_debit += line.get('debit') or 0.0
                     cumul_credit += line.get('credit') or 0.0
                     cumul_balance_curr += line.get('amount_currency') or 0.0
@@ -234,42 +236,43 @@
                     else:
                         c_specs = [
                             ('ldate', 1, 0, 'text', None),
-                        ]    
+                        ]
                     c_specs += [
                         ('period', 1, 0, 'text', line.get('period_code') or ''),
                         ('move', 1, 0, 'text', line.get('move_name') or ''),
                         ('journal', 1, 0, 'text', line.get('jcode') or ''),
                         ('account_code', 1, 0, 'text', account.code),
                         ('partner', 1, 0, 'text', line.get('partner_name') or ''),
+                        ('ref', 1, 0, 'text', line.get('lref') or ''),
                         ('label', 1, 0, 'text', label),
                         ('counterpart', 1, 0, 'text', line.get('counterparts') or ''),
                         ('debit', 1, 0, 'number', line.get('debit', 0.0), None, ll_cell_style_decimal),
                         ('credit', 1, 0, 'number', line.get('credit', 0.0), None, ll_cell_style_decimal),
                         ('cumul_bal', 1, 0, 'number', cumul_balance, None, ll_cell_style_decimal),
-                    ]  
+                    ]
                     if _p.amount_currency(data):
                         c_specs += [
                         ('curr_bal', 1, 0, 'number', line.get('amount_currency') or 0.0, None, ll_cell_style_decimal),
                         ('curr_code', 1, 0, 'text', line.get('currency_code') or '', None, ll_cell_style_center),
                         ]
                     row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                    row_pos = self.xls_write_row(ws, row_pos, row_data, ll_cell_style) 
-                
-                debit_start = rowcol_to_cell(row_start, 8)                
-                debit_end = rowcol_to_cell(row_pos-1, 8)
+                    row_pos = self.xls_write_row(ws, row_pos, row_data, ll_cell_style)
+
+                debit_start = rowcol_to_cell(row_start, 9)
+                debit_end = rowcol_to_cell(row_pos-1, 9)
                 debit_formula = 'SUM(' + debit_start + ':' + debit_end + ')'
-                credit_start = rowcol_to_cell(row_start, 9)                
-                credit_end = rowcol_to_cell(row_pos-1, 9)
+                credit_start = rowcol_to_cell(row_start, 10)
+                credit_end = rowcol_to_cell(row_pos-1, 10)
                 credit_formula = 'SUM(' + credit_start + ':' + credit_end + ')'
-                balance_debit = rowcol_to_cell(row_pos, 8)                
-                balance_credit = rowcol_to_cell(row_pos, 9)
+                balance_debit = rowcol_to_cell(row_pos, 9)
+                balance_credit = rowcol_to_cell(row_pos, 10)
                 balance_formula = balance_debit + '-' + balance_credit
                 c_specs = [
-                    ('acc_title', 7, 0, 'text', ' - '.join([account.code, account.name])),
+                    ('acc_title', 8, 0, 'text', ' - '.join([account.code, account.name])),
                     ('cum_bal', 1, 0, 'text', _('Cumulated Balance on Account'), None, c_hdr_cell_style_right),
-                    ('debit', 1, 0, 'number', None, debit_formula, c_hdr_cell_style_decimal),             
-                    ('credit', 1, 0, 'number', None, credit_formula, c_hdr_cell_style_decimal),             
-                    ('balance', 1, 0, 'number', None, balance_formula, c_hdr_cell_style_decimal),                       
+                    ('debit', 1, 0, 'number', None, debit_formula, c_hdr_cell_style_decimal),
+                    ('credit', 1, 0, 'number', None, credit_formula, c_hdr_cell_style_decimal),
+                    ('balance', 1, 0, 'number', None, balance_formula, c_hdr_cell_style_decimal),
                 ]
                 if _p.amount_currency(data):
                     if account.currency_id:
@@ -278,7 +281,7 @@
                         c_specs += [('curr_bal', 1, 0, 'text', None)]
                     c_specs += [('curr_code', 1, 0, 'text', None)]
                 row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                row_pos = self.xls_write_row(ws, row_pos, row_data, c_hdr_cell_style) 
+                row_pos = self.xls_write_row(ws, row_pos, row_data, c_hdr_cell_style)
                 row_pos += 1
 
 general_ledger_xls('report.account.account_report_general_ledger_xls', 'account.account',

=== modified file 'account_financial_report_webkit_xls/report/open_invoices_xls.py'
--- account_financial_report_webkit_xls/report/open_invoices_xls.py	2013-10-31 18:01:41 +0000
+++ account_financial_report_webkit_xls/report/open_invoices_xls.py	2014-04-09 09:16:35 +0000
@@ -32,60 +32,60 @@
 #_logger = logging.getLogger(__name__)
 
 class open_invoices_xls(report_xls):
-    column_sizes = [12,12,20,15,30,30,14,14,14,14,14,14,10]
-    
+    column_sizes = [12,12,20,15,30,20,30,14,14,14,14,14,14,10]
+
     def global_initializations(self, wb, _p, xlwt, _xs, objects, data):
         # this procedure will initialise variables and Excel cell styles and return them as global ones
-        global ws 
+        global ws
         ws = wb.add_sheet(_p.report_name[:31])
         ws.panes_frozen = True
         ws.remove_splits = True
         ws.portrait = 0 # Landscape
         ws.fit_width_to_pages = 1
         ws.header_str = self.xls_headers['standard']
-        ws.footer_str = self.xls_footers['standard'] 
-        #-------------------------------------------------------    
-        global nbr_columns  #number of columns is 11 in case of normal report, 13 in case the option currency is selected and 12 in case of the regroup by currency option is checked   
+        ws.footer_str = self.xls_footers['standard']
+        #-------------------------------------------------------
+        global nbr_columns  #number of columns is 11 in case of normal report, 13 in case the option currency is selected and 12 in case of the regroup by currency option is checked
         group_lines = False
         for acc in objects:  #search if the regroup option is selected by browsing the accounts defined in objects - see account_report_open_invoices.mako
             if hasattr(acc, 'grouped_ledger_lines'):
                 group_lines = True
         if group_lines:
+            nbr_columns = 13
+        elif _p.amount_currency(data) and not group_lines:
+            nbr_columns = 14
+        else:
             nbr_columns = 12
-        elif _p.amount_currency(data) and not group_lines:
-            nbr_columns = 13
-        else:
-            nbr_columns = 11
-        #-------------------------------------------------------  
+        #-------------------------------------------------------
         global style_font12  #cell style for report title
-        style_font12 = xlwt.easyxf(_xs['xls_title']) 
+        style_font12 = xlwt.easyxf(_xs['xls_title'])
         #-------------------------------------------------------
         global style_default
-        style_default = xlwt.easyxf(_xs['borders_all']) 
+        style_default = xlwt.easyxf(_xs['borders_all'])
         #-------------------------------------------------------
         global style_default_italic
-        style_default_italic = xlwt.easyxf(_xs['borders_all'] + _xs['italic']) 
+        style_default_italic = xlwt.easyxf(_xs['borders_all'] + _xs['italic'])
         #-------------------------------------------------------
         global style_bold
-        style_bold = xlwt.easyxf(_xs['bold'] + _xs['borders_all']) 
+        style_bold = xlwt.easyxf(_xs['bold'] + _xs['borders_all'])
         #-------------------------------------------------------
         global style_bold_center
-        style_bold_center = xlwt.easyxf(_xs['bold'] + _xs['borders_all'] + _xs['center']) 
-        #------------------------------------------------------- 
+        style_bold_center = xlwt.easyxf(_xs['bold'] + _xs['borders_all'] + _xs['center'])
+        #-------------------------------------------------------
         global style_bold_italic
         style_bold_italic = xlwt.easyxf(_xs['bold'] + _xs['borders_all'] + _xs['italic'])
-        #------------------------------------------------------- 
+        #-------------------------------------------------------
         global style_bold_italic_decimal
         style_bold_italic_decimal = xlwt.easyxf(_xs['bold'] + _xs['borders_all'] + _xs['italic'] + _xs['right'], num_format_str = report_xls.decimal_format)
         #-------------------------------------------------------
         global style_bold_blue
-        style_bold_blue = xlwt.easyxf(_xs['bold'] + _xs['fill_blue'] + _xs['borders_all'] )   
+        style_bold_blue = xlwt.easyxf(_xs['bold'] + _xs['fill_blue'] + _xs['borders_all'] )
         #-------------------------------------------------------
         global style_bold_blue_italic_decimal
-        style_bold_blue_italic_decimal = xlwt.easyxf(_xs['bold'] + _xs['fill_blue'] + _xs['borders_all'] + _xs['italic'], num_format_str = report_xls.decimal_format)   
+        style_bold_blue_italic_decimal = xlwt.easyxf(_xs['bold'] + _xs['fill_blue'] + _xs['borders_all'] + _xs['italic'], num_format_str = report_xls.decimal_format)
         #-------------------------------------------------------
         global style_bold_blue_center #cell style for header titles: 'Chart of accounts' - 'Fiscal year' ...
-        style_bold_blue_center= xlwt.easyxf(_xs['bold'] + _xs['fill_blue'] + _xs['borders_all'] + _xs['center'])            
+        style_bold_blue_center= xlwt.easyxf(_xs['bold'] + _xs['fill_blue'] + _xs['borders_all'] + _xs['center'])
         #-------------------------------------------------------
         global style_center #cell style for header data: 'Chart of accounts' - 'Fiscal year' ...
         style_center = xlwt.easyxf(_xs['borders_all'] + _xs['wrap'] + _xs['center'])
@@ -94,7 +94,7 @@
         style_yellow_bold = xlwt.easyxf(_xs['bold'] + _xs['fill'] + _xs['borders_all'])
         #-------------------------------------------------------
         global style_yellow_bold_right #cell style for columns titles 'Date'- 'Period' - 'Entry'...
-        style_yellow_bold_right = xlwt.easyxf(_xs['bold'] + _xs['fill'] + _xs['borders_all'] + _xs['right'])       
+        style_yellow_bold_right = xlwt.easyxf(_xs['bold'] + _xs['fill'] + _xs['borders_all'] + _xs['right'])
         #-------------------------------------------------------
         global style_right
         style_right = xlwt.easyxf(_xs['borders_all'] + _xs['right'])
@@ -117,7 +117,7 @@
         global style_account_title, style_account_title_right, style_account_title_decimal
         cell_format = _xs['xls_title'] + _xs['bold'] + _xs['fill'] + _xs['borders_all']
         style_account_title = xlwt.easyxf(cell_format)
-        style_account_title_right = xlwt.easyxf(cell_format + _xs['right'])        
+        style_account_title_right = xlwt.easyxf(cell_format + _xs['right'])
         style_account_title_decimal = xlwt.easyxf(cell_format + _xs['right'], num_format_str = report_xls.decimal_format)
         #-------------------------------------------------------
         global style_partner_row
@@ -130,22 +130,22 @@
         style_partner_cumul_right = xlwt.easyxf(cell_format + _xs['right'])
         style_partner_cumul_center = xlwt.easyxf(cell_format + _xs['center'])
         style_partner_cumul_decimal = xlwt.easyxf(cell_format + _xs['right'], num_format_str = report_xls.decimal_format)
-             
+
     def print_title(self, _p, row_position): # print the first line "OPEN INVOICE REPORT - db name - Currency
         report_name =  ' - '.join([_p.report_name.upper(), _p.company.partner_id.name, _p.company.currency_id.name])
-        c_specs = [('report_name', nbr_columns, 0, 'text', report_name), ]       
+        c_specs = [('report_name', nbr_columns, 0, 'text', report_name), ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
         row_position = self.xls_write_row(ws, row_position, row_data, row_style=style_font12)
         return row_position
-    
+
     def print_empty_row(self, row_position): #send an empty row to the Excel document
         c_sizes = self.column_sizes
         c_specs = [('empty%s'%i, 1, c_sizes[i], 'text', None) for i in range(0,len(c_sizes))]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, set_column_size=True) 
-        return row_position    
-    
-    def print_header_titles(self, _p, data, row_position): #Fill in the titles of the header summary tables: Chart of account - Fiscal year - ...    
+        row_position = self.xls_write_row(ws, row_position, row_data, set_column_size=True)
+        return row_position
+
+    def print_header_titles(self, _p, data, row_position): #Fill in the titles of the header summary tables: Chart of account - Fiscal year - ...
         c_specs = [
             ('coa', 2, 0, 'text', _('Chart of Account'), None, style_bold_blue_center),
             ('fy', 2, 0, 'text', _('Fiscal Year'), None, style_bold_blue_center),
@@ -153,19 +153,19 @@
             ('cd', 1 if nbr_columns == 11 else 2 , 0, 'text', _('Clearance Date'), None, style_bold_blue_center),
             ('af', 2, 0, 'text', _('Accounts Filter'), None, style_bold_blue_center),
             ('tm', 3 if nbr_columns == 13 else 2, 0, 'text', _('Target Moves'), None, style_bold_blue_center),
-        ]       
+        ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
         row_position = self.xls_write_row(ws, row_position, row_data, row_style=style_bold_blue_center)
         return row_position
-    
-    def print_header_data(self, _p, data, row_position):   #Fill in the data of the header summary tables: Chart of account - Fiscal year - ...   
+
+    def print_header_data(self, _p, data, row_position):   #Fill in the data of the header summary tables: Chart of account - Fiscal year - ...
         c_specs = [
-            ('coa', 2, 0, 'text', _p.chart_account.name, None, style_center),       
+            ('coa', 2, 0, 'text', _p.chart_account.name, None, style_center),
             ('fy', 2, 0, 'text', _p.fiscalyear.name if _p.fiscalyear else '-', None, style_center),
         ]
         df = _('From') + ': '
         if _p.filter_form(data) == 'filter_date':
-            df += _p.start_date if _p.start_date else u'' 
+            df += _p.start_date if _p.start_date else u''
         else:
             df += _p.start_period.name if _p.start_period else u''
         df += ' ' + _('To') + ': '
@@ -175,15 +175,15 @@
             df += _p.stop_period.name if _p.stop_period else u''
         c_specs += [
             ('df', 2, 0, 'text', df, None, style_center),
-            ('cd', 1 if nbr_columns == 11 else 2, 0, 'text', _p.date_until, None, style_center), #clearance date  
-            ('af', 2, 0, 'text', _('Custom Filter') if _p.partner_ids else _p.display_partner_account(data), None, style_center),        
+            ('cd', 1 if nbr_columns == 11 else 2, 0, 'text', _p.date_until, None, style_center), #clearance date
+            ('af', 2, 0, 'text', _('Custom Filter') if _p.partner_ids else _p.display_partner_account(data), None, style_center),
             ('tm', 3 if nbr_columns == 13 else 2, 0, 'text', _p.display_target_move(data), None, style_center),
-        ]              
+        ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
         row_position = self.xls_write_row(ws, row_position, row_data, row_style=style_center)
         return row_position
-    
-    def print_columns_title(self, _p, row_position, data, group_lines=False):  # Fill in a row with the titles of the columns for the invoice lines: Date - Period - Entry -... 
+
+    def print_columns_title(self, _p, row_position, data, group_lines=False):  # Fill in a row with the titles of the columns for the invoice lines: Date - Period - Entry -...
         c_specs = [
             ('date', 1, 0, 'text', _('Date'),None,style_yellow_bold),
             ('period', 1, 0, 'text', _('Period'),None,style_yellow_bold),
@@ -191,20 +191,21 @@
             ('journal', 1, 0, 'text', _('Journal'),None,style_yellow_bold),
         ]
         if not group_lines:
-            c_specs += [('partner', 1, 0, 'text', _('Partner'),None,style_yellow_bold),]    
+            c_specs += [('partner', 1, 0, 'text', _('Partner'),None,style_yellow_bold),]
         c_specs += [
+            ('ref', 1, 0, 'text', _('Reference'),None,style_yellow_bold),
             ('label', 1, 0, 'text', _('Label'),None,style_yellow_bold),
             ('rec', 1, 0, 'text', _('Rec.'),None,style_yellow_bold),
             ('due_date', 1, 0, 'text', _('Due Date'),None,style_yellow_bold),
             ('debit', 1, 0, 'text', _('Debit'),None,style_yellow_bold_right),
             ('credit', 1, 0, 'text', _('Credit'),None,style_yellow_bold_right),
-            ('cumul', 1, 0, 'text', _('Cumul. Bal.'),None,style_yellow_bold_right),  
-        ]       
+            ('cumul', 1, 0, 'text', _('Cumul. Bal.'),None,style_yellow_bold_right),
+        ]
         if group_lines:
             c_specs += [
                 ('currbal', 1, 0, 'text', _('Curr. Balance'),None,style_yellow_bold_right),
                 ('curr', 1, 0, 'text', _('Curr.'),None,style_yellow_bold_right),
-            ]  
+            ]
         else:
             if _p.amount_currency(data):
                 c_specs += [
@@ -214,93 +215,94 @@
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
         row_position = self.xls_write_row(ws, row_position, row_data, row_style=style_yellow_bold)
         return row_position
-  
+
     def print_row_code_account(self, regroupmode, account, row_position, partner_name): # Fill in a row with the code and the name of an account + the partner name in case of currency regrouping
         if regroupmode == "regroup":
             c_specs = [ ('acc_title', nbr_columns, 0, 'text', ' - '.join([account.code, account.name, partner_name or _('No partner')])),  ]
         else:
             c_specs = [ ('acc_title', nbr_columns, 0, 'text', ' - '.join([account.code, account.name])),  ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_account_title) 
-        return row_position+1 
-   
-    def print_row_partner(self, row_position, partner_name): 
+        row_position = self.xls_write_row(ws, row_position, row_data, style_account_title)
+        return row_position+1
+
+    def print_row_partner(self, row_position, partner_name):
         c_specs = [ ('partner', nbr_columns, 0, 'text', partner_name or _('No partner')),  ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_partner_row) 
+        row_position = self.xls_write_row(ws, row_position, row_data, style_partner_row)
         return row_position
- 
+
     def print_group_currency(self, row_position, curr, _p):
         c_specs = [ ('curr', nbr_columns, 0, 'text', curr or _p.company.currency_id.name),  ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_bold) 
+        row_position = self.xls_write_row(ws, row_position, row_data, style_bold)
         return row_position
 
-    def print_lines(self, row_position, account, line,_p, data, line_number): # Fill in rows of invoice line 
-        
+    def print_lines(self, row_position, account, line,_p, data, line_number): # Fill in rows of invoice line
+
         label_elements = [line.get('lname') or '']
         if line.get('invoice_number'):
                 label_elements.append("(%s)" % (line['invoice_number'],))
         label = ' '.join(label_elements)
 
-        # Mako: <div class="act_as_row lines ${line.get('is_from_previous_periods') and 'open_invoice_previous_line' or ''} ${line.get('is_clearance_line') and 'clearance_line' or ''}">          
+        # Mako: <div class="act_as_row lines ${line.get('is_from_previous_periods') and 'open_invoice_previous_line' or ''} ${line.get('is_clearance_line') and 'clearance_line' or ''}">
         if line.get('is_from_previous_periods') or line.get('is_clearance_line'):
             style_line_default = style_default_italic
-            style_line_right = style_right_italic                        
+            style_line_right = style_right_italic
             style_line_date = style_date_italic
-            style_line_decimal = style_decimal_italic     
+            style_line_decimal = style_decimal_italic
         else:
             style_line_default = style_default
-            style_line_right = style_right                        
+            style_line_right = style_right
             style_line_date = style_date
-            style_line_decimal = style_decimal            
+            style_line_decimal = style_decimal
         if line.get('ldate'):
             c_specs = [('date', 1, 0, 'date', datetime.strptime(line['ldate'],'%Y-%m-%d'), None, style_line_date)]
         else:
-            c_specs = [('date', 1, 0, 'text', None)]    
-        c_specs += [ 
+            c_specs = [('date', 1, 0, 'text', None)]
+        c_specs += [
             ('period_code', 1, 0, 'text', line.get('period_code') or '' ),
             ('entry', 1, 0, 'text', line.get('move_name') or '' ),
             ('journal', 1, 0, 'text', line.get('jcode') or '' ),
             ('partner', 1, 0, 'text', line.get('partner_name') or '' ),
+            ('ref', 1, 0, 'text', line.get('lref') or '' ),
             ('label', 1, 0, 'text', label ),
             ('rec', 1, 0, 'text', line.get('rec_name') or '' ),
         ]
         if line.get('date_maturity'):
             c_specs += [('datedue', 1, 0, 'date', datetime.strptime(line['date_maturity'],'%Y-%m-%d'), None, style_line_date)]
         else:
-            c_specs += [('datedue', 1, 0, 'text', None)]    
-        c_specs += [         
+            c_specs += [('datedue', 1, 0, 'text', None)]
+        c_specs += [
             ('debit', 1, 0, 'number', line.get('debit') or 0.0 , None, style_line_decimal),
             ('credit', 1, 0, 'number', line.get('credit') or 0.0 , None, style_line_decimal),
         ]
-       
+
         #determine the formula of the cumulated balance
-        debit_cell = rowcol_to_cell(row_position, 8)                
-        credit_cell = rowcol_to_cell(row_position, 9)
-        previous_balance = rowcol_to_cell(row_position - 1, 10)
-        
-        if line_number == 1:                #if it is the first line, the balance is only debit - credit 
-            cumul_balance = debit_cell + '-' + credit_cell      
+        debit_cell = rowcol_to_cell(row_position, 9)
+        credit_cell = rowcol_to_cell(row_position, 10)
+        previous_balance = rowcol_to_cell(row_position - 1, 11)
+
+        if line_number == 1:                #if it is the first line, the balance is only debit - credit
+            cumul_balance = debit_cell + '-' + credit_cell
         else:                               # cumulate debit - credit and balance of previous line
-            cumul_balance = debit_cell + '-' + credit_cell + '+' + previous_balance 
-            
+            cumul_balance = debit_cell + '-' + credit_cell + '+' + previous_balance
+
         c_specs += [('cumul', 1, 0, 'number', None, cumul_balance, style_line_decimal)]
-        
-        if _p.amount_currency(data): 
+
+        if _p.amount_currency(data):
             if account.currency_id:
-                c_specs += [  
-                    ('curramount', 1, 0, 'number', line.get('amount_currency') or 0.0, None, style_line_decimal),   
+                c_specs += [
+                    ('curramount', 1, 0, 'number', line.get('amount_currency') or 0.0, None, style_line_decimal),
                     ('currcode', 1, 0, 'text', line['currency_code'], None, style_line_right),
-                ]                 
+                ]
             else:
                 c_specs += [
-                    ('curramount', 1, 0, 'text', '-', None, style_line_right),   
-                    ('currcode', 1, 0, 'text', '', None, style_line_right),                   
-                ]                 
-                  
+                    ('curramount', 1, 0, 'text', '-', None, style_line_right),
+                    ('currcode', 1, 0, 'text', '', None, style_line_right),
+                ]
+
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_line_default) 
+        row_position = self.xls_write_row(ws, row_position, row_data, style_line_default)
         return row_position
 
     def print_group_lines(self, row_position, account, line,_p, line_number): # Fill in rows of invoice line when the option currency regroup is selected
@@ -309,135 +311,136 @@
         if line.get('invoice_number'):
                 label_elements.append("(%s)" % (line['invoice_number'],))
         label = ' '.join(label_elements)
-        # Mako: <div class="act_as_row lines ${line.get('is_from_previous_periods') and 'open_invoice_previous_line' or ''} ${line.get('is_clearance_line') and 'clearance_line' or ''}">          
+        # Mako: <div class="act_as_row lines ${line.get('is_from_previous_periods') and 'open_invoice_previous_line' or ''} ${line.get('is_clearance_line') and 'clearance_line' or ''}">
         if line.get('is_from_previous_periods') or line.get('is_clearance_line'):
             style_line_default = style_default_italic
-            style_line_right = style_right_italic                        
+            style_line_right = style_right_italic
             style_line_date = style_date_italic
-            style_line_decimal = style_decimal_italic            
+            style_line_decimal = style_decimal_italic
         else:
             style_line_default = style_default
-            style_line_right = style_right 
+            style_line_right = style_right
             style_line_date = style_date
-            style_line_decimal = style_decimal            
-
-        debit_cell = rowcol_to_cell(row_position, 7)                
-        credit_cell = rowcol_to_cell(row_position, 8)
-        previous_balance = rowcol_to_cell(row_position - 1, 9)
-        
-        if line_number == 1:                #if it is the first line, the balance is only debit - credit 
-            cumul_balance = debit_cell + '-' + credit_cell    
+            style_line_decimal = style_decimal
+
+        debit_cell = rowcol_to_cell(row_position, 8)
+        credit_cell = rowcol_to_cell(row_position, 9)
+        previous_balance = rowcol_to_cell(row_position - 1, 10)
+
+        if line_number == 1:                #if it is the first line, the balance is only debit - credit
+            cumul_balance = debit_cell + '-' + credit_cell
         else:                               # cumulate devit - credit and balance of previous line
-            cumul_balance = debit_cell + '-' + credit_cell + '+' + previous_balance 
+            cumul_balance = debit_cell + '-' + credit_cell + '+' + previous_balance
 
         if line.get('ldate'):
             c_specs = [('date', 1, 0, 'date', datetime.strptime(line['ldate'],'%Y-%m-%d'), None, style_line_date)]
         else:
-            c_specs = [('date', 1, 0, 'text', None)]   
-        c_specs += [   
+            c_specs = [('date', 1, 0, 'text', None)]
+        c_specs += [
             ('period_code', 1, 0, 'text', line.get('period_code') or '' ),
             ('entry', 1, 0, 'text', line.get('move_name') or '' ),
-            ('journal', 1, 0, 'text', line.get('jcode') or '' ),     
+            ('journal', 1, 0, 'text', line.get('jcode') or '' ),
+            ('ref', 1, 0, 'text', line.get('lref') or '' ),
             ('label', 1, 0, 'text', label),
             ('rec', 1, 0, 'text', line.get('rec_name') or '' ),
         ]
         if line.get('date_maturity'):
             c_specs += [('datedue', 1, 0, 'date', datetime.strptime(line['date_maturity'],'%Y-%m-%d'), None, style_line_date)]
         else:
-            c_specs += [('datedue', 1, 0, 'text', None)]    
-        c_specs += [                         
+            c_specs += [('datedue', 1, 0, 'text', None)]
+        c_specs += [
             ('debit', 1, 0, 'number', line.get('debit') or 0.0, None, style_line_decimal),
-            ('credit', 1, 0, 'number', line.get('credit') or 0.0, None, style_line_decimal),  
-            ('cumul', 1, 0, 'number', None, cumul_balance, style_line_decimal),    
+            ('credit', 1, 0, 'number', line.get('credit') or 0.0, None, style_line_decimal),
+            ('cumul', 1, 0, 'number', None, cumul_balance, style_line_decimal),
         ]
         if account.currency_id:
-            c_specs += [                          
-                ('curramount', 1, 0, 'number', line.get('amount_currency') or 0.0, None, style_line_decimal),   
-                ('currcode', 1, 0, 'text', line.get('currency_code') or '', None, style_line_right),                   
+            c_specs += [
+                ('curramount', 1, 0, 'number', line.get('amount_currency') or 0.0, None, style_line_decimal),
+                ('currcode', 1, 0, 'text', line.get('currency_code') or '', None, style_line_right),
             ]
         else:
             c_specs += [
-                ('curramount', 1, 0, 'text', '-', None, style_line_right),   
-                ('currcode', 1, 0, 'text', '', None, style_line_right),                   
-            ]                 
-                  
+                ('curramount', 1, 0, 'text', '-', None, style_line_right),
+                ('currcode', 1, 0, 'text', '', None, style_line_right),
+            ]
+
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_line_default) 
-        return (row_position, cumul_balance)  
-      
+        row_position = self.xls_write_row(ws, row_position, row_data, style_line_default)
+        return (row_position, cumul_balance)
+
     def print_cumul_partner(self, row_position, row_start_partner, account, _p, data): #print by partner the totals and cumulated balance (Excel formulas)
 
-        start_col = 5   #the text "Cumulated Balance on Partner starts in column 4 when selecting the option regroup by currency, 5 in  the other case
-        
-        debit_partner_start = rowcol_to_cell(row_start_partner, start_col + 3)                
+        start_col = 6   #the text "Cumulated Balance on Partner starts in column 5 when selecting the option regroup by currency, 6 in  the other case
+
+        debit_partner_start = rowcol_to_cell(row_start_partner, start_col + 3)
         debit_partner_end = rowcol_to_cell(row_position-1, start_col + 3)
         debit_partner_total = 'SUM(' + debit_partner_start + ':' + debit_partner_end + ')'
-                  
-        credit_partner_start = rowcol_to_cell(row_start_partner, start_col + 4)                
+
+        credit_partner_start = rowcol_to_cell(row_start_partner, start_col + 4)
         credit_partner_end = rowcol_to_cell(row_position-1, start_col + 4)
         credit_partner_total = 'SUM(' + credit_partner_start + ':' + credit_partner_end + ')'
-        
+
         bal_curr_start = rowcol_to_cell(row_start_partner, start_col + 6)
         bal_curr_end = rowcol_to_cell(row_position-1, start_col + 6)
-        cumul_balance_curr = 'SUM(' + bal_curr_start + ':' + bal_curr_end + ')'       
-        
-           
-        bal_partner_debit = rowcol_to_cell(row_position, start_col + 3)                
+        cumul_balance_curr = 'SUM(' + bal_curr_start + ':' + bal_curr_end + ')'
+
+
+        bal_partner_debit = rowcol_to_cell(row_position, start_col + 3)
         bal_partner_credit = rowcol_to_cell(row_position, start_col + 4)
-        bal_partner_total = bal_partner_debit + '-' + bal_partner_credit 
-        
+        bal_partner_total = bal_partner_debit + '-' + bal_partner_credit
+
         c_specs = [('empty%s' %x, 1, 0, 'text', None) for x in range(start_col)]
-        
+
         c_specs += [
                    ('init_bal', 1, 0, 'text', _('Cumulated Balance on Partner')),
                    ('rec', 1, 0, 'text', None),
                    ('empty5', 1, 0, 'text', None),
-                   ('debit', 1, 0, 'number', None, debit_partner_total, style_partner_cumul_decimal),  
-                   ('credit', 1, 0, 'number', None, credit_partner_total, style_partner_cumul_decimal),  
+                   ('debit', 1, 0, 'number', None, debit_partner_total, style_partner_cumul_decimal),
+                   ('credit', 1, 0, 'number', None, credit_partner_total, style_partner_cumul_decimal),
                    ('cumul_bal', 1, 0, 'number', None, bal_partner_total, style_partner_cumul_decimal),
         ]
         if _p.amount_currency(data):
            if account.currency_id:
                 c_specs += [('cumul_bal_curr', 1, 0, 'number', None, cumul_balance_curr, style_partner_cumul_decimal),
                             ('curr_name', 1, 0, 'text', account.currency_id.name, None, style_partner_cumul_right),
-                ]   
-           else: 
+                ]
+           else:
                 c_specs += [('cumul_bal_curr', 1, 0, 'text', '-', None, style_partner_cumul_right),
                             ('curr_name', 1, 0, 'text', '', None, style_partner_cumul_right)
-                ]    
-            
+                ]
+
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_partner_cumul)  
-        return row_position+1    
-    
+        row_position = self.xls_write_row(ws, row_position, row_data, style_partner_cumul)
+        return row_position+1
+
     def print_group_cumul_partner(self,row_position, row_start_partner, account, _p, data): #print by partner the totals and cumulated balance (Excel formulas) when the option currency regroup is selected
 
-        start_col = 4   #the text "Cumulated Balance on Partner starts in column 4 when selecting the option regroup by currency, 5 in  the other case
-        
-        debit_partner_start = rowcol_to_cell(row_start_partner, start_col + 3)                
+        start_col = 5   #the text "Cumulated Balance on Partner starts in column 5 when selecting the option regroup by currency, 6 in  the other case
+
+        debit_partner_start = rowcol_to_cell(row_start_partner, start_col + 3)
         debit_partner_end = rowcol_to_cell(row_position-1, start_col + 3)
         debit_partner_total = 'SUM(' + debit_partner_start + ':' + debit_partner_end + ')'
-                  
-        credit_partner_start = rowcol_to_cell(row_start_partner, start_col + 4)                
+
+        credit_partner_start = rowcol_to_cell(row_start_partner, start_col + 4)
         credit_partner_end = rowcol_to_cell(row_position-1, start_col + 4)
         credit_partner_total = 'SUM(' + credit_partner_start + ':' + credit_partner_end + ')'
-        
+
         bal_curr_start = rowcol_to_cell(row_start_partner, start_col + 5)
         bal_curr_end = rowcol_to_cell(row_position-1, start_col + 5)
-        cumul_balance_curr = 'SUM(' + bal_curr_start + ':' + bal_curr_end + ')'       
-        
-        bal_partner_debit = rowcol_to_cell(row_position, start_col + 3)                
+        cumul_balance_curr = 'SUM(' + bal_curr_start + ':' + bal_curr_end + ')'
+
+        bal_partner_debit = rowcol_to_cell(row_position, start_col + 3)
         bal_partner_credit = rowcol_to_cell(row_position, start_col + 4)
-        bal_partner_total = bal_partner_debit + '-' + bal_partner_credit 
-        
+        bal_partner_total = bal_partner_debit + '-' + bal_partner_credit
+
         c_specs = [('empty%s' %x, 1, 0, 'text', None) for x in range(start_col)]
-        
+
         c_specs += [
             ('init_bal', 1, 0, 'text', _('Cumulated Balance on Partner')), #, style_bold_italic),
             ('rec', 1, 0, 'text', None),
             ('empty5', 1, 0, 'text', None),
-            ('debit', 1, 0, 'number', None, debit_partner_total, style_partner_cumul_decimal),  
-            ('credit', 1, 0, 'number', None, credit_partner_total, style_partner_cumul_decimal),  
+            ('debit', 1, 0, 'number', None, debit_partner_total, style_partner_cumul_decimal),
+            ('credit', 1, 0, 'number', None, credit_partner_total, style_partner_cumul_decimal),
             ('cumul_bal', 1, 0, 'number', None, bal_partner_total, style_partner_cumul_decimal),
         ]
         if account.currency_id:
@@ -449,38 +452,38 @@
             c_specs += [
                 ('cumul_bal_curr', 1, 0, 'text', "-", None, style_partner_cumul_right),
                 ('curr_name', 1, 0, 'text', "", None, style_partner_cumul_right),
-            ]        
+            ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_partner_cumul)  
-        return row_position+1    
-  
+        row_position = self.xls_write_row(ws, row_position, row_data, style_partner_cumul)
+        return row_position+1
+
     def print_cumul_account(self, row_position, row_start_account, account, _p, data): #print by account the totals of the credit and debit + balance calculation
-        
+
         #This procedure will create  an Excel sumif function that will check in the column "label" for the "Cumulated Balance.." string and make a sum of the debit & credit data
-        start_col = 5 #the text "Cumulated Balance on Partner starts in column 4 when selecting the option regroup by currency, 5 in  the other case
-        
-        reference_start = rowcol_to_cell(row_start_account, start_col) #range in which we search for the text "Cumulated Balance on Partner" 
+        start_col = 6 #the text "Cumulated Balance on Partner starts in column 5 when selecting the option regroup by currency, 6 in  the other case
+
+        reference_start = rowcol_to_cell(row_start_account, start_col) #range in which we search for the text "Cumulated Balance on Partner"
         reference_stop = rowcol_to_cell(row_position -1 , start_col)
-        
+
         range_debit_start = rowcol_to_cell(row_start_account, start_col + 3) #range in which we make the sum of all the cumulated balance lines (debit)
-        range_debit_stop = rowcol_to_cell(row_position -1, start_col + 3) 
- 
+        range_debit_stop = rowcol_to_cell(row_position -1, start_col + 3)
+
         range_credit_start = rowcol_to_cell(row_start_account, start_col + 4) #range in which we make the sum of all the cumulated balance lines (crebit)
-        range_credit_stop = rowcol_to_cell(row_position -1, start_col + 4)        
-        
+        range_credit_stop = rowcol_to_cell(row_position -1, start_col + 4)
+
         search_key =  _('Cumulated Balance on Partner')
         total_debit_account = 'SUMIF(' + reference_start + ':' + reference_stop + ';"' + search_key + '";' + range_debit_start + ':' + range_debit_stop + ')'
         total_credit_account = 'SUMIF(' + reference_start + ':' + reference_stop + ';"' + search_key + '";' + range_credit_start + ':' + range_credit_stop + ')'
-        
-        bal_account_debit = rowcol_to_cell(row_position, start_col + 3)                
+
+        bal_account_debit = rowcol_to_cell(row_position, start_col + 3)
         bal_account_credit = rowcol_to_cell(row_position, start_col + 4)
-        bal_account_total = bal_account_debit + '-' + bal_account_credit      
-        
+        bal_account_total = bal_account_debit + '-' + bal_account_credit
+
         bal_curr_start = rowcol_to_cell(row_start_account, start_col + 6)
         bal_curr_end = rowcol_to_cell(row_position-1, start_col + 6)
         cumul_balance_curr = 'SUMIF(' + reference_start + ':' + reference_stop + ';"' + search_key + '";' + bal_curr_start + ':' + bal_curr_end + ')'
-        
-        c_specs = [ 
+
+        c_specs = [
                    ('acc_title', start_col, 0, 'text', ' - '.join([account.code, account.name])),
                    ('init_bal', 2, 0, 'text', _('Cumulated Balance on Account')),
                    ('empty2', 1, 0, 'text', None),
@@ -492,41 +495,41 @@
             if account.currency_id:
                 c_specs += [('cumul_bal_curr', 1, 0, 'number', None, cumul_balance_curr),
                             ('curr_name', 1, 0, 'text', account.currency_id.name, None, style_account_title_right),
-                ] 
-            else:   
+                ]
+            else:
                 c_specs += [('cumul_bal_curr', 1, 0, 'text',  "-", None, style_account_title_right),
                             ('curr_name', 1, 0, 'text', "", None, style_account_title_right)
-                ] 
+                ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_account_title)  
-        return row_position+1  
-
-    def print_group_cumul_account(self,row_position, row_start_account, account): #print by account the totals of the credit and debit + balance calculation   
-        #This procedure will create  an Excel sumif function that will check in the column "label" for the "Cumulated Balance.." string and make a sum of the debit & credit data    
-        start_col = 4   #the text "Cumulated Balance on Partner starts in column 4 when selecting the option regroup by currency, 5 in  the other case
-       
-        reference_start = rowcol_to_cell(row_start_account, start_col) #range in which we search for the text "Cumulated Balance on Partner" 
+        row_position = self.xls_write_row(ws, row_position, row_data, style_account_title)
+        return row_position+1
+
+    def print_group_cumul_account(self,row_position, row_start_account, account): #print by account the totals of the credit and debit + balance calculation
+        #This procedure will create  an Excel sumif function that will check in the column "label" for the "Cumulated Balance.." string and make a sum of the debit & credit data
+        start_col = 5   #the text "Cumulated Balance on Partner starts in column 5 when selecting the option regroup by currency, 6 in  the other case
+
+        reference_start = rowcol_to_cell(row_start_account, start_col) #range in which we search for the text "Cumulated Balance on Partner"
         reference_stop = rowcol_to_cell(row_position -1 , start_col)
-        
+
         range_debit_start = rowcol_to_cell(row_start_account, start_col + 3) #range in which we make the sum of all the cumulated balance lines (debit)
-        range_debit_stop = rowcol_to_cell(row_position -1, start_col + 3) 
- 
+        range_debit_stop = rowcol_to_cell(row_position -1, start_col + 3)
+
         range_credit_start = rowcol_to_cell(row_start_account, start_col + 4) #range in which we make the sum of all the cumulated balance lines (crebit)
-        range_credit_stop = rowcol_to_cell(row_position -1, start_col + 4)        
-        
+        range_credit_stop = rowcol_to_cell(row_position -1, start_col + 4)
+
         search_key =  _('Cumulated Balance on Partner')
         total_debit_account = 'SUMIF(' + reference_start + ':' + reference_stop + ';"' + search_key + '";' + range_debit_start + ':' + range_debit_stop + ')'
         total_credit_account = 'SUMIF(' + reference_start + ':' + reference_stop + ';"' + search_key + '";' + range_credit_start + ':' + range_credit_stop + ')'
-        
-        bal_account_debit = rowcol_to_cell(row_position, start_col + 3)                
+
+        bal_account_debit = rowcol_to_cell(row_position, start_col + 3)
         bal_account_credit = rowcol_to_cell(row_position, start_col + 4)
-        bal_account_total = bal_account_debit + '-' + bal_account_credit 
-        
+        bal_account_total = bal_account_debit + '-' + bal_account_credit
+
         bal_curr_start = rowcol_to_cell(row_start_account, start_col + 6)
         bal_curr_end = rowcol_to_cell(row_position-1, start_col + 6)
         cumul_balance_curr = 'SUMIF(' + reference_start + ':' + reference_stop + ';"' + search_key + '";' + bal_curr_start + ':' + bal_curr_end + ')'
-        
-        c_specs = [ 
+
+        c_specs = [
                    ('acc_title', start_col, 0, 'text', ' - '.join([account.code, account.name])),
                    ('init_bal', 2, 0, 'text', _('Cumulated Balance on Account')),
                    ('empty2', 1, 0, 'text', None),
@@ -537,28 +540,28 @@
         if account.currency_id:
             c_specs += [('cumul_bal_curr', 1, 0, 'number', None, cumul_balance_curr, style_account_title_decimal),
                         ('curr_name', 1, 0, 'text', account.currency_id.name, None, style_account_title_decimal),
-                ] 
-        else:   
+                ]
+        else:
             c_specs += [('cumul_bal_curr', 1, 0, 'text', "-", None, style_account_title_right),
                         ('curr_name', 1, 0, 'text', "", None, style_account_title_right)
-                ] 
+                ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_position = self.xls_write_row(ws, row_position, row_data, style_account_title)  
-        return row_position+1  
-  
+        row_position = self.xls_write_row(ws, row_position, row_data, style_account_title)
+        return row_position+1
+
     def print_grouped_line_report(self, row_pos, account, _xs, xlwt, _p, data): # export the invoice AR/AP lines when the option currency regroup is selected
-        
+
         if account.grouped_ledger_lines and account.partners_order:
-            row_start_account = row_pos  
-    
+            row_start_account = row_pos
+
             for partner_name, p_id, p_ref, p_name in account.partners_order:
-                row_pos = self.print_row_code_account("regroup", account,row_pos, partner_name)   
-                
+                row_pos = self.print_row_code_account("regroup", account,row_pos, partner_name)
+
                 for curr, grouped_lines in account.grouped_ledger_lines.get(p_id, []):
-                    
+
                     row_pos = self.print_group_currency(row_pos, curr, _p)
-                    # Print row: Titles "Date-Period-Entry-Journal..."   
-                    row_pos = self.print_columns_title(_p, row_pos, data, group_lines=True)   
+                    # Print row: Titles "Date-Period-Entry-Journal..."
+                    row_pos = self.print_columns_title(_p, row_pos, data, group_lines=True)
 
                     row_pos_start = row_pos
                     line_number = 0
@@ -566,62 +569,62 @@
                         line_number += 1
                         row_pos, cumul_balance = self.print_group_lines(row_pos, account, line, _p, line_number)
                     row_pos = self.print_group_cumul_partner(row_pos,row_pos_start, account, _p, data)
-                    
+
             row_pos = self.print_group_cumul_account(row_pos, row_start_account, account)
-                                        
+
         return row_pos
-    
+
     def print_ledger_lines(self, row_pos, account, _xs, xlwt, _p, data): # export the invoice AR/AP lines
 
         if account.ledger_lines and account.partners_order:
             row_start_account = row_pos
-            
+
             #Print account line: code - account
-            row_pos = self.print_row_code_account("noregroup",account,row_pos, "") 
+            row_pos = self.print_row_code_account("noregroup",account,row_pos, "")
             for partner_name, p_id, p_ref, p_name in account.partners_order:
-                
+
                 #Print partner row
                 row_pos = self.print_row_partner(row_pos, partner_name)
-                # Print row: Titles "Date-Period-Entry-Journal..."   
-                row_pos = self.print_columns_title(_p, row_pos, data, group_lines=False)   
-                               
+                # Print row: Titles "Date-Period-Entry-Journal..."
+                row_pos = self.print_columns_title(_p, row_pos, data, group_lines=False)
+
                 row_pos_start = row_pos
                 line_number = 0
                 for line in account.ledger_lines.get(p_id, []):
                     line_number += 1
                     # print ledger lines
                     row_pos = self.print_lines(row_pos, account, line, _p, data, line_number)
-                row_pos = self.print_cumul_partner(row_pos, row_pos_start, account, _p, data)  
-                            
+                row_pos = self.print_cumul_partner(row_pos, row_pos_start, account, _p, data)
+
             row_pos = self.print_cumul_account(row_pos, row_start_account, account, _p, data)
-            
+
         return row_pos
-        
+
     def generate_xls_report(self, _p, _xs, data, objects, wb): # main function
- 
+
         # Initializations
         self.global_initializations(wb,_p, xlwt, _xs, objects, data)
-        row_pos = 0       
+        row_pos = 0
         # Print Title
-        row_pos = self.print_title(_p, row_pos)  
+        row_pos = self.print_title(_p, row_pos)
         # Print empty row to define column sizes
-        row_pos = self.print_empty_row(row_pos)   
+        row_pos = self.print_empty_row(row_pos)
         # Print Header Table titles (Fiscal Year - Accounts Filter - Periods Filter...)
         row_pos = self.print_header_titles(_p, data, row_pos)
         # Print Header Table data
         row_pos = self.print_header_data(_p, data, row_pos)
         #Freeze the line
-        ws.set_horz_split_pos(row_pos)         
+        ws.set_horz_split_pos(row_pos)
         # Print empty row
         row_pos = self.print_empty_row(row_pos)
-        
-        for acc in objects:    
+
+        for acc in objects:
             if hasattr(acc, 'grouped_ledger_lines'):
                 # call xls equivalent of "grouped_by_curr_open_invoices_inclusion.mako.html"
                 row_pos = self.print_grouped_line_report(row_pos, acc, _xs, xlwt, _p, data)
             else:
-                # call xls equivalent of "open_invoices_inclusion.mako.html"                
+                # call xls equivalent of "open_invoices_inclusion.mako.html"
                 row_pos = self.print_ledger_lines(row_pos, acc, _xs, xlwt, _p, data)
             row_pos += 1
-        
+
 open_invoices_xls('report.account.account_report_open_invoices_xls', 'account.account', parser=PartnersOpenInvoicesWebkit)

=== modified file 'account_financial_report_webkit_xls/report/partner_ledger_xls.py'
--- account_financial_report_webkit_xls/report/partner_ledger_xls.py	2013-10-31 18:01:41 +0000
+++ account_financial_report_webkit_xls/report/partner_ledger_xls.py	2014-04-09 09:16:35 +0000
@@ -37,32 +37,33 @@
     ('move', 20),
     ('journal', 12),
     ('partner', 30),
+    ('ref', 20),
     ('label', 58),
     ('rec', 12),
-    ('debit', 15), 
+    ('debit', 15),
     ('credit', 15),
     ('cumul_bal', 15),
-    ('curr_bal', 15), 
+    ('curr_bal', 15),
     ('curr_code', 7),
 ]
 
 class partner_ledger_xls(report_xls):
     column_sizes = [x[1] for x in _column_sizes]
-    
+
     def generate_xls_report(self, _p, _xs, data, objects, wb):
-        
+
         ws = wb.add_sheet(_p.report_name[:31])
         ws.panes_frozen = True
         ws.remove_splits = True
         ws.portrait = 0 # Landscape
         ws.fit_width_to_pages = 1
         row_pos = 0
-        
+
         # set print header/footer
         ws.header_str = self.xls_headers['standard']
         ws.footer_str = self.xls_footers['standard']
-        
-        # cf. account_report_partner_ledger.mako  
+
+        # cf. account_report_partner_ledger.mako
         initial_balance_text = {'initial_balance': _('Computed'), 'opening_balance': _('Opening Entries'), False: _('No')}
 
         # Title
@@ -70,7 +71,7 @@
         report_name =  ' - '.join([_p.report_name.upper(), _p.company.partner_id.name, _p.company.currency_id.name])
         c_specs = [
             ('report_name', 1, 0, 'text', report_name),
-        ]       
+        ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
         row_pos = self.xls_write_row(ws, row_pos, row_data, row_style=cell_style)
 
@@ -78,12 +79,12 @@
         c_sizes = self.column_sizes
         c_specs = [('empty%s'%i, 1, c_sizes[i], 'text', None) for i in range(0,len(c_sizes))]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_pos = self.xls_write_row(ws, row_pos, row_data, set_column_size=True)        
-        
+        row_pos = self.xls_write_row(ws, row_pos, row_data, set_column_size=True)
+
         # Header Table
-        nbr_columns = 10  
+        nbr_columns = 10
         if _p.amount_currency(data):
-            nbr_columns = 12        
+            nbr_columns = 12
         cell_format = _xs['bold'] + _xs['fill_blue'] + _xs['borders_all']
         cell_style = xlwt.easyxf(cell_format)
         cell_style_center = xlwt.easyxf(cell_format + _xs['center'])
@@ -95,7 +96,7 @@
             ('tm', 2, 0, 'text',  _('Target Moves')),
             ('ib', nbr_columns-8, 0, 'text',  _('Initial Balance')),
 
-        ]       
+        ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
         row_pos = self.xls_write_row(ws, row_pos, row_data, row_style=cell_style_center)
 
@@ -108,7 +109,7 @@
         ]
         df = _('From') + ': '
         if _p.filter_form(data) == 'filter_date':
-            df += _p.start_date if _p.start_date else u'' 
+            df += _p.start_date if _p.start_date else u''
         else:
             df += _p.start_period.name if _p.start_period else u''
         df += ' ' + _('To') + ': '
@@ -121,16 +122,16 @@
             ('af', 1, 0, 'text', _('Custom Filter') if _p.partner_ids else _p.display_partner_account(data)),
             ('tm', 2, 0, 'text', _p.display_target_move(data)),
             ('ib', nbr_columns-8, 0, 'text', initial_balance_text[_p.initial_balance_mode]),
-        ]       
+        ]
         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-        row_pos = self.xls_write_row(ws, row_pos, row_data, row_style=cell_style_center)  
-        ws.set_horz_split_pos(row_pos)          
+        row_pos = self.xls_write_row(ws, row_pos, row_data, row_style=cell_style_center)
+        ws.set_horz_split_pos(row_pos)
         row_pos += 1
 
         # Account Title Row
         cell_format = _xs['xls_title'] + _xs['bold'] + _xs['fill'] + _xs['borders_all']
         account_cell_style = xlwt.easyxf(cell_format)
-        account_cell_style_right = xlwt.easyxf(cell_format + _xs['right'])        
+        account_cell_style_right = xlwt.easyxf(cell_format + _xs['right'])
         account_cell_style_decimal = xlwt.easyxf(cell_format + _xs['right'], num_format_str = report_xls.decimal_format)
 
         # Column Title Row
@@ -150,29 +151,30 @@
         c_init_cell_style_right = xlwt.easyxf(cell_format + _xs['right'])
         c_init_cell_style_center = xlwt.easyxf(cell_format + _xs['center'])
         c_init_cell_style_decimal = xlwt.easyxf(cell_format + _xs['right'], num_format_str = report_xls.decimal_format)
-        
+
         # Column Cumulated balance Row
         cell_format = _xs['bold'] + _xs['fill'] + _xs['borders_all']
         c_cumul_cell_style = xlwt.easyxf(cell_format)
         c_cumul_cell_style_right = xlwt.easyxf(cell_format + _xs['right'])
         c_cumul_cell_style_center = xlwt.easyxf(cell_format + _xs['center'])
         c_cumul_cell_style_decimal = xlwt.easyxf(cell_format + _xs['right'], num_format_str = report_xls.decimal_format)
-        
+
          # Column Partner Row
         cell_format = _xs['bold']
         c_part_cell_style = xlwt.easyxf(cell_format)
-        
+
         c_specs = [
             ('date', 1, 0, 'text', _('Date'), None, c_hdr_cell_style),
             ('period', 1, 0, 'text', _('Period'), None, c_hdr_cell_style),
             ('move', 1, 0, 'text', _('Entry'), None, c_hdr_cell_style),
             ('journal', 1, 0, 'text', _('Journal'), None, c_hdr_cell_style),
             ('partner', 1, 0, 'text', _('Partner'), None, c_hdr_cell_style),
+            ('ref', 1, 0, 'text', _('Reference'), None, c_hdr_cell_style),
             ('label', 1, 0, 'text', _('Label'), None, c_hdr_cell_style),
             ('rec', 1, 0, 'text', _('Rec.'), None, c_hdr_cell_style),
             ('debit', 1, 0, 'text', _('Debit'), None, c_hdr_cell_style_right),
             ('credit', 1, 0, 'text', _('Credit'), None, c_hdr_cell_style_right),
-            ('cumul_bal', 1, 0, 'text', _('Cumul. Bal.'), None, c_hdr_cell_style_right),                    
+            ('cumul_bal', 1, 0, 'text', _('Cumul. Bal.'), None, c_hdr_cell_style_right),
         ]
         if _p.amount_currency(data):
             c_specs += [
@@ -188,10 +190,10 @@
         ll_cell_style_center = xlwt.easyxf(ll_cell_format + _xs['center'])
         ll_cell_style_date = xlwt.easyxf(ll_cell_format + _xs['left'], num_format_str = report_xls.date_format)
         ll_cell_style_decimal = xlwt.easyxf(ll_cell_format + _xs['right'], num_format_str = report_xls.decimal_format)
-        
+
         cnt = 0
         for account in objects:
-            if account.ledger_lines or account.init_balance:            
+            if account.ledger_lines or account.init_balance:
                 if not account.partners_order:
                     continue
                 cnt += 1
@@ -203,12 +205,12 @@
                     ('acc_title', nbr_columns, 0, 'text', ' - '.join([account.code, account.name]), None, account_cell_style),
                 ]
                 row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                row_pos = self.xls_write_row(ws, row_pos, row_data, c_title_cell_style)    
+                row_pos = self.xls_write_row(ws, row_pos, row_data, c_title_cell_style)
                 row_pos += 1
                 row_start_account = row_pos
-            
+
                 for partner_name, p_id, p_ref, p_name in account.partners_order:
-                    
+
                     total_debit = 0.0
                     total_credit = 0.0
                     cumul_balance = 0.0
@@ -219,17 +221,17 @@
                         ('partner_title', nbr_columns, 0, 'text', partner_name or _('No Partner'), None, c_part_cell_style),
                     ]
                     row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                    row_pos = self.xls_write_row(ws, row_pos, row_data, c_title_cell_style)    
-                    row_pos = self.xls_write_row(ws, row_pos, c_hdr_data)   
+                    row_pos = self.xls_write_row(ws, row_pos, row_data, c_title_cell_style)
+                    row_pos = self.xls_write_row(ws, row_pos, c_hdr_data)
                     row_start_partner = row_pos
 
                     total_debit = account.init_balance.get(p_id, {}).get('debit') or 0.0
                     total_credit = account.init_balance.get(p_id, {}).get('credit') or 0.0
-                    
+
                     init_line = False
                     if _p.initial_balance_mode and (total_debit or total_credit):
                         init_line = True
-                        
+
                         part_cumul_balance = account.init_balance.get(p_id, {}).get('init_balance') or 0.0
                         part_cumul_balance_curr = account.init_balance.get(p_id, {}).get('init_balance_currency') or 0.0
                         balance_forward_currency = account.init_balance.get(p_id, {}).get('currency_name') or ''
@@ -237,27 +239,27 @@
                         cumul_balance += part_cumul_balance
                         cumul_balance_curr += part_cumul_balance_curr
 
-                        debit_cell = rowcol_to_cell(row_pos, 7)                
-                        credit_cell = rowcol_to_cell(row_pos, 8)
-                        init_bal_formula = debit_cell + '-' + credit_cell   
-    
-                        ################## Print row 'Initial Balance' by partner #################                            
-                        c_specs = [('empty%s' %x, 1, 0, 'text', None) for x in range(5)]
+                        debit_cell = rowcol_to_cell(row_pos, 8)
+                        credit_cell = rowcol_to_cell(row_pos, 9)
+                        init_bal_formula = debit_cell + '-' + credit_cell
+
+                        ################## Print row 'Initial Balance' by partner #################
+                        c_specs = [('empty%s' %x, 1, 0, 'text', None) for x in range(6)]
                         c_specs += [
                             ('init_bal', 1, 0, 'text', _('Initial Balance')),
                             ('rec', 1, 0, 'text', None),
                             ('debit', 1, 0, 'number', total_debit, None, c_init_cell_style_decimal),
                             ('credit', 1, 0, 'number', total_credit, None, c_init_cell_style_decimal),
-                            ('cumul_bal', 1, 0, 'number', None, init_bal_formula, c_init_cell_style_decimal),                                                
-                        ]  
+                            ('cumul_bal', 1, 0, 'number', None, init_bal_formula, c_init_cell_style_decimal),
+                        ]
                         if _p.amount_currency(data):
                             c_specs += [
                                 ('curr_bal', 1, 0, 'number', part_cumul_balance_curr, None, c_init_cell_style_decimal),
                                 ('curr_code', 1, 0, 'text', balance_forward_currency),
                             ]
                         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                        row_pos = self.xls_write_row(ws, row_pos, row_data, c_init_cell_style) 
-                
+                        row_pos = self.xls_write_row(ws, row_pos, row_data, c_init_cell_style)
+
                     for line in account.ledger_lines.get(p_id, []):
 
                         total_debit += line.get('debit') or 0.0
@@ -268,16 +270,16 @@
                             label_elements.append("(%s)" % (line['invoice_number'],))
                         label = ' '.join(label_elements)
                         cumul_balance += line.get('balance') or 0.0
-                        
+
                         if init_line or row_pos > row_start_partner:
                             cumbal_formula = rowcol_to_cell(row_pos-1, 9) + '+'
                         else:
                             cumbal_formula = ''
-                        debit_cell = rowcol_to_cell(row_pos, 7)                
-                        credit_cell = rowcol_to_cell(row_pos, 8)
-                        cumbal_formula += debit_cell + '-' + credit_cell   
+                        debit_cell = rowcol_to_cell(row_pos, 8)
+                        credit_cell = rowcol_to_cell(row_pos, 9)
+                        cumbal_formula += debit_cell + '-' + credit_cell
                         ################## Print row ledger line data #################
-                        
+
                         if line.get('ldate'):
                             c_specs = [
                                 ('ldate', 1, 0, 'date', datetime.strptime(line['ldate'],'%Y-%m-%d'), None, ll_cell_style_date),
@@ -285,79 +287,80 @@
                         else:
                             c_specs = [
                                 ('ldate', 1, 0, 'text', None),
-                            ]    
+                            ]
                         c_specs += [
                             ('period', 1, 0, 'text', line.get('period_code') or ''),
                             ('move', 1, 0, 'text', line.get('move_name') or ''),
                             ('journal', 1, 0, 'text', line.get('jcode') or ''),
                             ('partner', 1, 0, 'text', line.get('partner_name') or ''),
+                            ('ref', 1, 0, 'text', line.get('lref') or ''),
                             ('label', 1, 0, 'text', label),
                             ('rec_name', 1, 0, 'text', line.get('rec_name') or ''),
                             ('debit', 1, 0, 'number', line.get('debit'), None, ll_cell_style_decimal),
                             ('credit', 1, 0, 'number', line.get('credit'), None, ll_cell_style_decimal),
                             ('cumul_bal', 1, 0, 'number', None, cumbal_formula, ll_cell_style_decimal),
-                        ]  
+                        ]
                         if _p.amount_currency(data):
                             c_specs += [
                                 ('curr_bal', 1, 0, 'number', line.get('amount_currency') or 0.0, None, ll_cell_style_decimal),
                                 ('curr_code', 1, 0, 'text', line.get('currency_code') or '', None, ll_cell_style_center),
                             ]
                         row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                        row_pos = self.xls_write_row(ws, row_pos, row_data, ll_cell_style) 
+                        row_pos = self.xls_write_row(ws, row_pos, row_data, ll_cell_style)
                     #end for line
 
-                    ################## Print row Cumulated Balance by partner #################  
-                    debit_partner_start = rowcol_to_cell(row_start_partner, 7)                
-                    debit_partner_end = rowcol_to_cell(row_pos-1, 7)
+                    ################## Print row Cumulated Balance by partner #################
+                    debit_partner_start = rowcol_to_cell(row_start_partner, 8)
+                    debit_partner_end = rowcol_to_cell(row_pos-1, 8)
                     debit_partner_total = 'SUM(' + debit_partner_start + ':' + debit_partner_end + ')'
-                      
-                    credit_partner_start = rowcol_to_cell(row_start_partner, 8)                
-                    credit_partner_end = rowcol_to_cell(row_pos-1, 8)
+
+                    credit_partner_start = rowcol_to_cell(row_start_partner, 9)
+                    credit_partner_end = rowcol_to_cell(row_pos-1, 9)
                     credit_partner_total = 'SUM(' + credit_partner_start + ':' + credit_partner_end + ')'
-                      
-                    bal_partner_debit = rowcol_to_cell(row_pos, 7)                
-                    bal_partner_credit = rowcol_to_cell(row_pos, 8)
-                    bal_partner_total = bal_partner_debit + '-' + bal_partner_credit                 
-                                         
-                    c_specs = [('empty%s' %x, 1, 0, 'text', None) for x in range(5)]
+
+                    bal_partner_debit = rowcol_to_cell(row_pos, 8)
+                    bal_partner_credit = rowcol_to_cell(row_pos, 9)
+                    bal_partner_total = bal_partner_debit + '-' + bal_partner_credit
+
+                    c_specs = [('empty%s' %x, 1, 0, 'text', None) for x in range(6)]
                     c_specs += [
                          ('init_bal', 1, 0, 'text', _('Cumulated balance on Partner')),
                          ('rec', 1, 0, 'text', None),
-                         ('debit', 1, 0, 'number', None, debit_partner_total, c_cumul_cell_style_decimal),  
-                         ('credit', 1, 0, 'number', None, credit_partner_total, c_cumul_cell_style_decimal),  
-                         ('cumul_bal', 1, 0, 'number', None, bal_partner_total, c_cumul_cell_style_decimal),                   
-                    ]      
+                         ('debit', 1, 0, 'number', None, debit_partner_total, c_cumul_cell_style_decimal),
+                         ('credit', 1, 0, 'number', None, credit_partner_total, c_cumul_cell_style_decimal),
+                         ('cumul_bal', 1, 0, 'number', None, bal_partner_total, c_cumul_cell_style_decimal),
+                    ]
                     if _p.amount_currency(data):
                         if account.currency_id:
                             c_specs += [('curr_bal', 1, 0, 'number', cumul_balance_curr or 0.0, None, c_cumul_cell_style_decimal)]
                         else:
                             c_specs += [('curr_bal', 1, 0, 'text', '-', None, c_cumul_cell_style_right)]
-                        c_specs += [('curr_code', 1, 0, 'text', account.currency_id.name if account.currency_id else u'', None, c_cumul_cell_style_center)]                   
+                        c_specs += [('curr_code', 1, 0, 'text', account.currency_id.name if account.currency_id else u'', None, c_cumul_cell_style_center)]
                     row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
                     row_pos = self.xls_write_row(ws, row_pos, row_data, c_cumul_cell_style)
-                    row_pos += 1       
+                    row_pos += 1
                     account_total_debit += total_debit
                     account_total_credit += total_credit
                     account_balance_cumul += cumul_balance
-                    account_balance_cumul_curr += cumul_balance_curr                                 
-                        
-                ################## Print row Cumulated Balance by account #################   
-                c_specs = [('acc_title', 5, 0, 'text', ' - '.join([account.code, account.name])),      ]
+                    account_balance_cumul_curr += cumul_balance_curr
+
+                ################## Print row Cumulated Balance by account #################
+                c_specs = [('acc_title', 6, 0, 'text', ' - '.join([account.code, account.name])),      ]
                 c_specs += [
                     ('label', 1, 0, 'text', _('Cumulated balance on Account')),
                     ('rec', 1, 0, 'text', None),
                     ('debit', 1, 0, 'number', account_total_debit, None, account_cell_style_decimal),
                     ('credit', 1, 0, 'number', account_total_credit, None, account_cell_style_decimal),
-                    ('cumul_bal', 1, 0, 'number', account_balance_cumul, None, account_cell_style_decimal),                    
-                ]      
+                    ('cumul_bal', 1, 0, 'number', account_balance_cumul, None, account_cell_style_decimal),
+                ]
                 if _p.amount_currency(data):
                     if account.currency_id:
                         c_specs += [('curr_bal', 1, 0, 'number', account_balance_cumul_curr or 0.0, None, account_cell_style_decimal)]
                     else:
                         c_specs += [('curr_bal', 1, 0, 'text', '-', None, account_cell_style_right)]
-                    c_specs += [('curr_code', 1, 0, 'text', account.currency_id.name if account.currency_id else u'', None, account_cell_style)]                   
+                    c_specs += [('curr_code', 1, 0, 'text', account.currency_id.name if account.currency_id else u'', None, account_cell_style)]
                 row_data = self.xls_row_template(c_specs, [x[0] for x in c_specs])
-                row_pos = self.xls_write_row(ws, row_pos, row_data, account_cell_style) 
+                row_pos = self.xls_write_row(ws, row_pos, row_data, account_cell_style)
                 row_pos += 2
 
 partner_ledger_xls('report.account.account_report_partner_ledger_xls', 'account.account',


Follow ups