# Copyright 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3 or later (http://www.gnu.org/licenses/agpl.html).

from urllib.parse import urlencode

from odoo import models, fields, api


class ExportJournalWizard(models.TransientModel):
    _name = "export.journal.cg.wizard"
    _description = "Wizard export journal CG Scop"

    @api.model
    def _get_default_company(self):
        return self.env.user.company_id

    @api.model
    def _get_default_export(self):
        export = self.env['export.journal.type'].search([
            ('company_id', '=', self.env.user.company_id.id)], limit=1)
        return export

    date_start = fields.Date('Date de début des écritures')
    date_end = fields.Date(
        string='Date de fin des écritures')

    date_creation_start = fields.Date('Date de début (création des écritures)')
    date_creation_end = fields.Date(
        string='Date de fin (création des écritures)')

    company_id = fields.Many2one(
        comodel_name='res.company',
        default=_get_default_company
    )
    partner_ids = fields.Many2many(
        comodel_name='res.partner',
        string='Coopératives',
        domain=[('is_cooperative', '=', True)]
    )
    export_type = fields.Selection(
        [('empty', 'Ecritures non exportées'), ('all', 'Toutes les écritures')],
        string='Ecritures à exporter', default="empty")

    def get_cg_export(self):
        """
        Appelle l'url de traitement et de téléchargement
        :return: ir.actions.act_url
        """
        datas = {
            'export_type': self.export_type,
            'company_id': self.company_id.id,
        }
        if self.date_start and self.date_end:
            datas.update({
                'date_start': self.date_start,
                'date_end': self.date_end,
            })
        if self.date_creation_start and self.date_creation_end:
            datas.update({
                'date_creation_start': self.date_start,
                'date_creation_end': self.date_end,
            })
        if self.partner_ids:
            datas['partner_ids'] = ','.join(str(x) for x in self.partner_ids.ids)
        return {
            'type': 'ir.actions.act_url',
            'url': '/web/export_journal_cg?' + urlencode(datas),
            'target': 'new',
        }