34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import base64
|
|
|
|
from odoo import fields, models
|
|
from odoo.addons.l10n_ph import utils
|
|
|
|
|
|
class Generate2307Wizard(models.TransientModel):
|
|
_name = "l10n_ph_2307.wizard"
|
|
_description = "Exports 2307 data to a XLS file."
|
|
|
|
moves_to_export = fields.Many2many("account.move", string="Joural To Include")
|
|
xls_file = fields.Binary(
|
|
"Generated file",
|
|
help="Technical field used to temporarily hold the generated XLS file before its downloaded."
|
|
)
|
|
|
|
def action_generate(self):
|
|
""" Generate a xls format file for importing to
|
|
https://bir-excel-uploader.com/excel-file-to-bir-dat-format/#bir-form-2307-settings.
|
|
This website will then generate a BIR 2307 format excel file for uploading to the
|
|
PH government.
|
|
"""
|
|
self.ensure_one()
|
|
|
|
self.xls_file = base64.b64encode(utils._export_bir_2307('Form2307', self.moves_to_export, file_format='xls'))
|
|
|
|
return {
|
|
"type": "ir.actions.act_url",
|
|
"target": "self",
|
|
"url": f"/web/content?model=l10n_ph_2307.wizard&download=true&field=xls_file&filename=Form_2307.xls&id={self.id}",
|
|
}
|