I have a problem for days and I can not solve, it turns out that I want to make a ledger so I want to tell me the accounts that I have in my system and that in them separate the debit and credit where these fields are already specified as attributes but that before having a date filter so that according to the range of dates that one puts the movements are shown. It is because of the above that I have the following code and method that I have tried to perform but the data does not appear in the report. Another problem I have is that because the dates are placed in the detail_movement table as I explain below and not in the table it counts how to call that attribute so that it is shown in the method that I perform more at the end. Then I leave a link on an image of the expected result: \https://ibb.co/WkwXKq9
class detail_document. Here is the date on which the account was moved.
class Document_Detail (models.Model):
_name = 'project_rc.detalle_documento'
date = fields.Date (string = "Date", default = lambda self: date.today (), required = True)
account_id = fields.Many2one (asdel_name = 'project_rc.account', string = 'Account') account table. In this is the name of the accounts and a computed attribute which adds all the debts and credits.
class Account (models.Model):
_name = 'project_rc.account'
title = fields.Char (string = "Name") t
otal_account_debe = fields.Float (string = "Total account must", compute = "_ total_deccount_deb")
total_cuenta_haber = fields.Float (string = "Total account have", compute = "_ total_cuenta_haber")
document_document_ids = fields.One2many (as del_name = 'project_rc.detail_document', inverse_name = 'account_id', string = 'Document detail', required = True)
Now start the py to be able to make the report:
class Book (models.TransientModel):
_name = 'project_rc.book' start_date = fields.Date (string = "Start date", required = True)
end_date = fields.Date (string = "End date", required = True)
@api.multi
def get_report (self):
data = {
'ids': self.ids,
'model': self._name,
'form': { 'date_start': self.date_start, 'date_end': self.date_term,
},
}
return self.env.ref ('project_rc.report_ledger'). report_action (self, data = data)
class Reportledger (models.AbstractModel):
_name = 'reports.proyecto_rc.ledger_view'
@api.model
def _get_report_values (self, docids, data = None):
start_date = data ['form'] ['start_date']
end_date = data ['form'] ['end_date'] docs = []
accounts = self.env ['project_rc.detalle_documento']. search ([
'date', '> =', start_date.strftime (DATETIME_FORMAT),
'date', '<=', end_date.strftime (DATETIME_FORMAT)
])
for title in accounts:
items = self.env ['project_rc.account']. search ([
('title', '=', account.id),
('debit', '=', account.total_credit_count),
('credit', '=', account.total_custom_count),
])
docs.append ({
'title': detail_document.account.title,
'date': detail_document.date,
'debit': detail_document.account_id.total_account_debit,
'credit': detail_document.account_id.total_account_credit,
})
return {
'doc_ids': data ['ids'],
'doc_model': data ['model'],
'start_date': start_date,
'end_date': end_date,
'docs': docs,
}