Skip to content
Extraits de code Groupes Projets

[ADD] add some fields for import

Fichiers

+ 35
28
from odoo import http
from odoo.http import request
from odoo.addons.web.controllers.main import ExcelExport
# Copyright 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import io
import xlsxwriter
from odoo import http
from odoo.http import request
def export_xlsx(data_by_sheet):
@@ -74,7 +77,6 @@ class ApExportController(http.Controller):
return ""
def get_nb_tree(self, inter_id):
if inter_id.plant_sequence_ids:
to_count = inter_id.plant_sequence_ids
else:
@@ -90,12 +92,12 @@ class ApExportController(http.Controller):
# un onglet par programme (subvention)
programmes = request.env["sale.project.subvention"].search([])
# fichier final
file = {}
for programme in programmes:
# on créer l onglet du programme
file[programme.name] = []
page = file.get(programme.name)
page = []
# tout les projets sous ce programme pour la saison dont le devis est signé
projects = request.env["sale.project"].search(
@@ -109,6 +111,7 @@ class ApExportController(http.Controller):
[("project_id", "in", projects.ids)]
)
plant_data = {}
# sauvegarde de la liste des planteurs pour la premiere ligne
seeders_list = []
for intervention in interventions:
seeders_list.append(intervention.partner_id)
@@ -120,26 +123,6 @@ class ApExportController(http.Controller):
plant[f"ROT{intervention.partner_id.name}"] = sequence.qty
# format data for xls
# premiere ligne on va chercher les secteurs de plantation
first_line = {
"Article": "Secteur plantation",
"Nom latin": "",
"Nom de la catégorie": "",
"Numéro de pépiniesriste": "",
}
for seeder in set(seeders_list):
secteur_plat = (
request.env["sale.project"]
.search([("partner_id", "=", seeder.id)])
.mapped("plant_sector_id")
.mapped("name")
)
first_line[f"ROT{seeder.name}"] = ",".join(secteur_plat)
page.append(first_line)
for plant in plant_data:
line = {}
line.update(
@@ -154,6 +137,30 @@ class ApExportController(http.Controller):
for seeder in qty:
line[seeder] = qty[seeder]
page.append(line)
# si on des commandes pour ce programe on l ajoute au fichier
if page:
# on construit la premier ligne avec les secteurs
# de plantation par planteur
first_line = {
"Article": "Secteur plantation",
"Nom latin": "",
"Nom de la catégorie": "",
"Numéro de pépiniesriste": "",
}
for seeder in set(seeders_list):
secteur_plat = (
request.env["sale.project"]
.search([("partner_id", "=", seeder.id)])
.mapped("plant_sector_id")
.mapped("name")
)
first_line[f"ROT{seeder.name}"] = ",".join(secteur_plat)
page.insert(0, first_line)
file[programme.name] = page
return file
def get_fin_data(self, saison):
@@ -266,7 +273,7 @@ class ApExportController(http.Controller):
@http.route("/ap_export/xlsx_download", type="http", auth="user")
def download_xlsx(self, wizard_id, **kwargs):
wizard = request.env["ap.export.wizard"].sudo().browse(int(wizard_id))
wizard = request.env["ap.export.wizard"].browse(int(wizard_id))
filename = self.get_filename(wizard.export_type, wizard.saison_id)
data_methods = {
Chargement en cours