You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.8 KiB
81 lines
2.8 KiB
# -*- coding: utf-8 -*-
|
|
# Author: Andrea andrea4ever Gallina
|
|
# Author: Francesco OpenCode Apruzzese
|
|
# Author: Ciro CiroBoxHub Urselli
|
|
# Copyright 2016 Camptocamp SA
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
|
|
from openerp import models, fields, api
|
|
from openerp.exceptions import Warning as UserError
|
|
from datetime import datetime
|
|
|
|
|
|
class OpenInvoiceWizard(models.TransientModel):
|
|
|
|
_name = 'open.invoice.wizard'
|
|
|
|
company_id = fields.Many2one(
|
|
'res.company', required=True,
|
|
default=lambda s: s.env.user.company_id)
|
|
at_date = fields.Date(
|
|
required=True,
|
|
default=fields.Date.to_string(datetime.today()))
|
|
partner_ids = fields.Many2many(
|
|
'res.partner', string='Filter partners')
|
|
result_selection = fields.Selection([
|
|
('customer', 'Receivable Accounts'),
|
|
('supplier', 'Payable Accounts'),
|
|
('customer_supplier', 'Receivable and Payable Accounts')],
|
|
"Partner's", required=True, default='customer')
|
|
target_move = fields.Selection([
|
|
('posted', 'All Posted Entries'),
|
|
('all', 'All Entries')], 'Target Moves',
|
|
required=True, default='all')
|
|
|
|
@api.onchange('at_date')
|
|
def onchange_atdate(self):
|
|
self.until_date = self.at_date
|
|
|
|
@api.onchange('until_date')
|
|
def onchange_untildate(self):
|
|
# ---- until_date must be always >= of at_date
|
|
if self.until_date:
|
|
if self.until_date < self.at_date:
|
|
raise UserError(
|
|
'Until Date must be equal or greater than At Date')
|
|
|
|
def _build_contexts(self, data):
|
|
result = {}
|
|
return result
|
|
|
|
def _build_header(self):
|
|
return {
|
|
'company': self.company_id.name,
|
|
'fiscal_year': '',
|
|
'at_date': self.at_date,
|
|
'account_filters': dict(
|
|
self._columns['result_selection'].selection)[
|
|
self.result_selection],
|
|
'target_moves': dict(
|
|
self._columns['target_move'].selection)[self.target_move],
|
|
}
|
|
|
|
def _get_form_fields(self):
|
|
return self.read(['company_id', 'at_date', 'partner_ids',
|
|
'result_selection', 'target_move',
|
|
'until_date'])[0]
|
|
|
|
@api.multi
|
|
def print_report(self):
|
|
self.ensure_one()
|
|
data = {}
|
|
data['ids'] = self.env.context.get('active_ids', [])
|
|
data['model'] = self.env.context.get('active_model', 'ir.ui.menu')
|
|
data['form'] = self._get_form_fields()
|
|
used_context = self._build_contexts(data)
|
|
data['form']['used_context'] = dict(
|
|
used_context, lang=self.env.context.get('lang', 'en_US'))
|
|
data['header'] = self._build_header()
|
|
return self.env['report'].get_action(
|
|
self, 'account_financial_report_qweb.open_invoice_report_qweb',
|
|
data=data)
|