[MERGE] forward port branch 9.0 up to 51fe54dd8d

This commit is contained in:
Christophe Simonis
2017-04-07 17:34:51 +02:00
36 changed files with 2440 additions and 67 deletions
+2 -2
View File
@@ -1383,9 +1383,9 @@ class AccountPartialReconcile(models.Model):
for rec in self:
if not rec.company_id.currency_exchange_journal_id:
raise UserError(_("You should configure the 'Exchange Rate Journal' in the accounting settings, to manage automatically the booking of accounting entries related to differences between exchange rates."))
if not self.company_id.income_currency_exchange_account_id.id:
if not rec.company_id.income_currency_exchange_account_id.id:
raise UserError(_("You should configure the 'Gain Exchange Rate Account' in the accounting settings, to manage automatically the booking of accounting entries related to differences between exchange rates."))
if not self.company_id.expense_currency_exchange_account_id.id:
if not rec.company_id.expense_currency_exchange_account_id.id:
raise UserError(_("You should configure the 'Loss Exchange Rate Account' in the accounting settings, to manage automatically the booking of accounting entries related to differences between exchange rates."))
move_vals = {'journal_id': rec.company_id.currency_exchange_journal_id.id}
@@ -11,6 +11,7 @@ class ReportPartnerLedger(models.AbstractModel):
def _lines(self, data, partner):
full_account = []
currency = self.env['res.currency']
query_get_data = self.env['account.move.line'].with_context(data['form'].get('used_context', {}))._query_get()
reconcile_clause = "" if data['form']['reconciled'] else ' AND "account_move_line".reconciled = false '
params = [partner.id, tuple(data['computed']['move_state']), tuple(data['computed']['account_ids'])] + query_get_data[2]
@@ -40,6 +41,7 @@ class ReportPartnerLedger(models.AbstractModel):
)
sum += r['debit'] - r['credit']
r['progress'] = sum
r['currency_id'] = currency.browse(r.get('currency_id'))
full_account.append(r)
return full_account
+1 -1
View File
@@ -654,7 +654,7 @@
<field name="act_window_id" ref="action_bank_statement_tree"/>
</record>
<record model="ir.actions.act_window.view" id="action_bank_statement_form_bank">
<field name="sequence" eval="1"/>
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form"/>
<field name="act_window_id" ref="action_bank_statement_tree"/>
@@ -36,7 +36,7 @@
<th>Debit</th>
<th>Credit</th>
<th>Balance</th>
<th t-if="amount_currency">Currency</th>
<th t-if="data['form']['amount_currency']">Currency</th>
</tr>
</thead>
<tbody>
@@ -77,8 +77,10 @@
<td class="text-right">
<span t-esc="line['progress']" t-esc-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
</td>
<td t-if="amount_currency">
<span t-esc="line['amount_currency']" t-esc-options='{"widget": "monetary", "display_currency": "line[\"currency_id\"]"}'/>
<td class="text-right" t-if="data['form']['amount_currency']">
<t t-if="line['currency_id']">
<span t-esc="line['amount_currency']" t-esc-options='{"widget": "monetary", "display_currency": "line[\"currency_id\"]"}'/>
</t>
</td>
</tr>
</tbody>
+3 -4
View File
@@ -454,15 +454,14 @@ class AccountAssetDepreciationLine(models.Model):
@api.multi
def create_move(self, post_move=True):
created_moves = self.env['account.move']
prec = self.env['decimal.precision'].precision_get('Account')
for line in self:
category_id = line.asset_id.category_id
depreciation_date = self.env.context.get('depreciation_date') or line.depreciation_date or fields.Date.context_today(self)
company_currency = line.asset_id.company_id.currency_id
current_currency = line.asset_id.currency_id
amount = current_currency.compute(line.amount, company_currency)
sign = (category_id.journal_id.type == 'purchase' or category_id.journal_id.type == 'sale' and 1) or -1
asset_name = line.asset_id.name + ' (%s/%s)' % (line.sequence, len(line.asset_id.depreciation_line_ids))
prec = self.env['decimal.precision'].precision_get('Account')
move_line_1 = {
'name': asset_name,
'account_id': category_id.account_depreciation_id.id,
@@ -472,7 +471,7 @@ class AccountAssetDepreciationLine(models.Model):
'partner_id': line.asset_id.partner_id.id,
'analytic_account_id': category_id.account_analytic_id.id if category_id.type == 'sale' else False,
'currency_id': company_currency != current_currency and current_currency.id or False,
'amount_currency': company_currency != current_currency and - sign * line.amount or 0.0,
'amount_currency': company_currency != current_currency and - 1.0 * line.amount or 0.0,
}
move_line_2 = {
'name': asset_name,
@@ -483,7 +482,7 @@ class AccountAssetDepreciationLine(models.Model):
'partner_id': line.asset_id.partner_id.id,
'analytic_account_id': category_id.account_analytic_id.id if category_id.type == 'purchase' else False,
'currency_id': company_currency != current_currency and current_currency.id or False,
'amount_currency': company_currency != current_currency and sign * line.amount or 0.0,
'amount_currency': company_currency != current_currency and line.amount or 0.0,
}
move_vals = {
'ref': line.asset_id.code,
@@ -116,6 +116,9 @@ widgets.SidebarFilter.include({
},
initialize_m2o: function() {
var self = this;
if (!this.view.useContacts) {
return;
}
this.dfm = new form_common.DefaultFieldManager(self);
this.dfm.extend_field_desc({
partner_id: {
+1 -1
View File
@@ -56,7 +56,7 @@ class event_event(models.Model):
'interval_unit': 'now',
'interval_type': 'after_sub',
'template_id': self.env.ref('event.event_subscription')
})]
})] if self.user_has_groups('event.group_email_scheduling') else []
# Seats and computation
seats_max = fields.Integer(
+1 -1
View File
@@ -49,7 +49,7 @@ class EventMailScheduler(models.Model):
if self.interval_type in ['before_event', 'after_event']:
self.done = self.mail_sent
else:
self.done = len(self.mail_registration_ids) == len(self.event_id.registration_ids) and all(filter(lambda line: line.mail_sent, self.mail_registration_ids))
self.done = len(self.mail_registration_ids) == len(self.event_id.registration_ids) and all(line.mail_sent for line in self.mail_registration_ids)
@api.one
@api.depends('event_id.state', 'event_id.date_begin', 'interval_type', 'interval_unit', 'interval_nbr')
+1 -1
View File
@@ -779,7 +779,7 @@
<record id="chart2500" model="account.account.template">
<field name="code">2500</field>
<field name="reconcile" eval="True"/>
<field name="user_type_id" ref="account.data_account_type_receivable"/>
<field name="user_type_id" ref="account.data_account_type_non_current_assets"/>
<field name="name">Vorsteuer</field>
<field name="chart_template_id" ref="austria_chart_template"/>
</record>
+2
View File
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
+31
View File
@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Indian - Schedule VI Accounting',
'version': '2.0',
'description': """
Indian Accounting: Chart of Account.
====================================
Indian accounting chart and localization.
Schedule VI chart of account for indian accounting.
Note: The Schedule VI has been revised by MCA and is applicable for all Balance Sheet made after
31st March, 2011. The Format has done away with earlier two options of format of Balance
Sheet, now only Vertical format has been permitted Which is Supported By OpenERP.
""",
'category': 'Localization',
'depends': [
'account',
],
'demo': [],
'data': [
'l10n_in_schedule6_chart.xml',
'l10n_in_schedule6_tax_template.xml',
'account_chart_template.yml',
],
'auto_install': False,
'installable': True,
}
@@ -0,0 +1,3 @@
-
!python {model: account.chart.template, id: indian_chart_template_schedule6}: |
self[0].try_loading_for_current_company()
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,842 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Account Tags -->
<record id="st_tag_in_01" model="account.account.tag">
<field name="name">Tax to Pay</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_02" model="account.account.tag">
<field name="name">C Forms</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_03" model="account.account.tag">
<field name="name">C Forms Tax Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_04" model="account.account.tag">
<field name="name">C Forms Tax Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_05" model="account.account.tag">
<field name="name">Excise Duty</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_06" model="account.account.tag">
<field name="name">Excise Duty 12.36%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_07" model="account.account.tag">
<field name="name">Excise Duty Collected on Sales</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_08" model="account.account.tag">
<field name="name">Education Cess 2% Excise Duty Collected on Sales</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_09" model="account.account.tag">
<field name="name">Higher Education Cess 1% Excise Duty Collected on Sales</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_10" model="account.account.tag">
<field name="name">Excise Duty Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_11" model="account.account.tag">
<field name="name">Education Cess 2% Excise Duty Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_12" model="account.account.tag">
<field name="name">Higher Education Cess 1% Excise Duty Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_13" model="account.account.tag">
<field name="name">Sales Tax</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_14" model="account.account.tag">
<field name="name">Sales Tax 4%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_15" model="account.account.tag">
<field name="name">Sales Tax 4% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_16" model="account.account.tag">
<field name="name">Sales Tax 4% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_17" model="account.account.tag">
<field name="name">Sales Tax 12%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_18" model="account.account.tag">
<field name="name">Sales Tax 12% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_19" model="account.account.tag">
<field name="name">Sales Tax 12% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_20" model="account.account.tag">
<field name="name">Sales Tax 15%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_21" model="account.account.tag">
<field name="name">Sales Tax 15% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_22" model="account.account.tag">
<field name="name">Sales Tax 15% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_23" model="account.account.tag">
<field name="name">Service Tax</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_24" model="account.account.tag">
<field name="name">Service Tax 12.36%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_25" model="account.account.tag">
<field name="name">Service Tax Collected on Sales of Services</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_26" model="account.account.tag">
<field name="name">Education Cess 2% Service Tax Collected on Sales of Services</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_27" model="account.account.tag">
<field name="name">Higher Education Cess 1% Service Tax Collected on Sales of Services</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_28" model="account.account.tag">
<field name="name">Service Tax Paid on Purchase of Services</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_29" model="account.account.tag">
<field name="name">Education Cess 2% Service Tax Paid on Purchase of Services</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_30" model="account.account.tag">
<field name="name">Higher Education Cess 1% Service Tax Paid on Purchase of Services</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_31" model="account.account.tag">
<field name="name">VAT</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_32" model="account.account.tag">
<field name="name">VAT 4%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_33" model="account.account.tag">
<field name="name">VAT 4% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_34" model="account.account.tag">
<field name="name">VAT 4% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_35" model="account.account.tag">
<field name="name">VAT 8%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_36" model="account.account.tag">
<field name="name">VAT 8% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_37" model="account.account.tag">
<field name="name">VAT 8% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_38" model="account.account.tag">
<field name="name">VAT 10%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_39" model="account.account.tag">
<field name="name">VAT 10% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_40" model="account.account.tag">
<field name="name">VAT 10% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_41" model="account.account.tag">
<field name="name">VAT 12.5%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_42" model="account.account.tag">
<field name="name">VAT 12.5% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_43" model="account.account.tag">
<field name="name">VAT 12.5% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_44" model="account.account.tag">
<field name="name">Additional VAT 1%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_45" model="account.account.tag">
<field name="name">Additional VAT 1% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_46" model="account.account.tag">
<field name="name">Additional VAT 1% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_47" model="account.account.tag">
<field name="name">Additional VAT 2.5%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_48" model="account.account.tag">
<field name="name">Additional VAT 2.5% Collected on Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_49" model="account.account.tag">
<field name="name">Additional VAT 2.5% Paid on Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_50" model="account.account.tag">
<field name="name">Tax Bases</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_51" model="account.account.tag">
<field name="name">Base C Forms</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_52" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_53" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_54" model="account.account.tag">
<field name="name">Base Excise Duty</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_55" model="account.account.tag">
<field name="name">Base Excise Duty 12.36%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_56" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_57" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_58" model="account.account.tag">
<field name="name">Base Sales Tax</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_59" model="account.account.tag">
<field name="name">Base Sales Tax 4%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_60" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_61" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_62" model="account.account.tag">
<field name="name">Base Sales Tax 12%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_63" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_64" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_65" model="account.account.tag">
<field name="name">Base Sales Tax 15%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_66" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_67" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_68" model="account.account.tag">
<field name="name">Base Service Tax</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_69" model="account.account.tag">
<field name="name">Base Service Tax 12.36%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_70" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_71" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_72" model="account.account.tag">
<field name="name">Base VAT</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_73" model="account.account.tag">
<field name="name">Base VAT 4%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_74" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_75" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_76" model="account.account.tag">
<field name="name">Base VAT 8%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_77" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_78" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_79" model="account.account.tag">
<field name="name">Base VAT 10%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_80" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_81" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_82" model="account.account.tag">
<field name="name">Base VAT 12.5%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_83" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_84" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_85" model="account.account.tag">
<field name="name">Base Additional VAT 1%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_86" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_87" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_88" model="account.account.tag">
<field name="name">Base Additional VAT 2.5%</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_89" model="account.account.tag">
<field name="name">Base of Sale</field>
<field name="applicability">taxes</field>
</record>
<record id="st_tag_in_90" model="account.account.tag">
<field name="name">Base of Purchase</field>
<field name="applicability">taxes</field>
</record>
<!-- Account Tax Templates -->
<record id="input_tax_15" model="account.tax.template">
<field name="name">(schedule6)Input Sales Tax @ 15%</field>
<field name="description">(schedule6)Input Sales Tax @ 15%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">15</field>
<field name="sequence">10</field>
<field name="account_id" ref="c114214"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_21'), ref('st_tag_in_66')])]"/>
</record>
<record id="input_tax_12" model="account.tax.template">
<field name="name">(schedule6)Input Sales Tax @ 12%</field>
<field name="description">(schedule6)Input Sales Tax @ 12%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">12</field>
<field name="sequence">10</field>
<field name="account_id" ref="c114214"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_18'), ref('st_tag_in_63')])]"/>
</record>
<record id="input_tax_4" model="account.tax.template">
<field name="name">(schedule6)Input Sales Tax @ 4%</field>
<field name="description">(schedule6)Input Sales Tax @ 4%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">4</field>
<field name="sequence">10</field>
<field name="account_id" ref="c114214"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_15'), ref('st_tag_in_60')])]"/>
</record>
<record id="add_input_vat_1" model="account.tax.template">
<field name="name">(schedule6)Additional Input VAT @ 1%</field>
<field name="description">(schedule6)Additional Input VAT @ 1%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">1</field>
<field name="sequence">15</field>
<field name="account_id" ref="c114215"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_86'), ref('st_tag_in_45')])]"/>
</record>
<record id="input_vat_12" model="account.tax.template">
<field name="name">(schedule6)Input VAT @ 12.5%</field>
<field name="description">(schedule6)Input VAT @ 12.5%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">12.5</field>
<field name="sequence">10</field>
<field name="account_id" ref="c114215"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_83'), ref('st_tag_in_42')])]"/>
</record>
<record id="add_input_vat_2" model="account.tax.template">
<field name="name">(schedule6)Additional Input VAT @ 2.5%</field>
<field name="description">(schedule6)Additional Input VAT @ 2.5%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">2.5</field>
<field name="sequence">15</field>
<field name="account_id" ref="c114215"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_89'), ref('st_tag_in_48')])]"/>
</record>
<record id="sale_vat_8" model="account.tax.template">
<field name="name">(schedule6)Input VAT @ 8%</field>
<field name="description">(schedule6)Input VAT @ 8%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">8</field>
<field name="sequence">10</field>
<field name="account_id" ref="c114215"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_77'), ref('st_tag_in_36')])]"/>
</record>
<record id="sale_vat_10" model="account.tax.template">
<field name="name">(schedule6)Input VAT @ 10%</field>
<field name="description">(schedule6)Input VAT @ 10%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">10</field>
<field name="sequence">10</field>
<field name="account_id" ref="c114215"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_39'), ref('st_tag_in_80')])]"/>
</record>
<record id="sale_tax_12" model="account.tax.template">
<field name="name">(schedule6)Input Tax 12%</field>
<field name="description">(schedule6)Input Tax 12%</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">12</field>
<field name="sequence">1</field>
<field name="account_id" ref="c1142111"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_07')])]"/>
</record>
<record id="sale_edu_cess_Excise_Duty_2" model="account.tax.template">
<field name="name">(schedule6)Input Education Cess @ 2% On Excise Duty</field>
<field name="description">(schedule6)Input Education Cess @ 2% On Excise Duty</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">0.24</field>
<field name="sequence">2</field>
<field name="account_id" ref="c1142112"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_08')])]"/>
</record>
<record id="sale_hedu_cess_Excise_Duty_1" model="account.tax.template">
<field name="name">(schedule6)Input Higher Education Cess @ 1% On Excise Duty</field>
<field name="description">(schedule6)Input Higher Education Cess @ 1% On Excise Duty</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">0.1224</field>
<field name="sequence">3</field>
<field name="account_id" ref="c1142113"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_09')])]"/>
</record>
<record id="sale_Excise_Duty_12" model="account.tax.template">
<field name="name">(schedule6)Input Excise Duty @ 12.36%</field>
<field name="description">(schedule6)Input Excise Duty @ 12.36%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">group</field>
<field name="amount">0</field>
<field name="sequence">1</field>
<field name="account_id" ref="c1142111"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('sale_tax_12'),ref('sale_edu_cess_Excise_Duty_2'),ref('sale_hedu_cess_Excise_Duty_1')])]"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_56')])]"/>
</record>
<record id="sale_service_tax12" model="account.tax.template">
<field name="name">(schedule6)Input Service Tax 12%</field>
<field name="description">(schedule6)Input Service Tax 12%</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">12</field>
<field name="sequence">13</field>
<field name="account_id" ref="c1142121"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_25')])]"/>
</record>
<record id="sale_edu_cess_service_tax_2" model="account.tax.template">
<field name="name">(schedule6)Input Education Cess @ 2% On Service Tax</field>
<field name="description">(schedule6)Input Education Cess @ 2% On Service Tax</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">0.24</field>
<field name="sequence">14</field>
<field name="account_id" ref="c1142122"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_26')])]"/>
</record>
<record id="sale_high_edu_service_tax_1" model="account.tax.template">
<field name="name">(schedule6)Input Higher Education Cess @ 1% On Service Tax</field>
<field name="description">(schedule6)Input Higher Education Cess @ 1% On Service Tax</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">0.1224</field>
<field name="sequence">15</field>
<field name="account_id" ref="c1142123"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_27')])]"/>
</record>
<record id="sale_service_tax_12" model="account.tax.template">
<field name="name">(schedule6)Input Service Tax @ 12.36%</field>
<field name="description">(schedule6)Input Service Tax @ 12.36%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">group</field>
<field name="amount">12</field>
<field name="include_base_amount">True</field>
<field name="sequence">8</field>
<field name="account_id" ref="c1142121"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('sale_service_tax12'),ref('sale_edu_cess_service_tax_2'),ref('sale_high_edu_service_tax_1')])]"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_70')])]"/>
</record>
<record id="input_vat_4" model="account.tax.template">
<field name="name">(schedule6)Input VAT @ 4%</field>
<field name="description">(schedule6)Input VAT @ 4%</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">4</field>
<field name="sequence">10</field>
<field name="account_id" ref="c114215"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_33'), ref('st_tag_in_74')])]"/>
</record>
<!--output purchase tax-->
<record id="output_tax_15" model="account.tax.template">
<field name="name">(schedule6)Output Purchase Tax @ 15%</field>
<field name="description">(schedule6)Output Purchase Tax @ 15%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">15</field>
<field name="sequence">10</field>
<field name="account_id" ref="c121610"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_22'), ref('st_tag_in_67')])]"/>
</record>
<record id="output_tax_12" model="account.tax.template">
<field name="name">(schedule6)Output Purchase Tax @ 12%</field>
<field name="description">(schedule6)Output Purchase Tax @ 12%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">12</field>
<field name="sequence">10</field>
<field name="account_id" ref="c121610"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6, 0, [ref('st_tag_in_19'), ref('st_tag_in_64')])]"/>
</record>
<record id="output_tax_4" model="account.tax.template">
<field name="name">(schedule6)Output Purchase Tax @ 4%</field>
<field name="description">(schedule6)Output Purchase Tax @ 4%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">4</field>
<field name="sequence">10</field>
<field name="account_id" ref="c121610"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_61'), ref('st_tag_in_16')])]"/>
</record>
<record id="add_output_vat_1" model="account.tax.template">
<field name="name">(schedule6)Additional Output VAT @ 1%</field>
<field name="description">(schedule6)Additional Output VAT @ 1%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">1</field>
<field name="sequence">15</field>
<field name="account_id" ref="c121611"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_87'), ref('st_tag_in_46')])]"/>
</record>
<record id="output_vat_12" model="account.tax.template">
<field name="name">(schedule6)Output VAT @ 12.5%</field>
<field name="description">(schedule6)Output VAT @ 12.5%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">12.5</field>
<field name="sequence">10</field>
<field name="account_id" ref="c121611"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_43'), ref('st_tag_in_84')])]"/>
</record>
<record id="add_output_vat_2" model="account.tax.template">
<field name="name">(schedule6)Additional Output VAT @ 2.5%</field>
<field name="description">(schedule6)Additional Output VAT @ 2.5%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">2.5</field>
<field name="sequence">15</field>
<field name="account_id" ref="c121611"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_90'), ref('st_tag_in_49')])]"/>
</record>
<record id="purchase_vat_8" model="account.tax.template">
<field name="name">(schedule6)Output VAT @ 8%</field>
<field name="description">(schedule6)Output VAT @ 8%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">8</field>
<field name="sequence">10</field>
<field name="account_id" ref="c121611"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_78'), ref('st_tag_in_37')])]"/>
</record>
<record id="purchase_vat_10" model="account.tax.template">
<field name="name">(schedule6)Output VAT @ 10%</field>
<field name="description">(schedule6)Output VAT @ 10%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">10</field>
<field name="sequence">10</field>
<field name="account_id" ref="c121611"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_81'), ref('st_tag_in_40')])]"/>
</record>
<record id="purchase_edu_cess_12" model="account.tax.template">
<field name="name">(schedule6)Output Tax 12%</field>
<field name="description">(schedule6)Output Tax 12%</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">12</field>
<field name="sequence">2</field>
<field name="account_id" ref="c1216121"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_10')])]"/>
</record>
<record id="purchase_edu_cess_Excise_Duty_2" model="account.tax.template">
<field name="name">(schedule6)Output Education Cess @ 2% Excise Duty</field>
<field name="description">(schedule6)Output Education Cess @ 2% Excise Duty</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">0.24</field>
<field name="sequence">3</field>
<field name="account_id" ref="c1216122"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_11')])]"/>
</record>
<record id="purchase_hedu_cess_Excise_Duty_1" model="account.tax.template">
<field name="name">(schedule6)Output Higher Education Cess @ 1% Excise Duty</field>
<field name="description">(schedule6)Output Higher Education Cess @ 1% Excise Duty</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">0.1224</field>
<field name="sequence">4</field>
<field name="account_id" ref="c1216123"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_12')])]"/>
</record>
<record id="purchase_Excise_Duty_12" model="account.tax.template">
<field name="name">(schedule6)Output Excise Duty @ 12.36%</field>
<field name="description">(schedule6)Output Excise Duty @ 12.36%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">group</field>
<field name="amount">12</field>
<field name="include_base_amount">True</field>
<field name="sequence">1</field>
<field name="account_id" ref="c1216121"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('purchase_edu_cess_12'),ref('purchase_edu_cess_Excise_Duty_2'),ref('purchase_hedu_cess_Excise_Duty_1')])]"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_57')])]"/>
</record>
<record id="purchase_edu_service_tax12" model="account.tax.template">
<field name="name">(schedule6)Output Service Tax 12%</field>
<field name="description">(schedule6)Output Service Tax 12%</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">12</field>
<field name="sequence">9</field>
<field name="account_id" ref="c1216131"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_28')])]"/>
</record>
<record id="purchase_edu_cess_service_tax_2" model="account.tax.template">
<field name="name">(schedule6)Output Education Cess @ 2% On Service Tax</field>
<field name="description">(schedule6)Output Education Cess @ 2% On Service Tax</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">0.24</field>
<field name="sequence">10</field>
<field name="account_id" ref="c1216132"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_29')])]"/>
</record>
<record id="purchase_high_edu_service_tax_1" model="account.tax.template">
<field name="name">(schedule6)Output Higher Education Cess @ 1% On Service Tax</field>
<field name="description">(schedule6)Output Higher Education Cess @ 1% On Service Tax</field>
<field name="type_tax_use">none</field>
<field name="amount_type">percent</field>
<field name="amount">0.1224</field>
<field name="sequence">11</field>
<field name="account_id" ref="c1216133"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_30')])]"/>
</record>
<record id="st_purchase_service_tax_12" model="account.tax.template">
<field name="name">(schedule6)Output Service Tax @ 12.36%</field>
<field name="description">(schedule6)Output Service Tax @ 12.36%</field>
<field name="type_tax_use">purchase</field>
<field name="include_base_amount">True</field>
<field name="amount_type">group</field>
<field name="amount">12</field>
<field name="sequence">8</field>
<field name="account_id" ref="c1216131"/>
<field name="children_tax_ids" eval="[(6, 0, [ref('purchase_edu_service_tax12'),ref('purchase_edu_cess_service_tax_2'),ref('purchase_high_edu_service_tax_1')])]"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_71')])]"/>
</record>
<record id="output_vat_4" model="account.tax.template">
<field name="name">(schedule6)Output VAT @ 4%</field>
<field name="description">(schedule6)Output VAT @ 4%</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">4</field>
<field name="sequence">10</field>
<field name="account_id" ref="c121611"/>
<field name="chart_template_id" ref="indian_chart_template_schedule6"/>
<field name="tag_ids" eval="[(6,0,[ref('st_tag_in_34'), ref('st_tag_in_75')])]"/>
</record>
</data>
</openerp>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

+1 -2
View File
@@ -9,8 +9,7 @@ from openerp import tools
from openerp import SUPERUSER_ID
from openerp.osv import osv, fields
URL_REGEX = r'(\bhref=[\'"]([^\'"]+)[\'"])'
from openerp.addons.link_tracker.models.link_tracker import URL_REGEX
class MailMail(osv.Model):
+2 -2
View File
@@ -500,11 +500,11 @@ class ProductChangeMixin(object):
if product:
product_obj = self.pool.get('product.product').browse(cr, uid, product, context=ctx)
partner = self.pool.get('res.partner').browse(cr, uid, partner_id)
if partner_id:
partner = self.pool.get('res.partner').browse(cr, uid, partner_id)
result['tax_id'] = self.pool.get('account.fiscal.position').map_tax(cr, uid, partner.property_account_position_id, product_obj.taxes_id, context=ctx)
result['name'] = product_obj.display_name
result['name'] = product_obj.with_context(lang=partner.lang).display_name
result['product_uom'] = product_obj.uom_id and product_obj.uom_id.id or False
if not pricelist:
warning = {
+1 -1
View File
@@ -5,7 +5,7 @@
string="Quotation / Order"
id="action_report_mrp_repair_order"
model="mrp.repair"
name="mrp_repair.report_mrprepairorder"
name="mrp_repair.report_mrprepairorder2"
file="mrp_repair.report_mrprepairorder"
report_type="qweb-pdf"
/>
@@ -2,9 +2,9 @@
<openerp>
<data>
<template id="report_mrprepairorder">
<t t-call="report.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="report.external_layout">
<t t-set="o" t-value="o.with_context({'lang': o.partner_id.lang})" />
<div class="page">
<div class="oe_structure"/>
@@ -153,6 +153,13 @@
</div>
</t>
</t>
</template>
<template id="report_mrprepairorder2">
<t t-call="report.html_container">
<t t-foreach="docs" t-as="doc">
<t t-call="mrp_repair.report_mrprepairorder" t-lang="doc.partner_id.lang"/>
</t>
</t>
</template>
</data>
+3 -3
View File
@@ -598,8 +598,8 @@ class PosOrder(models.Model):
# when the pos.config has no picking_type_id set only the moves will be created
if moves and not return_picking and not order_picking:
moves.action_confirm()
moves.force_assign()
moves.action_assign()
moves.filtered(lambda m: m.state in ['confirmed', 'waiting']).force_assign()
moves.filtered(lambda m: m.product_id.tracking == 'none').action_done()
return True
@@ -607,7 +607,7 @@ class PosOrder(models.Model):
def _force_picking_done(self, picking):
"""Force picking in order to be set as done."""
for order in self:
picking.action_confirm()
picking.action_assign()
picking.force_assign()
# Mark pack operations as done
for pack in picking.pack_operation_ids.filtered(lambda x: x.product_id.tracking == 'none'):
+3 -1
View File
@@ -1274,7 +1274,9 @@ exports.Orderline = Backbone.Model.extend({
this.trigger('change',this);
},
get_unit_price: function(){
return round_di(this.price || 0, this.pos.dp['Product Price'])
var digits = this.pos.dp['Product Price'];
// round and truncate to mimic _sybmbol_set behavior
return parseFloat(round_di(this.price || 0, digits).toFixed(digits));
},
get_unit_display_price: function(){
if (this.pos.config.iface_tax_included) {
@@ -1329,6 +1329,16 @@ var ClientListScreenWidget = ScreenWidget.extend({
contents.append($(QWeb.render('ClientDetailsEdit',{widget:this,partner:partner})));
this.toggle_save_button();
// Browsers attempt to scroll invisible input elements
// into view (eg. when hidden behind keyboard). They don't
// seem to take into account that some elements are not
// scrollable.
contents.find('input').blur(function() {
setTimeout(function() {
self.$('.window').scrollTop(0);
}, 0);
});
contents.find('.image-uploader').on('change',function(event){
self.load_image_file(event.target.files[0],function(res){
if (res) {
+4 -1
View File
@@ -512,7 +512,10 @@
<filter name="groupby_supplier" string="Vendor" domain="[]" context="{'group_by' : 'partner_id'}" />
<filter name="groupby_product" string="Product" domain="[]" context="{'group_by' : 'product_id'}" />
<filter string="Order Reference" domain="[]" context="{'group_by' :'order_id'}"/>
<filter string="Status" domain="[]" context="{'group_by' : 'state'}" />
<!-- Commented out because of the 'state' field's attribute typo "stored=True"
that can't be fixed in 9.0 as it would change the schema. Hence the only
option is to disable this filter. Not to be forward ported to 10.0 !
<filter string="Status" domain="[]" context="{'group_by' : 'state'}" /> -->
</group>
</search>
</field>
-1
View File
@@ -308,7 +308,6 @@ class Report(osv.Model):
'report_name': report.report_name,
'report_type': report.report_type,
'report_file': report.report_file,
'context': context,
}
@api.v8
+14 -13
View File
@@ -280,23 +280,26 @@ class ProcurementOrder(models.Model):
@api.model
def _procure_orderpoint_confirm(self, use_new_cursor=False, company_id=False):
""" Create procurements based on orderpoints.
:param bool use_new_cursor: if set, use a dedicated cursor and auto-commit after processing each procurement.
:param bool use_new_cursor: if set, use a dedicated cursor and auto-commit after processing
1000 orderpoints.
This is appropriate for batch jobs only.
"""
if use_new_cursor:
cr = registry(self._cr.dbname).cursor()
self = self.with_env(self.env(cr=cr))
OrderPoint = self.env['stock.warehouse.orderpoint']
Procurement = self.env['procurement.order']
ProcurementAutorundefer = Procurement.with_context(procurement_autorun_defer=True)
procurement_list = []
orderpoints_noprefetch = OrderPoint.with_context(prefetch_fields=False).search(
company_id and [('company_id', '=', company_id)] or [],
order=self._procurement_from_orderpoint_get_order())
order=self._procurement_from_orderpoint_get_order()).ids
while orderpoints_noprefetch:
orderpoints = OrderPoint.browse(orderpoints_noprefetch[:1000].ids)
if use_new_cursor:
cr = registry(self._cr.dbname).cursor()
self = self.with_env(self.env(cr=cr))
OrderPoint = self.env['stock.warehouse.orderpoint']
Procurement = self.env['procurement.order']
ProcurementAutorundefer = Procurement.with_context(procurement_autorun_defer=True)
procurement_list = []
orderpoints = OrderPoint.browse(orderpoints_noprefetch[:1000])
orderpoints_noprefetch = orderpoints_noprefetch[1000:]
# Calculate groups that can be executed together
@@ -343,7 +346,7 @@ class ProcurementOrder(models.Model):
except OperationalError:
if use_new_cursor:
orderpoints_noprefetch += orderpoint.id
orderpoints_noprefetch += [orderpoint.id]
cr.rollback()
continue
else:
@@ -367,8 +370,6 @@ class ProcurementOrder(models.Model):
if use_new_cursor:
cr.commit()
cr.close()
if use_new_cursor:
cr.commit()
cr.close()
return {}
+4 -1
View File
@@ -11,10 +11,13 @@
<div>
<span><strong>Customer Address:</strong></span>
</div>
<div t-if="o.partner_id" name="partner_header">
<div t-if="o.move_lines and o.move_lines[0].partner_id" name="partner_header">
<div t-field="o.move_lines[0].partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
</div>
<div t-if="not (o.move_lines and o.move_lines[0].partner_id) and o.partner_id" name="partner_header">
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
</div>
</div>
</div>
<h2>
+4
View File
@@ -636,6 +636,8 @@ class Database(http.Controller):
@http.route('/web/database/create', type='http', auth="none", methods=['POST'], csrf=False)
def create(self, master_pwd, name, lang, password, **post):
try:
if not re.match('^[a-zA-Z][a-zA-Z0-9_]+$', name):
raise Exception(_('Invalid database name. Only alphanumerical characters and underscore are allowed.'))
# country code could be = "False" which is actually True in python
country_code = post.get('country_code') or False
request.session.proxy("db").create_database(master_pwd, name, bool(post.get('demo')), lang, password, post['login'], country_code)
@@ -648,6 +650,8 @@ class Database(http.Controller):
@http.route('/web/database/duplicate', type='http', auth="none", methods=['POST'], csrf=False)
def duplicate(self, master_pwd, name, new_name):
try:
if not re.match('^[a-zA-Z][a-zA-Z0-9_]+$', new_name):
raise Exception(_('Invalid database name. Only alphanumerical characters and underscore are allowed.'))
request.session.proxy("db").duplicate_database(master_pwd, name, new_name)
return http.local_redirect('/web/database/manager')
except Exception, e:
+3 -3
View File
@@ -61,7 +61,7 @@
<div class="row">
<div class="col-md-12">
<label for="name" class="control-label">Database Name</label>
<input id="name" type="text" name="name" class="form-control" required="required" autocomplete="off"/>
<input id="name" type="text" name="name" class="form-control" required="required" autocomplete="off" pattern="^[a-zA-Z][a-zA-Z0-9_]+$" title="Only alphanumerical characters and underscore are allowed"/>
</div>
</div>
</div>
@@ -208,7 +208,7 @@
</div>
<div class="form-group">
<label for="name" class="control-label">Database Name</label>
<input id="name" type="text" name="name" class="form-control" required="required"/>
<input id="name" type="text" name="name" class="form-control" required="required" pattern="^[a-zA-Z][a-zA-Z0-9_]+$" title="Only alphanumerical characters and underscore are allowed"/>
</div>
<div class="form-group">
<label for="copy">This database might have been moved or copied.</label>
@@ -281,7 +281,7 @@
</div>
<div class="form-group">
<label for="new_name" class="control-label">New Name</label>
<input id="new_name" type="text" name="new_name" class="form-control" required="required"/>
<input id="new_name" type="text" name="new_name" class="form-control" required="required" pattern="^[a-zA-Z][a-zA-Z0-9_]+$" title="Only alphanumerical characters and underscore are allowed"/>
</div>
</div>
<div class="modal-footer">
@@ -321,7 +321,15 @@ eventHandler.modules.popover.update = function ($popover, oStyle, isAirMode) {
$imagePopover.find('.o_image_alt').text( (alt || "").replace(/&quot;/g, '"') ).parent().toggle(oStyle.image.tagName === "IMG");
$imagePopover.show();
range.createFromNode(dom.firstChild(oStyle.image)).select();
// for video tag (non-void) we select the range over the tag,
// for other media types we get the first descendant leaf element
var target_node = oStyle.image;
if (!oStyle.image.className.match(/(^|\s)media_iframe_video(\s|$)/i)) {
target_node = dom.firstChild(target_node);
}
range.createFromNode(target_node).select();
// save range on the editor so it is not lost if restored
eventHandler.modules.editor.saveRange(dom.makeLayoutInfo(target_node).editable());
} else {
$(".note-control-selection").hide();
}
@@ -289,8 +289,10 @@ $('.oe_website_sale').each(function () {
var $ul = $(ev.target).closest('.js_add_cart_variants');
var $parent = $ul.closest('.js_product');
var $product_id = $parent.find('input.product_id').first();
var $price = $parent.find(".oe_price:first .oe_currency_value");
var $default_price = $parent.find(".oe_default_price:first .oe_currency_value");
var $price = $parent.find(".oe_price:first .oe_currency_value")
.add($('#product_confirmation').find(".oe_price"));
var $default_price = $parent.find(".oe_default_price:first .oe_currency_value")
.add($('#product_confirmation').find(".oe_default_price:first .oe_currency_value"));
var $optional_price = $parent.find(".oe_optional:first .oe_currency_value");
var variant_ids = $ul.data("attribute_value_ids");
var values = [];
@@ -55,7 +55,7 @@
</div>
</td>
<td>
<span t-attf-class="text-danger oe_default_price" t-att-style="'' if (compute_currency(product.lst_price) - product.price) &gt; 0.1 else 'display: none;'" style="text-decoration: line-through; white-space: nowrap;"
<span t-attf-class="text-danger oe_default_price" style="text-decoration: line-through; white-space: nowrap;"
t-field="product.lst_price"
t-field-options='{
"widget": "monetary",
+15
View File
@@ -0,0 +1,15 @@
Canada, 2017-4-4
Métal Sartigan agrees to the terms of the Odoo Corporate Contributor License
Agreement v1.0.
I declare that I am authorized and able to make this agreement and sign this
declaration.
Signed,
Jérôme Thériault jerther@gmail.com https://github.com/jerther
List of contributors:
Jérôme Thériault jerther@gmail.com https://github.com/jerther
+1 -1
View File
@@ -736,7 +736,7 @@ class GroupsView(models.Model):
xml = E.field(E.group(*(xml1), col="2"), E.group(*(xml2), col="4"), name="groups_id", position="replace")
xml.addprevious(etree.Comment("GENERATED AUTOMATICALLY BY GROUPS"))
xml_content = etree.tostring(xml, pretty_print=True, xml_declaration=True, encoding="utf-8")
view.with_context(lang=None).write({'arch': xml_content})
view.with_context(lang=None).write({'arch': xml_content, 'arch_fs': False})
def get_application_groups(self, domain):
""" Return the non-share groups that satisfy ``domain``. """
+9 -9
View File
@@ -211,8 +211,8 @@ class test_expression(common.TransactionCase):
self.assertEqual(set(partner_ids), set([p_aa]),
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..'): incorrect result")
# Test produced queries
self.assertEqual(len(self.query_list), 3,
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') should produce 3 queries (1 in res_partner_bank, 2 on res_partner)")
self.assertEqual(len(self.query_list), 2,
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') should produce 2 queries (1 in res_partner_bank, 1 on res_partner)")
sql_query = self.query_list[0].get_sql()
self.assertIn('res_partner_bank', sql_query[0],
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') first query incorrect main table")
@@ -223,13 +223,13 @@ class test_expression(common.TransactionCase):
self.assertEqual(set(['%' + name_test + '%']), set(sql_query[2]),
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') first query incorrect parameter")
sql_query = self.query_list[2].get_sql()
sql_query = self.query_list[1].get_sql()
self.assertIn('res_partner', sql_query[0],
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') third query incorrect main table")
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') second query incorrect main table")
self.assertIn('"res_partner"."id" in (%s)', sql_query[1],
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') third query incorrect where condition")
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') second query incorrect where condition")
self.assertEqual(set([p_aa]), set(sql_query[2]),
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') third query incorrect parameter")
"_auto_join off: ('bank_ids.sanitized_acc_number', 'like', '..') second query incorrect parameter")
# Do: cascaded one2many without _auto_join
self._reinit_mock()
@@ -238,8 +238,8 @@ class test_expression(common.TransactionCase):
self.assertEqual(set(partner_ids), set([p_a, p_b]),
"_auto_join off: ('child_ids.bank_ids.id', 'in', [..]): incorrect result")
# Test produced queries
self.assertEqual(len(self.query_list), 5,
"_auto_join off: ('child_ids.bank_ids.id', 'in', [..]) should produce 5 queries (1 in res_partner_bank, 4 on res_partner)")
self.assertEqual(len(self.query_list), 3,
"_auto_join off: ('child_ids.bank_ids.id', 'in', [..]) should produce 3 queries (1 in res_partner_bank, 2 on res_partner)")
# Do: one2many with _auto_join
partner_bank_ids_col._auto_join = True
@@ -470,7 +470,7 @@ class test_expression(common.TransactionCase):
self.assertTrue(set([p_a, p_b]).issubset(set(partner_ids)),
"_auto_join off: ('child_ids.state_id.country_id.code', 'like', '..') incorrect result")
# Test produced queries
self.assertEqual(len(self.query_list), 5,
self.assertEqual(len(self.query_list), 4,
"_auto_join off: ('child_ids.state_id.country_id.code', 'like', '..') number of queries incorrect")
# Do: ('child_ids.state_id.country_id.code', 'like', '..') with _auto_join
+1 -1
View File
@@ -850,7 +850,7 @@ class BaseModel(object):
field = cls._fields.get(name)
if not field:
_logger.warning("method %s.%s: @constrains parameter %r is not a field name", cls._name, attr, name)
if not (field.store or field.column and field.column._fnct_inv):
elif not (field.store or field.column and field.column._fnct_inv):
_logger.warning("method %s.%s: @constrains parameter %r is not writeable", cls._name, attr, name)
methods.append(func)
+13 -10
View File
@@ -883,8 +883,7 @@ class expression(object):
# Making search easier when there is a left operand as column.o2m or column.m2m
elif len(path) > 1 and column and column._type in ['many2many', 'one2many']:
right_ids = comodel.search(cr, uid, [(path[1], operator, right)], context=context)
table_ids = model.search(cr, uid, [(path[0], 'in', right_ids)], context=dict(context, active_test=False))
leaf.leaf = ('id', 'in', table_ids)
leaf.leaf = (path[0], 'in', right_ids)
push(leaf)
elif not column:
@@ -1012,15 +1011,16 @@ class expression(object):
rel_table, rel_id1, rel_id2 = column._sql_names(model)
if operator in HIERARCHY_FUNCS:
def _rec_convert(ids):
if comodel == model:
return ids
return select_from_where(cr, rel_id1, rel_table, rel_id2, ids, operator)
ids2 = to_ids(right, comodel, context)
dom = HIERARCHY_FUNCS[operator]('id', ids2, comodel, context=context)
ids2 = comodel.search(cr, uid, dom, context=context)
push(create_substitution_leaf(leaf, ('id', 'in', _rec_convert(ids2)), model))
if comodel == model:
push(create_substitution_leaf(leaf, ('id', 'in', ids2), model))
else:
subquery = 'SELECT "%s" FROM "%s" WHERE "%s" IN %%s' % (rel_id1, rel_table, rel_id2)
# avoid flattening of argument in to_sql()
subquery = cr.mogrify(subquery, [tuple(ids2)])
push(create_substitution_leaf(leaf, ('id', 'inselect', (subquery, [])), internal=True))
else:
call_null_m2m = True
if right is not False:
@@ -1046,8 +1046,11 @@ class expression(object):
operator = 'in' # operator changed because ids are directly related to main object
else:
call_null_m2m = False
m2m_op = 'not in' if operator in NEGATIVE_TERM_OPERATORS else 'in'
push(create_substitution_leaf(leaf, ('id', m2m_op, select_from_where(cr, rel_id1, rel_table, rel_id2, res_ids, operator) or [0]), model))
subop = 'not inselect' if operator in NEGATIVE_TERM_OPERATORS else 'inselect'
subquery = 'SELECT "%s" FROM "%s" WHERE "%s" IN %%s' % (rel_id1, rel_table, rel_id2)
# avoid flattening of argument in to_sql()
subquery = cr.mogrify(subquery, [tuple(filter(None, res_ids))])
push(create_substitution_leaf(leaf, ('id', subop, (subquery, [])), internal=True))
if call_null_m2m:
m2m_op = 'in' if operator in NEGATIVE_TERM_OPERATORS else 'not in'