Compare commits
27 Commits
18-mig-sal
...
18-commiss
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f133ab663 | ||
|
|
47197eb5f6 | ||
|
|
5ca18e6374 | ||
|
|
4d52d54460 | ||
|
|
0a260e0b54 | ||
|
|
46e11948fd | ||
|
|
a19ec0db45 | ||
|
|
6af8aac67e | ||
|
|
36b35f1b87 | ||
|
|
f1f808d977 | ||
|
|
11f3d393b5 | ||
|
|
ca5730c701 | ||
|
|
76a1bbd9f4 | ||
|
|
48d5a3b327 | ||
|
|
836a88dfeb | ||
|
|
8182b839d4 | ||
|
|
6cd86f8820 | ||
|
|
76e93f0379 | ||
|
|
d9f65b96fc | ||
|
|
a729762b4a | ||
|
|
18551f9b0d | ||
|
|
05b2d14cd2 | ||
|
|
1d57615b97 | ||
|
|
545cd797e3 | ||
|
|
70b66681d6 | ||
|
|
2e93aaa55b | ||
|
|
5b6a166ed6 |
@@ -7,7 +7,7 @@ Account Usability
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:eb36005cad5a80be7fad1bfb83a2214419a8cae472545cc920545e6168d10231
|
||||
!! source digest: sha256:dbf367e7cf8330c803622d0c171cd10e128344d318466d6e37ad7b0fc812e152
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
'views/account_journal.xml',
|
||||
'views/account_move.xml',
|
||||
'views/account_move_line.xml',
|
||||
'views/account_payment.xml',
|
||||
'views/account_analytic_line.xml',
|
||||
'views/account_menu.xml',
|
||||
'views/account_tax.xml',
|
||||
|
||||
@@ -367,7 +367,7 @@ ul.auto-toc {
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:eb36005cad5a80be7fad1bfb83a2214419a8cae472545cc920545e6168d10231
|
||||
!! source digest: sha256:dbf367e7cf8330c803622d0c171cd10e128344d318466d6e37ad7b0fc812e152
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/akretion/odoo-usability/tree/18.0/account_usability_akretion"><img alt="akretion/odoo-usability" src="https://img.shields.io/badge/github-akretion%2Fodoo--usability-lightgray.png?logo=github" /></a></p>
|
||||
<p>This modules adds the following functions:</p>
|
||||
|
||||
20
account_usability_akretion/views/account_payment.xml
Normal file
20
account_usability_akretion/views/account_payment.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2025 Akretion France (https://www.akretion.com/)
|
||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
|
||||
<record id="view_account_payment_form" model="ir.ui.view">
|
||||
<field name="model">account.payment</field>
|
||||
<field name="inherit_id" ref="account.view_account_payment_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="group2" position="inside">
|
||||
<field name="move_id" readonly="1"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -2,10 +2,13 @@
|
||||
Base Company Extension
|
||||
======================
|
||||
|
||||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
..
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:075f72950033a5c6f57ecfa5c2d101bd874dd2ae29adcecdc4905b378e89a3a2
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
||||
:target: https://odoo-community.org/page/development-status
|
||||
@@ -14,25 +17,29 @@ Base Company Extension
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
.. |badge3| image:: https://img.shields.io/badge/github-akretion%2Fodoo--usability-lightgray.png?logo=github
|
||||
:target: https://github.com/akretion/odoo-usability/tree/12.0/base_company_extension
|
||||
:target: https://github.com/akretion/odoo-usability/tree/18.0/base_company_extension
|
||||
:alt: akretion/odoo-usability
|
||||
|
||||
|badge1| |badge2| |badge3|
|
||||
|
||||
This module adds the following fields on the company:
|
||||
|badge1| |badge2| |badge3|
|
||||
|
||||
This module adds the following fields to the ResCompany model:
|
||||
* Capital Amount
|
||||
* Legal Type
|
||||
|
||||
This is useful to display the legal name of the company in reports.
|
||||
This is useful to display the legal name of the company in reports
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
||||
Bugs are tracked on `GitHub Issues <https://github.com/akretion/odoo-usability/issues>`_.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us smashing it by providing a detailed and welcomed
|
||||
`feedback <https://github.com/akretion/odoo-usability/issues/new?body=module:%20base_company_extension%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||||
`feedback <https://github.com/akretion/odoo-usability/issues/new?body=module:%20base_company_extension%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
Do not contact contributors directly about support or help with technical issues.
|
||||
|
||||
@@ -52,6 +59,6 @@ Contributors
|
||||
Maintainers
|
||||
~~~~~~~~~~~
|
||||
|
||||
This module is part of the `akretion/odoo-usability <https://github.com/akretion/odoo-usability/tree/12.0/base_company_extension>`_ project on GitHub.
|
||||
This module is part of the `akretion/odoo-usability <https://github.com/akretion/odoo-usability/tree/18.0/base_company_extension>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute.
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
{
|
||||
'name': 'Base Company Extension',
|
||||
'version': '16.0.1.0.0',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Partner',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Adds capital and title on company',
|
||||
'author': 'Akretion',
|
||||
'website': 'https://github.com/akretion/odoo-usability',
|
||||
# I depend on base_usability only for _report_company_legal_name()
|
||||
'depends': ['base_usability'],
|
||||
'depends': ['base_usability_akretion'],
|
||||
'data': ['views/res_company.xml'],
|
||||
'installable': False,
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
3
base_company_extension/pyproject.toml
Normal file
3
base_company_extension/pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[build-system]
|
||||
requires = ["whool"]
|
||||
build-backend = "whool.buildapi"
|
||||
BIN
base_company_extension/static/description/icon.png
Normal file
BIN
base_company_extension/static/description/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.2 KiB |
@@ -1,20 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
|
||||
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
|
||||
<title>Base Company Extension</title>
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger (goodger@python.org)
|
||||
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
|
||||
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
Despite the name, some widely supported CSS2 features are used.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
@@ -275,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em }
|
||||
|
||||
pre.code .ln { color: grey; } /* line numbers */
|
||||
pre.code .ln { color: gray; } /* line numbers */
|
||||
pre.code, code { background-color: #eeeeee }
|
||||
pre.code .comment, code .comment { color: #5C6576 }
|
||||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||||
@@ -301,7 +301,7 @@ span.option {
|
||||
span.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
span.problematic, pre.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
@@ -366,8 +366,10 @@ ul.auto-toc {
|
||||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:075f72950033a5c6f57ecfa5c2d101bd874dd2ae29adcecdc4905b378e89a3a2
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/akretion/odoo-usability/tree/12.0/base_company_extension"><img alt="akretion/odoo-usability" src="https://img.shields.io/badge/github-akretion%2Fodoo--usability-lightgray.png?logo=github" /></a></p>
|
||||
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/akretion/odoo-usability/tree/18.0/base_company_extension"><img alt="akretion/odoo-usability" src="https://img.shields.io/badge/github-akretion%2Fodoo--usability-lightgray.png?logo=github" /></a></p>
|
||||
<p>This module adds the following fields to the ResCompany model:
|
||||
* Capital Amount
|
||||
* Legal Type</p>
|
||||
@@ -375,40 +377,40 @@ ul.auto-toc {
|
||||
<p><strong>Table of contents</strong></p>
|
||||
<div class="contents local topic" id="contents">
|
||||
<ul class="simple">
|
||||
<li><a class="reference internal" href="#bug-tracker" id="id1">Bug Tracker</a></li>
|
||||
<li><a class="reference internal" href="#credits" id="id2">Credits</a><ul>
|
||||
<li><a class="reference internal" href="#authors" id="id3">Authors</a></li>
|
||||
<li><a class="reference internal" href="#contributors" id="id4">Contributors</a></li>
|
||||
<li><a class="reference internal" href="#maintainers" id="id5">Maintainers</a></li>
|
||||
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-1">Bug Tracker</a></li>
|
||||
<li><a class="reference internal" href="#credits" id="toc-entry-2">Credits</a><ul>
|
||||
<li><a class="reference internal" href="#authors" id="toc-entry-3">Authors</a></li>
|
||||
<li><a class="reference internal" href="#contributors" id="toc-entry-4">Contributors</a></li>
|
||||
<li><a class="reference internal" href="#maintainers" id="toc-entry-5">Maintainers</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="bug-tracker">
|
||||
<h1><a class="toc-backref" href="#id1">Bug Tracker</a></h1>
|
||||
<h1><a class="toc-backref" href="#toc-entry-1">Bug Tracker</a></h1>
|
||||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/akretion/odoo-usability/issues">GitHub Issues</a>.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us smashing it by providing a detailed and welcomed
|
||||
<a class="reference external" href="https://github.com/akretion/odoo-usability/issues/new?body=module:%20base_company_extension%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||||
<a class="reference external" href="https://github.com/akretion/odoo-usability/issues/new?body=module:%20base_company_extension%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||||
</div>
|
||||
<div class="section" id="credits">
|
||||
<h1><a class="toc-backref" href="#id2">Credits</a></h1>
|
||||
<h1><a class="toc-backref" href="#toc-entry-2">Credits</a></h1>
|
||||
<div class="section" id="authors">
|
||||
<h2><a class="toc-backref" href="#id3">Authors</a></h2>
|
||||
<h2><a class="toc-backref" href="#toc-entry-3">Authors</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Akretion</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="contributors">
|
||||
<h2><a class="toc-backref" href="#id4">Contributors</a></h2>
|
||||
<h2><a class="toc-backref" href="#toc-entry-4">Contributors</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Alexis de Lattre <<a class="reference external" href="mailto:alexis.delattre@akretion.com">alexis.delattre@akretion.com</a>></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="maintainers">
|
||||
<h2><a class="toc-backref" href="#id5">Maintainers</a></h2>
|
||||
<p>This module is part of the <a class="reference external" href="https://github.com/akretion/odoo-usability/tree/12.0/base_company_extension">akretion/odoo-usability</a> project on GitHub.</p>
|
||||
<h2><a class="toc-backref" href="#toc-entry-5">Maintainers</a></h2>
|
||||
<p>This module is part of the <a class="reference external" href="https://github.com/akretion/odoo-usability/tree/18.0/base_company_extension">akretion/odoo-usability</a> project on GitHub.</p>
|
||||
<p>You are welcome to contribute.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
0
base_profile_akretion/__init__.py
Normal file
0
base_profile_akretion/__init__.py
Normal file
43
base_profile_akretion/__manifest__.py
Normal file
43
base_profile_akretion/__manifest__.py
Normal file
@@ -0,0 +1,43 @@
|
||||
# Copyright 2025 Akretion France (https://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
{
|
||||
'name': 'Base Profile by Akretion',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Tools',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Base module set selected by Alexis de Lattre',
|
||||
'author': 'Akretion',
|
||||
'website': 'https://github.com/akretion/odoo-usability',
|
||||
'depends': [
|
||||
# PARTNER
|
||||
'partner_firstname', # OCA/partner-contact
|
||||
'partner_email_duplicate_warn', # OCA/partner-contact
|
||||
'partner_mobile_duplicate_warn', # OCA/partner-contact
|
||||
'contacts', # official addons
|
||||
# AUTH
|
||||
'auth_admin_passkey', # OCA/server-auth
|
||||
# REMOVE or FIX BAD NATIVE STUFF
|
||||
'disable_odoo_online', # OCA/server-brand
|
||||
'remove_odoo_enterprise', # OCA/server-brand
|
||||
'mail_debrand', # OCA/mail
|
||||
'partner_disable_gravatar', # OCA/partner-contact
|
||||
'base_technical_features', # OCA/server-ux
|
||||
### WEB
|
||||
'web_responsive', # OCA/web
|
||||
'web_environment_ribbon', # OCA/web
|
||||
'web_no_bubble', # OCA/web
|
||||
'web_dialog_size', # OCA/web
|
||||
'web_chatter_position', # OCA/web
|
||||
### MISC
|
||||
'base_usability_akretion', # akretion/odoo-usability
|
||||
'mail_usability_akretion', # akretion/odoo-usability
|
||||
'eradicate_quick_create', # akretion/odoo-usability
|
||||
'base_company_extension', # akretion/odoo-usability
|
||||
# password_security will be enabled when the move to ir.config_parameter
|
||||
# will be backported
|
||||
#'password_security', # OCA/server-auth
|
||||
],
|
||||
'installable': True,
|
||||
}
|
||||
3
base_profile_akretion/pyproject.toml
Normal file
3
base_profile_akretion/pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[build-system]
|
||||
requires = ["whool"]
|
||||
build-backend = "whool.buildapi"
|
||||
BIN
base_profile_akretion/static/description/icon.png
Normal file
BIN
base_profile_akretion/static/description/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.2 KiB |
@@ -1,24 +0,0 @@
|
||||
diff --git a/addons/web/static/src/search/filter_menu/custom_filter_item.js b/addons/web/static/src/search/filter_menu/custom_filter_item.js
|
||||
index f67f5fb40af..22525b7cbfd 100644
|
||||
--- a/addons/web/static/src/search/filter_menu/custom_filter_item.js
|
||||
+++ b/addons/web/static/src/search/filter_menu/custom_filter_item.js
|
||||
@@ -46,6 +46,8 @@ const FIELD_OPERATORS = {
|
||||
char: [
|
||||
{ symbol: "ilike", description: _lt("contains") },
|
||||
{ symbol: "not ilike", description: _lt("doesn't contain") },
|
||||
+ { symbol: "startswith", description: _lt("starts with") },
|
||||
+ { symbol: "endswith", description: _lt("ends with") },
|
||||
{ symbol: "=", description: _lt("is equal to") },
|
||||
{ symbol: "!=", description: _lt("is not equal to") },
|
||||
{ symbol: "!=", description: _lt("is set"), value: false },
|
||||
@@ -257,6 +259,10 @@ export class CustomFilterItem extends Component {
|
||||
[field.name, ">=", domainValue[0]],
|
||||
[field.name, "<=", domainValue[1]]
|
||||
);
|
||||
+ } else if (operator.symbol === "startswith") {
|
||||
+ domainArray.push([field.name, '=ilike', domainValue[0] + '%']);
|
||||
+ } else if (operator.symbol === "endswith") {
|
||||
+ domainArray.push([field.name, '=ilike', '%' + domainValue[0]]);
|
||||
} else {
|
||||
domainArray.push([field.name, operator.symbol, domainValue[0]]);
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{
|
||||
'name': 'Commission Simple',
|
||||
'version': '16.0.1.0.0',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Sales',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Compute commissions for salesman',
|
||||
@@ -44,5 +44,5 @@ This module has been written by Alexis de Lattre from Akretion
|
||||
'views/res_config_settings.xml',
|
||||
'wizards/commission_compute_view.xml',
|
||||
],
|
||||
'installable': False,
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<field name="inherit_id" ref="account.view_move_line_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page name="commission" string="Commission" attrs="{'invisible': [('display_type', '!=', 'product')]}">
|
||||
<page name="commission" string="Commission" invisible="display_type != 'product'">
|
||||
<group name="commission_grp">
|
||||
<field name="commission_base"/>
|
||||
<label for="commission_rate"/>
|
||||
|
||||
@@ -1,206 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2019 Akretion France (http://www.akretion.com)
|
||||
@author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
|
||||
<menuitem id="commission_root" name="Commissions" parent="account.menu_finance" sequence="11"/>
|
||||
<menuitem id="commission_config_root" name="Commissions" parent="account.menu_finance_configuration" sequence="110"/>
|
||||
|
||||
<!-- PROFILE -->
|
||||
<record id="commission_profile_form" model="ir.ui.view">
|
||||
<field name="name">commission.profile.form</field>
|
||||
<field name="model">commission.profile</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<group name="main">
|
||||
<field name="name"/>
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="trigger_type"/>
|
||||
</group>
|
||||
<group name="lines" string="Rules">
|
||||
<field name="line_ids" nolabel="1" colspan="2"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_profile_tree" model="ir.ui.view">
|
||||
<field name="name">commission.profile.tree</field>
|
||||
<field name="model">commission.profile</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name" decoration-bf="1"/>
|
||||
<field name="trigger_type" optional="show"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_profile_action" model="ir.actions.act_window">
|
||||
<field name="name">Commission Profiles</field>
|
||||
<field name="res_model">commission.profile</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="commission_profile_menu" action="commission_profile_action" parent="commission_config_root" sequence="18"/>
|
||||
|
||||
|
||||
<!-- RULE -->
|
||||
<record id="commission_rule_form" model="ir.ui.view">
|
||||
<field name="name">commission.rule.form</field>
|
||||
<field name="model">commission.rule</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group name="main">
|
||||
<field name="profile_id" invisible="not context.get('commission_rule_main_view')"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="applied_on" widget="radio"/>
|
||||
</group>
|
||||
<group name="match" string="Match">
|
||||
<field name="partner_ids" attrs="{'invisible': [('applied_on', 'not in', ('0_customer_product', '1_customer_product_category'))], 'required': [('applied_on', 'in', ('0_customer_product', '1_customer_product_category'))]}"/>
|
||||
<field name="product_categ_ids" attrs="{'invisible': [('applied_on', 'not in', ('1_customer_product_category', '3_product_category'))], 'required': [('applied_on', 'in', ('1_customer_product_category', '3_product_category'))]}"/>
|
||||
<field name="product_ids" attrs="{'invisible': [('applied_on', 'not in', ('0_customer_product', '2_product'))], 'required': [('applied_on', 'in', ('0_customer_product', '2_product'))]}"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
</group>
|
||||
<group name="compute" string="Compute">
|
||||
<label for="rate"/>
|
||||
<div name="rate">
|
||||
<field name="rate" class="oe_inline"/> %
|
||||
</div>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_rule_tree" model="ir.ui.view">
|
||||
<field name="name">commission.rule.tree</field>
|
||||
<field name="model">commission.rule</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="profile_id" invisible="not context.get('commission_rule_main_view')"/>
|
||||
<field name="applied_on"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
<field name="rate" string="Rate (%)"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_rule_search" model="ir.ui.view">
|
||||
<field name="name">commission.rule.search</field>
|
||||
<field name="model">commission.rule</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
|
||||
<group name="groupby">
|
||||
<filter name="profile_groupby" string="Profile" context="{'group_by': 'profile_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="commission_rule_action" model="ir.actions.act_window">
|
||||
<field name="name">Commission Rules</field>
|
||||
<field name="res_model">commission.rule</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'commission_rule_main_view': True}</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem id="commission_rule_menu" action="commission_rule_action" parent="commission_config_root" sequence="20"/>
|
||||
|
||||
<!-- RESULT -->
|
||||
<record id="commission_result_form" model="ir.ui.view">
|
||||
<field name="name">commission.result.form</field>
|
||||
<field name="model">commission.result</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group name="main">
|
||||
<group name="main-left">
|
||||
<field name="partner_id"/>
|
||||
<field name="profile_id" groups="account.group_account_manager"/>
|
||||
<field name="company_currency_id" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="amount_total"/>
|
||||
</group>
|
||||
<group name="main-right">
|
||||
<field name="date_range_id"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
</group>
|
||||
</group>
|
||||
<group name="lines" string="Commission Lines">
|
||||
<field nolabel="1" name="line_ids" colspan="2">
|
||||
<tree>
|
||||
<field name="move_id"/>
|
||||
<field name="move_line_id"/>
|
||||
<field name="base"/>
|
||||
<field name="rate" string="Rate (%)"/>
|
||||
<field name="amount" sum="1"/>
|
||||
<field name="rule_id"/>
|
||||
<field name="company_currency_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_result_tree" model="ir.ui.view">
|
||||
<field name="name">commission.result.tree</field>
|
||||
<field name="model">commission.result</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="date_range_id" optional="show"/>
|
||||
<field name="date_start" optional="hide"/>
|
||||
<field name="date_end" optional="hide"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="profile_id" groups="account.group_account_manager"/>
|
||||
<field name="company_currency_id" invisible="1"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="amount_total" sum="1" optional="show"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_result_search" model="ir.ui.view">
|
||||
<field name="name">commission.result.search</field>
|
||||
<field name="model">commission.result</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="partner_id"/>
|
||||
<field name="date_range_id"/>
|
||||
<group name="groupby">
|
||||
<filter name="partner_groupby" string="Salesman" context="{'group_by': 'partner_id'}"/>
|
||||
<filter name="date_range_groupby" string="Period" context="{'group_by': 'date_range_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_result_action" model="ir.actions.act_window">
|
||||
<field name="name">Commissions</field>
|
||||
<field name="res_model">commission.result</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="commission_result_menu" action="commission_result_action" parent="commission_root" sequence="10"/>
|
||||
|
||||
|
||||
</odoo>
|
||||
@@ -16,7 +16,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" invisible="active"/>
|
||||
<group name="main">
|
||||
<group name="main-left">
|
||||
<field name="name"/>
|
||||
@@ -31,12 +31,12 @@
|
||||
<notebook>
|
||||
<page name="assignments" string="Assignments">
|
||||
<field name="assign_ids">
|
||||
<tree editable="bottom">
|
||||
<list editable="bottom">
|
||||
<field name="assign_type"/>
|
||||
<field name="user_id" attrs="{'required': [('assign_type', '=', 'user')], 'readonly': [('assign_type', '!=', 'user')]}"/>
|
||||
<field name="user_id" required="assign_type == 'user'" readonly="assign_type != 'user'"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page name="rules" string="Rules">
|
||||
@@ -48,23 +48,24 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_profile_tree" model="ir.ui.view">
|
||||
<field name="name">commission.profile.tree</field>
|
||||
<record id="commission_profile_list" model="ir.ui.view">
|
||||
<field name="name">commission.profile.list</field>
|
||||
<field name="model">commission.profile</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<list>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name" decoration-bf="1"/>
|
||||
<field name="trigger_type" optional="show"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_profile_action" model="ir.actions.act_window">
|
||||
<field name="name">Commission Profiles</field>
|
||||
<field name="path">commission-profile</field>
|
||||
<field name="res_model">commission.profile</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="commission_profile_menu" action="commission_profile_action" parent="commission_config_root" sequence="18"/>
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<button name="draft2done" type="object" states="draft" string="Confirm" class="btn-primary"/>
|
||||
<button name="backtodraft" type="object" states="done" string="Back to Draft" confirm="Are you sure you want to go back to draft?"/>
|
||||
<button name="draft2done" type="object" invisible="state != 'draft'" string="Confirm" class="btn-primary"/>
|
||||
<button name="backtodraft" type="object" invisible="state != 'done'" string="Back to Draft" confirm="Are you sure you want to go back to draft?"/>
|
||||
<field name="state" widget="statusbar"/>
|
||||
</header>
|
||||
<group name="main">
|
||||
@@ -35,7 +35,7 @@
|
||||
</group>
|
||||
<group name="lines" string="Commission Lines">
|
||||
<field nolabel="1" name="line_ids" colspan="2">
|
||||
<tree>
|
||||
<list>
|
||||
<field name="move_id"/>
|
||||
<field name="date" optional="hide"/>
|
||||
<field name="partner_id"/>
|
||||
@@ -49,23 +49,19 @@
|
||||
<field name="commission_rule_id" optional="hide"/>
|
||||
<field name="company_currency_id" invisible="1"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</group>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="activity_ids" widget="mail_activity"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
<chatter />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_result_tree" model="ir.ui.view">
|
||||
<field name="name">commission.result.tree</field>
|
||||
<record id="commission_result_list" model="ir.ui.view">
|
||||
<field name="name">commission.result.list</field>
|
||||
<field name="model">commission.result</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<list>
|
||||
<field name="date_range_id" optional="show"/>
|
||||
<field name="date_start" optional="hide"/>
|
||||
<field name="date_end" optional="hide"/>
|
||||
@@ -76,7 +72,7 @@
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="amount_total" sum="1" optional="show"/>
|
||||
<field name="state" decoration-info="state == 'draft'" decoration-success="state == 'done'" widget="badge"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -103,8 +99,9 @@
|
||||
|
||||
<record id="commission_result_action" model="ir.actions.act_window">
|
||||
<field name="name">Commissions</field>
|
||||
<field name="path">commission-result</field>
|
||||
<field name="res_model">commission.result</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="commission_result_menu" action="commission_result_action" parent="commission_root" sequence="10"/>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<field name="company_id" invisible="1"/>
|
||||
</group>
|
||||
<group name="match" string="Match">
|
||||
<field name="partner_ids" attrs="{'invisible': [('applied_on', 'not in', ('0_customer_product', '1_customer_product_category'))], 'required': [('applied_on', 'in', ('0_customer_product', '1_customer_product_category'))]}"/>
|
||||
<field name="product_categ_ids" attrs="{'invisible': [('applied_on', 'not in', ('1_customer_product_category', '3_product_category'))], 'required': [('applied_on', 'in', ('1_customer_product_category', '3_product_category'))]}"/>
|
||||
<field name="product_ids" attrs="{'invisible': [('applied_on', 'not in', ('0_customer_product', '2_product'))], 'required': [('applied_on', 'in', ('0_customer_product', '2_product'))]}"/>
|
||||
<field name="partner_ids" invisible="applied_on not in ('0_customer_product', '1_customer_product_category')" required="applied_on in ('0_customer_product', '1_customer_product_category')"/>
|
||||
<field name="product_categ_ids" invisible="applied_on not in ('1_customer_product_category', '3_product_category')" required="applied_on in ('1_customer_product_category', '3_product_category')"/>
|
||||
<field name="product_ids" invisible="applied_on not in ('0_customer_product', '2_product')" required="applied_on in ('0_customer_product', '2_product')"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
</group>
|
||||
@@ -37,18 +37,18 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="commission_rule_tree" model="ir.ui.view">
|
||||
<field name="name">commission.rule.tree</field>
|
||||
<record id="commission_rule_list" model="ir.ui.view">
|
||||
<field name="name">commission.rule.list</field>
|
||||
<field name="model">commission.rule</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<list>
|
||||
<field name="profile_id" invisible="not context.get('commission_rule_main_view')"/>
|
||||
<field name="applied_on"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
<field name="rate" string="Rate (%)"/>
|
||||
<field name="base"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -68,8 +68,9 @@
|
||||
|
||||
<record id="commission_rule_action" model="ir.actions.act_window">
|
||||
<field name="name">Commission Rules</field>
|
||||
<field name="path">commission-rule</field>
|
||||
<field name="res_model">commission.rule</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="context">{'commission_rule_main_view': True}</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -13,22 +13,12 @@
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="account.res_config_settings_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@id='storno']" position="after">
|
||||
<h2>Commissions</h2>
|
||||
<div class="row mt16 o_settings_container" id="commission_simple">
|
||||
<div class="col-12 col-lg-12 o_setting_box" id="commission_simple-settings">
|
||||
<div class="o_setting_left_pane" />
|
||||
<div class="o_setting_right_pane">
|
||||
<div class="row" id="commission_date_range_type_id">
|
||||
<label
|
||||
for="commission_date_range_type_id"
|
||||
class="col-md-5"
|
||||
/>
|
||||
<field name="commission_date_range_type_id" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<xpath expr="//block[@id='storno']" position="after">
|
||||
<block title="Commissions" id="commission_simple">
|
||||
<setting id="commission_date_range_type" title="Date range type">
|
||||
<field name="commission_date_range_type_id"/>
|
||||
</setting>
|
||||
</block>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{
|
||||
'name': 'Commission Simple Agent',
|
||||
'version': '16.0.1.0.0',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Sales',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Glue module between commission_simple and sale_agent',
|
||||
@@ -18,5 +18,5 @@
|
||||
'views/commission_profile.xml',
|
||||
'views/commission_result.xml',
|
||||
],
|
||||
'installable': False,
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
<field name="model">commission.profile</field>
|
||||
<field name="inherit_id" ref="commission_simple.commission_profile_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='assign_ids']/tree/field[@name='user_id']" position="after">
|
||||
<field name="agent_id" attrs="{'required': [('assign_type', '=', 'agent')], 'readonly': [('assign_type', '!=', 'agent')]}"/>
|
||||
<xpath expr="//field[@name='assign_ids']/list/field[@name='user_id']" position="after">
|
||||
<field name="agent_id" required="assign_type == 'agent'" readonly="assign_type != 'agent'" context="{'default_agent': True}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
|
||||
<odoo>
|
||||
|
||||
<record id="commission_result_tree" model="ir.ui.view">
|
||||
<record id="commission_result_list" model="ir.ui.view">
|
||||
<field name="model">commission.result</field>
|
||||
<field name="inherit_id" ref="commission_simple.commission_result_tree"/>
|
||||
<field name="inherit_id" ref="commission_simple.commission_result_list"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="assign_type" position="attributes">
|
||||
<attribute name="decoration-danger">assign_type == 'agent'</attribute>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{
|
||||
'name': 'Commission Simple Agent Purchase',
|
||||
'version': '16.0.1.0.0',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Sales',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Glue module between commission_simple_agent and purchase',
|
||||
@@ -18,5 +18,5 @@
|
||||
'views/commission_result.xml',
|
||||
'wizards/res_config_settings.xml',
|
||||
],
|
||||
'installable': False,
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<field name="inherit_id" ref="commission_simple.commission_result_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="main-right" position="inside">
|
||||
<field name="purchase_id" attrs="{'invisible': [('assign_type', '!=', 'agent')]}"/>
|
||||
<field name="purchase_id" invisible="assign_type != 'agent'"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -13,11 +13,10 @@
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="commission_simple.res_config_settings_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@id='commission_simple-settings']/div[hasclass('o_setting_right_pane')]" position="inside">
|
||||
<div class="row" id="commission_product_id">
|
||||
<label for="commission_product_id" class="col-md-5" />
|
||||
<field name="commission_product_id" context="{'default_detailed_type': 'service', 'default_purchase_ok': True, 'default_sale_ok': False, 'default_available_in_pos': False, 'default_purchase_method': 'purchase'}"/>
|
||||
</div>
|
||||
<xpath expr="//block[@id='commission_simple']" position="inside">
|
||||
<setting id="commission_product" title="Commission Product">
|
||||
<field name="commission_product_id" context="{'default_type': 'service', 'default_purchase_ok': True, 'default_sale_ok': False, 'default_available_in_pos': False, 'default_purchase_method': 'purchase'}"/>
|
||||
</setting>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
{
|
||||
'name': 'Eradicate Quick Create',
|
||||
'version': '16.0.1.0.0',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Tools',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Disable quick create on all objects',
|
||||
@@ -18,8 +18,8 @@ This module uses the module *web_m2x_options* from the OCA *web* project (in v10
|
||||
This module has been written by Alexis de Lattre from Akretion <alexis.delattre@akretion.com>.
|
||||
""",
|
||||
'author': 'Akretion',
|
||||
'website': 'http://www.akretion.com',
|
||||
'website': 'https://github.com/akretion/odoo-usability',
|
||||
'depends': ['web_m2x_options'],
|
||||
'post_init_hook': 'web_m2x_options_create',
|
||||
'installable': False,
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
@@ -2,12 +2,8 @@
|
||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import SUPERUSER_ID
|
||||
from odoo.api import Environment
|
||||
|
||||
|
||||
def web_m2x_options_create(cr, registry):
|
||||
env = Environment(cr, SUPERUSER_ID, {})
|
||||
def web_m2x_options_create(env):
|
||||
config_parameter = env['ir.config_parameter'].search(
|
||||
[('key', '=', 'web_m2x_options.create')])
|
||||
if config_parameter and config_parameter.value != 'False':
|
||||
|
||||
3
eradicate_quick_create/pyproject.toml
Normal file
3
eradicate_quick_create/pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[build-system]
|
||||
requires = ["whool"]
|
||||
build-backend = "whool.buildapi"
|
||||
0
l10n_fr_account_profile_akretion/__init__.py
Normal file
0
l10n_fr_account_profile_akretion/__init__.py
Normal file
97
l10n_fr_account_profile_akretion/__manifest__.py
Normal file
97
l10n_fr_account_profile_akretion/__manifest__.py
Normal file
@@ -0,0 +1,97 @@
|
||||
# Copyright 2025 Akretion France (https://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
{
|
||||
'name': 'Account Profile for France',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Accounting & Finance',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Module set for accounting for a French company',
|
||||
'author': 'Akretion',
|
||||
'website': 'https://github.com/akretion/odoo-usability',
|
||||
'depends': [
|
||||
### MISC
|
||||
'date_range_account', # OCA/server-ux
|
||||
'account_usability_akretion', # akretion/odoo-usability
|
||||
'account_usability', # OCA/account-financial-tools
|
||||
'l10n_fr_siret_lookup', # OCA/l10n-france
|
||||
'account_payment_base_oca', # OCA/bank-payment-alternative
|
||||
'account_move_name_sequence', # OCA/account-financial-tools
|
||||
'account_lock_date_update', # OCA/account-financial-tools
|
||||
'account_move_csv_import', # akretion/account-move-import
|
||||
'account_move_line_reconcile_manual', # OCA/account-reconcile
|
||||
'account_dashboard_banner', # OCA/account-financial-tools
|
||||
### INVOICING
|
||||
'account_invoice_fiscal_position_update', # OCA/account-invoicing
|
||||
'account_fiscal_position_vat_check', # OCA/account-financial-tools
|
||||
'account_invoice_facturx', # OCA/edi
|
||||
### FINANCIAL REPORTS
|
||||
'account_financial_report', # OCA/account-financial-reporting
|
||||
'account_balance_ebp_csv_export', # OCA/l10n-france
|
||||
# 'l10n_fr_mis_reports', # OCA/l10n-france
|
||||
# 'l10n_fr_fec_oca', # OCA/l10n-france
|
||||
### BANK STATEMENTS
|
||||
'account_statement_completion_label_simple', # akretion/bank-statement-reconcile-simple
|
||||
#'account_statement_completion_label_simple_sale', # akretion/bank-statement-reconcile-simple
|
||||
'account_statement_import_file_reconcile_oca', # OCA/bank-statement-import
|
||||
'account_statement_import_ofx', # OCA/bank-statement-import
|
||||
'account_statement_import_fr_cfonb', # OCA/l10n-france
|
||||
'account_reconcile_oca', # OCA/account-reconcile
|
||||
### CURRENCY RATES
|
||||
'currency_rate_update', # OCA/currency
|
||||
'currency_old_rate_notify', # OCA/currency
|
||||
### INVOICE IMPORT
|
||||
#'account_invoice_import_simple_pdf', # OCA/edi
|
||||
#'account_invoice_import_facturx', # OCA/edi
|
||||
#'l10n_fr_account_invoice_import_facturx', # OCA/l10n-france
|
||||
### OVERDUE
|
||||
'account_invoice_overdue_warn', # OCA/credit-control
|
||||
#'account_invoice_overdue_warn_sale', # OCA/credit-control
|
||||
'account_invoice_overdue_reminder', # OCA/credit-control
|
||||
### FRENCH DECLARATIONS
|
||||
'l10n_fr_account_vat_return_teledec', # OCA/l10n-france
|
||||
'l10n_fr_account_vat_return_einvoice_generate', # OCA/l10n-france
|
||||
# Warning: intrastat_product depends on sale_stock and purchase_stock !
|
||||
'l10n_fr_intrastat_product', # OCA/l10n-france
|
||||
'product_net_weight', # OCA/product-attribute
|
||||
'l10n_fr_intrastat_service', # OCA/l10n-france
|
||||
'l10n_fr_das2', # OCA/l10n-france
|
||||
# ANALYTIC
|
||||
#'account_analytic_distribution_manual', # OCA/account-analytic
|
||||
### INVOICE IMPORT
|
||||
#'account_invoice_download_ovh', # OCA/edi
|
||||
#'account_invoice_download_scaleway', # OCA/edi
|
||||
### PAYMENT ORDERS and DEBIT ORDERS
|
||||
#'partner_bank_acc_type_constraint', # OCA/partner-contact
|
||||
#'account_payment_base_oca_sale', # OCA/bank-payment-alternative
|
||||
#'account_payment_sepa_credit_transfer', # OCA/bank-payment-alternative
|
||||
#'account_payment_sepa_direct_debit', # OCA/bank-payment-alternative
|
||||
#'account_payment_fr_lcr', # OCA/l10n-france
|
||||
#'l10n_fr_account_payment_intl_credit_transfer', # OCA/l10n-france
|
||||
### PY3O
|
||||
#'account_invoice_facturx_py3o', # OCA/edi
|
||||
### CHORUS
|
||||
#'l10n_fr_chorus_account', # OCA/l10n-france
|
||||
#'l10n_fr_chorus_sale', # OCA/l10n-france
|
||||
#'l10n_fr_chorus_facturx', # OCA/l10n-france
|
||||
### CUTOFF
|
||||
#'account_cutoff_start_end_dates', # OCA/account-closing
|
||||
#'account_cutoff_picking', # OCA/account-closing
|
||||
#'account_cutoff_accrual_subscription', # OCA/account-closing
|
||||
### MISC
|
||||
#'account_check_deposit', # OCA/account-financial-tools
|
||||
#'account_cash_deposit', # OCA/account-financial-tools
|
||||
#'account_invoice_pricelist', # OCA/account-invoicing
|
||||
#'account_asset_management', # OCA/account-financial-tools
|
||||
### MOONCARD
|
||||
#'mooncard_payment_card', # akretion/odoo-mooncard-connector
|
||||
#'l10n_fr_base_newgen_payment_card', # akretion/odoo-mooncard-connector
|
||||
#'base_newgen_payment_card_start_end_dates', # akretion/odoo-mooncard-connector
|
||||
],
|
||||
'excludes': [
|
||||
#'l10n_fr_fec',
|
||||
'account_edi_ubl_cii',
|
||||
],
|
||||
'installable': True,
|
||||
}
|
||||
3
l10n_fr_account_profile_akretion/pyproject.toml
Normal file
3
l10n_fr_account_profile_akretion/pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[build-system]
|
||||
requires = ["whool"]
|
||||
build-backend = "whool.buildapi"
|
||||
BIN
l10n_fr_account_profile_akretion/static/description/icon.png
Normal file
BIN
l10n_fr_account_profile_akretion/static/description/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.2 KiB |
@@ -5,7 +5,7 @@
|
||||
|
||||
{
|
||||
'name': 'Mail Usability',
|
||||
'version': '16.0.1.0.0',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Productivity/Discuss',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Usability improvements on mails',
|
||||
@@ -20,13 +20,8 @@ Small usability improvements on mails:
|
||||
* remove 'sent by' in notification footer (TODO mig v14)
|
||||
""",
|
||||
'author': 'Akretion',
|
||||
'website': 'http://www.akretion.com',
|
||||
'website': 'https://github.com/akretion/odoo-usability',
|
||||
'depends': ['mail'],
|
||||
'data': [
|
||||
#'views/mail_view.xml',
|
||||
#'data/mail_data.xml',
|
||||
#'wizard/email_template_preview_view.xml',
|
||||
#'wizard/mail_compose_message_view.xml',
|
||||
],
|
||||
'installable': False,
|
||||
'data': [],
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
@@ -9,8 +9,7 @@ class ResPartner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
# tracking=True is handled in the 'mail' module, so it's better
|
||||
# to have this in mail_usability than in base_usability
|
||||
name = fields.Char(tracking=True)
|
||||
# to have this in mail_usability than in base_usability_akretion
|
||||
ref = fields.Char(tracking=True)
|
||||
lang = fields.Selection(tracking=True)
|
||||
street = fields.Char(tracking=True)
|
||||
|
||||
3
mail_usability_akretion/pyproject.toml
Normal file
3
mail_usability_akretion/pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[build-system]
|
||||
requires = ["whool"]
|
||||
build-backend = "whool.buildapi"
|
||||
BIN
mail_usability_akretion/static/description/icon.png
Normal file
BIN
mail_usability_akretion/static/description/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.2 KiB |
@@ -14,7 +14,7 @@
|
||||
<field name="inherit_id" ref="product.product_template_search_view" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="categ_id" position="after">
|
||||
<field name="seller_id" string="Main Supplier"/>
|
||||
<field name="seller_id" domain="[('parent_id', '=', False)]"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{
|
||||
'name': 'Sale Agent',
|
||||
'version': '16.0.1.0.0',
|
||||
'version': '18.0.1.0.0',
|
||||
'category': 'Sales',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Add agent on partner, sale order and customer invoice/refund',
|
||||
@@ -19,5 +19,5 @@
|
||||
"views/account_invoice_report.xml",
|
||||
],
|
||||
'demo': ['demo/demo.xml'],
|
||||
'installable': False,
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import fields, models
|
||||
from odoo.tools import SQL
|
||||
|
||||
|
||||
class AccountInvoiceReport(models.Model):
|
||||
@@ -11,5 +12,4 @@ class AccountInvoiceReport(models.Model):
|
||||
invoice_agent_id = fields.Many2one("res.partner", string="Agent", readonly=True)
|
||||
|
||||
def _select(self):
|
||||
select_str = super()._select()
|
||||
return f"{select_str}, move.invoice_agent_id AS invoice_agent_id"
|
||||
return SQL("%s, move.invoice_agent_id AS invoice_agent_id", super()._select())
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@name='sales_purchases']//group[@name='sale']/field[@name='user_id']" name="user_id" position="after">
|
||||
<field name="agent_id" attrs="{'invisible': [('parent_id', '!=', False)]}"/>
|
||||
<field name="agent_id" invisible="parent_id"/>
|
||||
</xpath>
|
||||
<group name="misc" position="inside">
|
||||
<field name="agent"/>
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
[project]
|
||||
name = "odoo-addons-akretion-odoo-usability"
|
||||
version = "18.0.20250130.0"
|
||||
version = "18.0.20250526.1"
|
||||
dependencies = [
|
||||
"odoo-addon-account_usability_akretion==18.0.*",
|
||||
"odoo-addon-base_company_extension==18.0.*",
|
||||
"odoo-addon-base_partner_ref==18.0.*",
|
||||
"odoo-addon-base_profile_akretion==18.0.*",
|
||||
"odoo-addon-base_usability_akretion==18.0.*",
|
||||
"odoo-addon-eradicate_quick_create==18.0.*",
|
||||
"odoo-addon-l10n_fr_account_profile_akretion==18.0.*",
|
||||
"odoo-addon-mail_usability_akretion==18.0.*",
|
||||
"odoo-addon-mrp_usability_akretion==18.0.*",
|
||||
"odoo-addon-partner_tree_default_account==18.0.*",
|
||||
"odoo-addon-partner_tree_default_base==18.0.*",
|
||||
|
||||
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 16.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-02-13 21:59+0000\n"
|
||||
"PO-Revision-Date: 2023-02-13 21:59+0000\n"
|
||||
"POT-Creation-Date: 2025-06-23 09:19+0000\n"
|
||||
"PO-Revision-Date: 2025-06-23 09:19+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -109,6 +109,11 @@ msgstr "Lot/numéro de série"
|
||||
msgid "Move"
|
||||
msgstr "Déplacer"
|
||||
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#: model_terms:ir.ui.view,arch_db:stock_quant_package_move_wizard.stock_quant_move_wizard_form
|
||||
msgid "Move and Show Picking"
|
||||
msgstr "Déplacer et afficher le bon de transfert"
|
||||
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#: model:ir.actions.act_window,name:stock_quant_package_move_wizard.stock_quant_move_wizard_action
|
||||
msgid "Move to Another Location"
|
||||
@@ -137,7 +142,7 @@ msgstr "Qté à déplacer"
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#: model:ir.model.fields,field_description:stock_quant_package_move_wizard.field_stock_quant_move_wizard_line__quant_id
|
||||
msgid "Quant"
|
||||
msgstr "Quant"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#: model:ir.model.fields,field_description:stock_quant_package_move_wizard.field_stock_quant_move_wizard_line__wizard_id
|
||||
@@ -154,7 +159,7 @@ msgstr ""
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#: model:ir.model,name:stock_quant_package_move_wizard.model_stock_quant
|
||||
msgid "Quants"
|
||||
msgstr "Quants"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#: model:ir.model.fields,field_description:stock_quant_package_move_wizard.field_stock_quant_move_wizard__origin
|
||||
@@ -196,7 +201,8 @@ msgid ""
|
||||
"%(product_name)s to %(dest_location)s, but it is already on that location!"
|
||||
msgstr ""
|
||||
"Vous essayez de déplacer %(qty)s %(uom)s d'un quant de l'article "
|
||||
"%(product_name)s vers %(dest_location)s, mais il est déjà sur cet emplacement !"
|
||||
"%(product_name)s vers %(dest_location)s, mais il est déjà sur cet "
|
||||
"emplacement !"
|
||||
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#. odoo-python
|
||||
|
||||
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 16.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-02-13 21:58+0000\n"
|
||||
"PO-Revision-Date: 2023-02-13 21:58+0000\n"
|
||||
"POT-Creation-Date: 2025-06-23 09:19+0000\n"
|
||||
"PO-Revision-Date: 2025-06-23 09:19+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -109,6 +109,11 @@ msgstr ""
|
||||
msgid "Move"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#: model_terms:ir.ui.view,arch_db:stock_quant_package_move_wizard.stock_quant_move_wizard_form
|
||||
msgid "Move and Show Picking"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock_quant_package_move_wizard
|
||||
#: model:ir.actions.act_window,name:stock_quant_package_move_wizard.stock_quant_move_wizard_action
|
||||
msgid "Move to Another Location"
|
||||
|
||||
@@ -100,6 +100,11 @@ class StockQuant(models.Model):
|
||||
"location_dest_id": dest_location.id,
|
||||
"origin": origin,
|
||||
}
|
||||
source_loc_ids = set()
|
||||
for quant in self:
|
||||
source_loc_ids.add(quant.location_id.id)
|
||||
if len(source_loc_ids) == 1:
|
||||
vals['location_id'] = list(source_loc_ids)[0]
|
||||
return vals
|
||||
|
||||
def move_full_quant_to(self, dest_location, picking_type=False, origin=False):
|
||||
|
||||
@@ -60,22 +60,9 @@ class StockQuantMoveWizard(models.TransientModel):
|
||||
|
||||
def run(self):
|
||||
self.ensure_one()
|
||||
picking_id = False
|
||||
if self.picking_type_id:
|
||||
picking_vals = self.env["stock.quant"]._prepare_move_to_stock_picking(
|
||||
self.location_dest_id, self.picking_type_id, origin=self.origin
|
||||
)
|
||||
picking_id = self.env["stock.picking"].create(picking_vals).id
|
||||
smo = self.env["stock.move"]
|
||||
for line in self.line_ids:
|
||||
quant = line.quant_id
|
||||
assert not quant.package_id
|
||||
vals = quant._prepare_move_to_stock_move(
|
||||
line.quantity, self.location_dest_id, picking_id, origin=self.origin
|
||||
)
|
||||
new_move = smo.create(vals)
|
||||
new_move._action_done()
|
||||
assert new_move.state == "done"
|
||||
res = self.line_ids.quant_id.move_full_quant_to(
|
||||
self.location_dest_id, self.picking_type_id, origin=self.origin)
|
||||
picking_id = res['picking_id']
|
||||
action = {}
|
||||
if picking_id and self._context.get("run_show_picking"):
|
||||
action = self.env["ir.actions.actions"]._for_xml_id(
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
</field>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="run" string="Move" type="object" class="btn-primary" />
|
||||
<button name="run" string="Move and Show Picking" type="object" class="btn-primary" context="{'run_show_picking': True}" />
|
||||
<button name="run" string="Move" type="object" />
|
||||
<button string="Cancel" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
|
||||
@@ -15,6 +15,23 @@ class StockWarehouseOrderpoint(models.Model):
|
||||
# but all the Odoo deployments I've seen so far need 'manual' by default
|
||||
trigger = fields.Selection(default='manual')
|
||||
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
|
||||
seller_id = fields.Many2one(
|
||||
"res.partner",
|
||||
compute="_compute_seller_id",
|
||||
search="_search_seller_id",
|
||||
string="Main Supplier")
|
||||
|
||||
def _search_seller_id(self, operator, value):
|
||||
# searching on the first line of a o2m is not that easy
|
||||
# So we search all potential matching products
|
||||
# Then we filter on the seller_id
|
||||
records = self.search([("product_id.seller_ids.partner_id", operator, value)])
|
||||
records = records.filtered_domain([("seller_id", operator, value)])
|
||||
return [("id", "in", records.ids)]
|
||||
|
||||
def _compute_seller_id(self):
|
||||
for orderpoint in self:
|
||||
orderpoint.seller_id = fields.first(orderpoint.product_id.seller_ids).partner_id
|
||||
|
||||
def _procure_orderpoint_confirm(
|
||||
self, use_new_cursor=False, company_id=None, raise_user_error=True):
|
||||
|
||||
@@ -47,6 +47,19 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- View used by menu Inventory > Analysis > Locations -->
|
||||
<!--
|
||||
<record id="view_stock_quant_tree_editable" model="ir.ui.view">
|
||||
<field name="model">stock.quant</field>
|
||||
<field name="inherit_id" ref="stock.view_stock_quant_tree_editable"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="reserved_quantity" position="after">
|
||||
<button type="object" name="action_stock_move_lines_reserved" string="Reservations" attrs="{'invisible': [('reserved_quantity', '=', 0)]}"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
-->
|
||||
|
||||
<record id="quant_search_view" model="ir.ui.view">
|
||||
<field name="model">stock.quant</field>
|
||||
<field name="inherit_id" ref="stock.quant_search_view"/>
|
||||
|
||||
@@ -28,8 +28,20 @@
|
||||
<field name="product_id" position="after">
|
||||
<field name="product_barcode" optional="hide"/>
|
||||
</field>
|
||||
<field name="route_id" position="after">
|
||||
<field name="seller_id" optional="show"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="stock_reorder_report_search" model="ir.ui.view">
|
||||
<field name="model">stock.warehouse.orderpoint</field>
|
||||
<field name="inherit_id" ref="stock.stock_reorder_report_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="product_category_id" position="after">
|
||||
<field name="seller_id" domain="[('parent_id', '=', False)]"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user