diff --git a/__init__.py b/__init__.py index 4b967d23584f641c2c7ce244dbd283eadb42ba29..e0e3732f51f7a29dcbf1f51f3a6edb926e723bac 100644 --- a/__init__.py +++ b/__init__.py @@ -1,3 +1,4 @@ # Copyright 2021 Le Filament (https://le-filament.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) +from . import models diff --git a/__manifest__.py b/__manifest__.py index ac8f4a6c74eaaf3406a35b7a47d608ff08a2d3fa..661fcb7d1cd9d1fe06fdf76a7e5783c3b18c82ed 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -5,11 +5,25 @@ "website": "https://le-filament.com", "version": "14.0.1.0.1", "license": "AGPL-3", - "depends": [], + "depends": [ + "sale_crm", + ], "data": [ "security/ir.model.access.csv", + # templates + "templates/report_views.xml", + "templates/report_templates.xml", + "templates/report_devis_ecozimut.xml", + "templates/report_facture_ecozimut.xml", # datas + "data/report_layout.xml", # views + "views/assets.xml", + "views/account_move.xml", + "views/ecozimut_insurance.xml", + "views/product_template.xml", + "views/sale_order.xml", + "views/res_company.xml", # views menu # wizard ], diff --git a/data/report_layout.xml b/data/report_layout.xml new file mode 100644 index 0000000000000000000000000000000000000000..93ae2f545d35ef596ee07c095ab2be7547182b2d --- /dev/null +++ b/data/report_layout.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + + <record id="report_layout_eco" model="report.layout"> + <field name="name">Ecozimut</field> + <field name="sequence">5</field> + <field name="view_id" ref="ecozimut_sale.external_layout_eco" /> + <field name="image">/web/static/img/preview_boxed.png</field> + <field name="pdf">/web/static/pdf/preview_boxed.pdf</field> + </record> + + </data> +</odoo> diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..151b42d3c987a6c8bbef99c693248cf783b39d66 --- /dev/null +++ b/models/__init__.py @@ -0,0 +1,10 @@ +# © 2018 Le Filament (http://www.le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import account_move_line +from . import base_document_layout +from . import ecozimut_insurance +from . import product_template +from . import res_company +from . import sale_order +from . import sale_order_line diff --git a/models/account_move_line.py b/models/account_move_line.py new file mode 100644 index 0000000000000000000000000000000000000000..9905177380cf592a3934b8a4222d17f57c8ae997 --- /dev/null +++ b/models/account_move_line.py @@ -0,0 +1,12 @@ +# © 2018 Le Filament (http://www.le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + + insurances = fields.Many2many( + related="product_id.product_tmpl_id.insurances", string="Assurances" + ) diff --git a/models/base_document_layout.py b/models/base_document_layout.py new file mode 100644 index 0000000000000000000000000000000000000000..feda5742640c5b2a7cdb75f3128db3b8bd8bc509 --- /dev/null +++ b/models/base_document_layout.py @@ -0,0 +1,42 @@ +# 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 fields, models + + +class BaseDocumentLayout(models.TransientModel): + _inherit = "base.document.layout" + + company_type = fields.Char(related="company_id.company_type", readonly=True) + capital = fields.Char(related="company_id.capital", readonly=True) + siret = fields.Char(related="company_id.siret", readonly=True) + ape = fields.Char(related="company_id.ape", readonly=True) + company_registry = fields.Char(related="company_id.company_registry", readonly=True) + + # ------------------------------------------------------ + # SQL Constraints + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Default methods + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Computed fields / Search Fields + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Onchange / Constraints + # ------------------------------------------------------ + + # ------------------------------------------------------ + # CRUD methods (ORM overrides) + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Actions + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Business methods + # ------------------------------------------------------ diff --git a/models/ecozimut_insurance.py b/models/ecozimut_insurance.py new file mode 100644 index 0000000000000000000000000000000000000000..d1c5bc36713d4a5f50031404f5389928d4682a29 --- /dev/null +++ b/models/ecozimut_insurance.py @@ -0,0 +1,14 @@ +# © 2017 Prometil (http://www.prometil.com>) +# © 2018 Le Filament (http://www.le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class Insurance(models.Model): + _name = "ecozimut.insurance" + _description = "Assurances" + + name = fields.Char(string="Nom") + rate = fields.Char(string="Taux") + description = fields.Text(string="Description") diff --git a/models/product_template.py b/models/product_template.py new file mode 100644 index 0000000000000000000000000000000000000000..ef33f6fc180c3e9e8a8a2961c91e08096e34ecbe --- /dev/null +++ b/models/product_template.py @@ -0,0 +1,13 @@ +# © 2017 Prometil (http://www.prometil.com>) +# © 2018 Le Filament (http://www.le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class Product(models.Model): + _inherit = "product.template" + + insurances = fields.Many2many( + "ecozimut.insurance", ondelete="cascade", string="Assurances", index=True + ) diff --git a/models/res_company.py b/models/res_company.py new file mode 100644 index 0000000000000000000000000000000000000000..45e2827ecf4dde124916e1f4a564f91214577838 --- /dev/null +++ b/models/res_company.py @@ -0,0 +1,12 @@ +# © 2020 Le Filament (http://www.le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + company_type = fields.Char("Type de société") + capital = fields.Char("Capital") + data_banque = fields.Text("Données Banque pour les rapports") diff --git a/models/sale_order.py b/models/sale_order.py new file mode 100644 index 0000000000000000000000000000000000000000..0f913e7a4dff15cdc6cc5ecc57aded7e1b4d3e68 --- /dev/null +++ b/models/sale_order.py @@ -0,0 +1,23 @@ +# © 2017 Prometil (http://www.prometil.com>) +# © 2018 Le Filament (http://www.le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + description = fields.Char() + confirmation_date = fields.Datetime(readonly=False) + estimated_date_invoice = fields.Date("Date de facturation prévisionnelle") + + def _prepare_invoice(self): + values = super(SaleOrder, self)._prepare_invoice() + values.update( + { + "project_id": self.project_id.id or False, + "description": self.description, + } + ) + return values diff --git a/models/sale_order_line.py b/models/sale_order_line.py new file mode 100644 index 0000000000000000000000000000000000000000..ce85965b38724a7567c8806c0b38aa633fa4b035 --- /dev/null +++ b/models/sale_order_line.py @@ -0,0 +1,21 @@ +# © 2017 Prometil (http://www.prometil.com>) +# © 2018 Le Filament (http://www.le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + insurances = fields.Many2many( + "ecozimut.insurance", ondelete="cascade", string="Assurances", index=True + ) + + @api.onchange("product_id") + def product_id_change(self): + res = super(SaleOrderLine, self).product_id_change() + for line in self: + if not line.insurances: + line.insurances = line.product_id.insurances + return res diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 301b7dab167cbcb978ea78e7da9e7f032c40b90e..90b1f5ecd2028cd5a12ef8c90053d89c9236f826 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -1 +1,2 @@ -id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_ecozimut_insurance,access_ecozimut_insurance,model_ecozimut_insurance,base.group_user,1,0,0,0 diff --git a/static/src/scss/layout_spe.scss b/static/src/scss/layout_spe.scss new file mode 100644 index 0000000000000000000000000000000000000000..6bc3235cfd11dda24dbb5ff3b62fbb0062415370 --- /dev/null +++ b/static/src/scss/layout_spe.scss @@ -0,0 +1,5 @@ +.o_report_layout_boxed { + .company_address { + background-color: gray("200"); + } +} diff --git a/templates/report_devis_ecozimut.xml b/templates/report_devis_ecozimut.xml new file mode 100644 index 0000000000000000000000000000000000000000..fb7d731711b79d7e46e3cedb06d160937f58a3c5 --- /dev/null +++ b/templates/report_devis_ecozimut.xml @@ -0,0 +1,164 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!--Custom report.--> +<odoo> + <data> + + <template + id="report_saleorder_document" + inherit_id="sale.report_saleorder_document" + > + <t t-set="address" position="replace"> + <div class="row mb-4"> + <div class="col-6 " name="company_address"> + <div class="company_address pl-2 pt-3 pb-3 mr-4"> + <strong><span + t-field="doc.company_id.partner_id.name" + /></strong> + <div + t-field="doc.company_id.partner_id" + t-options='{"widget": "contact", "fields": ["address", "phone", "email"], "no_marker": true}' + /> + </div> + </div> + <div class="col-6"> + <span><strong>Adressé à:</strong></span> + <div + t-field="doc.partner_id" + t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}' + /> + </div> + </div> + </t> + + <div id="informations" position="before"> + <div t-if="doc.description"> + <p t-field="doc.description" /> + </div> + </div> + <thead style="display: table-row-group" position="replace"> + <thead style="display: table-row-group"> + <tr> + <th name="th_description" class="text-left">Description</th> + <th name="th_quantity" class="text-right">Quantité</th> + <th name="th_priceunit" class="text-right">P.U. HT</th> + <th + name="th_discount" + t-if="display_discount" + class="text-right" + groups="product.group_discount_per_so_line" + > + <span>Rem.%</span> + </th> + <th name="th_taxes" class="text-right">TVA %</th> + <th name="th_subtotal" class="text-right"> + <span + groups="account.group_show_line_subtotals_tax_excluded" + >Total HT</span> + <span + groups="account.group_show_line_subtotals_tax_included" + >Total</span> + </th> + </tr> + </thead> + </thead> + + <div id="total" position="replace"> + <div id="total" class="row" name="total"> + <div + t-attf-class="#{'col-4' if report_type != 'html' else 'col-sm-7 col-md-5'} ml-auto" + > + <table class="table table-sm"> + <tr class="border-black o_subtotal" style=""> + <td name="td_amount_untaxed_label"><strong + >Total HT</strong></td> + <td name="td_amount_untaxed" class="text-right"> + <span t-field="doc.amount_untaxed" /> + </td> + </tr> + <t t-foreach="doc.amount_by_group" t-as="amount_by_group"> + <tr style=""> + <t + t-if="amount_by_group[5] == 1 and doc.amount_untaxed == amount_by_group[2]" + > + <td name="td_amount_by_group_label_3"> + <span>TVA</span> + </td> + <td + name="td_amount_by_group_3" + class="text-right o_price_total" + > + <span + t-esc="amount_by_group[1]" + t-options='{"widget": "monetary", "display_currency": doc.pricelist_id.currency_id}' + /> + </td> + </t> + <t t-else=""> + <td name="td_amount_by_group_label"> + <span>TVA</span> + </td> + <td + name="td_amount_by_group" + class="text-right o_price_total" + > + <span + t-esc="amount_by_group[1]" + t-options='{"widget": "monetary", "display_currency": doc.pricelist_id.currency_id}' + /> + </td> + </t> + </tr> + </t> + <tr class="border-black o_total"> + <td name="td_amount_total_label"><strong + >Total</strong></td> + <td name="td_amount_total" class="text-right"> + <span t-field="doc.amount_total" /> + </td> + </tr> + </table> + </div> + </div> + </div> + + <div name="signature" position="replace"> + <div class="row mt-2"> + <div class="col-7 text-right"> + Bon pour accord : <br /> + <span style="font-size:10px;"> À retourner signé, daté, <br + /> avec cachet de l'entreprise. </span><br /> + <span style="font-size:11px;"> + Le ___ / ___/ ______<br /> + A ________________ </span> + </div> + <div class="col-5 text-center" style="font-size:9px"> + Cachet et signature du client + <div + class="signature" + style="border: 1px solid grey;height:90px;" + > + </div> + </div> + </div> + +<!-- <div class="mt32 ml64 mr4" name="signature">--> +<!-- <div class="offset-8">--> +<!-- <strong>Cachet et signature du client</strong>--> +<!-- </div>--> +<!-- <div class="offset-8">--> +<!-- <img src="" style="max-height: 4cm; max-width: 8cm;"/>--> +<!-- </div>--> +<!-- <div class="offset-8 text-center">--> +<!-- <p>--> +<!-- <strong>Bon pour accord:</strong><br/>--> +<!-- À retourner signé, daté, avec cachet de l'entreprise.<br/>--> +<!-- Le ___ / ___/ ______ <br/>--> +<!-- A ________________ <br/>--> +<!-- </p>--> +<!-- </div>--> +<!-- </div>--> + </div> + </template> + + </data> +</odoo> diff --git a/templates/report_facture_ecozimut.xml b/templates/report_facture_ecozimut.xml new file mode 100644 index 0000000000000000000000000000000000000000..541e238f0ec9f31c2e440b471bc841e655b5322f --- /dev/null +++ b/templates/report_facture_ecozimut.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + <template + id="report_invoice_document" + inherit_id="account.report_invoice_document" + > + <t t-set="address" position="replace"> + <div class="row mb-4"> + <div class="col-6 " name="company_address"> + <div class="company_address pl-2 pt-3 pb-3 mr-4"> + <strong><span + t-field="o.company_id.partner_id.name" + /></strong> + <div + t-field="o.company_id.partner_id" + t-options='{"widget": "contact", "fields": ["address", "phone", "email"], "no_marker": true}' + /> + </div> + </div> + <div class="col-6"> + <span><strong>Adressé à:</strong></span> + <div + t-field="o.partner_id" + t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}' + /> + </div> + </div> + </t> + + <div id="informations" position="before"> + <div t-if="o.description"> + <p t-field="o.description" /> + </div> + </div> + <div + t-if="o.invoice_date_due and o.move_type == 'out_invoice' and o.state == 'posted'" + position="replace" + > + <div + class="col-auto col-3 mw-100 mb-2" + t-if="o.invoice_date_due and o.move_type == 'out_invoice' and o.state == 'posted'" + name="due_date" + > + <strong>Date d'échéance:</strong> + <p class="m-0" t-field="o.invoice_date_due" /> + </div> + </div> + <xpath expr="//table[@name='invoice_line_table']//thead" position="replace"> + <thead> + <tr> + <th name="th_description" class="text-left"><span + >Description</span></th> + <th name="th_quantity" class="text-right"><span + >Quantité</span></th> + <th + name="th_priceunit" + t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}" + ><span>P.U. HT</span></th> + <th + name="th_price_unit" + t-if="display_discount" + t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}" + > + <span>Rem.%</span> + </th> + <th + name="th_taxes" + t-attf-class="text-left {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}" + ><span>TVA %</span></th> + <th name="th_subtotal" class="text-right"> + <span + groups="account.group_show_line_subtotals_tax_excluded" + >Total HT</span> + <span + groups="account.group_show_line_subtotals_tax_included" + >Total</span> + </th> + </tr> + </thead> + </xpath> + <div class="page" position="inside"> + <hr /> + <p + >Conformément à l’article L 441-6 du code de commerce, des pénalités de retard sont dues à défaut de règlement le jour suivant la date de paiement qui figure sur la facture.<br + /> + Le taux d’intérêt de ces pénalités de retard est de 3 fois le taux d’intérêt légal. Indemnité pour frais de recouvrement en cas de retard de paiement : 40€ sauf frais supplémentaires. + </p> + </div> + </template> + </data> +</odoo> diff --git a/templates/report_templates.xml b/templates/report_templates.xml new file mode 100644 index 0000000000000000000000000000000000000000..4909097b852a8998f55b7860de3b31f113e1a4ba --- /dev/null +++ b/templates/report_templates.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + + <template id="external_layout_eco"> + <div + t-attf-class="o_company_#{company.id}_layout header" + t-att-style="report_header_style" + > + <div class="o_boxed_header"> + <div class="float-right"> + <p class="mt0 text-right" t-field="company.report_header" /> + </div> + <img + t-if="company.logo" + t-att-src="image_data_uri(company.logo)" + class="float-left" + alt="Logo" + /> + <div class="clearfix mb8" /> + </div> + </div> + + <div + t-attf-class="article o_report_layout_boxed o_company_#{company.id}_layout" + t-att-data-oe-model="o and o._name" + t-att-data-oe-id="o and o.id" + t-att-data-oe-lang="o and o.env.context.get('lang')" + > + <t t-raw="0" /> + </div> + + <div t-attf-class="footer o_boxed_footer o_company_#{company.id}_layout"> + <div class="text-center"> + <ul class="list-inline"> + <li t-if="company.company_type" class="list-inline-item"><span + class="o_force_ltr" + t-field="company.company_type" + /> -</li> + <li t-if="company.capital" class="list-inline-item"><span + class="o_force_ltr" + t-field="company.capital" + /> -</li> + <li t-if="company.siret" class="list-inline-item">SIRET: <span + class="o_force_ltr" + t-field="company.siret" + /></li><br /> + <li t-if="company.ape" class="list-inline-item">NAF-APE: <span + class="o_force_ltr" + t-field="company.ape" + /> -</li> + <li + t-if="company.company_registry" + class="list-inline-item" + >R.C.S/RM: <span + class="o_force_ltr" + t-field="company.company_registry" + /> -</li> + <li t-if="company.vat" class="list-inline-item">Num.TVA: <span + class="o_force_ltr" + t-field="company.vat" + /></li><br /> + <li t-if="company.phone" class="list-inline-item"><span + class="o_force_ltr" + t-field="company.phone" + /></li> + <li t-if="company.email" class="list-inline-item"><span + t-field="company.email" + /></li> + <li t-if="company.website" class="list-inline-item"><span + t-field="company.website" + /></li> + </ul> + <div t-if="report_type == 'pdf'"> + Page: <span class="page" /> / <span class="topage" /> + </div> + </div> + </div> + </template> + + </data> +</odoo> diff --git a/templates/report_views.xml b/templates/report_views.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0fc071e34c459fe1090e31aea7cc5b0cf874bc4 --- /dev/null +++ b/templates/report_views.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + <record id="sale.action_report_saleorder" model="ir.actions.report"> + <field + name="print_report_name" + >(object.name or '')+' - '+object.partner_id.display_name</field> + </record> + + <record id="account.account_invoices" model="ir.actions.report"> +<!-- <field name="print_report_name">(object.number or '')+' - '+object.partner_id.display_name+'.pdf'</field>--> + <field name="print_report_name">'TEST-%s' % (object.name)</field> + </record> + </data> +</odoo> diff --git a/views/account_move.xml b/views/account_move.xml new file mode 100644 index 0000000000000000000000000000000000000000..b8e1b275e8c3df28bfc0db5f6580ca37847cb213 --- /dev/null +++ b/views/account_move.xml @@ -0,0 +1,22 @@ +<odoo> + <data> + <record id="ecozimut_account_move_view" model="ir.ui.view"> + <field name="name">ecozimut.account.move.view</field> + <field name="model">account.move</field> + <field name="inherit_id" ref="account.view_move_form" /> + <field name="arch" type="xml"> + <xpath + expr="//field[@name='invoice_line_ids']/tree/field[@name='name']" + position="after" + > + <field + name="insurances" + widget="many2many_tags" + attrs="{'readonly': True}" + /> + </xpath> + </field> + </record> + + </data> +</odoo> diff --git a/views/assets.xml b/views/assets.xml new file mode 100644 index 0000000000000000000000000000000000000000..d5cc202ec9b47070b4e4ecb6f83328e5bd0a9570 --- /dev/null +++ b/views/assets.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + + <template id="report_assets_common" inherit_id="web.report_assets_common"> + <xpath expr="." position="inside"> + <link + rel="stylesheet" + type="text/scss" + href="/ecozimut/static/src/scss/layout_spe.scss" + /> + </xpath> + </template> + + </data> +</odoo> diff --git a/views/ecozimut_insurance.xml b/views/ecozimut_insurance.xml new file mode 100644 index 0000000000000000000000000000000000000000..71c09612882ae961d2099d14ff53838279da95a0 --- /dev/null +++ b/views/ecozimut_insurance.xml @@ -0,0 +1,34 @@ +<odoo> + <data> + <record model="ir.actions.act_window" id="action_window_assurances"> + <field name="name">Assurances</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">ecozimut.insurance</field> + <field name="view_mode">tree,form</field> + </record> + + + <record model="ir.ui.view" id="view_form_insurance"> + <field name="name">ecozimut.insurance.view</field> + <field name="model">ecozimut.insurance</field> + <field name="arch" type="xml"> + <form string="Assurances"> + <sheet> + <group> + <field name="name" string="Code" /> + <field name="rate" string="Taux" /> + <field name="description" string="Description" /> + </group> + </sheet> + </form> + </field> + </record> + + <menuitem + name="Assurances" + id="menu_assurances" + parent="sale.menu_sale_config" + action="action_window_assurances" + /> + </data> +</odoo> diff --git a/views/product_template.xml b/views/product_template.xml new file mode 100644 index 0000000000000000000000000000000000000000..8df6e0e42d18d685d809a5343b80a4ae1d758118 --- /dev/null +++ b/views/product_template.xml @@ -0,0 +1,23 @@ +<odoo> + <data> + <record id="project.menu_projects_config" model="ir.ui.menu"> + <field name="groups_id" eval="[(6,0,[ref('base.group_no_one')])]" /> + </record> + + <record id="ecozimut_product_view" model="ir.ui.view"> + <field name="name">ecozimut.product.view</field> + <field name="model">product.template</field> + <field name="inherit_id" ref="product.product_template_only_form_view" /> + <field name="arch" type="xml"> + + <xpath expr="//field[@name='barcode']" position="after"> + <field + name="insurances" + string="Assurances" + widget="many2many_tags" + /> + </xpath> + </field> + </record> + </data> +</odoo> diff --git a/views/res_company.xml b/views/res_company.xml new file mode 100644 index 0000000000000000000000000000000000000000..bfdb10e6f7654493610443045e3d0f5715da0a12 --- /dev/null +++ b/views/res_company.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + <record id="view_form_lefilament_company_inherited" model="ir.ui.view"> + <field name="name">Company Le Filament Form</field> + <field name="model">res.company</field> + <field name="inherit_id" ref="base.view_company_form" /> + <field name="arch" type="xml"> + <xpath expr="//field[@name='website']" position="after"> + <field name="company_type" /> + <field name="capital" /> + <field name="data_banque" /> + </xpath> + </field> + </record> + </data> +</odoo> diff --git a/views/sale_order.xml b/views/sale_order.xml new file mode 100644 index 0000000000000000000000000000000000000000..f545627020a192d73f0d9ba9a834b06209b63151 --- /dev/null +++ b/views/sale_order.xml @@ -0,0 +1,51 @@ +<odoo> + <data> + + <record id="view_sales_order_auto_done_setting" model="ir.ui.view"> + <field name="name">sale.order.form</field> + <field name="model">sale.order</field> + <field name="inherit_id" ref="sale.view_sales_order_auto_done_setting" /> + <field name="arch" type="xml"> + <xpath expr="//button[@name='action_done']" position="attributes"> + <attribute name="invisible">True</attribute> + </xpath> + </field> + </record> + + <record id="ecozimut_businessDeveloper_view" model="ir.ui.view"> + <field name="name">ecozimut.businessDeveloper.view</field> + <field name="model">sale.order</field> + <field name="inherit_id" ref="sale.view_order_form" /> + <field eval="101" name="priority" /> + <field name="arch" type="xml"> + <xpath expr="//field[@name='validity_date']" position="before"> + <field name="description" string="Intitulé" /> + </xpath> + <xpath + expr="//notebook//page//field[@name='order_line']//tree//field[@name='price_unit']" + position="after" + > + <field + name="insurances" + string="Assurances" + widget="many2many_tags" + optional="show" + /> + </xpath> + <field name="payment_term_id" position="after"> + <field name="estimated_date_invoice" /> + </field> + <xpath expr="//field[@name='opportunity_id']" position="attributes"> + <attribute name="invisible">True</attribute> + </xpath> + <group name="sale_reporting" position="after"> + <group> + <field name="opportunity_id" /> + </group> + </group> + + </field> + </record> + + </data> +</odoo>