[MERGE] forward port branch 9.0 up to 51fe54dd8d
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
@@ -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 |
@@ -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):
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'):
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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(/"/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) > 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",
|
||||
|
||||
@@ -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
|
||||
@@ -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``. """
|
||||
|
||||
@@ -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
@@ -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
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user