diff --git a/README.rst b/README.rst index 20972e0a202d0b384360c649fda44dbf75db9b26..146704bd2b9ac870f0bf9429007670225d936bf5 100644 --- a/README.rst +++ b/README.rst @@ -19,7 +19,7 @@ Credits Contributors ------------ -* Rémi <remi@le-filament.com> +* Jordan <jordan@le-filament.com> Maintainer diff --git a/__manifest__.py b/__manifest__.py index 67d9755c7827a8052240974e2a6a432f62c153b8..bf04c85b3032c9d7f1c57336f70267977b6dea14 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -1,21 +1,11 @@ { - "name": "ARBRE & PAYSAGE - Gestion de projet de création", - "summary": "Gestion de projet de création", + "name": "ARBRE & PAYSAGE - Taxes sur Devis", + "summary": "Ajout des taxes sur les devis", "author": "Le Filament", "website": "https://le-filament.com", "version": "14.0.1.0.0", "license": "AGPL-3", "depends": ["ap_sale_project", "product_category_tax"], - "data": [ - # "security/ir.model.access.csv", - # datas - # views - # views menu - # wizard - ], - "qweb": [ - # "static/src/xml/*.xml", - ], "installable": True, "auto_install": False, } diff --git a/models/sale_intervention.py b/models/sale_intervention.py index cfaac71b86c8218a022507b36485b97fd6bbf382..b0f6cef1259ac8dab5316df02a3e92b257e2f030 100644 --- a/models/sale_intervention.py +++ b/models/sale_intervention.py @@ -13,12 +13,23 @@ class SaleIntervention(models.Model): """ product_tmpl = self.intervention_type_id plant_categ_id = self.env.ref("ap_sale_project.product_category_plant") - vat_plant_categ = self.env['product.category'].browse(plant_categ_id.id).taxes_id - furniture_categ_id = self.env.ref("ap_sale_project.product_category_plantation_supply") - vat_furniture_categ = self.env['product.category'].browse(furniture_categ_id.id).taxes_id + vat_plant_categ = ( + self.env["product.category"].browse(plant_categ_id.id).taxes_id + ) + furniture_categ_id = self.env.ref( + "ap_sale_project.product_category_plantation_supply" + ) + vat_furniture_categ = ( + self.env["product.category"].browse(furniture_categ_id.id).taxes_id + ) pricelist = self.project_subvention_id.product_pricelist_ids.filtered( - lambda i: i.intervention_type_id.id == product_tmpl.id) - if pricelist and pricelist.item_ids.filtered(lambda i: i.categ_id == plant_categ_id) and self.env.user.company_id.vat: + lambda i: i.intervention_type_id.id == product_tmpl.id + ) + if ( + pricelist + and pricelist.item_ids.filtered(lambda i: i.categ_id == plant_categ_id) + and self.env.user.company_id.vat + ): quantity = ( self.intervention_length if product_tmpl.uom_name == "m" @@ -31,72 +42,82 @@ class SaleIntervention(models.Model): # "product_uom_qty": quantity, # } plant_pricelist_item = pricelist.item_ids.filtered( - lambda i: i.categ_id == plant_categ_id) + lambda i: i.categ_id == plant_categ_id + ) plant_price = plant_pricelist_item.fixed_price existing_lines = self.sale_order_id.order_line.filtered( - lambda r: - r.product_id.id == product_tmpl.product_variant_id.id - and r.sale_project_id.id == self.project_id.id) + lambda r: r.product_id.id == product_tmpl.product_variant_id.id + and r.sale_project_id.id == self.project_id.id + ) if existing_lines: sol_plant = existing_lines.filtered( lambda sol: sol.tax_id == vat_plant_categ ) if len(sol_plant) == 1: - sol_plant.write({ - 'product_uom_qty': quantity, - }) + sol_plant.write( + { + "product_uom_qty": quantity, + } + ) else: - raise UserWarning("Impossible de mettre à jour la ligne des plants") + raise UserWarning( + "Impossible de mettre à jour la ligne des plants" + ) sol_furniture = existing_lines.filtered( lambda sol: sol.tax_id == vat_furniture_categ ) if len(sol_furniture) == 1: - sol_furniture.write({ - 'product_uom_qty': quantity, - 'price_unit': price_unit - plant_price, - }) + sol_furniture.write( + { + "product_uom_qty": quantity, + "price_unit": price_unit - plant_price, + } + ) else: - raise UserWarning("Impossible de mettre à jour la ligne des fournitures") + raise UserWarning( + "Impossible de mettre à jour la ligne des fournitures" + ) else: sols = list() data_sol_section = { - 'order_id': self.sale_order_id.id, - 'product_id': product_tmpl.product_variant_id.id, - 'product_uom_qty': quantity, - 'sale_project_id': self.project_id.id, + "order_id": self.sale_order_id.id, + "product_id": product_tmpl.product_variant_id.id, + "product_uom_qty": quantity, + "sale_project_id": self.project_id.id, } - sols.append({**data_sol_section, **{ - 'name': self.project_id.name + " - " + product_tmpl.name, - 'display_type': 'line_section' - }}) - sols.append({**data_sol_section, **{ - 'price_unit': plant_price, - 'name': "Plants garantis 3 ans", - 'tax_id': [(6, 0, vat_plant_categ.ids)], - }}) - sols.append({**data_sol_section, **{ - 'price_unit': price_unit - plant_price, - 'name': "Paillage, protections, ingénierie, " + sols.append( + { + **data_sol_section, + **{ + "name": self.project_id.name + + " - " + + product_tmpl.name, + "display_type": "line_section", + }, + } + ) + sols.append( + { + **data_sol_section, + **{ + "price_unit": plant_price, + "name": "Plants garantis 3 ans", + "tax_id": [(6, 0, vat_plant_categ.ids)], + }, + } + ) + sols.append( + { + **data_sol_section, + **{ + "price_unit": price_unit - plant_price, + "name": "Paillage, protections, ingénierie, " "livraison et suivi", - 'tax_id': [(6, 0, vat_furniture_categ.ids)], - }}) + "tax_id": [(6, 0, vat_furniture_categ.ids)], + }, + } + ) for sol in sols: self.env["sale.order.line"].create(sol) else: return super(SaleIntervention, self)._update_order_lines() - - # else: - # existing_lines = self.order_line.filtered( - # lambda r: r.product_id.id == product_tmpl.product_variant_id.id - # and r.sale_project_id.id == self.project_id.id - # ) - # if existing_lines: - # # Update these lines - # existing_lines.write(data) - # else: - # # Add missing fields and create new lines - # data["order_id"] = self.id - # data["name"] = self.project_id.name + " - " + product_tmpl.name - # data["product_id"] = product_tmpl.product_variant_id.id - # data["sale_project_id"] = self.project_id.id - # self.env["sale.order.line"].create(data) diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv deleted file mode 100644 index 997ea4073c668c5b0d6d06b745158d8b756b89b1..0000000000000000000000000000000000000000 --- a/security/ir.model.access.csv +++ /dev/null @@ -1,11 +0,0 @@ -id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink -sale_project_salesteam,sale_project_salesteam,model_sale_project,sales_team.group_sale_salesman,1,1,1,1 -sale_project_suivi_salesteam,sale_project_suivi_salesteam,model_sale_project_suivi,sales_team.group_sale_salesman,1,1,1,1 -sale_project_advancement_salesteam,sale_project_advancement_salesteam,model_sale_project_advancement,sales_team.group_sale_salesman,1,1,1,1 -sale_project_saison_salesteam,sale_project_saison_salesteam,model_sale_project_saison,sales_team.group_sale_salesman,1,1,1,1 -sale_project_admin_state_salesteam,sale_project_admin_state_salesteam,model_sale_project_admin_state,sales_team.group_sale_salesman,1,1,1,1 -sale_financial_help_salesteam,sale_financial_help_salesteam,model_sale_financial_help,sales_team.group_sale_salesman,1,1,1,1 -sale_intervention_salesteam,sale_intervention_salesteam,model_sale_intervention,sales_team.group_sale_salesman,1,1,1,1 -sale_intervention_stock_salesteam,sale_intervention_stock_salesteam,model_sale_intervention_stock,sales_team.group_sale_salesman,1,1,1,1 -sale_intervention_plant_sequence_salesteam,sale_intervention_plant_sequence_salesteam,model_sale_intervention_plant_sequence,sales_team.group_sale_salesman,1,1,1,1 -sale_project_subvention_salesteam,sale_project_subvention_salesteam,model_sale_project_subvention,sales_team.group_sale_salesman,1,1,1,1 diff --git a/security/security.xml b/security/security.xml deleted file mode 100644 index 6726c7a9e97aeb5a43117e5249d19e047082707c..0000000000000000000000000000000000000000 --- a/security/security.xml +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright 2021 Le Filament - License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> -<odoo> - <record model="ir.rule" id="sale_own_sale_project"> - <field name="name">Own sale projects</field> - <field name="model_id" ref="model_sale_project" /> - <field - name="domain_force" - >['|',('user_id','=',user.id),('user_id','=',False)]</field> - <field name="global" eval="True" /> - <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]" /> - </record> - <record model="ir.rule" id="sale_all_sale_project"> - <field name="name">All sale projects</field> - <field name="model_id" ref="model_sale_project" /> - <field name="global" eval="True" /> - <field name="domain_force">[(1,'=',1)]</field> - <field - name="groups" - eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]" - /> - </record> - - <record model="ir.rule" id="sale_own_sale_intervention"> - <field name="name">Own sale interventions</field> - <field name="model_id" ref="model_sale_intervention" /> - <field - name="domain_force" - >['|',('user_id','=',user.id),('user_id','=',False)]</field> - <field name="global" eval="True" /> - <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]" /> - </record> - <record model="ir.rule" id="sale_all_sale_intervention"> - <field name="name">All sale interventions</field> - <field name="model_id" ref="model_sale_intervention" /> - <field name="global" eval="True" /> - <field name="domain_force">[(1,'=',1)]</field> - <field - name="groups" - eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]" - /> - </record> - - <record model="ir.rule" id="sale_own_sale_intervention_plant_sequence"> - <field name="name">Own sale interventions</field> - <field name="model_id" ref="model_sale_intervention_plant_sequence" /> - <field - name="domain_force" - >['|',('user_id','=',user.id),('user_id','=',False)]</field> - <field name="global" eval="True" /> - <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]" /> - </record> - <record model="ir.rule" id="sale_all_sale_intervention_plant_sequence"> - <field name="name">All sale interventions plant sequence</field> - <field name="model_id" ref="model_sale_intervention_plant_sequence" /> - <field name="global" eval="True" /> - <field name="domain_force">[(1,'=',1)]</field> - <field - name="groups" - eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]" - /> - </record> -</odoo>