Openerp 仅打印选定合作伙伴的报告
有合作伙伴分类账报告,但仅打印所有合作伙伴。所以我在向导和向导视图中添加了合作伙伴id。 现在我需要一种方法,只打印选定合作伙伴的报告。我希望你们能给我一些启发。也许是一些伪代码,我应该如何实现它Openerp 仅打印选定合作伙伴的报告,openerp,odoo-8,odoo-9,Openerp,Odoo 8,Odoo 9,有合作伙伴分类账报告,但仅打印所有合作伙伴。所以我在向导和向导视图中添加了合作伙伴id。 现在我需要一种方法,只打印选定合作伙伴的报告。我希望你们能给我一些启发。也许是一些伪代码,我应该如何实现它 class AccountPartnerLedger(models.TransientModel): _inherit = "account.report.partner.ledger" partner_ids = fields.Many2many( 'res.par
class AccountPartnerLedger(models.TransientModel):
_inherit = "account.report.partner.ledger"
partner_ids = fields.Many2many(
'res.partner', string='Choose partners')
我正在尝试按调用报表的域方法进行筛选
class ReportPartnerLedger(models.AbstractModel):
_inherit = 'report.account_extra_reports.report_partnerledger'
@api.multi
def render_html(self, data):
domain = [
('partner_ids', '==', 'partner_ids'),
]
return super(ReportPartnerLedger, self).render_html(data=data)
通常,如果要在partner ledger中进行筛选,则需要覆盖设置所有合作伙伴的一个方法 关于这一点,你可以参考 账户=>report=>report\u partner\u ledger.py 在该文件中有一个方法
def set_context(self, objects, data, ids, report_type=None):
您需要重写它,并需要更新一行,该行将获取所有合作伙伴,而不是您需要在此处传递字段的值
self.cr.execute(
"SELECT DISTINCT l.partner_id " \
"FROM account_move_line AS l, account_account AS account, " \
" account_move AS am " \
"WHERE l.partner_id IS NOT NULL " \
"AND l.account_id = account.id " \
"AND am.id = l.move_id " \
"AND am.state IN %s"
"AND " + self.query +" " \
"AND l.account_id IN %s " \
" " + PARTNER_REQUEST + " " \
"AND account.active " + reconcile + " ", params)
self.partner_ids = [res['partner_id'] for res in self.cr.dictfetchall()]
通过这种方式,odoo获取partner ledger报告的所有partners,所以只需注释掉这些行并替换代码即可
为此,您必须继承向导,因为在
partner_id字段中存在需要替换该值的字段
没有人会在这里为您编写代码。您应该与我们分享您的尝试,如果我们能够提供帮助,我们将帮助您解决错误。正如我之前所说,我不想要代码,我想要一些指针。好的,这里是提示:源代码