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

[ADD] finalisation

parent 91bd2cfb
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!414.0 new fields,!3[ADD] add some fields for import
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,8 +123,25 @@ class ApExportController(http.Controller):
plant[f"ROT{intervention.partner_id.name}"] = sequence.qty
# format data for xls
for plant in plant_data:
line = {}
line.update(
{
"Article": plant.name,
"Nom latin": plant.latin_name or "",
"Nom de la catégorie": plant.categ_id.name or "",
"Numéro de pépiniériste": plant.categ_id.nurseryman_id or "",
}
)
qty = plant_data.get(plant)
for seeder in qty:
line[seeder] = qty[seeder]
page.append(line)
# premiere ligne on va chercher les secteurs de plantation
# 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",
......@@ -138,22 +158,9 @@ class ApExportController(http.Controller):
.mapped("name")
)
first_line[f"ROT{seeder.name}"] = ",".join(secteur_plat)
page.append(first_line)
page.insert(0, first_line)
file[programme.name] = page
for plant in plant_data:
line = {}
line.update(
{
"Article": plant.name,
"Nom latin": plant.latin_name or "",
"Nom de la catégorie": plant.categ_id.name or "",
"Numéro de pépiniériste": plant.categ_id.nurseryman_id or "",
}
)
qty = plant_data.get(plant)
for seeder in qty:
line[seeder] = qty[seeder]
page.append(line)
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 = {
......
# Copyright 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields
......
......@@ -34,7 +34,7 @@
name="Export de données"
parent="sale.sale_menu_root"
sequence="7"
groups="base.group_system"
groups="sales_team.group_sale_salesman"
/>
<menuitem
......@@ -43,7 +43,7 @@
name="Exporter"
action="action_ap_export_wizard"
sequence="10"
groups="base.group_system"
groups="sales_team.group_sale_salesman"
/>
</data>
......
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