[MERGE] forward port branch saas-11.3 up to 97d81f1220

This commit is contained in:
Christophe Simonis
2019-08-06 12:13:19 +02:00
16 changed files with 110 additions and 13 deletions
@@ -744,6 +744,7 @@ var LineRenderer = Widget.extend(FieldManagerMixin, {
*/
_onSelectMoveLine: function (event) {
var $el = $(event.target);
$el.prop('disabled', true);
this._destroyPopover($el);
var moveLineId = $el.closest('.mv_line').data('line-id');
this.trigger_up('add_proposition', {'data': moveLineId});
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
from odoo import api, fields, models, tools
class TimesheetAttendance(models.Model):
@@ -17,7 +17,7 @@ class TimesheetAttendance(models.Model):
@api.model_cr
def init(self):
self._cr.execute("DROP VIEW IF EXISTS hr_timesheet_attendance_report")
tools.drop_view_if_exists(self.env.cr, self._table)
self._cr.execute("""CREATE OR REPLACE VIEW %s AS (
SELECT
max(id) AS id,
@@ -276,7 +276,7 @@
"account_common_523","Proveedores de inmovilizado a corto plazo","523","account.data_account_type_payable","l10n_es.account_chart_template_common","l10n_es.account_group_523","True"
"account_common_524","Acreedores por arrendamiento financiero a corto plazo","524","account.data_account_type_current_liabilities","l10n_es.account_chart_template_common","l10n_es.account_group_524","False"
"account_common_525","Efectos a pagar a corto plazo","525","account.data_account_type_current_liabilities","l10n_es.account_chart_template_common","l10n_es.account_group_525","False"
"account_common_526","Dividendo activo a pagar","526","account.data_account_type_current_liabilities","l10n_es.account_chart_template_common","l10n_es.account_group_526","False"
"account_common_526","Dividendo activo a pagar","526","account.data_account_type_payable","l10n_es.account_chart_template_common","l10n_es.account_group_526","True"
"account_common_527","Intereses a corto plazo de deudas con entidades de crédito","527","account.data_account_type_current_liabilities","l10n_es.account_chart_template_common","l10n_es.account_group_527","False"
"account_common_528","Intereses a corto plazo de deudas","528","account.data_account_type_current_liabilities","l10n_es.account_chart_template_common","l10n_es.account_group_528","False"
"account_common_5290","Provisión a corto plazo por retribuciones al personal","5290","account.data_account_type_current_liabilities","l10n_es.account_chart_template_common","l10n_es.account_group_5290","True"
1 id name code user_type_id/id chart_template_id/id group_id/id reconcile
276 account_common_523 Proveedores de inmovilizado a corto plazo 523 account.data_account_type_payable l10n_es.account_chart_template_common l10n_es.account_group_523 True
277 account_common_524 Acreedores por arrendamiento financiero a corto plazo 524 account.data_account_type_current_liabilities l10n_es.account_chart_template_common l10n_es.account_group_524 False
278 account_common_525 Efectos a pagar a corto plazo 525 account.data_account_type_current_liabilities l10n_es.account_chart_template_common l10n_es.account_group_525 False
279 account_common_526 Dividendo activo a pagar 526 account.data_account_type_current_liabilities account.data_account_type_payable l10n_es.account_chart_template_common l10n_es.account_group_526 False True
280 account_common_527 Intereses a corto plazo de deudas con entidades de crédito 527 account.data_account_type_current_liabilities l10n_es.account_chart_template_common l10n_es.account_group_527 False
281 account_common_528 Intereses a corto plazo de deudas 528 account.data_account_type_current_liabilities l10n_es.account_chart_template_common l10n_es.account_group_528 False
282 account_common_5290 Provisión a corto plazo por retribuciones al personal 5290 account.data_account_type_current_liabilities l10n_es.account_chart_template_common l10n_es.account_group_5290 True
+16 -1
View File
@@ -225,6 +225,7 @@
<field name="amount_type">group</field>
<field name="amount" eval="100"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva21_sp_in_1'), ref('account_tax_template_p_iva21_sp_in_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_10_11'), ref('mod_303_14_15_purchase'), ref('mod_303_36_37'), ref('mod_303_40_41')])]"/>
<field name="tax_group_id" ref="tax_group_iva_21"/>
</record>
<record id="account_tax_template_p_iva21_ic_bc_1" model="account.tax.template">
@@ -257,7 +258,8 @@
<field name="description">P_IVA21_IC_BC</field>
<field name="amount_type">group</field>
<field name="amount" eval="100"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva21_ic_bc_1'), ref('account_tax_template_p_iva21_ic_bc_2')])]"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva21_ic_bc_1'), ref('account_tax_template_p_iva21_ic_bc_2'), ])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_36_37'), ref('mod_303_40_41'), ref('mod_303_10_11'), ref('mod_303_14_15_purchase')])]"/>
<field name="chart_template_id" ref="l10n_es.account_chart_template_common"/>
<field name="type_tax_use">purchase</field>
<field name="name">IVA 21% Adquisición Intracomunitaria. Bienes corrientes</field>
@@ -296,6 +298,7 @@
<field name="amount_type">group</field>
<field name="amount" eval="100"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva21_ic_bi_1'), ref('account_tax_template_p_iva21_ic_bi_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_38_39'), ref('mod_303_40_41'), ref('mod_303_10_11'), ref('mod_303_14_15_purchase')])]"/>
<field name="chart_template_id" ref="l10n_es.account_chart_template_common"/>
<field name="tax_group_id" ref="tax_group_iva_21"/>
</record>
@@ -368,6 +371,7 @@
<field name="amount_type">group</field>
<field name="type_tax_use">purchase</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva4_sp_ex_1'), ref('account_tax_template_p_iva4_sp_ex_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_12_13'), ref('mod_303_14_15_purchase'), ref('mod_303_28_29'), ref('mod_303_40_41')])]"/>
<field name="name">IVA 4% Adquisición de servicios extracomunitarios</field>
<field name="tax_group_id" ref="tax_group_iva_4"/>
</record>
@@ -403,6 +407,7 @@
<field name="chart_template_id" ref="l10n_es.account_chart_template_common"/>
<field name="amount_type">group</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva10_sp_ex_1'), ref('account_tax_template_p_iva10_sp_ex_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_12_13'), ref('mod_303_14_15_purchase'), ref('mod_303_28_29'), ref('mod_303_40_41')])]"/>
<field name="type_tax_use">purchase</field>
<field name="name">IVA 10% Adquisición de servicios extracomunitarios</field>
<field name="tax_group_id" ref="tax_group_iva_10"/>
@@ -441,6 +446,7 @@
<field name="chart_template_id" ref="l10n_es.account_chart_template_common"/>
<field name="amount_type">group</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva21_sp_ex_1'), ref('account_tax_template_p_iva21_sp_ex_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_12_13'), ref('mod_303_14_15_purchase'), ref('mod_303_28_29'), ref('mod_303_40_41')])]"/>
<field name="tax_group_id" ref="tax_group_iva_21"/>
</record>
<record id="account_tax_template_p_iva4_ic_bc_1" model="account.tax.template">
@@ -477,6 +483,7 @@
<field name="type_tax_use">purchase</field>
<field name="name">IVA 4% Adquisición Intracomunitario. Bienes corrientes</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva4_ic_bc_1'), ref('account_tax_template_p_iva4_ic_bc_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_36_37'), ref('mod_303_40_41'), ref('mod_303_10_11'), ref('mod_303_14_15_purchase')])]"/>
<field name="tax_group_id" ref="tax_group_iva_4"/>
</record>
<record id="account_tax_template_p_iva4_ic_bi_1" model="account.tax.template">
@@ -514,6 +521,7 @@
<field name="type_tax_use">purchase</field>
<field name="name">IVA 4% Adquisición Intracomunitario. Bienes de inversión</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva4_ic_bi_1'), ref('account_tax_template_p_iva4_ic_bi_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_38_39'), ref('mod_303_40_41'), ref('mod_303_10_11'), ref('mod_303_14_15_purchase')])]"/>
<field name="tax_group_id" ref="tax_group_iva_4"/>
</record>
<record id="account_tax_template_p_iva10_ic_bc_1" model="account.tax.template">
@@ -550,6 +558,7 @@
<field name="type_tax_use">purchase</field>
<field name="name">IVA 10% Adquisición Intracomunitario. Bienes corrientes</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva10_ic_bc_1'), ref('account_tax_template_p_iva10_ic_bc_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_36_37'), ref('mod_303_40_41'), ref('mod_303_10_11'), ref('mod_303_14_15_purchase')])]"/>
<field name="tax_group_id" ref="tax_group_iva_10"/>
</record>
<record id="account_tax_template_p_iva10_ic_bi_1" model="account.tax.template">
@@ -586,6 +595,7 @@
<field name="type_tax_use">purchase</field>
<field name="name">IVA 10% Adquisición Intracomunitario. Bienes de inversión</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva10_ic_bi_1'), ref('account_tax_template_p_iva10_ic_bi_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_38_39'), ref('mod_303_40_41'), ref('mod_303_10_11'), ref('mod_303_14_15_purchase')])]"/>
<field name="tax_group_id" ref="tax_group_iva_10"/>
</record>
<record id="account_tax_template_s_iva0_sp_i" model="account.tax.template">
@@ -1248,6 +1258,7 @@
<field name="type_tax_use">purchase</field>
<field name="name">IVA 10% Adquisición de servicios intracomunitarios</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva10_sp_in_1'), ref('account_tax_template_p_iva10_sp_in_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_10_11'), ref('mod_303_14_15_purchase'), ref('mod_303_36_37'), ref('mod_303_40_41')])]"/>
<field name="tax_group_id" ref="tax_group_iva_10"/>
</record>
<record id="account_tax_template_p_iva4_sp_in_1" model="account.tax.template">
@@ -1284,6 +1295,7 @@
<field name="type_tax_use">purchase</field>
<field name="name">IVA 4% Adquisición de servicios intracomunitarios</field>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva4_sp_in_1'), ref('account_tax_template_p_iva4_sp_in_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_10_11'), ref('mod_303_14_15_purchase'), ref('mod_303_36_37'), ref('mod_303_40_41')])]"/>
<field name="tax_group_id" ref="tax_group_iva_4"/>
</record>
<record id="account_tax_template_p_irpf21te" model="account.tax.template">
@@ -1390,6 +1402,7 @@
<field name="amount_type">group</field>
<field name="amount" eval="100"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva4_isp_1'), ref('account_tax_template_p_iva4_isp_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_28_29'), ref('mod_303_40_41'), ref('mod_303_12_13'), ref('mod_303_14_15_purchase')])]"/>
<field name="chart_template_id" ref="l10n_es.account_chart_template_common"/>
<field name="tax_group_id" ref="tax_group_iva_4"/>
</record>
@@ -1426,6 +1439,7 @@
<field name="amount_type">group</field>
<field name="amount" eval="100"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva10_isp_1'), ref('account_tax_template_p_iva10_isp_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_28_29'), ref('mod_303_40_41'), ref('mod_303_12_13'), ref('mod_303_14_15_purchase')])]"/>
<field name="chart_template_id" ref="l10n_es.account_chart_template_common"/>
<field name="tax_group_id" ref="tax_group_iva_10"/>
</record>
@@ -1462,6 +1476,7 @@
<field name="amount_type">group</field>
<field name="amount" eval="100"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('account_tax_template_p_iva21_isp_1'), ref('account_tax_template_p_iva21_isp_2')])]"/>
<field name="tag_ids" eval="[(6, False, [ref('mod_303_28_29'), ref('mod_303_40_41'), ref('mod_303_12_13'), ref('mod_303_14_15_purchase')])]"/>
<field name="chart_template_id" ref="l10n_es.account_chart_template_common"/>
<field name="tax_group_id" ref="tax_group_iva_21"/>
</record>
+1 -1
View File
@@ -139,7 +139,7 @@
</template>
<template id="message_origin_link">
<p>This <t t-esc="self._description.lower()"/> has been <span t-if="edit">modified</span><span t-if="not edit">created</span> from:
<p>This <t t-esc="self.env['ir.model']._get(self._name).name.lower()"/> has been <span t-if="edit">modified</span><span t-if="not edit">created</span> from:
<t t-foreach="origin" t-as="o">
<a href="#" t-att-data-oe-model="o._name" t-att-data-oe-id="o.id"> <t t-esc="o.display_name"/></a><span t-if="origin.ids[-1:] != o.ids">, </span>
</t>
+1 -1
View File
@@ -399,7 +399,7 @@
<input type="text" name="city" t-attf-class="form-control #{error.get('city') and 'is-invalid' or ''}" t-att-value="city or partner.city" />
</div>
<div t-attf-class="form-group #{error.get('zip') and 'o_has_error' or ''} col-xl-6">
<label class="col-form-label" for="zipcode">Zip / Postal Code</label>
<label class="col-form-label label-optional" for="zipcode">Zip / Postal Code</label>
<input type="text" name="zipcode" t-attf-class="form-control #{error.get('zip') and 'is-invalid' or ''}" t-att-value="zipcode or partner.zip" />
</div>
<div t-attf-class="form-group #{error.get('country_id') and 'o_has_error' or ''} col-xl-6">
+2 -1
View File
@@ -1046,7 +1046,8 @@ class SaleOrderLine(models.Model):
for line in self:
fpos = line.order_id.fiscal_position_id or line.order_id.partner_id.property_account_position_id
# If company_id is set, always filter taxes by the company
taxes = line.product_id.taxes_id.filtered(lambda r: not line.company_id or r.company_id == line.company_id)
line_company_id = line.company_id or line.order_id.company_id
taxes = line.product_id.taxes_id.filtered(lambda r: not line_company_id or r.company_id == line_company_id)
line.tax_id = fpos.map_tax(taxes, line.product_id, line.order_id.partner_shipping_id) if fpos else taxes
@api.model
+53
View File
@@ -238,3 +238,56 @@ class TestSaleOrder(TestCommonSaleNoChart):
self.assertEquals(self.sale_order.amount_total,
self.sale_order.amount_untaxed + self.sale_order.amount_tax,
'Taxes should be applied')
def test_so_create_multicompany(self):
# Preparing test Data
user_demo = self.env.ref('base.user_demo')
company_1 = self.env.ref('base.main_company')
company_2 = self.env['res.company'].create({
'name': 'company 2',
'parent_id': company_1.id,
})
user_demo.write({
'groups_id': [(4, self.env.ref('sales_team.group_sale_manager').id, False)],
'company_ids': [(6, False, [company_1.id])],
'company_id': company_1.id,
})
so_partner = self.env.ref('base.res_partner_2')
so_partner.write({
'property_account_position_id': False,
})
tax_company_1 = self.env['account.tax'].create({
'name': 'T1',
'amount': 90,
'company_id': company_1.id,
})
tax_company_2 = self.env['account.tax'].create({
'name': 'T2',
'amount': 90,
'company_id': company_2.id,
})
product_shared = self.env['product.template'].create({
'name': 'shared product',
'taxes_id': [(6, False, [tax_company_1.id, tax_company_2.id])],
})
# Use case
so_1 = self.env['sale.order'].sudo(user_demo.id).create({
'partner_id': so_partner.id,
'company_id': company_1.id,
})
so_1.invalidate_cache()
# This is what is done when importing the csv lines (on sale.order):
# id,order_line/product_id
# __export__.sale_order_37_1bb960ba,Product name
so_1.write({
'order_line': [(0, False, {'product_id': product_shared.product_variant_id.id, 'order_id': so_1.id})],
})
self.assertEqual(set(so_1.order_line.tax_id.ids), set([tax_company_1.id]),
'Only taxes from the right company are put by default')
+1 -1
View File
@@ -94,7 +94,7 @@
<field name="name">stock_move multi-company</field>
<field name="model_id" search="[('model','=','stock.move')]" model="ir.model"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),('location_dest_id.company_id', '=', False)]</field>
</record>
<record model="ir.rule" id="stock_quant_rule">
+2
View File
@@ -180,6 +180,7 @@
<record model="ir.ui.view" id="product_form_view_procurement_button">
<field name="name">product.product.procurement</field>
<field name="model">product.product</field>
<field name="groups_id" eval="[(4, ref('stock.group_stock_user'))]"/>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<data>
@@ -265,6 +266,7 @@
<record model="ir.ui.view" id="product_template_form_view_procurement_button">
<field name="name">product.template_procurement</field>
<field name="model">product.template</field>
<field name="groups_id" eval="[(4, ref('stock.group_stock_user'))]"/>
<field name="inherit_id" ref="product.product_template_only_form_view"/>
<field name="arch" type="xml">
<data>
+1 -1
View File
@@ -488,7 +488,7 @@ class TestHeavyMailPerformance(TransactionCase):
})
self.assertEqual(rec.message_partner_ids, self.partners | self.env.user.partner_id)
with self.assertQueryCount(__system__=61, emp=79): # com runbot: 61 - 75 // test_mail only: 60 - 72
with self.assertQueryCount(__system__=62, emp=79): # com runbot: 61 - 75 // test_mail only: 60 - 72
rec.write({'user_id': self.user_portal.id})
self.assertEqual(rec.message_partner_ids, self.partners | self.env.user.partner_id | self.user_portal.partner_id)
+2 -2
View File
@@ -198,11 +198,11 @@ def concat_xml(file_list):
:param list(str) file_list: list of files to check
:returns: (concatenation_result, checksum)
:rtype: (str, str)
:rtype: (bytes, str)
"""
checksum = hashlib.new('sha1')
if not file_list:
return '', checksum.hexdigest()
return b'', checksum.hexdigest()
root = None
for fname in file_list:
@@ -857,6 +857,7 @@ var BasicModel = AbstractModel.extend({
});
_.each(fields, function (field) {
var dataPoint;
record.data[field.name] = null;
if (field.type === 'many2one') {
if (field.value) {
var id = _.isArray(field.value) ? field.value[0] : field.value;
+11
View File
@@ -0,0 +1,11 @@
Vietnam, 2019-07-27
I hereby agree to the terms of the Odoo Individual Contributor License
Agreement v1.0.
I declare that I am authorized and able to make this agreement and sign this
declaration.
Signed,
Anh Vu <vuna2004@gmail.com> https://github.com/anhvu-sg
+11
View File
@@ -0,0 +1,11 @@
Denmark, 2019-07-24
I hereby agree to the terms of the Odoo Individual Contributor License
Agreement v1.0.
I declare that I am authorized and able to make this agreement and sign this
declaration.
Signed,
Stefan Andersen <stfnandersen@gmail.com> https://github.com/stfnndrsn
+4 -2
View File
@@ -25,9 +25,11 @@
<rng:optional><rng:attribute name="consolidation"/></rng:optional>
<rng:optional><rng:attribute name="consolidation_max"/></rng:optional>
<rng:optional><rng:attribute name="consolidation_exclude"/></rng:optional>
<!-- Shouldn't be forward ported to >= saas-12.2 -->
<rng:optional><rng:attribute name="duration_unit"/></rng:optional>
<rng:empty/>
<rng:optional><rng:attribute name="drag_resize"/></rng:optional>
<rng:optional><rng:attribute name="relative_field"/></rng:optional>
<rng:optional><rng:attribute name="action"/></rng:optional>
<rng:empty/>
</rng:element>
</rng:define>
<rng:start>