Merge branch '16.0' of github.com:Mint-System/Odoo-Development into 16.0

This commit is contained in:
Kurt Gisler committed 2023-10-26 16:42:43 +02:00
commit c39c8f9a98
594 files changed
+14154 -4577

No files matched your search

+4 -1
View File
@@ -19,4 +19,7 @@ public
dist
=2.0.0
=4.0.0
origin.dump
origin.dump
filestore
upgraded.dump
sozialinfo
+41 -9
View File
@@ -82,10 +82,6 @@
path = oca/sale-workflow
url = git@github.com:OCA/sale-workflow.git
branch = 16.0
[submodule "oca/dms"]
path = oca/dms
url = git@github.com:OCA/dms.git
branch = 16.0
[submodule "oca/social"]
path = oca/social
url = git@github.com:OCA/social.git
@@ -182,10 +178,6 @@
path = addons/stock_logistics_workflow
url = git@github.com:Mint-System/Odoo-Apps-Stock-Logistics-Workflow.git
branch = 16.0
[submodule "addons/swiss_payroll"]
path = addons/swiss_payroll
url = git@gitlab.com:mint-system/odoo-apps-swiss-payroll.git
branch = 16.0
[submodule "oca/stock-logistics-workflow"]
path = oca/stock-logistics-workflow
url = git@github.com:OCA/stock-logistics-workflow.git
@@ -204,5 +196,45 @@
branch = 16.0
[submodule "addons/vertical_saas"]
path = addons/vertical_saas
url = git@github.com:Mint-System/Odoo-Apps-SaaS.git
url = git@github.com:Mint-System/Odoo-Apps-Vertical-SaaS.git
branch = 16.0
[submodule "addons/social"]
path = addons/social
url = git@github.com:Mint-System/Odoo-Apps-Social.git
branch = 16.0
[submodule "addons/vertical_job_portal"]
path = addons/vertical_job_portal
url = git@github.com:sozialinfo/odoo-apps-vertical-job-portal.git
branch = 16.0
[submodule "oca/management-system"]
path = oca/management-system
url = git@github.com:OCA/management-system.git
branch = 16.0
[submodule "oca/hr-holidays"]
path = oca/hr-holidays
url = git@github.com:OCA/hr-holidays.git
branch = 16.0
[submodule "oca/sale-reporting"]
path = oca/sale-reporting
url = https://github.com/OCA/sale-reporting.git
branch = 16.0
[submodule "oca/account-reconcile"]
path = oca/account-reconcile
url = git@github.com:OCA/account-reconcile.git
branch = 16.0
[submodule "addons/account_financial_reporting"]
path = addons/account_financial_reporting
url = git@github.com:Mint-System/Odoo-Apps-Account-Financial-Reporting.git
branch = 16.0
[submodule "addons/purchase_workflow"]
path = addons/purchase_workflow
url = git@github.com:Mint-System/Odoo-Apps-Purchase-Workflow.git
branch = 16.0
[submodule "addons/account_invoicing"]
path = addons/account_invoicing
url = git@github.com:mint-system/odoo-apps-account-invoicing.git
branch = 16.0
[submodule "oca/e-commerce"]
path = oca/e-commerce
url = git@github.com:OCA/e-commerce.git
branch = 16.0
+9 -7
View File
@@ -1,11 +1,13 @@
{
"spellright.language": [
"en"
],
"spellright.documentTypes": [
"markdown",
"latex",
"plaintext"
"python.autoComplete.extraPaths": ["./odoo/odoo", "./odoo/addons"],
"python.linting.enabled": true,
"python.linting.pylintArgs": [
"--load-plugins",
"pylint_odoo"
],
"python.formatting.provider": "black",
"files.exclude": {
"**/*.pyc": true
},
"git.ignoreLimitWarning": true
}
+1 -1
View File
@@ -1 +1 @@
export default ['/snippets/account.md','/snippets/account_asset.md','/snippets/account_budget.md','/snippets/account_financial_report.md','/snippets/account_followup.md','/snippets/account_journal_items_report.md','/snippets/account_sale_timesheet_report.md','/snippets/agreement.md','/snippets/agreement_legal.md','/snippets/base.md','/snippets/business_requirement.md','/snippets/calendar.md','/snippets/certificate_planer.md','/snippets/contract.md','/snippets/crm.md','/snippets/crm_iap_lead_enrich.md','/snippets/delivery.md','/snippets/digest.md','/snippets/fleet.md','/snippets/gio_payroll_custom.md','/snippets/helpdesk.md','/snippets/hr.md','/snippets/hr_attendance.md','/snippets/hr_contract.md','/snippets/hr_expense.md','/snippets/hr_holidays.md','/snippets/hr_holidays_delegations.md','/snippets/hr_payroll.md','/snippets/hr_recruitment.md','/snippets/hr_timesheet.md','/snippets/industry_fsm.md','/snippets/industry_fsm_sale.md','/snippets/ir_model.md','/snippets/ir_ui_view.md','/snippets/l10n_ch.md','/snippets/l10n_ch_qr_isr_invoice_import.md','/snippets/mail.md','/snippets/mail_activity_board.md','/snippets/mrp.md','/snippets/mrp_account.md','/snippets/mrp_workorder.md','/snippets/printnode_base.md','/snippets/product.md','/snippets/project.md','/snippets/purchase.md','/snippets/purchase_requisition.md','/snippets/purchase_requisition_send.md','/snippets/res_groups.md','/snippets/sale.md','/snippets/sale_blanket_order.md','/snippets/sale_management.md','/snippets/sale_margin.md','/snippets/sale_order_contact_person.md','/snippets/sale_order_line_date.md','/snippets/sale_order_picking_note.md','/snippets/sale_partner_incoterm.md','/snippets/sale_product_set.md','/snippets/sale_subscription.md','/snippets/stock.md','/snippets/stock_account.md','/snippets/stock_delivery_note.md','/snippets/survey.md','/snippets/timesheet_grid.md','/snippets/web.md','/snippets/website_discount_voucher.md','/snippets/website_sale.md',]
export default ['/snippets/account.md','/snippets/account_asset.md','/snippets/account_budget.md','/snippets/account_financial_report.md','/snippets/account_followup.md','/snippets/account_journal_items_report.md','/snippets/account_sale_timesheet_report.md','/snippets/agreement.md','/snippets/agreement_legal.md','/snippets/base.md','/snippets/business_requirement.md','/snippets/calendar.md','/snippets/certificate_planer.md','/snippets/contract.md','/snippets/crm.md','/snippets/crm_iap_lead_enrich.md','/snippets/delivery.md','/snippets/digest.md','/snippets/fleet.md','/snippets/gio_payroll_custom.md','/snippets/helpdesk.md','/snippets/hr.md','/snippets/hr_attendance.md','/snippets/hr_contract.md','/snippets/hr_expense.md','/snippets/hr_holidays.md','/snippets/hr_holidays_delegations.md','/snippets/hr_payroll.md','/snippets/hr_recruitment.md','/snippets/hr_timesheet.md','/snippets/industry_fsm.md','/snippets/industry_fsm_sale.md','/snippets/ir_model.md','/snippets/ir_ui_view.md','/snippets/l10n_ch.md','/snippets/l10n_ch_qr_isr_invoice_import.md','/snippets/mail.md','/snippets/mail_activity_board.md','/snippets/mrp.md','/snippets/mrp_account.md','/snippets/mrp_workorder.md','/snippets/payment.md','/snippets/portal.md','/snippets/printnode_base.md','/snippets/product.md','/snippets/project.md','/snippets/project_enterprise.md','/snippets/purchase.md','/snippets/purchase_requisition.md','/snippets/purchase_requisition_send.md','/snippets/res_groups.md','/snippets/sale.md','/snippets/sale_blanket_order.md','/snippets/sale_management.md','/snippets/sale_margin.md','/snippets/sale_order_contact_person.md','/snippets/sale_order_line_date.md','/snippets/sale_order_picking_note.md','/snippets/sale_partner_incoterm.md','/snippets/sale_product_set.md','/snippets/sale_subscription.md','/snippets/stock.md','/snippets/stock_account.md','/snippets/stock_delivery_note.md','/snippets/survey.md','/snippets/timesheet_grid.md','/snippets/web.md','/snippets/website_discount_voucher.md','/snippets/website_sale.md',]
+8
View File
@@ -100,6 +100,14 @@ Scaffold a new module.
task create-module addons/project_report
```
**Load modules from thirdpary folder**
To load modules from a thirdparty folder, set this env var in your `.env` file
```
ODOO_ADDONS_PATH=,path/to/module/folder
```
### Docker
Run Odoo with Docker container.
Submodule
+1
Submodule addons/social added at 2bd69fcc76.
-7
View File
@@ -1,7 +0,0 @@
FROM jenkins/jenkins
USER root
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install --no-install-recommends --assume-yes \
docker.io
USER jenkins
+1 -2
View File
@@ -11,5 +11,4 @@ package-lock.json
config/checkout_files
logo.png
docker-compose.yml
snippets.md
build
snippets.md
+2 -7
View File
@@ -1,11 +1,6 @@
[options]
addons_path = odoo/addons,enterprise,themes,odoo,oca/partner-contact,addons/server_tools,addons/project,oca/project,oca/web,oca/timesheet,oca/crm,oca/knowledge,oca/server-auth,oca/server-backend,oca/server-ux,oca/brand,oca/hr,oca/website,oca/reporting-engine,oca/server-tools,oca/product-attribute,oca/sale-workflow,oca/dms,oca/social,oca/bank-statement-import,oca/rest-framework,oca/contract,oca/purchase-workflow,oca/stock-logistics-warehouse,oca/account-invoicing,oca/server-env,oca/business-requirement,oca/connector,oca/edi,oca/community-data-files,oca/account-financial-reporting,oca/iot,oca/manufacture,oca/account-closing,oca/account-financial-tools,oca/bank-payment,addons/odoo_apps_partner,addons/sale_workflow,oca/credit-control,addons/hr,addons/manufacture,addons/stock_logistics_workflow,addons/swiss_payroll,oca/stock-logistics-workflow,addons/website,addons/product_attribute,addons/partner_contact,addons/vertical_saas
; admin_passwd = admin
admin_passwd = $pbkdf2-sha512$25000$rlUqpfTe2ztn7P2fcw7BOA$J9DDQN5WeT/.hyYeLNtJTOS6PhOsEbCeIN4iFaynjEY1PjW5zZwYVdR19qOEFVPOkR4HuHLi1EsV.juSjEc90w
limit_time_real = 480
dbfilter = .*
admin_passwd = $pbkdf2-sha512$25000$v7dWau29F0LIee/9n/M.pw$uB2sLuvV7I.QlnLCYlR1enNps2D.chZbzavM2g/MAsMXgfkx/AC2X8sTejf4zfe21yOSPOpmdhWTgQSoYqGAPA
limit_time_real = 600
db_host = localhost
db_password = odoo
db_user = odoo
;without_demo = True
;log_level = debug
+3 -3
View File
@@ -1,6 +1,6 @@
[options]
addons_path = /mnt/enterprise,/mnt/themes,/mnt/oca/partner-contact,/mnt/addons/server_tools,/mnt/addons/project,/mnt/oca/project,/mnt/oca/web,/mnt/oca/timesheet,/mnt/oca/crm,/mnt/oca/knowledge,/mnt/oca/server-auth,/mnt/oca/server-backend,/mnt/oca/server-ux,/mnt/oca/brand,/mnt/oca/hr,/mnt/oca/website,/mnt/oca/reporting-engine,/mnt/oca/server-tools,/mnt/oca/product-attribute,/mnt/oca/sale-workflow,/mnt/oca/dms,/mnt/oca/social,/mnt/oca/bank-statement-import,/mnt/oca/rest-framework,/mnt/oca/contract,/mnt/oca/purchase-workflow,/mnt/oca/stock-logistics-warehouse,/mnt/oca/account-invoicing,/mnt/oca/server-env,/mnt/oca/business-requirement,/mnt/oca/connector,/mnt/oca/edi,/mnt/oca/community-data-files,/mnt/oca/account-financial-reporting,/mnt/oca/iot,/mnt/oca/manufacture,/mnt/oca/account-closing,/mnt/oca/account-financial-tools,/mnt/oca/bank-payment,/mnt/addons/odoo_apps_partner,/mnt/addons/sale_workflow,/mnt/oca/credit-control,/mnt/addons/hr,/mnt/addons/manufacture,/mnt/addons/stock_logistics_workflow,/mnt/addons/swiss_payroll,/mnt/oca/stock-logistics-workflow,/mnt/addons/website,/mnt/addons/product_attribute,/mnt/addons/partner_contact,/mnt/addons/vertical_saas
admin_passwd = admin
addons_path = /mnt/enterprise,/mnt/themes,/mnt/oca/partner-contact,/mnt/addons/server_tools,/mnt/addons/project,/mnt/oca/project,/mnt/oca/web,/mnt/oca/timesheet,/mnt/oca/crm,/mnt/oca/knowledge,/mnt/oca/server-auth,/mnt/oca/server-backend,/mnt/oca/server-ux,/mnt/oca/brand,/mnt/oca/hr,/mnt/oca/website,/mnt/oca/reporting-engine,/mnt/oca/server-tools,/mnt/oca/product-attribute,/mnt/oca/sale-workflow,/mnt/oca/social,/mnt/oca/bank-statement-import,/mnt/oca/rest-framework,/mnt/oca/contract,/mnt/oca/purchase-workflow,/mnt/oca/stock-logistics-warehouse,/mnt/oca/account-invoicing,/mnt/oca/server-env,/mnt/oca/business-requirement,/mnt/oca/connector,/mnt/oca/edi,/mnt/oca/community-data-files,/mnt/oca/account-financial-reporting,/mnt/oca/iot,/mnt/oca/manufacture,/mnt/oca/account-closing,/mnt/oca/account-financial-tools,/mnt/oca/bank-payment,/mnt/addons/odoo_apps_partner,/mnt/addons/sale_workflow,/mnt/oca/credit-control,/mnt/addons/hr,/mnt/addons/manufacture,/mnt/addons/stock_logistics_workflow,/mnt/addons/swiss_payroll,/mnt/oca/stock-logistics-workflow,/mnt/addons/website,/mnt/addons/product_attribute,/mnt/addons/partner_contact,/mnt/addons/vertical_saas,/mnt/addons/social,/mnt/addons/vertical_job_portal,/mnt/oca/management-system,/mnt/oca/hr-holidays,/mnt/oca/sale-reporting,/mnt/oca/account-reconcile
admin_passwd = $pbkdf2-sha512$25000$v7dWau29F0LIee/9n/M.pw$uB2sLuvV7I.QlnLCYlR1enNps2D.chZbzavM2g/MAsMXgfkx/AC2X8sTejf4zfe21yOSPOpmdhWTgQSoYqGAPA
data_dir = /var/lib/odoo
limit_time_real = 480
limit_time_real = 600
worker = 2
-25
View File
@@ -49,33 +49,8 @@ services:
ports:
- "1025:1025"
- "8025:8025"
dind:
image: docker:dind
container_name: dind
hostname: dind
privileged: true
environment:
DOCKER_TLS_CERTDIR: ''
volumes:
- cd-data:/var/jenkins_home
cd:
build:
context: build
dockerfile: cd.Dockerfile
container_name: cd
hostname: cd
depends_on:
- dind
privileged: true
ports:
- "8080:8080"
environment:
DOCKER_HOST: tcp://dind:2375
volumes:
- cd-data:/var/jenkins_home
volumes:
odoo-data:
db-data:
admin-data:
mail-data:
cd-data:
+1 -1
Submodule oca/crm updated: e2f6fdf736...3474b98511.
+1 -1
Submodule oca/dms updated: c4a707a565...592d7a7ff9.
+1
Submodule oca/e-commerce added at 2314f0e001.
+1 -1
Submodule oca/edi updated: b92e8f482a...32a0e4938f.
+1 -1
Submodule oca/hr updated: 9b4ed10a47...2503296ecb.
Submodule oca/hr-attendance updated: c3557e5af1...35e0e0f433.
+1 -1
Submodule oca/iot updated: 520eba0812...b8e1e3d63e.
Submodule oca/l10n-switzerland updated: bb7affa612...370e23903c.
+1
Submodule oca/maintenance added at 01a9f91afa.
Submodule oca/sale-reporting added at 91209558d4.
Submodule
+1
Submodule oca/survey added at 8be897a176.
+1 -1
Submodule oca/web updated: 2441ebfc68...5dc42ccd75.
+1 -1
Submodule odoo updated: 3619f77c73...b27279492f.
+1 -1
View File
@@ -27,7 +27,7 @@
"build"
],
"author": "Mint System",
"license": "GPL3",
"license": "GPL-3.0",
"bugs": {
"url": "https://github.com/Mint-System/Odoo-Build/issues"
},
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
# Get script name
SCRIPT=$(basename "$0")
# First param is docker container
CONTAINER=odoo36
# Default configuration
PACKAGE_PATH="/usr/lib/python3/dist-packages/"
# Custom configuration
FILE_PATH="${PACKAGE_PATH}odoo/addons/base/models/ir_actions_report.py"
FIND="if report_sudo.attachment and set(res_ids_wo_stream) != set(html_ids):"
REPLACE="if not report_sudo.attachment and set(res_ids_wo_stream) != set(html_ids):"
# Get filename
FILE=$(basename "$FILE_PATH")
# Copy from docker
docker cp "$CONTAINER":"$FILE_PATH" .
# Find and replace
sed -i'' "s/$FIND/$REPLACE/g" $FILE
# Copy back to docker
docker cp $FILE "$CONTAINER":"$FILE_PATH"
# Remove file
rm -f $FILE
# Register patch installation
echo "Patch $SCRIPT applied."
touch "/etc/odoo/${SCRIPT}_${CONTAINER}_installed"
+34
View File
@@ -0,0 +1,34 @@
#!/bin/bash
# Get script name
SCRIPT=$(basename "$0")
# First param is docker container
CONTAINER=$1
# Default configuration
PACKAGE_PATH="/usr/lib/python3/dist-packages/"
# Custom configuration
FILE_PATH="${PACKAGE_PATH}odoo/addons/microsoft_outlook/models/microsoft_outlook_mixin.py"
FIND="response\['expires_in'\],"
REPLACE="int(response['expires_in']),"
# Get filename
FILE=`basename "$FILE_PATH"`
# Copy from docker
docker cp "$CONTAINER":"$FILE_PATH" .
# Find and replace
sed -i'' "s/$FIND/$REPLACE/g" $FILE
# Copy back to docker
docker cp $FILE "$CONTAINER":"$FILE_PATH"
# Remove file
# rm -f $FILE
# Register patch installation
echo "Patch $SCRIPT applied."
touch "/etc/odoo/${SCRIPT}_${CONTAINER}_installed"
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# Get script name
SCRIPT=$(basename "$0")
# First param is docker container
CONTAINER=$1
# Custom configuration
FILE_PATH="/mnt/addons/sale_timesheet_line_exclude/__manifest__.py"
FIND='"depends": ["sale_timesheet"],'
REPLACE='"depends": ["sale_timesheet", "industry_fsm_sale"],'
# Get filename
FILE=`basename "$FILE_PATH"`
# Copy from docker
docker cp "$CONTAINER":"$FILE_PATH" .
# Find and replace
sed -i'' "s/$FIND/$REPLACE/g" $FILE
# Copy back to docker
docker cp $FILE "$CONTAINER":"$FILE_PATH"
# Remove file
rm -f $FILE
# Register patch installation
echo "Patch $SCRIPT applied."
touch "/etc/odoo/${SCRIPT}_${CONTAINER}_installed"
+3
View File
@@ -41,9 +41,12 @@ In Odoo everything is described as an XML document. Snippets are modificatio
## [Mrp](snippets/mrp.md)
## [Mrp Account](snippets/mrp_account.md)
## [Mrp Workorder](snippets/mrp_workorder.md)
## [Payment](snippets/payment.md)
## [Portal](snippets/portal.md)
## [Printnode Base](snippets/printnode_base.md)
## [Product](snippets/product.md)
## [Project](snippets/project.md)
## [Project Enterprise](snippets/project_enterprise.md)
## [Purchase](snippets/purchase.md)
## [Purchase Requisition](snippets/purchase_requisition.md)
## [Purchase Requisition Send](snippets/purchase_requisition_send.md)
+1698 -362
View File
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<data inherit_id="account.portal_invoice_page" priority="50">
<t t-if="line.display_type == 'line_note'" position="replace">
<t t-if="line.display_type == 'line_note' and '&lt;!DOCTYPE html&gt;' in line.name">
<td colspan="99">
<t t-raw="line.name.replace('&lt;!DOCTYPE html&gt;', '')" />
</td>
</t>
<t t-elif="line.display_type == 'line_note' and '&lt;!DOCTYPE html&gt;' not in line.name">
<td colspan="99">
<span t-field="line.name"/>
</td>
</t>
</t>
</data>
@@ -3,6 +3,6 @@
<xpath expr="//h2" position="attributes">
<attribute name="style">padding-top: 2rem</attribute>
</xpath>
</xpath>
</data>
@@ -1,8 +1,8 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//h2" position="attributes">
<attribute name="style">padding-top: 5rem</attribute>
</xpath>
<xpath expr="//h2" position="attributes">
<attribute name="style">padding-top: 5rem</attribute>
</xpath>
</data>
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="60">
<xpath expr="//div[hasclass('page')]" position="before">
<style>
.o_company_1_layout {
font-family: Dobra-Book;
font-size: 80%;
}
.mb-4 {
margin-bottom: 0rem !important;
}
#total {
margin-bottom: 2rem;
}
h2 {
font-size: 1.5rem;
}
</style>
</xpath>
</data>
@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<t t-if="line.display_type == 'line_note'" position="replace">
<t t-if="line.display_type == 'line_note' and '&lt;!DOCTYPE html&gt;' in line.name">
<td colspan="99">
<t t-raw="line.name.replace('&lt;!DOCTYPE html&gt;', '')" />
</td>
</t>
<t t-elif="line.display_type == 'line_note' and '&lt;!DOCTYPE html&gt;' not in line.name">
<td colspan="99">
<span t-field="line.name"/>
</td>
</t>
</t>
</data>
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//p[@name='payment_term']" position="replace">
<p t-if="o.invoice_payment_term_id" name="payment_term">
Payment terms: <strong t-field="o.invoice_payment_term_id.name"/>
</p>
</xpath>
</data>
@@ -2,12 +2,12 @@
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//th[@name='th_taxes']" position="replace">
<th name="th_taxes" t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"><span>Steuern</span></th>
<th name="th_taxes" t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"><span>Steuern</span></th>
</xpath>
<xpath expr="//t[@name='account_invoice_line_accountable']/td[5]" position="replace">
<td t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_ids))" id="line_tax_ids"/>
</td>
<td t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_ids))" id="line_tax_ids"/>
</td>
</xpath>
</data>
@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="60">
<t t-set="forced_vat" position="replace">
<t t-set="forced_vat" t-value="o.company_id.vat"/>
</t>
</data>
@@ -1,13 +1,13 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//span[@id='qty']" position="replace">
<t t-if="line.quantity.is_integer()">
<span id="qty" t-field="line.quantity" t-options="{'widget': 'integer'}"/>
</t>
<t t-else="">
<span id="qty" t-field="line.quantity"/>
</t>
</xpath>
<xpath expr="//span[@id='qty']" position="replace">
<t t-if="line.quantity.is_integer()">
<span id="qty" t-field="line.quantity" t-options="{'widget': 'integer'}"/>
</t>
<t t-else="">
<span id="qty" t-field="line.quantity"/>
</t>
</xpath>
</data>
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//p[@name='incoterm']" position="replace"/>
</data>
@@ -0,0 +1,6 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//p[@name='payment_term']" position="replace"/>
</data>
@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="60">
<xpath expr="//p[@name='incoterm']" position="replace"/>
<xpath expr="//p[2]" position="after">
<p t-if="o.invoice_incoterm_id" name="incoterm">Incoterm:
<strong t-field="o.invoice_incoterm_id.display_name"/>
</p>
</xpath>
</data>
@@ -4,8 +4,8 @@
<xpath expr="//table/tbody/t[3]/tr/t[1]/td[1]/span" position="after">
<t t-if="line.product_id.weight">
<br/>
Weight: <span t-field="line.product_id.weight"/>
<span t-field="line.product_id.weight_uom_id.display_name"/>
Weight: <span t-field="line.product_id.weight"/>
<span t-field="line.product_id.weight_uom_id.display_name"/>
</t>
</xpath>
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//p[@name='payment_communication']" position="replace">
<xpath expr="//p[@name='incoterm']" position="replace">
</xpath>
</data>
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//p[@name='payment_communication']" position="replace" />
<xpath expr="//p[@name='payment_communication']" position="replace" />
</data>
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<p name="payment_term" position="replace" />
<p name="payment_term" position="replace" />
</data>
@@ -0,0 +1,55 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//t[@t-set='address']" position="replace">
<div class="row text-900 o_bold">
<div class="col-7">Customer</div>
<div class="col-5">Invoice Address</div>
</div>
<div class="row">
<div class="col-7">
<span t-field="o.partner_id" t-options-widget="&quot;contact&quot;" t-options-fields="['name', 'address']" t-options-no_marker="True"/>
</div>
<div class="col-5">
<span t-field="o.partner_id" t-options-widget="&quot;contact&quot;" t-options-fields="['name', 'address']" t-options-no_marker="True"/>
</div>
</div>
<div class="row">
<div class="col-5 text-900 o_bold offset-7" style="margin-top:25px">Delivery Address</div>
</div>
<div class="row">
<div class="col-5 offset-7">
<span t-field="o.partner_shipping_id" t-options-widget="&quot;contact&quot;" t-options-fields="['name', 'address']" t-options-no_marker="True"/>
</div>
</div>
<div class="row o_bold text-900" style="margin-top:25px">
<div class="col-7">Your Contact</div>
<div class="col-5">Our Contact</div>
</div>
<div class="row">
<div class="col-7">
<span t-field="o.partner_id.name"/>
</div>
<div class="col-5">
<span t-field="o.user_id.name"/>
</div>
</div>
<div class="row">
<div class="col-7" style="margin-bottom:25px">
<span t-field="o.partner_id" t-options-widget="&quot;contact&quot;" t-options-fields="['phone', 'email']" t-options-no_marker="True"/>
</div>
<div class="col-5">
<span t-field="o.user_id" t-options-widget="&quot;contact&quot;" t-options-fields="['phone', 'email']" t-options-no_marker="True"/>
</div>
</div>
</xpath>
</data>
@@ -1,18 +1,27 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//td[@name='account_invoice_line_name']" position="replace">
<t t-if="line.product_id.type_description">
<td>
<span style="font-weight: bold" t-field="line.product_id.type_description"/>
</td>
</t>
<t t-if="not line.product_id.type_description">
<td>
<span t-field="line.external_name"/>
</td>
</t>
<xpath expr="//td[@name='account_invoice_line_name']" position="replace">
<t t-if="line.product_id.type_description">
<td>
<span style="font-weight: bold" t-field="line.product_id.type_description"/>
</td>
</t>
<t t-if="not line.product_id.type_description">
<td>
<span t-field="line.external_name"/>
</td>
</t>
</xpath>
<!---
<xpath expr="//td[@name='account_invoice_line_name']" position="replace">
<td name="td_name">
<span class="o_bold" t-field="line.product_id.name"/><br/>
<span t-field="line.name"/>
</td>
</xpath>
-->
</xpath>
</data>
@@ -4,50 +4,50 @@
<xpath expr="//table[@name='invoice_line_table']" position="after">
<style>
table.trimada_summary tr {
border-top: solid 1px !important;
border-bottom: solid 1px;
page-break-inside: avoid;
}
table.trimada_details tr {
border-top: 0px !important;
border-bottom: 0px;
line-height: 0.7;
}
table.trimada_summary #amount_untaxed_label {
width: 11.5%;
text-align: left;
}
table.trimada_details td#amount_by_group0 {
width: 8%;
text-align: left;
}
table.trimada_details td#amount_by_group3 {
width: 21%;
text-align: right;
padding-right: 10%;
}
table.trimada_details td#amount_by_group4 {
width: 27%;
text-align: right;
padding-right: 15%;
}
table.trimada_summary td#amount_by_group_label {
width: 12%;
text-align: left;
}
table.trimada_summary td#amount_by_group {
width: 17%;
text-align: left;
}
table.trimada_summary #amount_total_label {
width: 14%;
text-align: right;
}
table.trimada_summary #amount_total {
width: 18%;
text-align: right;
}
table.trimada_summary tr {
border-top: solid 1px !important;
border-bottom: solid 1px;
page-break-inside: avoid;
}
table.trimada_details tr {
border-top: 0px !important;
border-bottom: 0px;
line-height: 0.7;
}
table.trimada_summary #amount_untaxed_label {
width: 11.5%;
text-align: left;
}
table.trimada_details td#amount_by_group0 {
width: 8%;
text-align: left;
}
table.trimada_details td#amount_by_group3 {
width: 21%;
text-align: right;
padding-right: 10%;
}
table.trimada_details td#amount_by_group4 {
width: 27%;
text-align: right;
padding-right: 15%;
}
table.trimada_summary td#amount_by_group_label {
width: 12%;
text-align: left;
}
table.trimada_summary td#amount_by_group {
width: 17%;
text-align: left;
}
table.trimada_summary #amount_total_label {
width: 14%;
text-align: right;
}
table.trimada_summary #amount_total {
width: 18%;
text-align: right;
}
</style>
<table class="table table-borderless table-sm trimada trimada_summary">
@@ -126,4 +126,3 @@
</xpath>
</data>
@@ -2,7 +2,7 @@
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//span[@t-field='line.price_unit']" position="replace">
<span t-esc="'%g' % line.price_unit if str(line.price_unit)[::-1].find('.') >= 3 else '{0:,.2f}'.format(float(line.price_unit)).replace(',','\'')"/>
<span t-esc="'%g' % line.price_unit if str(line.price_unit)[::-1].find('.') >= 3 else '{0:,.2f}'.format(float(line.price_unit)).replace(',','\'')"/>
</xpath>
</data>
@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//span[@t-field='line.price_unit']" position="replace">
<span class="text-nowrap" t-esc="'{0:,.2f}'.format(float(line.price_unit)).replace(',','\'')"/>
</xpath>
</data>
@@ -1,22 +1,22 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//th[@name='th_quantity']" position="attributes">
<attribute name="id">th_quantity</attribute>
</xpath>
<xpath expr="//th[@name='th_quantity']" position="attributes">
<attribute name="id">th_quantity</attribute>
</xpath>
<xpath expr="//th[@name='th_description']" position="attributes">
<attribute name="id">description</attribute>
</xpath>
<xpath expr="//table[@name='invoice_line_table']//td[2]" position="attributes">
<attribute name="id">quantity</attribute>
</xpath>
<xpath expr="//table[@name='invoice_line_table']//td[2]/span[1]" position="attributes">
<attribute name="id">qty</attribute>
</xpath>
<xpath expr="//table[@name='invoice_line_table']//td[3]/span[1]" position="attributes">
<attribute name="id">price</attribute>
</xpath>
<xpath expr="//th[@name='th_description']" position="attributes">
<attribute name="id">description</attribute>
</xpath>
<xpath expr="//table[@name='invoice_line_table']//td[2]" position="attributes">
<attribute name="id">quantity</attribute>
</xpath>
<xpath expr="//table[@name='invoice_line_table']//td[2]/span[1]" position="attributes">
<attribute name="id">qty</attribute>
</xpath>
<xpath expr="//table[@name='invoice_line_table']//td[3]/span[1]" position="attributes">
<attribute name="id">price</attribute>
</xpath>
</data>
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<data inherit_id="account.report_invoice_document" priority="50">
<xpath expr="//span[@t-field='line.name']" position="after">
<div>
<span t-field="line.product_id.categ_id"/>
</div>
</xpath>
</data>
Loaded 100 of 594 files, more files were not shown because too many files have changed in this diff. Show more