Skip to content
Extraits de code Groupes Projets
Valider e5057d62 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[add] export datetime on move.line and wizard filter

parent 77682d6f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# License AGPL-3 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3 or later (http://www.gnu.org/licenses/agpl.html).
import csv import csv
from datetime import date from datetime import date, datetime
from io import BytesIO, StringIO from io import BytesIO, StringIO
from odoo import http from odoo import http
...@@ -18,7 +18,8 @@ class JournalDatasExport(http.Controller): ...@@ -18,7 +18,8 @@ class JournalDatasExport(http.Controller):
# ------------------------------------------------------ # ------------------------------------------------------
@http.route('/web/export_journal/', type='http', auth="user") @http.route('/web/export_journal/', type='http', auth="user")
@serialize_exception @serialize_exception
def export_journal(self, format, export, date_start, date_end, **kwargs): def export_journal(
self, format, export, type, date_start, date_end, **kwargs):
""" """
Sélectionne les account.move.line correspondants aux journaux Sélectionne les account.move.line correspondants aux journaux
et à la plage de date définis et à la plage de date définis
...@@ -30,12 +31,15 @@ class JournalDatasExport(http.Controller): ...@@ -30,12 +31,15 @@ class JournalDatasExport(http.Controller):
:return: file :return: file
""" """
export_id = request.env['export.journal.type'].browse(int(export)) export_id = request.env['export.journal.type'].browse(int(export))
export_line_ids = request.env['account.move.line'].search([ domain = [
('date', '>=', date_start), ('date', '>=', date_start),
('date', '<=', date_end), ('date', '<=', date_end),
('journal_id', 'in', export_id.journal_ids.ids), ('journal_id', 'in', export_id.journal_ids.ids),
('company_id', '=', export_id.company_id.id), ('company_id', '=', export_id.company_id.id),
]) ]
if type == 'empty':
domain += [('date_export', '!=', False)]
export_line_ids = request.env['account.move.line'].search(domain)
lines_to_export = [] lines_to_export = []
for line in export_line_ids: for line in export_line_ids:
row = [] row = []
...@@ -43,6 +47,9 @@ class JournalDatasExport(http.Controller): ...@@ -43,6 +47,9 @@ class JournalDatasExport(http.Controller):
value = eval(field.field_name) value = eval(field.field_name)
row.append(value) row.append(value)
lines_to_export.append(row) lines_to_export.append(row)
line.write({
'date_export': datetime.now()
})
filename_ = (export_id.company_id.name.title().replace(' ', '') filename_ = (export_id.company_id.name.title().replace(' ', '')
+ date_start.replace('-', '') + date_start.replace('-', '')
......
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # Copyright 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3 or later (http://www.gnu.org/licenses/agpl.html).
from . import account_move_line
from . import export_journal_field from . import export_journal_field
from . import export_journal_type from . import export_journal_type
# Copyright 2020 Le Filament
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models, api
class AccountMoveLine(models.Model):
_inherit = 'account.move.line'
date_export = fields.Datetime('Date export')
...@@ -37,6 +37,9 @@ class ExportJournalWizard(models.TransientModel): ...@@ -37,6 +37,9 @@ class ExportJournalWizard(models.TransientModel):
domain="[('company_id', '=', company_id)]", domain="[('company_id', '=', company_id)]",
default=_get_default_export default=_get_default_export
) )
export_type = fields.Selection(
[('empty', 'Ecritures non exportées'), ('all', 'Toutes les écritures')],
string='Ecritures à exporter', default="empty")
def get_data_file(self): def get_data_file(self):
""" """
...@@ -46,8 +49,8 @@ class ExportJournalWizard(models.TransientModel): ...@@ -46,8 +49,8 @@ class ExportJournalWizard(models.TransientModel):
return { return {
'type': 'ir.actions.act_url', 'type': 'ir.actions.act_url',
'url': 'url':
'/web/export_journal?format=%s&export=%s' '/web/export_journal?format=%s&export=%s&type=%s'
% (self.export_format, self.export_id.id) + % (self.export_format, self.export_id.id, self.export_type) +
'&date_start=%s&date_end=%s' '&date_start=%s&date_end=%s'
% (self.date_start, self.date_end), % (self.date_start, self.date_end),
'target': 'new', 'target': 'new',
......
...@@ -12,9 +12,11 @@ ...@@ -12,9 +12,11 @@
<group> <group>
<field name="export_id" required="True" options="{'no_create': 1}"/> <field name="export_id" required="True" options="{'no_create': 1}"/>
<field name="company_id" invisible="True"/> <field name="company_id" invisible="True"/>
<field name="export_type" widget="radio" />
</group> </group>
</group> </group>
<p class="text-muted">Les dates de début et de fin sont incluses dans l'export des écritures</p>
<group> <group>
<group> <group>
<field name="date_start"/> <field name="date_start"/>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter