Hello All ,
I am currently overiding the default partner ledger report . I want to add a field in the report called invcompany_id , currently i have only edited one function of the report which is def Lines and i have inserted some lines in the sql of the function. :
def lines(self, partner):
move_state = ['draft','posted']
if self.target_move == 'posted':
move_state = ['posted']
full_account = []
if self.reconcil:
RECONCILE_TAG = " "
else:
RECONCILE_TAG = "AND l.reconcile_id IS NULL"
self.cr.execute(
"SELECT l.id, aaa.invcompany_id as invcompany_id ,l.partner_id ,l.analytic_account_id as analytic_account_id,l.company_id, l.date, j.code, acc.code as a_code, acc.name as a_name, l.ref, m.name as move_name, l.name, l.debit, l.credit " \
"FROM account_move_line l " \
" LEFT JOIN account_analytic_account aaa ON (l.analytic_account_id = aaa.id)" \
"LEFT JOIN account_journal j " \
"ON (l.journal_id = j.id) " \
"LEFT JOIN account_account acc " \
"ON (l.account_id = acc.id) " \
"LEFT JOIN res_currency c ON (l.currency_id=c.id) " \
"LEFT JOIN account_move m ON (m.id=l.move_id)" \
"WHERE l.partner_id = %s " \
"AND l.account_id IN %s AND " + self.query +" " \
"AND m.state IN %s " \
" " + RECONCILE_TAG + " "\
"ORDER BY aaa.invcompany_id ,l.date",
(partner.id, tuple(self.account_ids), tuple(move_state)))
res = self.cr.dictfetchall()
print res
sum = 0.0
if self.initial_balance:
sum = self.init_bal_sum
for r in res:
sum += r['debit'] - r['credit']
r['progress'] = sum
full_account.append(r)
return full_account
If i run this report the field i want to display is empty , when i print the dinctionary(res) it shows empty for field i am calling which is aaa.invoicing company , However when i run this sql query in pgadmin / postgres i get the right results and data .
Is there a reason why the code shows empty data for my sql but in pgadmin i get the right results ?.
you have to differentiate sql_query = "" into different string then print your sql_query string before applying into cr.execute(), For more info contact@tidyway.in