[MERGE] forward port branch saas-17 up to fe77df3ba4
This commit is contained in:
+3
-3
@@ -682,9 +682,9 @@ file_filter = addons/stock_landed_costs/i18n/<lang>.po
|
||||
source_file = addons/stock_landed_costs/i18n/stock_landed_costs.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-master.stock_picking_wave]
|
||||
file_filter = addons/stock_picking_wave/i18n/<lang>.po
|
||||
source_file = addons/stock_picking_wave/i18n/stock_picking_wave.pot
|
||||
[odoo-master.stock_picking_batch]
|
||||
file_filter = addons/stock_picking_batch/i18n/<lang>.po
|
||||
source_file = addons/stock_picking_batch/i18n/stock_picking_batch.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-master.survey]
|
||||
|
||||
@@ -355,22 +355,19 @@ class AccountInvoice(models.Model):
|
||||
has_outstanding = fields.Boolean(compute='_get_outstanding_info_JSON', groups="account.group_account_invoice")
|
||||
|
||||
#fields use to set the sequence, on the first invoice of the journal
|
||||
sequence_number_next = fields.Char(string='Next Number', compute="_get_sequence_prefix", inverse="_set_sequence_next")
|
||||
sequence_number_next = fields.Char(string='Next Number', compute="_get_sequence_number_next", inverse="_set_sequence_next")
|
||||
sequence_number_next_prefix = fields.Char(string='Next Number', compute="_get_sequence_prefix")
|
||||
|
||||
_sql_constraints = [
|
||||
('number_uniq', 'unique(number, company_id, journal_id, type)', 'Invoice Number must be unique per Company!'),
|
||||
]
|
||||
|
||||
def _compute_portal_url(self):
|
||||
super(AccountInvoice, self)._compute_portal_url()
|
||||
for order in self:
|
||||
order.portal_url = '/my/invoices/%s' % (order.id)
|
||||
|
||||
def _no_existing_validated_invoice(self):
|
||||
def _get_seq_number_next_stuff(self):
|
||||
self.ensure_one()
|
||||
journal_sequence = self.journal_id.sequence_id
|
||||
if self.journal_id.refund_sequence:
|
||||
domain = [('type', '=', self.type)]
|
||||
journal_sequence = self.type in ['in_refund', 'out_refund'] and self.journal_id.refund_sequence_id or self.journal_id.sequence_id
|
||||
elif self.type in ['in_invoice', 'in_refund']:
|
||||
domain = [('type', 'in', ['in_invoice', 'in_refund'])]
|
||||
else:
|
||||
@@ -378,11 +375,16 @@ class AccountInvoice(models.Model):
|
||||
if self.id:
|
||||
domain += [('id', '<>', self.id)]
|
||||
domain += [('journal_id', '=', self.journal_id.id), ('state', 'not in', ['draft', 'cancel'])]
|
||||
return not self.search(domain, limit=1)
|
||||
return journal_sequence, domain
|
||||
|
||||
def _compute_portal_url(self):
|
||||
super(AccountInvoice, self)._compute_portal_url()
|
||||
for order in self:
|
||||
order.portal_url = '/my/invoices/%s' % (order.id)
|
||||
|
||||
@api.depends('state', 'journal_id', 'date_invoice')
|
||||
def _get_sequence_prefix(self):
|
||||
""" computes the number that will be assigned to the first invoice/bill/refund of a journal, in order to
|
||||
""" computes the prefix of the number that will be assigned to the first invoice/bill/refund of a journal, in order to
|
||||
let the user manually change it.
|
||||
"""
|
||||
if not self.env.user._is_admin():
|
||||
@@ -391,18 +393,25 @@ class AccountInvoice(models.Model):
|
||||
invoice.sequence_number_next = ''
|
||||
return
|
||||
for invoice in self:
|
||||
if invoice.journal_id.refund_sequence:
|
||||
journal_sequence = invoice.type in ['in_refund', 'out_refund'] and invoice.journal_id.refund_sequence_id or invoice.journal_id.sequence_id
|
||||
else:
|
||||
journal_sequence = invoice.journal_id.sequence_id
|
||||
|
||||
if (invoice.state == 'draft') and self._no_existing_validated_invoice():
|
||||
prefix, dummy = journal_sequence.with_context(ir_sequence_date=invoice.date_invoice)._get_prefix_suffix()
|
||||
journal_sequence, domain = invoice._get_seq_number_next_stuff()
|
||||
if (invoice.state == 'draft') and not self.search(domain, limit=1):
|
||||
prefix, dummy = journal_sequence.with_context(ir_sequence_date=invoice.date_invoice,
|
||||
ir_sequence_date_range=invoice.date_invoice)._get_prefix_suffix()
|
||||
invoice.sequence_number_next_prefix = prefix
|
||||
else:
|
||||
invoice.sequence_number_next_prefix = False
|
||||
|
||||
@api.depends('state', 'journal_id')
|
||||
def _get_sequence_number_next(self):
|
||||
""" computes the number that will be assigned to the first invoice/bill/refund of a journal, in order to
|
||||
let the user manually change it.
|
||||
"""
|
||||
for invoice in self:
|
||||
journal_sequence, domain = invoice._get_seq_number_next_stuff()
|
||||
if (invoice.state == 'draft') and not self.search(domain, limit=1):
|
||||
number_next = journal_sequence._get_current_sequence().number_next_actual
|
||||
invoice.sequence_number_next = '%%0%sd' % journal_sequence.padding % number_next
|
||||
else:
|
||||
invoice.sequence_number_next_prefix = False
|
||||
invoice.sequence_number_next = ''
|
||||
|
||||
@api.multi
|
||||
|
||||
@@ -627,19 +627,40 @@ class AccountMoveLine(models.Model):
|
||||
@api.model
|
||||
def get_reconciliation_proposition(self, account_id, partner_id=False):
|
||||
""" Returns two lines whose amount are opposite """
|
||||
|
||||
target_currency = (self.currency_id and self.amount_currency) and self.currency_id or self.company_id.currency_id
|
||||
partner_id_condition = partner_id and 'AND a.partner_id = %(partner_id)s' or ''
|
||||
|
||||
rec_prop = self.env['account.move.line']
|
||||
# Get pairs
|
||||
partner_id_condition = partner_id and 'AND a.partner_id = %(partner_id)s AND b.partner_id = %(partner_id)s' or ''
|
||||
query = """
|
||||
SELECT a.id, b.id
|
||||
FROM account_move_line a, account_move_line b
|
||||
WHERE a.amount_residual = -b.amount_residual
|
||||
AND NOT a.reconciled AND NOT b.reconciled
|
||||
AND a.account_id = %(account_id)s AND b.account_id = %(account_id)s
|
||||
{partner_id_condition}
|
||||
ORDER BY a.date desc
|
||||
LIMIT 10
|
||||
""".format(**locals())
|
||||
move_line_id = self.env.context.get('move_line_id', False)
|
||||
if move_line_id:
|
||||
move_line = self.env['account.move.line'].browse(move_line_id)
|
||||
amount = move_line.amount_residual;
|
||||
rec_prop = move_line
|
||||
query = """
|
||||
SELECT a.id, a.id FROM account_move_line a
|
||||
WHERE a.amount_residual = -%(amount)s
|
||||
AND NOT a.reconciled
|
||||
AND a.account_id = %(account_id)s
|
||||
AND a.id != %(move_line_id)s
|
||||
{partner_id_condition}
|
||||
ORDER BY a.date desc
|
||||
LIMIT 10
|
||||
""".format(**locals())
|
||||
else:
|
||||
partner_id_condition = partner_id_condition and partner_id_condition+' AND b.partner_id = %(partner_id)s' or ''
|
||||
query = """
|
||||
SELECT a.id, b.id
|
||||
FROM account_move_line a, account_move_line b
|
||||
WHERE a.amount_residual = -b.amount_residual
|
||||
AND NOT a.reconciled AND NOT b.reconciled
|
||||
AND a.account_id = %(account_id)s AND b.account_id = %(account_id)s
|
||||
{partner_id_condition}
|
||||
ORDER BY a.date desc
|
||||
LIMIT 10
|
||||
""".format(**locals())
|
||||
|
||||
self.env.cr.execute(query, locals())
|
||||
pairs = self.env.cr.fetchall()
|
||||
|
||||
@@ -648,11 +669,12 @@ class AccountMoveLine(models.Model):
|
||||
allowed_ids = set(self.env['account.move.line'].browse(all_pair_ids).ids)
|
||||
pairs = [pair for pair in pairs if pair[0] in allowed_ids and pair[1] in allowed_ids]
|
||||
|
||||
# Return lines formatted
|
||||
if len(pairs) > 0:
|
||||
target_currency = (self.currency_id and self.amount_currency) and self.currency_id or self.company_id.currency_id
|
||||
lines = self.browse(list(pairs[0]))
|
||||
return lines.prepare_move_lines_for_reconciliation_widget(target_currency=target_currency)
|
||||
rec_prop += self.browse(list(set(pairs[0])))
|
||||
|
||||
if len(rec_prop) > 0:
|
||||
# Return lines formatted
|
||||
return rec_prop.prepare_move_lines_for_reconciliation_widget(target_currency=target_currency)
|
||||
return []
|
||||
|
||||
@api.model
|
||||
|
||||
@@ -298,11 +298,18 @@ class account_payment(models.Model):
|
||||
|
||||
def open_payment_matching_screen(self):
|
||||
# Open reconciliation view for customers/suppliers
|
||||
action_context = {'show_mode_selector': False, 'company_ids': [self.company_id.id], 'partner_ids': [self.partner_id.commercial_partner_id.id]}
|
||||
move_line_id = False
|
||||
for move_line in self.move_line_ids:
|
||||
if move_line.account_id.reconcile:
|
||||
move_line_id = move_line.id
|
||||
break;
|
||||
action_context = {'company_ids': [self.company_id.id], 'partner_ids': [self.partner_id.commercial_partner_id.id]}
|
||||
if self.partner_type == 'customer':
|
||||
action_context.update({'mode': 'customers'})
|
||||
elif self.partner_type == 'supplier':
|
||||
action_context.update({'mode': 'suppliers'})
|
||||
if move_line_id:
|
||||
action_context.update({'move_line_id': move_line_id})
|
||||
return {
|
||||
'type': 'ir.actions.client',
|
||||
'tag': 'manual_reconciliation_view',
|
||||
|
||||
@@ -201,7 +201,10 @@ var StatementAction = Widget.extend(ControlPanelMixin, {
|
||||
_.each(self.model.lines, function (line, _handle) {
|
||||
if (line.mode !== 'inactive' && _handle !== handle) {
|
||||
self.model.changeMode(_handle, 'inactive');
|
||||
self._getWidget(_handle).update(line);
|
||||
var widget = self._getWidget(_handle);
|
||||
if (widget) {
|
||||
widget.update(line);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1061,6 +1061,7 @@ var ManualModel = StatementModel.extend({
|
||||
model: 'account.move.line',
|
||||
method: 'get_data_for_manual_reconciliation',
|
||||
args: args,
|
||||
context: context,
|
||||
})
|
||||
.then(function (result) {
|
||||
var defs = _.map(result, self._formatLine.bind(self, context.mode));
|
||||
@@ -1073,6 +1074,7 @@ var ManualModel = StatementModel.extend({
|
||||
model: 'account.move.line',
|
||||
method: 'get_data_for_manual_reconciliation',
|
||||
args: ['account', self.account_ids],
|
||||
context: context,
|
||||
})
|
||||
.then(function (result) {
|
||||
var defs = _.map(result, self._formatLine.bind(self, 'accounts'));
|
||||
@@ -1091,6 +1093,7 @@ var ManualModel = StatementModel.extend({
|
||||
model: 'account.move.line',
|
||||
method: 'get_data_for_manual_reconciliation_widget',
|
||||
args: [partner_ids, account_ids],
|
||||
context: context,
|
||||
})
|
||||
.then(function (result) {
|
||||
var defs = _.map(result.accounts, self._formatLine.bind(self, 'accounts'));
|
||||
@@ -1269,6 +1272,10 @@ var ManualModel = StatementModel.extend({
|
||||
this._super(line, props);
|
||||
if (props.length) {
|
||||
_.each(props, function (prop) {
|
||||
var tmp_value = prop.debit || prop.credit;
|
||||
prop.credit = prop.credit !== 0 ? 0 : tmp_value;
|
||||
prop.debit = prop.debit !== 0 ? 0 : tmp_value;
|
||||
prop.amount = -prop.amount;
|
||||
prop.journal_id = self._formatNameGet(prop.journal_id || line.journal_id);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -260,10 +260,13 @@ var LineRenderer = Widget.extend(FieldManagerMixin, {
|
||||
'click .accounting_view .line_info_button.fa-exclamation-triangle': '_onTogglePartialReconcile',
|
||||
'click .reconcile_model_create': '_onCreateReconcileModel',
|
||||
'click .reconcile_model_edit': '_onEditReconcileModel',
|
||||
'keyup input': '_onInputKeyup',
|
||||
'blur input': '_onInputKeyup',
|
||||
},
|
||||
custom_events: _.extend({}, FieldManagerMixin.custom_events, {
|
||||
'field_changed': '_onFieldChanged',
|
||||
}),
|
||||
_avoidFieldUpdate: {},
|
||||
|
||||
/**
|
||||
* create partner_id field in editable mode
|
||||
@@ -407,6 +410,7 @@ var LineRenderer = Widget.extend(FieldManagerMixin, {
|
||||
this.model.notifyChanges(this.handleCreateRecord, state.createForm);
|
||||
var record = this.model.get(this.handleCreateRecord);
|
||||
_.each(this.fields, function (field, fieldName) {
|
||||
if (self._avoidFieldUpdate[fieldName]) return;
|
||||
if (fieldName === "partner_id") return;
|
||||
if ((data[fieldName] || state.createForm[fieldName]) && !_.isEqual(state.createForm[fieldName], data[fieldName])) {
|
||||
field.reset(record);
|
||||
@@ -598,6 +602,32 @@ var LineRenderer = Widget.extend(FieldManagerMixin, {
|
||||
_onFilterChange: function () {
|
||||
this.trigger_up('change_filter', {'data': _.str.strip($(event.target).val())});
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
* @param {keyup event} event
|
||||
*/
|
||||
_onInputKeyup: function (event) {
|
||||
if(event.keyCode === 13) {
|
||||
if (_.findWhere(this.model.lines, {mode: 'create'}).balance.amount) {
|
||||
this._onCreateProposition();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var self = this;
|
||||
for (var fieldName in this.fields) {
|
||||
var field = this.fields[fieldName];
|
||||
if (!field.$el.is(event.target)) {
|
||||
continue;
|
||||
}
|
||||
this._avoidFieldUpdate[field.name] = event.type !== 'focusout';
|
||||
field.value = false;
|
||||
field._setValue($(event.target).val()).then(function () {
|
||||
self._avoidFieldUpdate[field.name] = false;
|
||||
});
|
||||
break;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
|
||||
@@ -995,9 +995,9 @@ QUnit.module('account', {
|
||||
" Agrolait 101200 ",
|
||||
"should display the partner and the account code as title");
|
||||
|
||||
assert.strictEqual(clientAction.$('.o_reconciliation_line:first .match tr:first .cell_left').text(),
|
||||
assert.strictEqual(clientAction.$('.o_reconciliation_line:first .match tr:first .cell_right').text(),
|
||||
"$ 11,000.00", "sould display the line in $");
|
||||
assert.strictEqual(clientAction.$('.o_reconciliation_line:first .match tr:first .cell_left .o_multi_currency').data('content'),
|
||||
assert.strictEqual(clientAction.$('.o_reconciliation_line:first .match tr:first .cell_right .o_multi_currency').data('content'),
|
||||
"10,222.00 €", "sould display the monetary information in €");
|
||||
|
||||
assert.strictEqual(clientAction.$('.accounting_view:first .o_no_valid:visible').length, 1, "should display the skip button");
|
||||
@@ -1005,7 +1005,6 @@ QUnit.module('account', {
|
||||
clientAction.destroy();
|
||||
});
|
||||
|
||||
|
||||
QUnit.test('Reconciliation pager', function (assert) {
|
||||
assert.expect(6);
|
||||
|
||||
@@ -1219,9 +1218,11 @@ QUnit.module('account', {
|
||||
|
||||
assert.strictEqual(clientAction.$('.o_reconciliation_line').length, 10, "should display 10 lines");
|
||||
assert.strictEqual(clientAction.$('.js_load_more:visible').length, 1, "should display the load more button");
|
||||
clientAction.$('.accounting_view:has(.o_reconcile:visible) thead .cell_action').click();
|
||||
clientAction.$('.o_reconcile:visible').click();
|
||||
assert.strictEqual(clientAction.$('.o_reconcile:visible').length, 0, "should remove the reconciled line");
|
||||
assert.strictEqual(clientAction.$('.o_reconciliation_line').length, 10, "should load one line to complete the 10");
|
||||
clientAction.$('thead .cell_action:eq(1)').click();
|
||||
clientAction.$('.js_load_more').click();
|
||||
assert.strictEqual(clientAction.$('.o_reconciliation_line').length, 11, "should load the last record");
|
||||
assert.strictEqual(clientAction.$('.js_load_more:visible').length, 0, "should hide the load more button");
|
||||
|
||||
@@ -77,13 +77,7 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
|
||||
'bubbles': old_event.bubbles,
|
||||
'cancelable': old_event.cancelable,
|
||||
};
|
||||
try {
|
||||
new_event = new Event("keypress", params);
|
||||
} catch(error) {
|
||||
// For IE >= 9, use new CustomEvent(), instead of new Event()
|
||||
new_event = new CustomEvent("keypress", params);
|
||||
}
|
||||
|
||||
new_event = $.Event('keypress', params);
|
||||
new_event.viewArg = old_event.viewArg;
|
||||
new_event.ctrl = old_event.ctrl;
|
||||
new_event.alt = old_event.alt;
|
||||
@@ -96,7 +90,7 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
|
||||
new_event.which = old_event.which;
|
||||
new_event.dispatched_by_barcode_reader = true;
|
||||
|
||||
old_event.target.dispatchEvent(new_event);
|
||||
$(old_event.target).trigger(new_event);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -173,17 +167,17 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
|
||||
},
|
||||
|
||||
start: function(prevent_key_repeat){
|
||||
document.body.addEventListener('keypress', this.__handler, true);
|
||||
$('body').bind("keypress", this.__handler);
|
||||
if (prevent_key_repeat === true) {
|
||||
document.body.addEventListener('keydown', this.__keydown_handler, true);
|
||||
document.body.addEventListener('keyup', this.__keyup_handler, true);
|
||||
$('body').bind("keydown", this.__keydown_handler);
|
||||
$('body').bind('keyup', this.__keyup_handler);
|
||||
}
|
||||
},
|
||||
|
||||
stop: function(){
|
||||
document.body.removeEventListener('keypress', this.__handler, true);
|
||||
document.body.removeEventListener('keydown', this.__keydown_handler, true);
|
||||
document.body.removeEventListener('keyup', this.__keyup_handler, true);
|
||||
$('body').unbind("keypress", this.__handler);
|
||||
$('body').unbind("keydown", this.__keydown_handler);
|
||||
$('body').unbind('keyup', this.__keyup_handler);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -8,12 +8,12 @@ var fieldRegistry = require('web.field_registry');
|
||||
// Field in which the user can both type normally and scan barcodes
|
||||
|
||||
var FieldFloatScannable = basicFields.FieldFloat.extend({
|
||||
events: {
|
||||
events: _.extend({}, basicFields.FieldFloat.prototype.events, {
|
||||
// The barcode_events component intercepts keypresses and releases them when it
|
||||
// appears they are not part of a barcode. But since released keypresses don't
|
||||
// trigger native behaviour (like characters input), we must simulate it.
|
||||
'keypress': '_onKeypress',
|
||||
},
|
||||
}),
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Private
|
||||
@@ -40,9 +40,8 @@ var FieldFloatScannable = basicFields.FieldFloat.extend({
|
||||
*/
|
||||
_onKeypress: function (e) {
|
||||
/* only simulate a keypress if it has been previously prevented */
|
||||
if (e.originalEvent.dispatched_by_barcode_reader !== true) {
|
||||
if (e.dispatched_by_barcode_reader !== true) {
|
||||
e.preventDefault();
|
||||
this.$input.blur();
|
||||
return;
|
||||
}
|
||||
var character = String.fromCharCode(e.which);
|
||||
@@ -52,23 +51,12 @@ var FieldFloatScannable = basicFields.FieldFloat.extend({
|
||||
e.target.value = str_before_carret + character + str_after_carret;
|
||||
var new_carret_index = str_before_carret.length + character.length;
|
||||
e.target.setSelectionRange(new_carret_index, new_carret_index);
|
||||
// Note: FieldChar (that FieldFloat extends) calls store_dom_value upon change
|
||||
// event, which is triggered when the input loses focus and its internal dirty
|
||||
// flag is set. But here, we directly modify the value property of the input,
|
||||
// which doesn't set the dirty flag. So we could call store_dom_value upon blur.
|
||||
// But we also want the DOM value to be stored when a barcode_event occurs and
|
||||
// triggers an onchange. We could listen to barcode_event in order to call
|
||||
// store_dom_value, but that would have to happen before the onchange is triggered.
|
||||
// So the safest method is still to store the value each time it changes.
|
||||
// This long explanation is here to avoid having to do the thinking all over agan
|
||||
// in case this strategy doesn't work / breaks.
|
||||
// TL;DR Safest way not to lose the value when a barcode scan triggers an onchange.
|
||||
this._setValue(e.target.value);
|
||||
// trigger an 'input' event to notify the widget that it's value changed
|
||||
$(e.target).trigger('input');
|
||||
},
|
||||
});
|
||||
|
||||
// Field to use scan barcodes
|
||||
|
||||
var FormViewBarcodeHandler = AbstractField.extend({
|
||||
/**
|
||||
* @override
|
||||
@@ -78,8 +66,6 @@ var FormViewBarcodeHandler = AbstractField.extend({
|
||||
|
||||
this.trigger_up('activeBarcode', {
|
||||
name: this.name,
|
||||
fieldName: 'pack_operation_product_ids',
|
||||
quantity: 'qty_done',
|
||||
commands: {
|
||||
barcode: '_barcodeAddX2MQuantity',
|
||||
}
|
||||
|
||||
@@ -26,19 +26,23 @@ FormController.include({
|
||||
this.activeBarcode = {
|
||||
form_view: {
|
||||
commands: {
|
||||
'O-CMD.NEW': 'createRecord',
|
||||
'O-CMD.EDIT': 'toEditMode',
|
||||
'O-CMD.CANCEL': 'discardChange',
|
||||
'O-CMD.SAVE': function () { return this.saveRecord({reload: true}); },
|
||||
// 'O-CMD.PAGER-PREV':
|
||||
// 'O-CMD.PAGER-NEXT':
|
||||
}
|
||||
}
|
||||
'O-CMD.EDIT': this._barcodeEdit.bind(this),
|
||||
'O-CMD.CANCEL': this._barcodeDiscard.bind(this),
|
||||
'O-CMD.SAVE': this._barcodeSave.bind(this),
|
||||
'O-CMD.PAGER-PREV': this._barcodePagerPrevious.bind(this),
|
||||
'O-CMD.PAGER-NEXT': this._barcodePagerNext.bind(this),
|
||||
'O-CMD.PAGER-FIRST': this._barcodePagerFirst.bind(this),
|
||||
'O-CMD.PAGER-LAST': this._barcodePagerLast.bind(this),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
this.barcodeMutex = new concurrency.Mutex();
|
||||
this._barcodeStartListening();
|
||||
},
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
destroy: function () {
|
||||
this._barcodeStopListening();
|
||||
this._super();
|
||||
@@ -70,6 +74,55 @@ FormController.include({
|
||||
}
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_barcodeDiscard: function () {
|
||||
return this.discardChanges();
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_barcodeEdit: function () {
|
||||
return this._setMode('edit');
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_barcodePagerFirst: function () {
|
||||
var self = this;
|
||||
return this.mutex.exec(function () {}).then(function () {
|
||||
self.pager.updateState({
|
||||
current_min: 1,
|
||||
}, {notifyChange: true});
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_barcodePagerLast: function () {
|
||||
var self = this;
|
||||
return this.mutex.exec(function () {}).then(function () {
|
||||
var state = self.model.get(self.handle, {raw: true});
|
||||
self.pager.updateState({
|
||||
current_min: state.count,
|
||||
}, {notifyChange: true});
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_barcodePagerNext: function () {
|
||||
return this.mutex.exec(function () {}).then(this.pager.next.bind(this.pager));
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_barcodePagerPrevious: function () {
|
||||
return this.mutex.exec(function () {}).then(this.pager.previous.bind(this.pager));
|
||||
},
|
||||
/**
|
||||
* Returns true iff the given barcode matches the given record (candidate).
|
||||
*
|
||||
* @private
|
||||
* @param {Object} candidate: record in the x2m
|
||||
* @param {string} barcode sent by the scanner (string generate from keypress series)
|
||||
@@ -79,6 +132,12 @@ FormController.include({
|
||||
_barcodeRecordFilter: function (candidate, barcode, activeBarcode) {
|
||||
return candidate.data.product_barcode === barcode;
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
_barcodeSave: function () {
|
||||
return this.saveRecord();
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
* @param {Object} candidate: record in the x2m
|
||||
@@ -89,8 +148,14 @@ FormController.include({
|
||||
*/
|
||||
_barcodeSelectedCandidate: function (candidate, record, barcode, activeBarcode) {
|
||||
var changes = {};
|
||||
changes[activeBarcode.quantity] = candidate.data[activeBarcode.quantity] + 1;
|
||||
return this.model.notifyChanges(candidate.id, changes);
|
||||
var candidateChanges = {};
|
||||
candidateChanges[activeBarcode.quantity] = candidate.data[activeBarcode.quantity] + 1;
|
||||
changes[activeBarcode.fieldName] = {
|
||||
operation: 'UPDATE',
|
||||
id: candidate.id,
|
||||
data: candidateChanges,
|
||||
};
|
||||
return this.model.notifyChanges(this.handle, changes);
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
@@ -99,7 +164,6 @@ FormController.include({
|
||||
core.bus.on('barcode_scanned', this, this._barcodeScanned);
|
||||
core.bus.on('keypress', this, this._quantityListener);
|
||||
},
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
@@ -128,7 +192,7 @@ FormController.include({
|
||||
*/
|
||||
_getBarCodeRecord: function (record, barcode, activeBarcode) {
|
||||
var self = this;
|
||||
if (!activeBarcode.fieldName) {
|
||||
if (!activeBarcode.fieldName || !record.data[activeBarcode.fieldName]) {
|
||||
return;
|
||||
}
|
||||
return _.find(record.data[activeBarcode.fieldName].data, function (record) {
|
||||
@@ -167,6 +231,10 @@ FormController.include({
|
||||
candidate: this.activeBarcode[name] && this.activeBarcode[name].handle === this.handle ?
|
||||
this.activeBarcode[name].candidate : null,
|
||||
};
|
||||
|
||||
// we want to disable autofocus when activating the barcode to avoid
|
||||
// putting the scanned value in the focused field
|
||||
this.disableAutofocus = true;
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
@@ -232,8 +300,13 @@ FormController.include({
|
||||
if (prefixed && !hasCommand) {
|
||||
self.do_warn(_t('Error : Barcode command is undefined'), barcode);
|
||||
}
|
||||
return $.when.apply($, defs).then(function () {
|
||||
self.update({}, {reload: false});
|
||||
return self.alive($.when.apply($, defs)).then(function () {
|
||||
if (!prefixed) {
|
||||
// redraw the view if we scanned a real barcode (required if
|
||||
// we manually apply the change in JS, e.g. incrementing the
|
||||
// quantity)
|
||||
self.update({}, {reload: false});
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
@@ -321,8 +394,6 @@ FormRenderer.include({
|
||||
commands['O-BTN.' + node.attrs.barcode_trigger] = function () {
|
||||
if (!$button.hasClass('o_invisible_modifier')) {
|
||||
$button.click();
|
||||
} else {
|
||||
this.do_warn(_t('Action currently unavailable'));
|
||||
}
|
||||
return $.when();
|
||||
};
|
||||
@@ -361,6 +432,21 @@ FormRenderer.include({
|
||||
}
|
||||
return $button;
|
||||
},
|
||||
/**
|
||||
* Add barcode event handler
|
||||
*
|
||||
* @override
|
||||
* @private
|
||||
* @param {Object} node
|
||||
* @returns {jQueryElement}
|
||||
*/
|
||||
_renderTagButton: function (node) {
|
||||
var $button = this._super.apply(this, arguments);
|
||||
if (node.attrs.barcode_trigger) {
|
||||
this._barcodeButtonHandler($button, node);
|
||||
}
|
||||
return $button;
|
||||
}
|
||||
});
|
||||
|
||||
BarcodeEvents.ReservedBarcodePrefixes.push('O-BTN');
|
||||
|
||||
@@ -0,0 +1,406 @@
|
||||
odoo.define('barcodes.tests', function (require) {
|
||||
"use strict";
|
||||
|
||||
var barcodeEvents = require('barcodes.BarcodeEvents');
|
||||
|
||||
var AbstractField = require('web.AbstractField');
|
||||
var fieldRegistry = require('web.field_registry');
|
||||
var FormController = require('web.FormController');
|
||||
var FormView = require('web.FormView');
|
||||
var testUtils = require('web.test_utils');
|
||||
|
||||
var createView = testUtils.createView;
|
||||
var triggerKeypressEvent = testUtils.triggerKeypressEvent;
|
||||
|
||||
QUnit.module('Barcodes', {
|
||||
beforeEach: function () {
|
||||
this.data = {
|
||||
order: {
|
||||
fields: {
|
||||
_barcode_scanned: {string: 'Barcode scanned', type: 'char'},
|
||||
line_ids: {string: 'Order lines', type: 'one2many', relation: 'order_line'},
|
||||
},
|
||||
records: [
|
||||
{id: 1, line_ids: [1, 2]},
|
||||
],
|
||||
},
|
||||
order_line: {
|
||||
fields: {
|
||||
product_id: {string: 'Product', type: 'many2one', relation: 'product'},
|
||||
product_barcode: {string: 'Product Barcode', type: 'char'},
|
||||
quantity: {string: 'Quantity', type: 'integer'},
|
||||
},
|
||||
records: [
|
||||
{id: 1, product_id: 1, quantity: 0, product_barcode: '1234567890'},
|
||||
{id: 2, product_id: 2, quantity: 0, product_barcode: '0987654321'},
|
||||
],
|
||||
},
|
||||
product: {
|
||||
fields: {
|
||||
name: {string : "Product name", type: "char"},
|
||||
int_field: {string : "Integer", type: "integer"},
|
||||
barcode: {string: "Barcode", type: "char"},
|
||||
},
|
||||
records: [
|
||||
{id: 1, name: "iPad Mini", barcode: '1234567890'},
|
||||
{id: 2, name: "Mouse, Optical", barcode: '0987654321'},
|
||||
],
|
||||
},
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test('Button with barcode_trigger', function (assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'product',
|
||||
data: this.data,
|
||||
arch: '<form>' +
|
||||
'<header>' +
|
||||
'<button name="do_something" string="Validate" type="object" barcode_trigger="doit"/>' +
|
||||
'<button name="do_something_else" string="Validate" type="object" invisible="1" barcode_trigger="dothat"/>' +
|
||||
'</header>' +
|
||||
'</form>',
|
||||
res_id: 2,
|
||||
intercepts: {
|
||||
execute_action: function (event) {
|
||||
assert.strictEqual(event.data.action_data.name, 'do_something',
|
||||
"do_something method call verified");
|
||||
},
|
||||
warning: function () {
|
||||
assert.step('warn');
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// O-BTN.doit
|
||||
_.each(['O','-','B','T','N','.','d','o','i','t','Enter'], triggerKeypressEvent);
|
||||
// O-BTN.dothat (should not call execute_action as the button isn't visible)
|
||||
_.each(['O','-','B','T','N','.','d','o','t','h','a','t','Enter'], triggerKeypressEvent);
|
||||
|
||||
assert.verifySteps([], "no warning should be displayed");
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('edit, save and cancel buttons', function (assert) {
|
||||
assert.expect(6);
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'product',
|
||||
data: this.data,
|
||||
arch: '<form><field name="display_name"/></form>',
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'write') {
|
||||
assert.step('save');
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
res_id: 1,
|
||||
});
|
||||
|
||||
// O-CMD.EDIT
|
||||
_.each(["O","-","C","M","D",".","E","D","I","T","Enter"], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$(".o_form_editable").length, 1,
|
||||
"should have switched to 'edit' mode");
|
||||
// dummy change to check that it actually saves
|
||||
form.$('.o_field_widget').val('test').trigger('input');
|
||||
// O-CMD.SAVE
|
||||
_.each(["O","-","C","M","D",".","S","A","V","E","Enter"], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$(".o_form_readonly").length, 1,
|
||||
"should have switched to 'readonly' mode");
|
||||
assert.verifySteps(['save'], 'should have saved');
|
||||
|
||||
// O-CMD.EDIT
|
||||
_.each(["O","-","C","M","D",".","E","D","I","T","Enter"], triggerKeypressEvent);
|
||||
// dummy change to check that it correctly discards
|
||||
form.$('.o_field_widget').val('test').trigger('input');
|
||||
// O-CMD.CANCEL
|
||||
_.each(["O","-","C","M","D",".","C","A","N","C","E","L","Enter"], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$(".o_form_readonly").length, 1,
|
||||
"should have switched to 'readonly' mode");
|
||||
assert.verifySteps(['save'], 'should not have saved');
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('pager buttons', function (assert) {
|
||||
assert.expect(5);
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'product',
|
||||
data: this.data,
|
||||
arch: '<form><field name="display_name"/></form>',
|
||||
res_id: 1,
|
||||
viewOptions: {
|
||||
ids: [1, 2],
|
||||
index: 0,
|
||||
},
|
||||
});
|
||||
|
||||
assert.strictEqual(form.$('.o_field_widget').text(), 'iPad Mini');
|
||||
// O-CMD.PAGER-NEXT
|
||||
_.each(["O","-","C","M","D",".","P","A","G","E","R","-","N","E","X","T","Enter"], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$('.o_field_widget').text(), 'Mouse, Optical');
|
||||
// O-CMD.PAGER-PREV
|
||||
_.each(["O","-","C","M","D",".","P","A","G","E","R","-","P","R","E","V","Enter"], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$('.o_field_widget').text(), 'iPad Mini');
|
||||
// O-CMD.PAGER-LAST
|
||||
_.each(["O","-","C","M","D",".","P","A","G","E","R","-","L","A","S","T","Enter"], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$('.o_field_widget').text(), 'Mouse, Optical');
|
||||
// O-CMD.PAGER-FIRST
|
||||
_.each(["O","-","C","M","D",".","P","A","G","E","R","-","F","I","R","S","T","Enter"], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$('.o_field_widget').text(), 'iPad Mini');
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('do no update form twice after a command barcode scanned', function (assert) {
|
||||
assert.expect(7);
|
||||
|
||||
var delay = barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms;
|
||||
barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = 0;
|
||||
var formUpdate = FormController.prototype.update;
|
||||
FormController.prototype.update = function () {
|
||||
assert.step('update');
|
||||
return formUpdate.apply(this, arguments);
|
||||
};
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'product',
|
||||
data: this.data,
|
||||
arch: '<form>' +
|
||||
'<field name="display_name"/>' +
|
||||
'<field name="int_field" widget="field_float_scannable"/>' +
|
||||
'</form>',
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'read') {
|
||||
assert.step('read');
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
res_id: 1,
|
||||
viewOptions: {
|
||||
ids: [1, 2],
|
||||
index: 0,
|
||||
},
|
||||
});
|
||||
|
||||
assert.verifySteps(['read'], "update should not have been called yet");
|
||||
|
||||
// switch to next record
|
||||
_.each(["O","-","C","M","D",".","P","A","G","E","R","-","N","E","X","T","Enter"], triggerKeypressEvent);
|
||||
// a first update is done to reload the data (thus followed by a read), but
|
||||
// update shouldn't be called afterwards
|
||||
assert.verifySteps(['read', 'update', 'read']);
|
||||
|
||||
_.each(['5','4','3','9','8','2','6','7','1','2','5','2','Enter'], triggerKeypressEvent);
|
||||
// a real barcode has been scanned -> an update should be requested (with
|
||||
// option reload='false', so it isn't followed by a read)
|
||||
assert.verifySteps(['read', 'update', 'read', 'update']);
|
||||
|
||||
form.destroy();
|
||||
barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = delay;
|
||||
FormController.prototype.update = formUpdate;
|
||||
});
|
||||
|
||||
QUnit.test('widget field_float_scannable', function (assert) {
|
||||
var done = assert.async();
|
||||
assert.expect(11);
|
||||
|
||||
var delay = barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms;
|
||||
barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = 0;
|
||||
|
||||
this.data.product.records[0].int_field = 4;
|
||||
this.data.product.onchanges = {
|
||||
int_field: function () {},
|
||||
};
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'product',
|
||||
data: this.data,
|
||||
arch: '<form>' +
|
||||
'<field name="display_name"/>' +
|
||||
'<field name="int_field" widget="field_float_scannable"/>' +
|
||||
'</form>',
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'onchange') {
|
||||
assert.step('onchange');
|
||||
assert.strictEqual(args.args[1].int_field, 426,
|
||||
"should send correct value for int_field");
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
fieldDebounce: 1000,
|
||||
res_id: 1,
|
||||
});
|
||||
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').text(), '4',
|
||||
"should display the correct value in readonly");
|
||||
|
||||
form.$buttons.find('.o_form_button_edit').click();
|
||||
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').val(), '4',
|
||||
"should display the correct value in edit");
|
||||
|
||||
// simulates keypress events in the input to replace 0.00 by 26 (should not trigger onchanges)
|
||||
form.$('.o_field_widget[name=int_field]').focus();
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').get(0), document.activeElement,
|
||||
"int field should be focused");
|
||||
form.$('.o_field_widget[name=int_field]').trigger({type: 'keypress', which: 50, keyCode: 50}); // 2
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').get(0), document.activeElement,
|
||||
"int field should still be focused");
|
||||
form.$('.o_field_widget[name=int_field]').trigger({type: 'keypress', which: 54, keyCode: 54}); // 6
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').get(0), document.activeElement,
|
||||
"int field should still be focused");
|
||||
|
||||
setTimeout(function () {
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').val(), '426',
|
||||
"should display the correct value in edit");
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').get(0), document.activeElement,
|
||||
"int field should still be focused");
|
||||
|
||||
assert.verifySteps([], 'should not have done any onchange RPC');
|
||||
|
||||
form.$('.o_field_widget[name=int_field]').trigger('change'); // should trigger the onchange
|
||||
|
||||
assert.verifySteps(['onchange'], 'should have done the onchange RPC');
|
||||
|
||||
form.destroy();
|
||||
barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = delay;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
QUnit.test('widget barcode_handler', function (assert) {
|
||||
assert.expect(4);
|
||||
|
||||
var delay = barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms;
|
||||
barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = 0;
|
||||
|
||||
this.data.product.fields.barcode_scanned = {string : "Scanned barcode", type: "char"};
|
||||
this.data.product.onchanges = {
|
||||
barcode_scanned: function (obj) {
|
||||
// simulate an onchange that increment the int_field value
|
||||
// at each barcode scanned
|
||||
obj.int_field = obj.int_field + 1;
|
||||
},
|
||||
};
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'product',
|
||||
data: this.data,
|
||||
arch: '<form>' +
|
||||
'<field name="display_name"/>' +
|
||||
'<field name="int_field"/>' +
|
||||
'<field name="barcode_scanned" widget="barcode_handler" invisible="1"/>' +
|
||||
'</form>',
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'onchange') {
|
||||
assert.step('onchange');
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
res_id: 1,
|
||||
viewOptions: {
|
||||
mode: 'edit',
|
||||
},
|
||||
});
|
||||
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').val(), '0',
|
||||
"initial value should be correct");
|
||||
|
||||
_.each(['5','4','3','9','8','2','6','7','1','2','5','2','Enter'], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$('.o_field_widget[name=int_field]').val(), '1',
|
||||
"value should have been incremented");
|
||||
|
||||
assert.verifySteps(['onchange'], "an onchange should have been done");
|
||||
|
||||
form.destroy();
|
||||
barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = delay;
|
||||
});
|
||||
|
||||
QUnit.test('specification of widget barcode_handler', function (assert) {
|
||||
assert.expect(5);
|
||||
|
||||
var delay = barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms;
|
||||
barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = 0;
|
||||
|
||||
// Define a specific barcode_handler widget for this test case
|
||||
var TestBarcodeHandler = AbstractField.extend({
|
||||
init: function () {
|
||||
this._super.apply(this, arguments);
|
||||
|
||||
this.trigger_up('activeBarcode', {
|
||||
name: 'test',
|
||||
fieldName: 'line_ids',
|
||||
quantity: 'quantity',
|
||||
commands: {
|
||||
barcode: '_barcodeAddX2MQuantity',
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
fieldRegistry.add('test_barcode_handler', TestBarcodeHandler);
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'order',
|
||||
data: this.data,
|
||||
arch: '<form>' +
|
||||
'<field name="_barcode_scanned" widget="test_barcode_handler"/>' +
|
||||
'<field name="line_ids">' +
|
||||
'<tree>' +
|
||||
'<field name="product_id"/>' +
|
||||
'<field name="product_barcode" invisible="1"/>' +
|
||||
'<field name="quantity"/>' +
|
||||
'</tree>' +
|
||||
'</field>' +
|
||||
'</form>',
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'onchange') {
|
||||
assert.notOK(true, "should not do any onchange RPC");
|
||||
}
|
||||
if (args.method === 'write') {
|
||||
assert.deepEqual(args.args[1].line_ids, [
|
||||
[1, 1, {quantity: 2}], [1, 2, {quantity: 1}],
|
||||
], "should have generated the correct commands");
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
res_id: 1,
|
||||
viewOptions: {
|
||||
mode: 'edit',
|
||||
},
|
||||
});
|
||||
|
||||
assert.strictEqual(form.$('.o_data_row').length, 2,
|
||||
"one2many should contain 2 rows");
|
||||
|
||||
// scan twice product 1
|
||||
_.each(['1','2','3','4','5','6','7','8','9','0','Enter'], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$('.o_data_row:first .o_data_cell:nth(1)').text(), '1',
|
||||
"quantity of line one should have been incremented");
|
||||
_.each(['1','2','3','4','5','6','7','8','9','0','Enter'], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$('.o_data_row:first .o_data_cell:nth(1)').text(), '2',
|
||||
"quantity of line one should have been incremented");
|
||||
|
||||
// scan once product 2
|
||||
_.each(['0','9','8','7','6','5','4','3','2','1','Enter'], triggerKeypressEvent);
|
||||
assert.strictEqual(form.$('.o_data_row:nth(1) .o_data_cell:nth(1)').text(), '1',
|
||||
"quantity of line one should have been incremented");
|
||||
|
||||
form.$buttons.find('.o_form_button_save').click();
|
||||
|
||||
form.destroy();
|
||||
barcodeEvents.BarcodeEvents.max_time_between_keys_in_ms = delay;
|
||||
delete fieldRegistry.map.test_barcode_handler;
|
||||
});
|
||||
});
|
||||
@@ -10,4 +10,10 @@
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="qunit_suite" name="barcode_tests" inherit_id="web.qunit_suite">
|
||||
<xpath expr="//t[@t-set='head']" position="inside">
|
||||
<script type="text/javascript" src="/barcodes/static/tests/barcode_tests.js"/>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -12,6 +12,7 @@ from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import api, fields, models, SUPERUSER_ID
|
||||
from odoo.modules.registry import Registry
|
||||
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||
from odoo.tools.safe_eval import safe_eval
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
@@ -350,7 +351,7 @@ class BaseAutomation(models.Model):
|
||||
except Exception:
|
||||
_logger.error(traceback.format_exc())
|
||||
|
||||
action.write({'last_run': fields.Datetime.now()})
|
||||
action.write({'last_run': now.strftime(DEFAULT_SERVER_DATETIME_FORMAT)})
|
||||
|
||||
if automatic:
|
||||
# auto-commit for batch processing
|
||||
|
||||
@@ -117,6 +117,11 @@
|
||||
.o_kanban_view .o_kanban_record .oe_kanban_list_many2many .o_field_many2manytags {
|
||||
border: none;
|
||||
}
|
||||
|
||||
// Override height of graph. min-height doesn't do the trick
|
||||
.o_graph {
|
||||
height: 500px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import stock_picking_wave
|
||||
from . import test_auto_status
|
||||
@@ -0,0 +1,53 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
from datetime import datetime
|
||||
from odoo.tests.common import TransactionCase
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
|
||||
class TestHrContracts(TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestHrContracts, self).setUp()
|
||||
self.contracts = self.env['hr.contract'].with_context(tracking_disable=True)
|
||||
self.employee = self.env.ref('hr.employee_root')
|
||||
self.test_contract = dict(name='Test', wage=1, employee_id=self.employee.id, state='open')
|
||||
|
||||
def apply_cron(self):
|
||||
self.env.ref('hr_contract.ir_cron_data_contract_update_state').method_direct_trigger()
|
||||
|
||||
def test_contract_enddate(self):
|
||||
self.test_contract.update(dict(date_end=datetime.now() + relativedelta(days=100)))
|
||||
self.contract = self.contracts.create(self.test_contract)
|
||||
self.apply_cron()
|
||||
self.assertEquals(self.contract.state, 'open')
|
||||
|
||||
self.test_contract.update(dict(date_end=datetime.now() + relativedelta(days=5)))
|
||||
self.contract.write(self.test_contract)
|
||||
self.apply_cron()
|
||||
self.assertEquals(self.contract.state, 'pending')
|
||||
|
||||
self.test_contract.update({
|
||||
'date_start': datetime.now() + relativedelta(days=-50),
|
||||
'date_end': datetime.now() + relativedelta(days=-1),
|
||||
'state': 'pending',
|
||||
})
|
||||
self.contract.write(self.test_contract)
|
||||
self.apply_cron()
|
||||
self.assertEquals(self.contract.state, 'close')
|
||||
|
||||
def test_contract_pending_visa_expire(self):
|
||||
self.employee.visa_expire = datetime.now() + relativedelta(days=30)
|
||||
self.test_contract.update(dict(date_end=False))
|
||||
self.contract = self.contracts.create(self.test_contract)
|
||||
self.apply_cron()
|
||||
self.assertEquals(self.contract.state, 'pending')
|
||||
|
||||
self.employee.visa_expire = datetime.now() + relativedelta(days=-5)
|
||||
self.test_contract.update({
|
||||
'date_start': datetime.now() + relativedelta(days=-50),
|
||||
'state': 'pending',
|
||||
})
|
||||
self.contract.write(self.test_contract)
|
||||
self.apply_cron()
|
||||
self.assertEquals(self.contract.state, 'close')
|
||||
@@ -404,7 +404,7 @@ class HrExpenseSheet(models.Model):
|
||||
journal_id = fields.Many2one('account.journal', string='Expense Journal', states={'done': [('readonly', True)], 'post': [('readonly', True)]},
|
||||
default=lambda self: self.env['ir.model.data'].xmlid_to_object('hr_expense.hr_expense_account_journal') or self.env['account.journal'].search([('type', '=', 'purchase')], limit=1),
|
||||
help="The journal used when the expense is done.")
|
||||
bank_journal_id = fields.Many2one('account.journal', string='Bank Journal', states={'done': [('readonly', True)], 'post': [('readonly', True)]}, default=lambda self: self.env['account.journal'].search([('type', 'in', ['case', 'bank'])], limit=1), help="The payment method used when the expense is paid by the company.")
|
||||
bank_journal_id = fields.Many2one('account.journal', string='Bank Journal', states={'done': [('readonly', True)], 'post': [('readonly', True)]}, default=lambda self: self.env['account.journal'].search([('type', 'in', ['cash', 'bank'])], limit=1), help="The payment method used when the expense is paid by the company.")
|
||||
accounting_date = fields.Date(string="Date")
|
||||
account_move_id = fields.Many2one('account.move', string='Journal Entry', ondelete='restrict', copy=False)
|
||||
department_id = fields.Many2one('hr.department', string='Department', states={'post': [('readonly', True)], 'done': [('readonly', True)]})
|
||||
|
||||
@@ -26,6 +26,26 @@
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">['|',('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
|
||||
</record>
|
||||
<record id="hr_expense_report_prevent_unlink" model="ir.rule">
|
||||
<field name="name">Expense Report Prevent Delete Employee</field>
|
||||
<field name="model_id" ref="model_hr_expense_sheet"/>
|
||||
<field name="domain_force">[('state', '=', 'submit')]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="True"/>
|
||||
</record>
|
||||
<record id="hr_expense_report_auth_unlink" model="ir.rule">
|
||||
<field name="name">Expense Report Authorize Delete Officer</field>
|
||||
<field name="model_id" ref="model_hr_expense_sheet"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('hr_expense.group_hr_expense_user'))]"/>
|
||||
<field name="perm_read" eval="False"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="True"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -201,6 +201,7 @@
|
||||
<form string="Contribution">
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}" class="oe_inline"/>
|
||||
</group>
|
||||
<newline/>
|
||||
@@ -353,4 +354,4 @@
|
||||
view_id="hr_salary_rule_list"
|
||||
id="act_children_salary_rules"/>
|
||||
|
||||
</odoo>
|
||||
</odoo>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
{
|
||||
'name': 'Luxembourg - Accounting',
|
||||
'version': '1.0',
|
||||
'version': '2.0',
|
||||
'category': 'Localization',
|
||||
'description': """
|
||||
This is the base module to manage the accounting chart for Luxembourg.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,408 +1,408 @@
|
||||
id,name,description,type_tax_use,amount_type,amount,account_id:id,refund_account_id:id,chart_template_id:id,sequence,children_tax_ids:id,tag_ids:id,tax_group_id:id
|
||||
lu_2011_tax_AB-EC-0,Achat Biens Exonéré - Extracommunautaire,AB-EC-0,purchase,percent,0,,,lu_2011_chart_1,101,,tag_AB_EC_0,tax_group_0
|
||||
lu_2011_tax_AB-EC-12-n,Achat Biens 12% - Extracommunautaire (-),AB-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1103,,tag_AB_EC_12_n,tax_group_12
|
||||
lu_2011_tax_AB-EC-12-p,Achat Biens 12% - Extracommunautaire (+),AB-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1104,,tag_AB_EC_12_p,tax_group_12
|
||||
lu_2011_tax_AB-EC-12,Achat Biens 12% - Extracommunautaire,AB-EC-12,purchase,group,1,,,lu_2011_chart_1,102,"lu_2011_tax_AB-EC-12-n,lu_2011_tax_AB-EC-12-p",tag_AB_EC_12,tax_group_12
|
||||
lu_2015_tax_AB-EC-14-n,Achat Biens 14% - Extracommunautaire (-),AB-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1106,,tag_AB_EC_14_n,tax_group_14
|
||||
lu_2015_tax_AB-EC-14-p,Achat Biens 14% - Extracommunautaire (+),AB-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1107,,tag_AB_EC_14_p,tax_group_14
|
||||
lu_2015_tax_AB-EC-14,Achat Biens 14% - Extracommunautaire,AB-EC-14,purchase,group,1,,,lu_2011_chart_1,105,"lu_2015_tax_AB-EC-14-n,lu_2015_tax_AB-EC-14-p",tag_AB_EC_14,tax_group_14
|
||||
lu_2011_tax_AB-EC-15-n,Achat Biens 15% - Extracommunautaire (-),AB-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1109,,tag_AB_EC_15_n,tax_group_15
|
||||
lu_2011_tax_AB-EC-15-p,Achat Biens 15% - Extracommunautaire (+),AB-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1110,,tag_AB_EC_15_p,tax_group_15
|
||||
lu_2011_tax_AB-EC-15,Achat Biens 15% - Extracommunautaire,AB-EC-15,purchase,group,100,,,lu_2011_chart_1,108,"lu_2011_tax_AB-EC-15-n,lu_2011_tax_AB-EC-15-p",tag_AB_EC_15,tax_group_15
|
||||
lu_2015_tax_AB-EC-17-n,Achat Biens 17% - Extracommunautaire (-),AB-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1112,,tag_AB_EC_17_n,tax_group_17
|
||||
lu_2015_tax_AB-EC-17-p,Achat Biens 17% - Extracommunautaire (+),AB-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1113,,tag_AB_EC_17_p,tax_group_17
|
||||
lu_2015_tax_AB-EC-17,Achat Biens 17% - Extracommunautaire,AB-EC-17,purchase,group,100,,,lu_2011_chart_1,111,"lu_2015_tax_AB-EC-17-n,lu_2015_tax_AB-EC-17-p",tag_AB_EC_17,tax_group_17
|
||||
lu_2011_tax_AB-EC-3-n,Achat Biens 3% - Extracommunautaire (-),AB-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1115,,tag_AB_EC_3_n,tax_group_3
|
||||
lu_2011_tax_AB-EC-3-p,Achat Biens 3% - Extracommunautaire (+),AB-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1116,,tag_AB_EC_3_p,tax_group_3
|
||||
lu_2011_tax_AB-EC-3,Achat Biens 3% - Extracommunautaire,AB-EC-3,purchase,group,100,,,lu_2011_chart_1,114,"lu_2011_tax_AB-EC-3-n,lu_2011_tax_AB-EC-3-p",tag_AB_EC_3,tax_group_3
|
||||
lu_2011_tax_AB-EC-6-n,Achat Biens 6% - Extracommunautaire (-),AB-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1118,,tag_AB_EC_6_n,tax_group_6
|
||||
lu_2011_tax_AB-EC-6-p,Achat Biens 6% - Extracommunautaire (+),AB-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1119,,tag_AB_EC_6_p,tax_group_6
|
||||
lu_2011_tax_AB-EC-6,Achat Biens 6% - Extracommunautaire,AB-EC-6,purchase,group,100,,,lu_2011_chart_1,117,"lu_2011_tax_AB-EC-6-n,lu_2011_tax_AB-EC-6-p",tag_AB_EC_6,tax_group_6
|
||||
lu_2015_tax_AB-EC-8-n,Achat Biens 8% - Extracommunautaire (-),AB-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1121,,tag_AB_EC_8_n,tax_group_8
|
||||
lu_2015_tax_AB-EC-8-p,Achat Biens 8% - Extracommunautaire (+),AB-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1122,,tag_AB_EC_8_p,tax_group_8
|
||||
lu_2015_tax_AB-EC-8,Achat Biens 8% - Extracommunautaire,AB-EC-8,purchase,group,100,,,lu_2011_chart_1,120,"lu_2015_tax_AB-EC-8-n,lu_2015_tax_AB-EC-8-p",tag_AB_EC_8,tax_group_8
|
||||
lu_2015_tax_AB-ECP-0,Achat Biens Exonéré - Extracommunautaire fin privées,AB-ECP-0,purchase,percent,0,,,lu_2011_chart_1,123,,tag_AB_ECP_0,tax_group_0
|
||||
lu_2015_tax_AB-ECP-12-n,Achat Biens 12% - Extracommunautaire fin privées (-),AB-ECP-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1125,,tag_AB_ECP_12_n,tax_group_12
|
||||
lu_2015_tax_AB-ECP-12-p,Achat Biens 12% - Extracommunautaire fin privées (+),AB-ECP-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1126,,tag_AB_ECP_12_p,tax_group_12
|
||||
lu_2015_tax_AB-ECP-12,Achat Biens 12% - Extracommunautaire fin privées,AB-ECP-12,purchase,group,100,,,lu_2011_chart_1,124,"lu_2015_tax_AB-ECP-12-n,lu_2015_tax_AB-ECP-12-p",tag_AB_ECP_12,tax_group_12
|
||||
lu_2015_tax_AB-ECP-14-n,Achat Biens 14% - Extracommunautaire fin privées (-),AB-ECP-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1128,,tag_AB_ECP_14_n,tax_group_14
|
||||
lu_2015_tax_AB-ECP-14-p,Achat Biens 14% - Extracommunautaire fin privées (+),AB-ECP-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1129,,tag_AB_ECP_14_p,tax_group_14
|
||||
lu_2015_tax_AB-ECP-14,Achat Biens 14% - Extracommunautaire fin privées,AB-ECP-14,purchase,group,100,,,lu_2011_chart_1,127,"lu_2015_tax_AB-ECP-14-n,lu_2015_tax_AB-ECP-14-p",tag_AB_ECP_14,tax_group_14
|
||||
lu_2015_tax_AB-ECP-15-n,Achat Biens 15% - Extracommunautaire fin privées (-),AB-ECP-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1131,,tag_AB_ECP_15_n,tax_group_15
|
||||
lu_2015_tax_AB-ECP-15-p,Achat Biens 15% - Extracommunautaire fin privées (+),AB-ECP-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1132,,tag_AB_ECP_15_p,tax_group_15
|
||||
lu_2015_tax_AB-ECP-15,Achat Biens 15% - Extracommunautaire fin privées,AB-ECP-15,purchase,group,100,,,lu_2011_chart_1,130,"lu_2015_tax_AB-ECP-15-n,lu_2015_tax_AB-ECP-15-p",tag_AB_ECP_15,tax_group_15
|
||||
lu_2015_tax_AB-ECP-17-n,Achat Biens 17% - Extracommunautaire fin privées (-),AB-ECP-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1134,,tag_AB_ECP_17_n,tax_group_17
|
||||
lu_2015_tax_AB-ECP-17-p,Achat Biens 17% - Extracommunautaire fin privées (+),AB-ECP-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1135,,tag_AB_ECP_17_p,tax_group_17
|
||||
lu_2015_tax_AB-ECP-17,Achat Biens 17% - Extracommunautaire fin privées,AB-ECP-17,purchase,group,100,,,lu_2011_chart_1,133,"lu_2015_tax_AB-ECP-17-n,lu_2015_tax_AB-ECP-17-p",tag_AB_ECP_17,tax_group_17
|
||||
lu_2015_tax_AB-ECP-3-n,Achat Biens 3% - Extracommunautaire fin privées (-),AB-ECP-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1137,,tag_AB_ECP_3_n,tax_group_3
|
||||
lu_2015_tax_AB-ECP-3-p,Achat Biens 3% - Extracommunautaire fin privées (+),AB-ECP-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1138,,tag_AB_ECP_3_p,tax_group_3
|
||||
lu_2015_tax_AB-ECP-3,Achat Biens 3% - Extracommunautaire fin privées,AB-ECP-3,purchase,group,100,,,lu_2011_chart_1,136,"lu_2015_tax_AB-ECP-3-n,lu_2015_tax_AB-ECP-3-p",tag_AB_ECP_3,tax_group_3
|
||||
lu_2015_tax_AB-ECP-6-n,Achat Biens 6% - Extracommunautaire fin privées (-),AB-ECP-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1140,,tag_AB_ECP_6_n,tax_group_6
|
||||
lu_2015_tax_AB-ECP-6-p,Achat Biens 6% - Extracommunautaire fin privées (+),AB-ECP-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1141,,tag_AB_ECP_6_p,tax_group_6
|
||||
lu_2015_tax_AB-ECP-6,Achat Biens 6% - Extracommunautaire fin privées,AB-ECP-6,purchase,group,100,,,lu_2011_chart_1,139,"lu_2015_tax_AB-ECP-6-n,lu_2015_tax_AB-ECP-6-p",tag_AB_ECP_6,tax_group_6
|
||||
lu_2015_tax_AB-ECP-8-n,Achat Biens 8% - Extracommunautaire fin privées (-),AB-ECP-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1143,,tag_AB_ECP_8_n,tax_group_8
|
||||
lu_2015_tax_AB-ECP-8-p,Achat Biens 8% - Extracommunautaire fin privées (+),AB-ECP-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1144,,tag_AB_ECP_8_p,tax_group_8
|
||||
lu_2015_tax_AB-ECP-8,Achat Biens 8% - Extracommunautaire fin privées,AB-ECP-8,purchase,group,100,,,lu_2011_chart_1,142,"lu_2015_tax_AB-ECP-8-n,lu_2015_tax_AB-ECP-8-p",tag_AB_ECP_8,tax_group_8
|
||||
lu_2011_tax_AB-IC-0,Achat Biens Exonéré - Intracommunautaire,AB-IC-0,purchase,percent,0,,,lu_2011_chart_1,145,,tag_AB_IC_0,tax_group_0
|
||||
lu_2011_tax_AB-IC-12-n,Achat Biens 12% - Intracommunautaire (-),AB-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1147,,tag_AB_IC_12_n,tax_group_12
|
||||
lu_2011_tax_AB-IC-12-p,Achat Biens 12% - Intracommunautaire (+),AB-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1148,,tag_AB_IC_12_p,tax_group_12
|
||||
lu_2011_tax_AB-IC-12,Achat Biens 12% - Intracommunautaire,AB-IC-12,purchase,group,100,,,lu_2011_chart_1,146,"lu_2011_tax_AB-IC-12-n,lu_2011_tax_AB-IC-12-p",tag_AB_IC_12,tax_group_12
|
||||
lu_2015_tax_AB-IC-14-n,Achat Biens 14% - Intracommunautaire (-),AB-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1150,,tag_AB_IC_14_n,tax_group_14
|
||||
lu_2015_tax_AB-IC-14-p,Achat Biens 14% - Intracommunautaire (+),AB-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1151,,tag_AB_IC_14_p,tax_group_14
|
||||
lu_2015_tax_AB-IC-14,Achat Biens 14% - Intracommunautaire,AB-IC-14,purchase,group,100,,,lu_2011_chart_1,149,"lu_2015_tax_AB-IC-14-n,lu_2015_tax_AB-IC-14-p",tag_AB_IC_14,tax_group_14
|
||||
lu_2011_tax_AB-IC-15-n,Achat Biens 15% - Intracommunautaire (-),AB-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1153,,tag_AB_IC_15_n,tax_group_15
|
||||
lu_2011_tax_AB-IC-15-p,Achat Biens 15% - Intracommunautaire (+),AB-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1154,,tag_AB_IC_15_p,tax_group_15
|
||||
lu_2011_tax_AB-IC-15,Achat Biens 15% - Intracommunautaire,AB-IC-15,purchase,group,100,,,lu_2011_chart_1,152,"lu_2011_tax_AB-IC-15-n,lu_2011_tax_AB-IC-15-p",tag_AB_IC_15,tax_group_15
|
||||
lu_2015_tax_AB-IC-17-n,Achat Biens 17% - Intracommunautaire (-),AB-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1156,,tag_AB_IC_17_n,tax_group_17
|
||||
lu_2015_tax_AB-IC-17-p,Achat Biens 17% - Intracommunautaire (+),AB-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1157,,tag_AB_IC_17_p,tax_group_17
|
||||
lu_2015_tax_AB-IC-17,Achat Biens 17% - Intracommunautaire,AB-IC-17,purchase,group,100,,,lu_2011_chart_1,155,"lu_2015_tax_AB-IC-17-n,lu_2015_tax_AB-IC-17-p",tag_AB_IC_17,tax_group_17
|
||||
lu_2011_tax_AB-IC-3-n,Achat Biens 3% - Intracommunautaire (-),AB-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1159,,tag_AB_IC_3_n,tax_group_3
|
||||
lu_2011_tax_AB-IC-3-p,Achat Biens 3% - Intracommunautaire (+),AB-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1160,,tag_AB_IC_3_p,tax_group_3
|
||||
lu_2011_tax_AB-IC-3,Achat Biens 3% - Intracommunautaire,AB-IC-3,purchase,group,100,,,lu_2011_chart_1,158,"lu_2011_tax_AB-IC-3-n,lu_2011_tax_AB-IC-3-p",tag_AB_IC_3,tax_group_3
|
||||
lu_2011_tax_AB-IC-6-n,Achat Biens 6% - Intracommunautaire (-),AB-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1162,,tag_AB_IC_6_n,tax_group_6
|
||||
lu_2011_tax_AB-IC-6-p,Achat Biens 6% - Intracommunautaire (+),AB-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1163,,tag_AB_IC_6_p,tax_group_6
|
||||
lu_2011_tax_AB-IC-6,Achat Biens 6% - Intracommunautaire,AB-IC-6,purchase,group,100,,,lu_2011_chart_1,161,"lu_2011_tax_AB-IC-6-n,lu_2011_tax_AB-IC-6-p",tag_AB_IC_6,tax_group_6
|
||||
lu_2015_tax_AB-IC-8-n,Achat Biens 8% - Intracommunautaire (-),AB-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1165,,tag_AB_IC_8_n,tax_group_8
|
||||
lu_2015_tax_AB-IC-8-p,Achat Biens 8% - Intracommunautaire (+),AB-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1166,,tag_AB_IC_8_p,tax_group_8
|
||||
lu_2015_tax_AB-IC-8,Achat Biens 8% - Intracommunautaire,AB-IC-8,purchase,group,100,,,lu_2011_chart_1,164,"lu_2015_tax_AB-IC-8-n,lu_2015_tax_AB-IC-8-p",tag_AB_IC_8,tax_group_8
|
||||
lu_2011_tax_AB-PA-0,Achat Biens 0% - Pays,AB-PA-0,purchase,percent,0,,,lu_2011_chart_1,167,,tag_AB_PA_0,tax_group_0
|
||||
lu_2011_tax_AB-PA-12,Achat Biens 12% - Pays,AB-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,168,,tag_AB_PA_12,tax_group_12
|
||||
lu_2015_tax_AB-PA-14,Achat Biens 14% - Pays,AB-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,169,,tag_AB_PA_14,tax_group_14
|
||||
lu_2011_tax_AB-PA-15,Achat Biens 15% - Pays,AB-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,170,,tag_AB_PA_15,tax_group_15
|
||||
lu_2015_tax_AB-PA-17,Achat Biens 17% - Pays,AB-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,171,,tag_AB_PA_17,tax_group_17
|
||||
lu_2011_tax_AB-PA-3,Achat Biens 3% - Pays,AB-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,172,,tag_AB_PA_3,tax_group_3
|
||||
lu_2011_tax_AB-PA-6,Achat Biens 6% - Pays,AB-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,173,,tag_AB_PA_6,tax_group_6
|
||||
lu_2015_tax_AB-PA-8,Achat Biens 8% - Pays,AB-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,174,,tag_AB_PA_8,tax_group_8
|
||||
lu_2011_tax_AP-EC-0,Achat Prestations Exonérées - Extracommunautaire,AP-EC-0,purchase,percent,0,,,lu_2011_chart_1,175,,tag_AP_EC_0,tax_group_0
|
||||
lu_2011_tax_AP-EC-12-n,Achat Prestations 12% - Extracommunautaire (-),AP-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1177,,tag_AP_EC_12_n,tax_group_12
|
||||
lu_2011_tax_AP-EC-12-p,Achat Prestations 12% - Extracommunautaire (+),AP-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1178,,tag_AP_EC_12_p,tax_group_12
|
||||
lu_2011_tax_AP-EC-12,Achat Prestations 12% - Extracommunautaire,AP-EC-12,purchase,group,100,,,lu_2011_chart_1,176,"lu_2011_tax_AP-EC-12-n,lu_2011_tax_AP-EC-12-p",tag_AP_EC_12,tax_group_12
|
||||
lu_2015_tax_AP-EC-14-n,Achat Prestations 14% - Extracommunautaire (-),AP-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1180,,tag_AP_EC_14_n,tax_group_14
|
||||
lu_2015_tax_AP-EC-14-p,Achat Prestations 14% - Extracommunautaire (+),AP-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1181,,tag_AP_EC_14_p,tax_group_14
|
||||
lu_2015_tax_AP-EC-14,Achat Prestations 14% - Extracommunautaire,AP-EC-14,purchase,group,100,,,lu_2011_chart_1,179,"lu_2015_tax_AP-EC-14-n,lu_2015_tax_AP-EC-14-p",tag_AP_EC_14,tax_group_14
|
||||
lu_2011_tax_AP-EC-15-n,Achat Prestations 15% - Extracommunautaire (-),AP-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1183,,tag_AP_EC_15_n,tax_group_15
|
||||
lu_2011_tax_AP-EC-15-p,Achat Prestations 15% - Extracommunautaire (+),AP-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1184,,tag_AP_EC_15_p,tax_group_15
|
||||
lu_2011_tax_AP-EC-15,Achat Prestations 15% - Extracommunautaire,AP-EC-15,purchase,group,100,,,lu_2011_chart_1,182,"lu_2011_tax_AP-EC-15-n,lu_2011_tax_AP-EC-15-p",tag_AP_EC_15,tax_group_15
|
||||
lu_2015_tax_AP-EC-17-n,Achat Prestations 17% - Extracommunautaire (-),AP-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1186,,tag_AP_EC_17_n,tax_group_17
|
||||
lu_2015_tax_AP-EC-17-p,Achat Prestations 17% - Extracommunautaire (+),AP-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1187,,tag_AP_EC_17_p,tax_group_17
|
||||
lu_2015_tax_AP-EC-17,Achat Prestations 17% - Extracommunautaire,AP-EC-17,purchase,group,100,,,lu_2011_chart_1,185,"lu_2015_tax_AP-EC-17-n,lu_2015_tax_AP-EC-17-p",tag_AP_EC_17,tax_group_17
|
||||
lu_2011_tax_AP-EC-3-n,Achat Prestations 3% - Extracommunautaire (-),AP-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1189,,tag_AP_EC_3_n,tax_group_3
|
||||
lu_2011_tax_AP-EC-3-p,Achat Prestations 3% - Extracommunautaire (+),AP-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1190,,tag_AP_EC_3_p,tax_group_3
|
||||
lu_2011_tax_AP-EC-3,Achat Prestations 3% - Extracommunautaire,AP-EC-3,purchase,group,100,,,lu_2011_chart_1,188,"lu_2011_tax_AP-EC-3-n,lu_2011_tax_AP-EC-3-p",tag_AP_EC_3,tax_group_3
|
||||
lu_2011_tax_AP-EC-6-n,Achat Prestations 6% - Extracommunautaire (-),AP-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1192,,tag_AP_EC_6_n,tax_group_6
|
||||
lu_2011_tax_AP-EC-6-p,Achat Prestations 6% - Extracommunautaire (+),AP-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1193,,tag_AP_EC_6_p,tax_group_6
|
||||
lu_2011_tax_AP-EC-6,Achat Prestations 6% - Extracommunautaire,AP-EC-6,purchase,group,100,,,lu_2011_chart_1,191,"lu_2011_tax_AP-EC-6-n,lu_2011_tax_AP-EC-6-p",tag_AP_EC_6,tax_group_6
|
||||
lu_2015_tax_AP-EC-8-n,Achat Prestations 8% - Extracommunautaire (-),AP-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1195,,tag_AP_EC_8_n,tax_group_8
|
||||
lu_2015_tax_AP-EC-8-p,Achat Prestations 8% - Extracommunautaire (+),AP-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1196,,tag_AP_EC_8_p,tax_group_8
|
||||
lu_2015_tax_AP-EC-8,Achat Prestations 8% - Extracommunautaire,AP-EC-8,purchase,group,100,,,lu_2011_chart_1,194,"lu_2015_tax_AP-EC-8-n,lu_2015_tax_AP-EC-8-p",tag_AP_EC_8,tax_group_8
|
||||
lu_2011_tax_AP-IC-0,Achat Prestations Exonérées - Intracommunautaire,AP-IC-0,purchase,percent,0,,,lu_2011_chart_1,197,,tag_AP_IC_0,tax_group_0
|
||||
lu_2011_tax_AP-IC-12-n,Achat Prestations 12% - Intracommunautaire (-),AP-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1199,,tag_AP_IC_12_n,tax_group_12
|
||||
lu_2011_tax_AP-IC-12-p,Achat Prestations 12% - Intracommunautaire (+),AP-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1200,,tag_AP_IC_12_p,tax_group_12
|
||||
lu_2011_tax_AP-IC-12,Achat Prestations 12% - Intracommunautaire,AP-IC-12,purchase,group,100,,,lu_2011_chart_1,198,"lu_2011_tax_AP-IC-12-n,lu_2011_tax_AP-IC-12-p",tag_AP_IC_12,tax_group_12
|
||||
lu_2015_tax_AP-IC-14-n,Achat Prestations 14% - Intracommunautaire (-),AP-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1202,,tag_AP_IC_14_n,tax_group_14
|
||||
lu_2015_tax_AP-IC-14-p,Achat Prestations 14% - Intracommunautaire (+),AP-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1203,,tag_AP_IC_14_p,tax_group_14
|
||||
lu_2015_tax_AP-IC-14,Achat Prestations 14% - Intracommunautaire,AP-IC-14,purchase,group,100,,,lu_2011_chart_1,201,"lu_2015_tax_AP-IC-14-n,lu_2015_tax_AP-IC-14-p",tag_AP_IC_14,tax_group_14
|
||||
lu_2011_tax_AP-IC-15-n,Achat Prestations 15% - Intracommunautaire (-),AP-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1205,,tag_AP_IC_15_n,tax_group_15
|
||||
lu_2011_tax_AP-IC-15-p,Achat Prestations 15% - Intracommunautaire (+),AP-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1206,,tag_AP_IC_15_p,tax_group_15
|
||||
lu_2011_tax_AP-IC-15,Achat Prestations 15% - Intracommunautaire,AP-IC-15,purchase,group,100,,,lu_2011_chart_1,204,"lu_2011_tax_AP-IC-15-n,lu_2011_tax_AP-IC-15-p",tag_AP_IC_15,tax_group_15
|
||||
lu_2015_tax_AP-IC-17-n,Achat Prestations 17% - Intracommunautaire (-),AP-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1208,,tag_AP_IC_17_n,tax_group_17
|
||||
lu_2015_tax_AP-IC-17-p,Achat Prestations 17% - Intracommunautaire (+),AP-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1209,,tag_AP_IC_17_p,tax_group_17
|
||||
lu_2015_tax_AP-IC-17,Achat Prestations 17% - Intracommunautaire,AP-IC-17,purchase,group,100,,,lu_2011_chart_1,207,"lu_2015_tax_AP-IC-17-n,lu_2015_tax_AP-IC-17-p",tag_AP_IC_17,tax_group_17
|
||||
lu_2011_tax_AP-IC-3-n,Achat Prestations 3% - Intracommunautaire (-),AP-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1211,,tag_AP_IC_3_n,tax_group_3
|
||||
lu_2011_tax_AP-IC-3-p,Achat Prestations 3% - Intracommunautaire (+),AP-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1212,,tag_AP_IC_3_p,tax_group_3
|
||||
lu_2011_tax_AP-IC-3,Achat Prestations 3% - Intracommunautaire,AP-IC-3,purchase,group,100,,,lu_2011_chart_1,210,"lu_2011_tax_AP-IC-3-n,lu_2011_tax_AP-IC-3-p",tag_AP_IC_3,tax_group_3
|
||||
lu_2011_tax_AP-IC-6-n,Achat Prestations 6% - Intracommunautaire (-),AP-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1214,,tag_AP_IC_6_n,tax_group_6
|
||||
lu_2011_tax_AP-IC-6-p,Achat Prestations 6% - Intracommunautaire (+),AP-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1215,,tag_AP_IC_6_p,tax_group_6
|
||||
lu_2011_tax_AP-IC-6,Achat Prestations 6% - Intracommunautaire,AP-IC-6,purchase,group,100,,,lu_2011_chart_1,213,"lu_2011_tax_AP-IC-6-n,lu_2011_tax_AP-IC-6-p",tag_AP_IC_6,tax_group_6
|
||||
lu_2015_tax_AP-IC-8-n,Achat Prestations 8% - Intracommunautaire (-),AP-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1217,,tag_AP_IC_8_n,tax_group_8
|
||||
lu_2015_tax_AP-IC-8-p,Achat Prestations 8% - Intracommunautaire (+),AP-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1218,,tag_AP_IC_8_p,tax_group_8
|
||||
lu_2015_tax_AP-IC-8,Achat Prestations 8% - Intracommunautaire,AP-IC-8,purchase,group,100,,,lu_2011_chart_1,216,"lu_2015_tax_AP-IC-8-n,lu_2015_tax_AP-IC-8-p",tag_AP_IC_8,tax_group_8
|
||||
lu_2011_tax_AP-PA-0,Achat Prestations 0% - Pays,AP-PA-0,purchase,percent,0,,,lu_2011_chart_1,219,,tag_AP_PA_0,tax_group_0
|
||||
lu_2011_tax_AP-PA-12,Achat Prestations 12% - Pays,AP-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,220,,tag_AP_PA_12,tax_group_12
|
||||
lu_2015_tax_AP-PA-14,Achat Prestations 14% - Pays,AP-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,221,,tag_AP_PA_14,tax_group_14
|
||||
lu_2011_tax_AP-PA-15,Achat Prestations 15% - Pays,AP-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,222,,tag_AP_PA_15,tax_group_15
|
||||
lu_2015_tax_AP-PA-17,Achat Prestations 17% - Pays,AP-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,223,,tag_AP_PA_17,tax_group_17
|
||||
lu_2011_tax_AP-PA-3,Achat Prestations 3% - Pays,AP-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,224,,tag_AP_PA_3,tax_group_3
|
||||
lu_2011_tax_AP-PA-6,Achat Prestations 6% - Pays,AP-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,225,,tag_AP_PA_6,tax_group_6
|
||||
lu_2015_tax_AP-PA-8,Achat Prestations 8% - Pays,AP-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,226,,tag_AP_PA_8,tax_group_8
|
||||
lu_2011_tax_FB-EC-0,Frais Biens Exonéré - Extracommunautaire,FB-EC-0,purchase,percent,0,,,lu_2011_chart_1,227,,tag_FB_EC_0,tax_group_0
|
||||
lu_2011_tax_FB-EC-12-n,Frais Biens 12% - Extracommunautaire (-),FB-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1229,,tag_FB_EC_12_n,tax_group_12
|
||||
lu_2011_tax_FB-EC-12-p,Frais Biens 12% - Extracommunautaire (+),FB-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1230,,tag_FB_EC_12_p,tax_group_12
|
||||
lu_2011_tax_FB-EC-12,Frais Biens 12% - Extracommunautaire,FB-EC-12,purchase,group,100,,,lu_2011_chart_1,228,"lu_2011_tax_FB-EC-12-n,lu_2011_tax_FB-EC-12-p",tag_FB_EC_12,tax_group_12
|
||||
lu_2015_tax_FB-EC-14-n,Frais Biens 14% - Extracommunautaire (-),FB-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1232,,tag_FB_EC_14_n,tax_group_14
|
||||
lu_2015_tax_FB-EC-14-p,Frais Biens 14% - Extracommunautaire (+),FB-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1233,,tag_FB_EC_14_p,tax_group_14
|
||||
lu_2015_tax_FB-EC-14,Frais Biens 14% - Extracommunautaire,FB-EC-14,purchase,group,100,,,lu_2011_chart_1,231,"lu_2015_tax_FB-EC-14-n,lu_2015_tax_FB-EC-14-p",tag_FB_EC_14,tax_group_14
|
||||
lu_2011_tax_FB-EC-15-n,Frais Biens 15% - Extracommunautaire (-),FB-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1235,,tag_FB_EC_15_n,tax_group_15
|
||||
lu_2011_tax_FB-EC-15-p,Frais Biens 15% - Extracommunautaire (+),FB-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1236,,tag_FB_EC_15_p,tax_group_15
|
||||
lu_2011_tax_FB-EC-15,Frais Biens 15% - Extracommunautaire,FB-EC-15,purchase,group,100,,,lu_2011_chart_1,234,"lu_2011_tax_FB-EC-15-n,lu_2011_tax_FB-EC-15-p",tag_FB_EC_15,tax_group_15
|
||||
lu_2015_tax_FB-EC-17-n,Frais Biens 17% - Extracommunautaire (-),FB-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1238,,tag_FB_EC_17_n,tax_group_17
|
||||
lu_2015_tax_FB-EC-17-p,Frais Biens 17% - Extracommunautaire (+),FB-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1239,,tag_FB_EC_17_p,tax_group_17
|
||||
lu_2015_tax_FB-EC-17,Frais Biens 17% - Extracommunautaire,FB-EC-17,purchase,group,100,,,lu_2011_chart_1,237,"lu_2015_tax_FB-EC-17-n,lu_2015_tax_FB-EC-17-p",tag_FB_EC_17,tax_group_17
|
||||
lu_2011_tax_FB-EC-3-n,Frais Biens 3% - Extracommunautaire (-),FB-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1241,,tag_FB_EC_3_n,tax_group_3
|
||||
lu_2011_tax_FB-EC-3-p,Frais Biens 3% - Extracommunautaire (+),FB-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1242,,tag_FB_EC_3_p,tax_group_3
|
||||
lu_2011_tax_FB-EC-3,Frais Biens 3% - Extracommunautaire,FB-EC-3,purchase,group,100,,,lu_2011_chart_1,240,"lu_2011_tax_FB-EC-3-n,lu_2011_tax_FB-EC-3-p",tag_FB_EC_3,tax_group_3
|
||||
lu_2011_tax_FB-EC-6-n,Frais Biens 6% - Extracommunautaire (-),FB-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1244,,tag_FB_EC_6_n,tax_group_6
|
||||
lu_2011_tax_FB-EC-6-p,Frais Biens 6% - Extracommunautaire (+),FB-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1245,,tag_FB_EC_6_p,tax_group_6
|
||||
lu_2011_tax_FB-EC-6,Frais Biens 6% - Extracommunautaire,FB-EC-6,purchase,group,100,,,lu_2011_chart_1,243,"lu_2011_tax_FB-EC-6-n,lu_2011_tax_FB-EC-6-p",tag_FB_EC_6,tax_group_6
|
||||
lu_2015_tax_FB-EC-8-n,Frais Biens 8% - Extracommunautaire (-),FB-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1247,,tag_FB_EC_8_n,tax_group_8
|
||||
lu_2015_tax_FB-EC-8-p,Frais Biens 8% - Extracommunautaire (+),FB-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1248,,tag_FB_EC_8_p,tax_group_8
|
||||
lu_2015_tax_FB-EC-8,Frais Biens 8% - Extracommunautaire,FB-EC-8,purchase,group,100,,,lu_2011_chart_1,246,"lu_2015_tax_FB-EC-8-n,lu_2015_tax_FB-EC-8-p",tag_FB_EC_8,tax_group_8
|
||||
lu_2015_tax_FB-ECP-0,Frais Biens Exonéré - Extracommunautaire fin privées,FB-ECP-0,purchase,percent,0,,,lu_2011_chart_1,249,,tag_FB_ECP_0,tax_group_0
|
||||
lu_2015_tax_FB-ECP-12-n,Frais Biens 12% - Extracommunautaire fin privées (-),FB-ECP-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1251,,tag_FB_ECP_12_n,tax_group_12
|
||||
lu_2015_tax_FB-ECP-12-p,Frais Biens 12% - Extracommunautaire fin privées (+),FB-ECP-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1252,,tag_FB_ECP_12_p,tax_group_12
|
||||
lu_2015_tax_FB-ECP-12,Frais Biens 12% - Extracommunautaire fin privées,FB-ECP-12,purchase,group,100,,,lu_2011_chart_1,250,"lu_2015_tax_FB-ECP-12-n,lu_2015_tax_FB-ECP-12-p",tag_FB_ECP_12,tax_group_12
|
||||
lu_2015_tax_FB-ECP-14-n,Frais Biens 14% - Extracommunautaire fin privées (-),FB-ECP-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1254,,tag_FB_ECP_14_n,tax_group_14
|
||||
lu_2015_tax_FB-ECP-14-p,Frais Biens 14% - Extracommunautaire fin privées (+),FB-ECP-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1255,,tag_FB_ECP_14_p,tax_group_14
|
||||
lu_2015_tax_FB-ECP-14,Frais Biens 14% - Extracommunautaire fin privées,FB-ECP-14,purchase,group,100,,,lu_2011_chart_1,253,"lu_2015_tax_FB-ECP-14-n,lu_2015_tax_FB-ECP-14-p",tag_FB_ECP_14,tax_group_14
|
||||
lu_2015_tax_FB-ECP-15-n,Frais Biens 15% - Extracommunautaire fin privées (-),FB-ECP-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1257,,tag_FB_ECP_15_n,tax_group_15
|
||||
lu_2015_tax_FB-ECP-15-p,Frais Biens 15% - Extracommunautaire fin privées (+),FB-ECP-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1258,,tag_FB_ECP_15_p,tax_group_15
|
||||
lu_2015_tax_FB-ECP-15,Frais Biens 15% - Extracommunautaire fin privées,FB-ECP-15,purchase,group,100,,,lu_2011_chart_1,256,"lu_2015_tax_FB-ECP-15-n,lu_2015_tax_FB-ECP-15-p",tag_FB_ECP_15,tax_group_15
|
||||
lu_2015_tax_FB-ECP-17-n,Frais Biens 17% - Extracommunautaire fin privées (-),FB-ECP-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1260,,tag_FB_ECP_17_n,tax_group_17
|
||||
lu_2015_tax_FB-ECP-17-p,Frais Biens 17% - Extracommunautaire fin privées (+),FB-ECP-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1261,,tag_FB_ECP_17_p,tax_group_17
|
||||
lu_2015_tax_FB-ECP-17,Frais Biens 17% - Extracommunautaire fin privées,FB-ECP-17,purchase,group,100,,,lu_2011_chart_1,259,"lu_2015_tax_FB-ECP-17-n,lu_2015_tax_FB-ECP-17-p",tag_FB_ECP_17,tax_group_17
|
||||
lu_2015_tax_FB-ECP-3-n,Frais Biens 3% - Extracommunautaire fin privées (-),FB-ECP-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1263,,tag_FB_ECP_3_n,tax_group_3
|
||||
lu_2015_tax_FB-ECP-3-p,Frais Biens 3% - Extracommunautaire fin privées (+),FB-ECP-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1264,,tag_FB_ECP_3_p,tax_group_3
|
||||
lu_2015_tax_FB-ECP-3,Frais Biens 3% - Extracommunautaire fin privées,FB-ECP-3,purchase,group,100,,,lu_2011_chart_1,262,"lu_2015_tax_FB-ECP-3-n,lu_2015_tax_FB-ECP-3-p",tag_FB_ECP_3,tax_group_3
|
||||
lu_2015_tax_FB-ECP-6-n,Frais Biens 6% - Extracommunautaire fin privées (-),FB-ECP-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1266,,tag_FB_ECP_6_n,tax_group_6
|
||||
lu_2015_tax_FB-ECP-6-p,Frais Biens 6% - Extracommunautaire fin privées (+),FB-ECP-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1267,,tag_FB_ECP_6_p,tax_group_6
|
||||
lu_2015_tax_FB-ECP-6,Frais Biens 6% - Extracommunautaire fin privées,FB-ECP-6,purchase,group,100,,,lu_2011_chart_1,265,"lu_2015_tax_FB-ECP-6-n,lu_2015_tax_FB-ECP-6-p",tag_FB_ECP_6,tax_group_6
|
||||
lu_2015_tax_FB-ECP-8-n,Frais Biens 8% - Extracommunautaire fin privées (-),FB-ECP-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1269,,tag_FB_ECP_8_n,tax_group_8
|
||||
lu_2015_tax_FB-ECP-8-p,Frais Biens 8% - Extracommunautaire fin privées (+),FB-ECP-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1270,,tag_FB_ECP_8_p,tax_group_8
|
||||
lu_2015_tax_FB-ECP-8,Frais Biens 8% - Extracommunautaire fin privées,FB-ECP-8,purchase,group,100,,,lu_2011_chart_1,268,"lu_2015_tax_FB-ECP-8-n,lu_2015_tax_FB-ECP-8-p",tag_FB_ECP_8,tax_group_8
|
||||
lu_2011_tax_FB-IC-0,Frais Biens Exonéré - Intracommunautaire,FB-IC-0,purchase,percent,0,,,lu_2011_chart_1,271,,tag_FB_IC_0,tax_group_0
|
||||
lu_2011_tax_FB-IC-12-n,Frais Biens 12% - Intracommunautaire (-),FB-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1273,,tag_FB_IC_12_n,tax_group_12
|
||||
lu_2011_tax_FB-IC-12-p,Frais Biens 12% - Intracommunautaire (+),FB-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1274,,tag_FB_IC_12_p,tax_group_12
|
||||
lu_2011_tax_FB-IC-12,Frais Biens 12% - Intracommunautaire,FB-IC-12,purchase,group,100,,,lu_2011_chart_1,272,"lu_2011_tax_FB-IC-12-n,lu_2011_tax_FB-IC-12-p",tag_FB_IC_12,tax_group_12
|
||||
lu_2015_tax_FB-IC-14-n,Frais Biens 14% - Intracommunautaire (-),FB-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1276,,tag_FB_IC_14_n,tax_group_14
|
||||
lu_2015_tax_FB-IC-14-p,Frais Biens 14% - Intracommunautaire (+),FB-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1277,,tag_FB_IC_14_p,tax_group_14
|
||||
lu_2015_tax_FB-IC-14,Frais Biens 14% - Intracommunautaire,FB-IC-14,purchase,group,100,,,lu_2011_chart_1,275,"lu_2015_tax_FB-IC-14-n,lu_2015_tax_FB-IC-14-p",tag_FB_IC_14,tax_group_14
|
||||
lu_2011_tax_FB-IC-15-n,Frais Biens 15% - Intracommunautaire (-),FB-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1279,,tag_FB_IC_15_n,tax_group_15
|
||||
lu_2011_tax_FB-IC-15-p,Frais Biens 15% - Intracommunautaire (+),FB-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1280,,tag_FB_IC_15_p,tax_group_15
|
||||
lu_2011_tax_FB-IC-15,Frais Biens 15% - Intracommunautaire,FB-IC-15,purchase,group,100,,,lu_2011_chart_1,278,"lu_2011_tax_FB-IC-15-n,lu_2011_tax_FB-IC-15-p",tag_FB_IC_15,tax_group_15
|
||||
lu_2015_tax_FB-IC-17-n,Frais Biens 17% - Intracommunautaire (-),FB-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1282,,tag_FB_IC_17_n,tax_group_17
|
||||
lu_2015_tax_FB-IC-17-p,Frais Biens 17% - Intracommunautaire (+),FB-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1283,,tag_FB_IC_17_p,tax_group_17
|
||||
lu_2015_tax_FB-IC-17,Frais Biens 17% - Intracommunautaire,FB-IC-17,purchase,group,100,,,lu_2011_chart_1,281,"lu_2015_tax_FB-IC-17-n,lu_2015_tax_FB-IC-17-p",tag_FB_IC_17,tax_group_17
|
||||
lu_2011_tax_FB-IC-3-n,Frais Biens 3% - Intracommunautaire (-),FB-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1285,,tag_FB_IC_3_n,tax_group_3
|
||||
lu_2011_tax_FB-IC-3-p,Frais Biens 3% - Intracommunautaire (+),FB-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1286,,tag_FB_IC_3_p,tax_group_3
|
||||
lu_2011_tax_FB-IC-3,Frais Biens 3% - Intracommunautaire,FB-IC-3,purchase,group,100,,,lu_2011_chart_1,284,"lu_2011_tax_FB-IC-3-n,lu_2011_tax_FB-IC-3-p",tag_FB_IC_3,tax_group_3
|
||||
lu_2011_tax_FB-IC-6-n,Frais Biens 6% - Intracommunautaire (-),FB-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1288,,tag_FB_IC_6_n,tax_group_6
|
||||
lu_2011_tax_FB-IC-6-p,Frais Biens 6% - Intracommunautaire (+),FB-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1289,,tag_FB_IC_6_p,tax_group_6
|
||||
lu_2011_tax_FB-IC-6,Frais Biens 6% - Intracommunautaire,FB-IC-6,purchase,group,100,,,lu_2011_chart_1,287,"lu_2011_tax_FB-IC-6-n,lu_2011_tax_FB-IC-6-p",tag_FB_IC_6,tax_group_6
|
||||
lu_2015_tax_FB-IC-8-n,Frais Biens 8% - Intracommunautaire (-),FB-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1291,,tag_FB_IC_8_n,tax_group_8
|
||||
lu_2015_tax_FB-IC-8-p,Frais Biens 8% - Intracommunautaire (+),FB-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1292,,tag_FB_IC_8_p,tax_group_8
|
||||
lu_2015_tax_FB-IC-8,Frais Biens 8% - Intracommunautaire,FB-IC-8,purchase,group,100,,,lu_2011_chart_1,290,"lu_2015_tax_FB-IC-8-n,lu_2015_tax_FB-IC-8-p",tag_FB_IC_8,tax_group_8
|
||||
lu_2011_tax_FB-PA-0,Frais Biens 0% - Pays,FB-PA-0,purchase,percent,0,,,lu_2011_chart_1,293,,tag_FB_PA_0,tax_group_0
|
||||
lu_2011_tax_FB-PA-12,Frais Biens 12% - Pays,FB-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,294,,tag_FB_PA_12,tax_group_12
|
||||
lu_2015_tax_FB-PA-14,Frais Biens 14% - Pays,FB-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,295,,tag_FB_PA_14,tax_group_14
|
||||
lu_2011_tax_FB-PA-15,Frais Biens 15% - Pays,FB-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,296,,tag_FB_PA_15,tax_group_15
|
||||
lu_2015_tax_FB-PA-17,Frais Biens 17% - Pays,FB-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,297,,tag_FB_PA_17,tax_group_17
|
||||
lu_2011_tax_FB-PA-3,Frais Biens 3% - Pays,FB-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,298,,tag_FB_PA_3,tax_group_3
|
||||
lu_2011_tax_FB-PA-6,Frais Biens 6% - Pays,FB-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,299,,tag_FB_PA_6,tax_group_6
|
||||
lu_2015_tax_FB-PA-8,Frais Biens 8% - Pays,FB-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,300,,tag_FB_PA_8,tax_group_8
|
||||
lu_2011_tax_FP-EC-0,Frais Prestations Exonérées - Extracommunautaire,FP-EC-0,purchase,percent,0,,,lu_2011_chart_1,301,,tag_FP_EC_0,tax_group_0
|
||||
lu_2011_tax_FP-EC-12-n,Frais Prestations 12% - Extracommunautaire (-),FP-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1303,,tag_FP_EC_12_n,tax_group_12
|
||||
lu_2011_tax_FP-EC-12-p,Frais Prestations 12% - Extracommunautaire (+),FP-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1304,,tag_FP_EC_12_p,tax_group_12
|
||||
lu_2011_tax_FP-EC-12,Frais Prestations 12% - Extracommunautaire,FP-EC-12,purchase,group,100,,,lu_2011_chart_1,302,"lu_2011_tax_FP-EC-12-n,lu_2011_tax_FP-EC-12-p",tag_FP_EC_12,tax_group_12
|
||||
lu_2015_tax_FP-EC-14-n,Frais Prestations 14% - Extracommunautaire (-),FP-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1306,,tag_FP_EC_14_n,tax_group_14
|
||||
lu_2015_tax_FP-EC-14-p,Frais Prestations 14% - Extracommunautaire (+),FP-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1307,,tag_FP_EC_14_p,tax_group_14
|
||||
lu_2015_tax_FP-EC-14,Frais Prestations 14% - Extracommunautaire,FP-EC-14,purchase,group,100,,,lu_2011_chart_1,305,"lu_2015_tax_FP-EC-14-n,lu_2015_tax_FP-EC-14-p",tag_FP_EC_14,tax_group_14
|
||||
lu_2011_tax_FP-EC-15-n,Frais Prestations 15% - Extracommunautaire (-),FP-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1309,,tag_FP_EC_15_n,tax_group_15
|
||||
lu_2011_tax_FP-EC-15-p,Frais Prestations 15% - Extracommunautaire (+),FP-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1310,,tag_FP_EC_15_p,tax_group_15
|
||||
lu_2011_tax_FP-EC-15,Frais Prestations 15% - Extracommunautaire,FP-EC-15,purchase,group,100,,,lu_2011_chart_1,308,"lu_2011_tax_FP-EC-15-n,lu_2011_tax_FP-EC-15-p",tag_FP_EC_15,tax_group_15
|
||||
lu_2015_tax_FP-EC-17-n,Frais Prestations 17% - Extracommunautaire (-),FP-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1312,,tag_FP_EC_17_n,tax_group_17
|
||||
lu_2015_tax_FP-EC-17-p,Frais Prestations 17% - Extracommunautaire (+),FP-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1313,,tag_FP_EC_17_p,tax_group_17
|
||||
lu_2015_tax_FP-EC-17,Frais Prestations 17% - Extracommunautaire,FP-EC-17,purchase,group,100,,,lu_2011_chart_1,311,"lu_2015_tax_FP-EC-17-n,lu_2015_tax_FP-EC-17-p",tag_FP_EC_17,tax_group_17
|
||||
lu_2011_tax_FP-EC-3-n,Frais Prestations 3% - Extracommunautaire (-),FP-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1315,,tag_FP_EC_3_n,tax_group_3
|
||||
lu_2011_tax_FP-EC-3-p,Frais Prestations 3% - Extracommunautaire (+),FP-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1316,,tag_FP_EC_3_p,tax_group_3
|
||||
lu_2011_tax_FP-EC-3,Frais Prestations 3% - Extracommunautaire,FP-EC-3,purchase,group,100,,,lu_2011_chart_1,314,"lu_2011_tax_FP-EC-3-n,lu_2011_tax_FP-EC-3-p",tag_FP_EC_3,tax_group_3
|
||||
lu_2011_tax_FP-EC-6-n,Frais Prestations 6% - Extracommunautaire (-),FP-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1318,,tag_FP_EC_6_n,tax_group_6
|
||||
lu_2011_tax_FP-EC-6-p,Frais Prestations 6% - Extracommunautaire (+),FP-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1319,,tag_FP_EC_6_p,tax_group_6
|
||||
lu_2011_tax_FP-EC-6,Frais Prestations 6% - Extracommunautaire,FP-EC-6,purchase,group,100,,,lu_2011_chart_1,317,"lu_2011_tax_FP-EC-6-n,lu_2011_tax_FP-EC-6-p",tag_FP_EC_6,tax_group_6
|
||||
lu_2015_tax_FP-EC-8-n,Frais Prestations 8% - Extracommunautaire (-),FP-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1321,,tag_FP_EC_8_n,tax_group_8
|
||||
lu_2015_tax_FP-EC-8-p,Frais Prestations 8% - Extracommunautaire (+),FP-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1322,,tag_FP_EC_8_p,tax_group_8
|
||||
lu_2015_tax_FP-EC-8,Frais Prestations 8% - Extracommunautaire,FP-EC-8,purchase,group,100,,,lu_2011_chart_1,320,"lu_2015_tax_FP-EC-8-n,lu_2015_tax_FP-EC-8-p",tag_FP_EC_8,tax_group_8
|
||||
lu_2011_tax_FP-IC-0,Frais Prestations Exonérées - Intracommunautaire,FP-IC-0,purchase,percent,0,,,lu_2011_chart_1,323,,tag_FP_IC_0,tax_group_0
|
||||
lu_2011_tax_FP-IC-12-n,Frais Prestations 12% - Intracommunautaire (-),FP-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1325,,tag_FP_IC_12_n,tax_group_12
|
||||
lu_2011_tax_FP-IC-12-p,Frais Prestations 12% - Intracommunautaire (+),FP-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1326,,tag_FP_IC_12_p,tax_group_12
|
||||
lu_2011_tax_FP-IC-12,Frais Prestations 12% - Intracommunautaire,FP-IC-12,purchase,group,100,,,lu_2011_chart_1,324,"lu_2011_tax_FP-IC-12-n,lu_2011_tax_FP-IC-12-p",tag_FP_IC_12,tax_group_12
|
||||
lu_2015_tax_FP-IC-14-n,Frais Prestations 14% - Intracommunautaire (-),FP-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1328,,tag_FP_IC_14_n,tax_group_14
|
||||
lu_2015_tax_FP-IC-14-p,Frais Prestations 14% - Intracommunautaire (+),FP-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1329,,tag_FP_IC_14_p,tax_group_14
|
||||
lu_2015_tax_FP-IC-14,Frais Prestations 14% - Intracommunautaire,FP-IC-14,purchase,group,100,,,lu_2011_chart_1,327,"lu_2015_tax_FP-IC-14-n,lu_2015_tax_FP-IC-14-p",tag_FP_IC_14,tax_group_14
|
||||
lu_2011_tax_FP-IC-15-n,Frais Prestations 15% - Intracommunautaire (-),FP-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1331,,tag_FP_IC_15_n,tax_group_15
|
||||
lu_2011_tax_FP-IC-15-p,Frais Prestations 15% - Intracommunautaire (+),FP-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1332,,tag_FP_IC_15_p,tax_group_15
|
||||
lu_2011_tax_FP-IC-15,Frais Prestations 15% - Intracommunautaire,FP-IC-15,purchase,group,100,,,lu_2011_chart_1,330,"lu_2011_tax_FP-IC-15-n,lu_2011_tax_FP-IC-15-p",tag_FP_IC_15,tax_group_15
|
||||
lu_2015_tax_FP-IC-17-n,Frais Prestations 17% - Intracommunautaire (-),FP-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1334,,tag_FP_IC_17_n,tax_group_17
|
||||
lu_2015_tax_FP-IC-17-p,Frais Prestations 17% - Intracommunautaire (+),FP-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1335,,tag_FP_IC_17_p,tax_group_17
|
||||
lu_2015_tax_FP-IC-17,Frais Prestations 17% - Intracommunautaire,FP-IC-17,purchase,group,100,,,lu_2011_chart_1,333,"lu_2015_tax_FP-IC-17-n,lu_2015_tax_FP-IC-17-p",tag_FP_IC_17,tax_group_17
|
||||
lu_2011_tax_FP-IC-3-n,Frais Prestations 3% - Intracommunautaire (-),FP-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1337,,tag_FP_IC_3_n,tax_group_3
|
||||
lu_2011_tax_FP-IC-3-p,Frais Prestations 3% - Intracommunautaire (+),FP-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1338,,tag_FP_IC_3_p,tax_group_3
|
||||
lu_2011_tax_FP-IC-3,Frais Prestations 3% - Intracommunautaire,FP-IC-3,purchase,group,100,,,lu_2011_chart_1,336,"lu_2011_tax_FP-IC-3-n,lu_2011_tax_FP-IC-3-p",tag_FP_IC_3,tax_group_3
|
||||
lu_2011_tax_FP-IC-6-n,Frais Prestations 6% - Intracommunautaire (-),FP-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1340,,tag_FP_IC_6_n,tax_group_6
|
||||
lu_2011_tax_FP-IC-6-p,Frais Prestations 6% - Intracommunautaire (+),FP-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1341,,tag_FP_IC_6_p,tax_group_6
|
||||
lu_2011_tax_FP-IC-6,Frais Prestations 6% - Intracommunautaire,FP-IC-6,purchase,group,100,,,lu_2011_chart_1,339,"lu_2011_tax_FP-IC-6-n,lu_2011_tax_FP-IC-6-p",tag_FP_IC_6,tax_group_6
|
||||
lu_2015_tax_FP-IC-8-n,Frais Prestations 8% - Intracommunautaire (-),FP-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1343,,tag_FP_IC_8_n,tax_group_8
|
||||
lu_2015_tax_FP-IC-8-p,Frais Prestations 8% - Intracommunautaire (+),FP-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1344,,tag_FP_IC_8_p,tax_group_8
|
||||
lu_2015_tax_FP-IC-8,Frais Prestations 8% - Intracommunautaire,FP-IC-8,purchase,group,100,,,lu_2011_chart_1,342,"lu_2015_tax_FP-IC-8-n,lu_2015_tax_FP-IC-8-p",tag_FP_IC_8,tax_group_8
|
||||
lu_2011_tax_FP-PA-0,Frais Prestations 0% - Pays,FP-PA-0,purchase,percent,0,,,lu_2011_chart_1,345,,tag_FP_PA_0,tax_group_0
|
||||
lu_2011_tax_FP-PA-12,Frais Prestations 12% - Pays,FP-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,346,,tag_FP_PA_12,tax_group_12
|
||||
lu_2015_tax_FP-PA-14,Frais Prestations 14% - Pays,FP-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,347,,tag_FP_PA_14,tax_group_14
|
||||
lu_2011_tax_FP-PA-15,Frais Prestations 15% - Pays,FP-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,348,,tag_FP_PA_15,tax_group_15
|
||||
lu_2015_tax_FP-PA-17,Frais Prestations 17% - Pays,FP-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,349,,tag_FP_PA_17,tax_group_17
|
||||
lu_2011_tax_FP-PA-3,Frais Prestations 3% - Pays,FP-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,350,,tag_FP_PA_3,tax_group_3
|
||||
lu_2011_tax_FP-PA-6,Frais Prestations 6% - Pays,FP-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,351,,tag_FP_PA_6,tax_group_6
|
||||
lu_2015_tax_FP-PA-8,Frais Prestations 8% - Pays,FP-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,352,,tag_FP_PA_8,tax_group_8
|
||||
lu_2011_tax_IB-EC-0,Investissement Biens Exonéré - Extracommunautaire,IB-EC-0,purchase,percent,0,,,lu_2011_chart_1,353,,tag_IB_EC_0,tax_group_0
|
||||
lu_2011_tax_IB-EC-12-n,Investissement Biens 12% - Extracommunautaire (-),IB-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1355,,tag_IB_EC_12_n,tax_group_12
|
||||
lu_2011_tax_IB-EC-12-p,Investissement Biens 12% - Extracommunautaire (+),IB-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1356,,tag_IB_EC_12_p,tax_group_12
|
||||
lu_2011_tax_IB-EC-12,Investissement Biens 12% - Extracommunautaire,IB-EC-12,purchase,group,100,,,lu_2011_chart_1,354,"lu_2011_tax_IB-EC-12-n,lu_2011_tax_IB-EC-12-p",tag_IB_EC_12,tax_group_12
|
||||
lu_2015_tax_IB-EC-14-n,Investissement Biens 14% - Extracommunautaire (-),IB-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1358,,tag_IB_EC_14_n,tax_group_14
|
||||
lu_2015_tax_IB-EC-14-p,Investissement Biens 14% - Extracommunautaire (+),IB-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1359,,tag_IB_EC_14_p,tax_group_14
|
||||
lu_2015_tax_IB-EC-14,Investissement Biens 14% - Extracommunautaire,IB-EC-14,purchase,group,100,,,lu_2011_chart_1,357,"lu_2015_tax_IB-EC-14-n,lu_2015_tax_IB-EC-14-p",tag_IB_EC_14,tax_group_14
|
||||
lu_2011_tax_IB-EC-15-n,Investissement Biens 15% - Extracommunautaire (-),IB-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1361,,tag_IB_EC_15_n,tax_group_15
|
||||
lu_2011_tax_IB-EC-15-p,Investissement Biens 15% - Extracommunautaire (+),IB-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1362,,tag_IB_EC_15_p,tax_group_15
|
||||
lu_2011_tax_IB-EC-15,Investissement Biens 15% - Extracommunautaire,IB-EC-15,purchase,group,100,,,lu_2011_chart_1,360,"lu_2011_tax_IB-EC-15-n,lu_2011_tax_IB-EC-15-p",tag_IB_EC_15,tax_group_15
|
||||
lu_2015_tax_IB-EC-17-n,Investissement Biens 17% - Extracommunautaire (-),IB-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1364,,tag_IB_EC_17_n,tax_group_17
|
||||
lu_2015_tax_IB-EC-17-p,Investissement Biens 17% - Extracommunautaire (+),IB-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1365,,tag_IB_EC_17_p,tax_group_17
|
||||
lu_2015_tax_IB-EC-17,Investissement Biens 17% - Extracommunautaire,IB-EC-17,purchase,group,100,,,lu_2011_chart_1,363,"lu_2015_tax_IB-EC-17-n,lu_2015_tax_IB-EC-17-p",tag_IB_EC_17,tax_group_17
|
||||
lu_2011_tax_IB-EC-3-n,Investissement Biens 3% - Extracommunautaire (-),IB-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1367,,tag_IB_EC_3_n,tax_group_3
|
||||
lu_2011_tax_IB-EC-3-p,Investissement Biens 3% - Extracommunautaire (+),IB-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1368,,tag_IB_EC_3_p,tax_group_3
|
||||
lu_2011_tax_IB-EC-3,Investissement Biens 3% - Extracommunautaire,IB-EC-3,purchase,group,100,,,lu_2011_chart_1,366,"lu_2011_tax_IB-EC-3-n,lu_2011_tax_IB-EC-3-p",tag_IB_EC_3,tax_group_3
|
||||
lu_2011_tax_IB-EC-6-n,Investissement Biens 6% - Extracommunautaire (-),IB-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1370,,tag_IB_EC_6_n,tax_group_6
|
||||
lu_2011_tax_IB-EC-6-p,Investissement Biens 6% - Extracommunautaire (+),IB-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1371,,tag_IB_EC_6_p,tax_group_6
|
||||
lu_2011_tax_IB-EC-6,Investissement Biens 6% - Extracommunautaire,IB-EC-6,purchase,group,100,,,lu_2011_chart_1,369,"lu_2011_tax_IB-EC-6-n,lu_2011_tax_IB-EC-6-p",tag_IB_EC_6,tax_group_6
|
||||
lu_2015_tax_IB-EC-8-n,Investissement Biens 8% - Extracommunautaire (-),IB-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1373,,tag_IB_EC_8_n,tax_group_8
|
||||
lu_2015_tax_IB-EC-8-p,Investissement Biens 8% - Extracommunautaire (+),IB-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1374,,tag_IB_EC_8_p,tax_group_8
|
||||
lu_2015_tax_IB-EC-8,Investissement Biens 8% - Extracommunautaire,IB-EC-8,purchase,group,100,,,lu_2011_chart_1,372,"lu_2015_tax_IB-EC-8-n,lu_2015_tax_IB-EC-8-p",tag_IB_EC_8,tax_group_8
|
||||
lu_2015_tax_IB-ECP-0,Investissement Biens Exonéré - Extracommunautaire fin privées,IB-ECP-0,purchase,percent,0,,,lu_2011_chart_1,375,,tag_IB_ECP_0,tax_group_0
|
||||
lu_2015_tax_IB-ECP-12-n,Investissement Biens 12% - Extracommunautaire fin privées (-),IB-ECP-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1377,,tag_IB_ECP_12_n,tax_group_12
|
||||
lu_2015_tax_IB-ECP-12-p,Investissement Biens 12% - Extracommunautaire fin privées (+),IB-ECP-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1378,,tag_IB_ECP_12_p,tax_group_12
|
||||
lu_2015_tax_IB-ECP-12,Investissement Biens 12% - Extracommunautaire fin privées,IB-ECP-12,purchase,group,100,,,lu_2011_chart_1,376,"lu_2015_tax_IB-ECP-12-n,lu_2015_tax_IB-ECP-12-p",tag_IB_ECP_12,tax_group_12
|
||||
lu_2015_tax_IB-ECP-14-n,Investissement Biens 14% - Extracommunautaire fin privées (-),IB-ECP-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1380,,tag_IB_ECP_14_n,tax_group_14
|
||||
lu_2015_tax_IB-ECP-14-p,Investissement Biens 14% - Extracommunautaire fin privées (+),IB-ECP-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1381,,tag_IB_ECP_14_p,tax_group_14
|
||||
lu_2015_tax_IB-ECP-14,Investissement Biens 14% - Extracommunautaire fin privées,IB-ECP-14,purchase,group,100,,,lu_2011_chart_1,379,"lu_2015_tax_IB-ECP-14-n,lu_2015_tax_IB-ECP-14-p",tag_IB_ECP_14,tax_group_14
|
||||
lu_2015_tax_IB-ECP-15-n,Investissement Biens 15% - Extracommunautaire fin privées (-),IB-ECP-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1383,,tag_IB_ECP_15_n,tax_group_15
|
||||
lu_2015_tax_IB-ECP-15-p,Investissement Biens 15% - Extracommunautaire fin privées (+),IB-ECP-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1384,,tag_IB_ECP_15_p,tax_group_15
|
||||
lu_2015_tax_IB-ECP-15,Investissement Biens 15% - Extracommunautaire fin privées,IB-ECP-15,purchase,group,100,,,lu_2011_chart_1,382,"lu_2015_tax_IB-ECP-15-n,lu_2015_tax_IB-ECP-15-p",tag_IB_ECP_15,tax_group_15
|
||||
lu_2015_tax_IB-ECP-17-n,Investissement Biens 17% - Extracommunautaire fin privées (-),IB-ECP-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1386,,tag_IB_ECP_17_n,tax_group_17
|
||||
lu_2015_tax_IB-ECP-17-p,Investissement Biens 17% - Extracommunautaire fin privées (+),IB-ECP-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1387,,tag_IB_ECP_17_p,tax_group_17
|
||||
lu_2015_tax_IB-ECP-17,Investissement Biens 17% - Extracommunautaire fin privées,IB-ECP-17,purchase,group,100,,,lu_2011_chart_1,385,"lu_2015_tax_IB-ECP-17-n,lu_2015_tax_IB-ECP-17-p",tag_IB_ECP_17,tax_group_17
|
||||
lu_2015_tax_IB-ECP-3-n,Investissement Biens 3% - Extracommunautaire fin privées (-),IB-ECP-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1389,,tag_IB_ECP_3_n,tax_group_3
|
||||
lu_2015_tax_IB-ECP-3-p,Investissement Biens 3% - Extracommunautaire fin privées (+),IB-ECP-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1390,,tag_IB_ECP_3_p,tax_group_3
|
||||
lu_2015_tax_IB-ECP-3,Investissement Biens 3% - Extracommunautaire fin privées,IB-ECP-3,purchase,group,100,,,lu_2011_chart_1,388,"lu_2015_tax_IB-ECP-3-n,lu_2015_tax_IB-ECP-3-p",tag_IB_ECP_3,tax_group_3
|
||||
lu_2015_tax_IB-ECP-6-n,Investissement Biens 6% - Extracommunautaire fin privées (-),IB-ECP-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1392,,tag_IB_ECP_6_n,tax_group_6
|
||||
lu_2015_tax_IB-ECP-6-p,Investissement Biens 6% - Extracommunautaire fin privées (+),IB-ECP-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1393,,tag_IB_ECP_6_p,tax_group_6
|
||||
lu_2015_tax_IB-ECP-6,Investissement Biens 6% - Extracommunautaire fin privées,IB-ECP-6,purchase,group,100,,,lu_2011_chart_1,391,"lu_2015_tax_IB-ECP-6-n,lu_2015_tax_IB-ECP-6-p",tag_IB_ECP_6,tax_group_6
|
||||
lu_2015_tax_IB-ECP-8-n,Investissement Biens 8% - Extracommunautaire fin privées (-),IB-ECP-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1395,,tag_IB_ECP_8_n,tax_group_8
|
||||
lu_2015_tax_IB-ECP-8-p,Investissement Biens 8% - Extracommunautaire fin privées (+),IB-ECP-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1396,,tag_IB_ECP_8_p,tax_group_8
|
||||
lu_2015_tax_IB-ECP-8,Investissement Biens 8% - Extracommunautaire fin privées,IB-ECP-8,purchase,group,100,,,lu_2011_chart_1,394,"lu_2015_tax_IB-ECP-8-n,lu_2015_tax_IB-ECP-8-p",tag_IB_ECP_8,tax_group_8
|
||||
lu_2011_tax_IB-IC-0,Investissement Biens Exonéré - Intracommunautaire,IB-IC-0,purchase,percent,0,,,lu_2011_chart_1,397,,tag_IB_IC_0,tax_group_0
|
||||
lu_2011_tax_IB-IC-12-n,Investissement Biens 12% - Intracommunautaire (-),IB-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1399,,tag_IB_IC_12_n,tax_group_12
|
||||
lu_2011_tax_IB-IC-12-p,Investissement Biens 12% - Intracommunautaire (+),IB-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1400,,tag_IB_IC_12_p,tax_group_12
|
||||
lu_2011_tax_IB-IC-12,Investissement Biens 12% - Intracommunautaire,IB-IC-12,purchase,group,100,,,lu_2011_chart_1,398,"lu_2011_tax_IB-IC-12-n,lu_2011_tax_IB-IC-12-p",tag_IB_IC_12,tax_group_12
|
||||
lu_2015_tax_IB-IC-14-n,Investissement Biens 14% - Intracommunautaire (-),IB-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1402,,tag_IB_IC_14_n,tax_group_14
|
||||
lu_2015_tax_IB-IC-14-p,Investissement Biens 14% - Intracommunautaire (+),IB-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1403,,tag_IB_IC_14_p,tax_group_14
|
||||
lu_2015_tax_IB-IC-14,Investissement Biens 14% - Intracommunautaire,IB-IC-14,purchase,group,100,,,lu_2011_chart_1,401,"lu_2015_tax_IB-IC-14-n,lu_2015_tax_IB-IC-14-p",tag_IB_IC_14,tax_group_14
|
||||
lu_2011_tax_IB-IC-15-n,Investissement Biens 15% - Intracommunautaire (-),IB-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1405,,tag_IB_IC_15_n,tax_group_15
|
||||
lu_2011_tax_IB-IC-15-p,Investissement Biens 15% - Intracommunautaire (+),IB-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1406,,tag_IB_IC_15_p,tax_group_15
|
||||
lu_2011_tax_IB-IC-15,Investissement Biens 15% - Intracommunautaire,IB-IC-15,purchase,group,100,,,lu_2011_chart_1,404,"lu_2011_tax_IB-IC-15-n,lu_2011_tax_IB-IC-15-p",tag_IB_IC_15,tax_group_15
|
||||
lu_2015_tax_IB-IC-17-n,Investissement Biens 17% - Intracommunautaire (-),IB-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1408,,tag_IB_IC_17_n,tax_group_17
|
||||
lu_2015_tax_IB-IC-17-p,Investissement Biens 17% - Intracommunautaire (+),IB-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1409,,tag_IB_IC_17_p,tax_group_17
|
||||
lu_2015_tax_IB-IC-17,Investissement Biens 17% - Intracommunautaire,IB-IC-17,purchase,group,100,,,lu_2011_chart_1,407,"lu_2015_tax_IB-IC-17-n,lu_2015_tax_IB-IC-17-p",tag_IB_IC_17,tax_group_17
|
||||
lu_2011_tax_IB-IC-3-n,Investissement Biens 3% - Intracommunautaire (-),IB-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1411,,tag_IB_IC_3_n,tax_group_3
|
||||
lu_2011_tax_IB-IC-3-p,Investissement Biens 3% - Intracommunautaire (+),IB-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1412,,tag_IB_IC_3_p,tax_group_3
|
||||
lu_2011_tax_IB-IC-3,Investissement Biens 3% - Intracommunautaire,IB-IC-3,purchase,group,100,,,lu_2011_chart_1,410,"lu_2011_tax_IB-IC-3-n,lu_2011_tax_IB-IC-3-p",tag_IB_IC_3,tax_group_3
|
||||
lu_2011_tax_IB-IC-6-n,Investissement Biens 6% - Intracommunautaire (-),IB-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1414,,tag_IB_IC_6_n,tax_group_6
|
||||
lu_2011_tax_IB-IC-6-p,Investissement Biens 6% - Intracommunautaire (+),IB-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1415,,tag_IB_IC_6_p,tax_group_6
|
||||
lu_2011_tax_IB-IC-6,Investissement Biens 6% - Intracommunautaire,IB-IC-6,purchase,group,100,,,lu_2011_chart_1,413,"lu_2011_tax_IB-IC-6-n,lu_2011_tax_IB-IC-6-p",tag_IB_IC_6,tax_group_6
|
||||
lu_2015_tax_IB-IC-8-n,Investissement Biens 8% - Intracommunautaire (-),IB-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1417,,tag_IB_IC_8_n,tax_group_8
|
||||
lu_2015_tax_IB-IC-8-p,Investissement Biens 8% - Intracommunautaire (+),IB-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1418,,tag_IB_IC_8_p,tax_group_8
|
||||
lu_2015_tax_IB-IC-8,Investissement Biens 8% - Intracommunautaire,IB-IC-8,purchase,group,100,,,lu_2011_chart_1,416,"lu_2015_tax_IB-IC-8-n,lu_2015_tax_IB-IC-8-p",tag_IB_IC_8,tax_group_8
|
||||
lu_2011_tax_IB-PA-0,Investissement Biens 0% - Pays,IB-PA-0,purchase,percent,0,,,lu_2011_chart_1,419,,tag_IB_PA_0,tax_group_0
|
||||
lu_2011_tax_IB-PA-12,Investissement Biens 12% - Pays,IB-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,420,,tag_IB_PA_12,tax_group_12
|
||||
lu_2015_tax_IB-PA-14,Investissement Biens 14% - Pays,IB-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,421,,tag_IB_PA_14,tax_group_14
|
||||
lu_2011_tax_IB-PA-15,Investissement Biens 15% - Pays,IB-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,422,,tag_IB_PA_15,tax_group_15
|
||||
lu_2015_tax_IB-PA-17,Investissement Biens 17% - Pays,IB-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,423,,tag_IB_PA_17,tax_group_17
|
||||
lu_2011_tax_IB-PA-3,Investissement Biens 3% - Pays,IB-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,424,,tag_IB_PA_3,tax_group_3
|
||||
lu_2011_tax_IB-PA-6,Investissement Biens 6% - Pays,IB-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,425,,tag_IB_PA_6,tax_group_6
|
||||
lu_2015_tax_IB-PA-8,Investissement Biens 8% - Pays,IB-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,426,,tag_IB_PA_8,tax_group_8
|
||||
lu_2011_tax_IP-EC-0,Investissement Prestations Exonérées - Extracommunautaire,IP-EC-0,purchase,percent,0,,,lu_2011_chart_1,427,,tag_IP_EC_0,tax_group_0
|
||||
lu_2011_tax_IP-EC-12-n,Investissement Prestations 12% - Extracommunautaire (-),IP-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1429,,tag_IP_EC_12_n,tax_group_12
|
||||
lu_2011_tax_IP-EC-12-p,Investissement Prestations 12% - Extracommunautaire (+),IP-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1430,,tag_IP_EC_12_p,tax_group_12
|
||||
lu_2011_tax_IP-EC-12,Investissement Prestations 12% - Extracommunautaire,IP-EC-12,purchase,group,100,,,lu_2011_chart_1,428,"lu_2011_tax_IP-EC-12-n,lu_2011_tax_IP-EC-12-p",tag_IP_EC_12,tax_group_12
|
||||
lu_2015_tax_IP-EC-14-n,Investissement Prestations 14% - Extracommunautaire (-),IP-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1432,,tag_IP_EC_14_n,tax_group_14
|
||||
lu_2015_tax_IP-EC-14-p,Investissement Prestations 14% - Extracommunautaire (+),IP-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1433,,tag_IP_EC_14_p,tax_group_14
|
||||
lu_2015_tax_IP-EC-14,Investissement Prestations 14% - Extracommunautaire,IP-EC-14,purchase,group,100,,,lu_2011_chart_1,431,"lu_2015_tax_IP-EC-14-n,lu_2015_tax_IP-EC-14-p",tag_IP_EC_14,tax_group_14
|
||||
lu_2011_tax_IP-EC-15-n,Investissement Prestations 15% - Extracommunautaire (-),IP-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1435,,tag_IP_EC_15_n,tax_group_15
|
||||
lu_2011_tax_IP-EC-15-p,Investissement Prestations 15% - Extracommunautaire (+),IP-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1436,,tag_IP_EC_15_p,tax_group_15
|
||||
lu_2011_tax_IP-EC-15,Investissement Prestations 15% - Extracommunautaire,IP-EC-15,purchase,group,100,,,lu_2011_chart_1,434,"lu_2011_tax_IP-EC-15-n,lu_2011_tax_IP-EC-15-p",tag_IP_EC_15,tax_group_15
|
||||
lu_2015_tax_IP-EC-17-n,Investissement Prestations 17% - Extracommunautaire (-),IP-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1438,,tag_IP_EC_17_n,tax_group_17
|
||||
lu_2015_tax_IP-EC-17-p,Investissement Prestations 17% - Extracommunautaire (+),IP-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1439,,tag_IP_EC_17_p,tax_group_17
|
||||
lu_2015_tax_IP-EC-17,Investissement Prestations 17% - Extracommunautaire,IP-EC-17,purchase,group,100,,,lu_2011_chart_1,437,"lu_2015_tax_IP-EC-17-n,lu_2015_tax_IP-EC-17-p",tag_IP_EC_17,tax_group_17
|
||||
lu_2011_tax_IP-EC-3-n,Investissement Prestations 3% - Extracommunautaire (-),IP-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1441,,tag_IP_EC_3_n,tax_group_3
|
||||
lu_2011_tax_IP-EC-3-p,Investissement Prestations 3% - Extracommunautaire (+),IP-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1442,,tag_IP_EC_3_p,tax_group_3
|
||||
lu_2011_tax_IP-EC-3,Investissement Prestations 3% - Extracommunautaire,IP-EC-3,purchase,group,100,,,lu_2011_chart_1,440,"lu_2011_tax_IP-EC-3-n,lu_2011_tax_IP-EC-3-p",tag_IP_EC_3,tax_group_3
|
||||
lu_2011_tax_IP-EC-6-n,Investissement Prestations 6% - Extracommunautaire (-),IP-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1444,,tag_IP_EC_6_n,tax_group_6
|
||||
lu_2011_tax_IP-EC-6-p,Investissement Prestations 6% - Extracommunautaire (+),IP-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1445,,tag_IP_EC_6_p,tax_group_6
|
||||
lu_2011_tax_IP-EC-6,Investissement Prestations 6% - Extracommunautaire,IP-EC-6,purchase,group,100,,,lu_2011_chart_1,443,"lu_2011_tax_IP-EC-6-n,lu_2011_tax_IP-EC-6-p",tag_IP_EC_6,tax_group_6
|
||||
lu_2015_tax_IP-EC-8-n,Investissement Prestations 8% - Extracommunautaire (-),IP-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1447,,tag_IP_EC_8_n,tax_group_8
|
||||
lu_2015_tax_IP-EC-8-p,Investissement Prestations 8% - Extracommunautaire (+),IP-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1448,,tag_IP_EC_8_p,tax_group_8
|
||||
lu_2015_tax_IP-EC-8,Investissement Prestations 8% - Extracommunautaire,IP-EC-8,purchase,group,100,,,lu_2011_chart_1,446,"lu_2015_tax_IP-EC-8-n,lu_2015_tax_IP-EC-8-p",tag_IP_EC_8,tax_group_8
|
||||
lu_2011_tax_IP-IC-0,Investissement Prestations Exonérées - Intracommunautaire,IP-IC-0,purchase,percent,0,,,lu_2011_chart_1,449,,tag_IP_IC_0,tax_group_0
|
||||
lu_2011_tax_IP-IC-12-n,Investissement Prestations 12% - Intracommunautaire (-),IP-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1451,,tag_IP_IC_12_n,tax_group_12
|
||||
lu_2011_tax_IP-IC-12-p,Investissement Prestations 12% - Intracommunautaire (+),IP-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1452,,tag_IP_IC_12_p,tax_group_12
|
||||
lu_2011_tax_IP-IC-12,Investissement Prestations 12% - Intracommunautaire,IP-IC-12,purchase,group,100,,,lu_2011_chart_1,450,"lu_2011_tax_IP-IC-12-n,lu_2011_tax_IP-IC-12-p",tag_IP_IC_12,tax_group_12
|
||||
lu_2015_tax_IP-IC-14-n,Investissement Prestations 14% - Intracommunautaire (-),IP-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1454,,tag_IP_IC_14_n,tax_group_14
|
||||
lu_2015_tax_IP-IC-14-p,Investissement Prestations 14% - Intracommunautaire (+),IP-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1455,,tag_IP_IC_14_p,tax_group_14
|
||||
lu_2015_tax_IP-IC-14,Investissement Prestations 14% - Intracommunautaire,IP-IC-14,purchase,group,100,,,lu_2011_chart_1,453,"lu_2015_tax_IP-IC-14-n,lu_2015_tax_IP-IC-14-p",tag_IP_IC_14,tax_group_14
|
||||
lu_2011_tax_IP-IC-15-n,Investissement Prestations 15% - Intracommunautaire (-),IP-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1457,,tag_IP_IC_15_n,tax_group_15
|
||||
lu_2011_tax_IP-IC-15-p,Investissement Prestations 15% - Intracommunautaire (+),IP-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1458,,tag_IP_IC_15_p,tax_group_15
|
||||
lu_2011_tax_IP-IC-15,Investissement Prestations 15% - Intracommunautaire,IP-IC-15,purchase,group,100,,,lu_2011_chart_1,456,"lu_2011_tax_IP-IC-15-n,lu_2011_tax_IP-IC-15-p",tag_IP_IC_15,tax_group_15
|
||||
lu_2015_tax_IP-IC-17-n,Investissement Prestations 17% - Intracommunautaire (-),IP-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1460,,tag_IP_IC_17_n,tax_group_17
|
||||
lu_2015_tax_IP-IC-17-p,Investissement Prestations 17% - Intracommunautaire (+),IP-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1461,,tag_IP_IC_17_p,tax_group_17
|
||||
lu_2015_tax_IP-IC-17,Investissement Prestations 17% - Intracommunautaire,IP-IC-17,purchase,group,100,,,lu_2011_chart_1,459,"lu_2015_tax_IP-IC-17-n,lu_2015_tax_IP-IC-17-p",tag_IP_IC_17,tax_group_17
|
||||
lu_2011_tax_IP-IC-3-n,Investissement Prestations 3% - Intracommunautaire (-),IP-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1463,,tag_IP_IC_3_n,tax_group_3
|
||||
lu_2011_tax_IP-IC-3-p,Investissement Prestations 3% - Intracommunautaire (+),IP-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1464,,tag_IP_IC_3_p,tax_group_3
|
||||
lu_2011_tax_IP-IC-3,Investissement Prestations 3% - Intracommunautaire,IP-IC-3,purchase,group,100,,,lu_2011_chart_1,462,"lu_2011_tax_IP-IC-3-n,lu_2011_tax_IP-IC-3-p",tag_IP_IC_3,tax_group_3
|
||||
lu_2011_tax_IP-IC-6-n,Investissement Prestations 6% - Intracommunautaire (-),IP-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1466,,tag_IP_IC_6_n,tax_group_6
|
||||
lu_2011_tax_IP-IC-6-p,Investissement Prestations 6% - Intracommunautaire (+),IP-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1467,,tag_IP_IC_6_p,tax_group_6
|
||||
lu_2011_tax_IP-IC-6,Investissement Prestations 6% - Intracommunautaire,IP-IC-6,purchase,group,100,,,lu_2011_chart_1,465,"lu_2011_tax_IP-IC-6-n,lu_2011_tax_IP-IC-6-p",tag_IP_IC_6,tax_group_6
|
||||
lu_2015_tax_IP-IC-8-n,Investissement Prestations 8% - Intracommunautaire (-),IP-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1469,,tag_IP_IC_8_n,tax_group_8
|
||||
lu_2015_tax_IP-IC-8-p,Investissement Prestations 8% - Intracommunautaire (+),IP-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1470,,tag_IP_IC_8_p,tax_group_8
|
||||
lu_2015_tax_IP-IC-8,Investissement Prestations 8% - Intracommunautaire,IP-IC-8,purchase,group,100,,,lu_2011_chart_1,468,"lu_2015_tax_IP-IC-8-n,lu_2015_tax_IP-IC-8-p",tag_IP_IC_8,tax_group_8
|
||||
lu_2011_tax_IP-PA-0,Investissement Prestations 0% - Pays,IP-PA-0,purchase,percent,0,,,lu_2011_chart_1,471,,tag_IP_PA_0,tax_group_0
|
||||
lu_2011_tax_IP-PA-12,Investissement Prestations 12% - Pays,IP-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,472,,tag_IP_PA_12,tax_group_12
|
||||
lu_2015_tax_IP-PA-14,Investissement Prestations 14% - Pays,IP-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,473,,tag_IP_PA_14,tax_group_14
|
||||
lu_2011_tax_IP-PA-15,Investissement Prestations 15% - Pays,IP-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,474,,tag_IP_PA_15,tax_group_15
|
||||
lu_2015_tax_IP-PA-17,Investissement Prestations 17% - Pays,IP-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,475,,tag_IP_PA_17,tax_group_17
|
||||
lu_2011_tax_IP-PA-3,Investissement Prestations 3% - Pays,IP-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,476,,tag_IP_PA_3,tax_group_3
|
||||
lu_2011_tax_IP-PA-6,Investissement Prestations 6% - Pays,IP-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,477,,tag_IP_PA_6,tax_group_6
|
||||
lu_2015_tax_IP-PA-8,Investissement Prestations 8% - Pays,IP-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,478,,tag_IP_PA_8,tax_group_8
|
||||
lu_2015_tax_V-ART-43_60b,Vente - Autres Exonérations (Article 43 et 60 bis),V-ART-43_60b,sale,percent,0,,,lu_2011_chart_1,479,,tag_V_ART_43_60b,tax_group_0
|
||||
lu_2015_tax_V-ART-44_56q,Vente - Autres Exonérations (Article 44 et 56 quarter),V-ART-44_56q,sale,percent,0,,,lu_2011_chart_1,480,,tag_V_ART_44_56q,tax_group_0
|
||||
lu_2011_tax_VB-EC-0,Vente Biens - Extracommunautaire,VB-EC-0,sale,percent,0,,,lu_2011_chart_1,481,,tag_VB_EC_0,tax_group_0
|
||||
lu_2011_tax_VB-EC-Tab,Vente Biens Tabacs - Extracommunautaire,VB-EC-Tab,sale,percent,0,,,lu_2011_chart_1,482,,tag_VB_EC_Tab,tax_group_0
|
||||
lu_2011_tax_VB-IC-0,Vente Biens - Intracommunautaire,VB-IC-0,sale,percent,0,,,lu_2011_chart_1,483,,tag_VB_IC_0,tax_group_0
|
||||
lu_2011_tax_VB-IC-Tab,Vente Biens Tabacs - Intracommunautaire,VB-IC-Tab,sale,percent,0,,,lu_2011_chart_1,484,,tag_VB_IC_Tab,tax_group_0
|
||||
lu_2011_tax_VB-PA-0,Vente Biens 0% - Pays,VB-PA-0,sale,percent,0,,,lu_2011_chart_1,485,,tag_VB_PA_0,tax_group_0
|
||||
lu_2011_tax_VB-PA-12,Vente Biens 12% - Pays,VB-PA-12,sale,percent,12,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,486,,tag_VB_PA_12,tax_group_12
|
||||
lu_2015_tax_VB-PA-14,Vente Biens 14% - Pays,VB-PA-14,sale,percent,14,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,487,,tag_VB_PA_14,tax_group_14
|
||||
lu_2011_tax_VB-PA-15,Vente Biens 15% - Pays,VB-PA-15,sale,percent,15,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,488,,tag_VB_PA_15,tax_group_15
|
||||
lu_2015_tax_VB-PA-17,Vente Biens 17% - Pays,VB-PA-17,sale,percent,17,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,489,,tag_VB_PA_17,tax_group_17
|
||||
lu_2011_tax_VB-PA-3,Vente Biens 3% - Pays,VB-PA-3,sale,percent,3,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,490,,tag_VB_PA_3,tax_group_3
|
||||
lu_2011_tax_VB-PA-6,Vente Biens 6% - Pays,VB-PA-6,sale,percent,6,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,491,,tag_VB_PA_6,tax_group_6
|
||||
lu_2015_tax_VB-PA-8,Vente Biens 8% - Pays,VB-PA-8,sale,percent,8,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,492,,tag_VB_PA_8,tax_group_8
|
||||
lu_2011_tax_VB-PA-Tab,Vente Biens Tabacs - Pays,VB-PA-Tab,sale,percent,0,,,lu_2011_chart_1,493,,tag_VB_PA_Tab,tax_group_0
|
||||
lu_2015_tax_VB-TR-0,Vente Biens – Triangulaire Intracommunautaire,VB-TR-0,sale,percent,0,,,lu_2011_chart_1,494,,tag_VB_TR_0,tax_group_0
|
||||
lu_2011_tax_VP-EC-0,Vente Prestations - Extracommunautaire,VP-EC-0,sale,percent,0,,,lu_2011_chart_1,495,,tag_VP_EC_0,tax_group_0
|
||||
lu_2011_tax_VP-IC-0,Vente Prestations - Intracommunautaire,VP-IC-0,sale,percent,0,,,lu_2011_chart_1,496,,tag_VP_IC_0,tax_group_0
|
||||
lu_2011_tax_VP-IC-EX,'Vente Prestations - Intracommunautaire exonérées dans l''état membre',VP-IC-EX,sale,percent,0,,,lu_2011_chart_1,497,,tag_VP_IC_EX,tax_group_0
|
||||
lu_2011_tax_VP-PA-0,Vente Prestations 0% - Pays,VP-PA-0,sale,percent,0,,,lu_2011_chart_1,498,,tag_VP_PA_0,tax_group_0
|
||||
lu_2011_tax_VP-PA-12,Vente Prestations 12% - Pays,VP-PA-12,sale,percent,12,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,499,,tag_VP_PA_12,tax_group_12
|
||||
lu_2015_tax_VP-PA-14,Vente Prestations 14% - Pays,VP-PA-14,sale,percent,14,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,500,,tag_VP_PA_14,tax_group_14
|
||||
lu_2011_tax_VP-PA-15,Vente Prestations 15% - Pays,VP-PA-15,sale,percent,15,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,501,,tag_VP_PA_15,tax_group_15
|
||||
lu_2015_tax_VP-PA-17,Vente Prestations 17% - Pays,VP-PA-17,sale,percent,17,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,502,,tag_VP_PA_17,tax_group_17
|
||||
lu_2011_tax_VP-PA-3,Vente Prestations 3% - Pays,VP-PA-3,sale,percent,3,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,503,,tag_VP_PA_3,tax_group_3
|
||||
lu_2011_tax_VP-PA-6,Vente Prestations 6% - Pays,VP-PA-6,sale,percent,6,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,504,,tag_VP_PA_6,tax_group_6
|
||||
lu_2015_tax_VP-PA-8,Vente Prestations 8% - Pays,VP-PA-8,sale,percent,8,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,505,,tag_VP_PA_8,tax_group_8
|
||||
lu_2015_tax_SANS,Sans Taxes,SANS,purchase,percent,0,,,lu_2011_chart_1,506,,tag_VP_PA_SANS,tax_group_0
|
||||
lu_2015_tax_SANS,Sans Taxes,SANS,sale,percent,0,,,lu_2011_chart_1,507,,tag_VP_PA_SANS,tax_group_0
|
||||
lu_2011_tax_AB-EC-0,Achat Biens Exonéré - Extracommunautaire,AB-EC-0,purchase,percent,0,,,lu_2011_chart_1,101,,tag_lu_69,tax_group_0
|
||||
lu_2011_tax_AB-EC-12-n,Achat Biens 12% - Extracommunautaire (-),AB-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1103,,tag_lu_513,tax_group_12
|
||||
lu_2011_tax_AB-EC-12-p,Achat Biens 12% - Extracommunautaire (+),AB-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1104,,tag_lu_338,tax_group_12
|
||||
lu_2011_tax_AB-EC-12,Achat Biens 12% - Extracommunautaire,AB-EC-12,purchase,group,1,,,lu_2011_chart_1,102,"lu_2011_tax_AB-EC-12-n,lu_2011_tax_AB-EC-12-p",tag_lu_49,tax_group_12
|
||||
lu_2015_tax_AB-EC-14-n,Achat Biens 14% - Extracommunautaire (-),AB-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1106,,tag_lu_514,tax_group_14
|
||||
lu_2015_tax_AB-EC-14-p,Achat Biens 14% - Extracommunautaire (+),AB-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1107,,tag_lu_362,tax_group_14
|
||||
lu_2015_tax_AB-EC-14,Achat Biens 14% - Extracommunautaire,AB-EC-14,purchase,group,1,,,lu_2011_chart_1,105,"lu_2015_tax_AB-EC-14-n,lu_2015_tax_AB-EC-14-p",tag_lu_81,tax_group_14
|
||||
lu_2011_tax_AB-EC-15-n,Achat Biens 15% - Extracommunautaire (-),AB-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1109,,tag_lu_515,tax_group_15
|
||||
lu_2011_tax_AB-EC-15-p,Achat Biens 15% - Extracommunautaire (+),AB-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1110,,tag_lu_326,tax_group_15
|
||||
lu_2011_tax_AB-EC-15,Achat Biens 15% - Extracommunautaire,AB-EC-15,purchase,group,100,,,lu_2011_chart_1,108,"lu_2011_tax_AB-EC-15-n,lu_2011_tax_AB-EC-15-p",tag_lu_37,tax_group_15
|
||||
lu_2015_tax_AB-EC-17-n,Achat Biens 17% - Extracommunautaire (-),AB-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1112,,tag_lu_516,tax_group_17
|
||||
lu_2015_tax_AB-EC-17-p,Achat Biens 17% - Extracommunautaire (+),AB-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1113,,tag_lu_358,tax_group_17
|
||||
lu_2015_tax_AB-EC-17,Achat Biens 17% - Extracommunautaire,AB-EC-17,purchase,group,100,,,lu_2011_chart_1,111,"lu_2015_tax_AB-EC-17-n,lu_2015_tax_AB-EC-17-p",tag_lu_77,tax_group_17
|
||||
lu_2011_tax_AB-EC-3-n,Achat Biens 3% - Extracommunautaire (-),AB-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1115,,tag_lu_517,tax_group_3
|
||||
lu_2011_tax_AB-EC-3-p,Achat Biens 3% - Extracommunautaire (+),AB-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1116,,tag_lu_334,tax_group_3
|
||||
lu_2011_tax_AB-EC-3,Achat Biens 3% - Extracommunautaire,AB-EC-3,purchase,group,100,,,lu_2011_chart_1,114,"lu_2011_tax_AB-EC-3-n,lu_2011_tax_AB-EC-3-p",tag_lu_45,tax_group_3
|
||||
lu_2011_tax_AB-EC-6-n,Achat Biens 6% - Extracommunautaire (-),AB-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1118,,tag_lu_518,tax_group_6
|
||||
lu_2011_tax_AB-EC-6-p,Achat Biens 6% - Extracommunautaire (+),AB-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1119,,tag_lu_330,tax_group_6
|
||||
lu_2011_tax_AB-EC-6,Achat Biens 6% - Extracommunautaire,AB-EC-6,purchase,group,100,,,lu_2011_chart_1,117,"lu_2011_tax_AB-EC-6-n,lu_2011_tax_AB-EC-6-p",tag_lu_41,tax_group_6
|
||||
lu_2015_tax_AB-EC-8-n,Achat Biens 8% - Extracommunautaire (-),AB-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1121,,tag_lu_519,tax_group_8
|
||||
lu_2015_tax_AB-EC-8-p,Achat Biens 8% - Extracommunautaire (+),AB-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1122,,tag_lu_366,tax_group_8
|
||||
lu_2015_tax_AB-EC-8,Achat Biens 8% - Extracommunautaire,AB-EC-8,purchase,group,100,,,lu_2011_chart_1,120,"lu_2015_tax_AB-EC-8-n,lu_2015_tax_AB-EC-8-p",tag_lu_85,tax_group_8
|
||||
lu_2015_tax_AB-ECP-0,Achat Biens Exonéré - Extracommunautaire fin privées,AB-ECP-0,purchase,percent,0,,,lu_2011_chart_1,123,,tag_lu_73,tax_group_0
|
||||
lu_2015_tax_AB-ECP-12-n,Achat Biens 12% - Extracommunautaire fin privées (-),AB-ECP-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1125,,tag_lu_520,tax_group_12
|
||||
lu_2015_tax_AB-ECP-12-p,Achat Biens 12% - Extracommunautaire fin privées (+),AB-ECP-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1126,,tag_lu_354,tax_group_12
|
||||
lu_2015_tax_AB-ECP-12,Achat Biens 12% - Extracommunautaire fin privées,AB-ECP-12,purchase,group,100,,,lu_2011_chart_1,124,"lu_2015_tax_AB-ECP-12-n,lu_2015_tax_AB-ECP-12-p",tag_lu_65,tax_group_12
|
||||
lu_2015_tax_AB-ECP-14-n,Achat Biens 14% - Extracommunautaire fin privées (-),AB-ECP-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1128,,tag_lu_521,tax_group_14
|
||||
lu_2015_tax_AB-ECP-14-p,Achat Biens 14% - Extracommunautaire fin privées (+),AB-ECP-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1129,,tag_lu_374,tax_group_14
|
||||
lu_2015_tax_AB-ECP-14,Achat Biens 14% - Extracommunautaire fin privées,AB-ECP-14,purchase,group,100,,,lu_2011_chart_1,127,"lu_2015_tax_AB-ECP-14-n,lu_2015_tax_AB-ECP-14-p",tag_lu_93,tax_group_14
|
||||
lu_2015_tax_AB-ECP-15-n,Achat Biens 15% - Extracommunautaire fin privées (-),AB-ECP-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1131,,tag_lu_522,tax_group_15
|
||||
lu_2015_tax_AB-ECP-15-p,Achat Biens 15% - Extracommunautaire fin privées (+),AB-ECP-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1132,,tag_lu_342,tax_group_15
|
||||
lu_2015_tax_AB-ECP-15,Achat Biens 15% - Extracommunautaire fin privées,AB-ECP-15,purchase,group,100,,,lu_2011_chart_1,130,"lu_2015_tax_AB-ECP-15-n,lu_2015_tax_AB-ECP-15-p",tag_lu_53,tax_group_15
|
||||
lu_2015_tax_AB-ECP-17-n,Achat Biens 17% - Extracommunautaire fin privées (-),AB-ECP-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1134,,tag_lu_523,tax_group_17
|
||||
lu_2015_tax_AB-ECP-17-p,Achat Biens 17% - Extracommunautaire fin privées (+),AB-ECP-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1135,,tag_lu_370,tax_group_17
|
||||
lu_2015_tax_AB-ECP-17,Achat Biens 17% - Extracommunautaire fin privées,AB-ECP-17,purchase,group,100,,,lu_2011_chart_1,133,"lu_2015_tax_AB-ECP-17-n,lu_2015_tax_AB-ECP-17-p",tag_lu_89,tax_group_17
|
||||
lu_2015_tax_AB-ECP-3-n,Achat Biens 3% - Extracommunautaire fin privées (-),AB-ECP-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1137,,tag_lu_524,tax_group_3
|
||||
lu_2015_tax_AB-ECP-3-p,Achat Biens 3% - Extracommunautaire fin privées (+),AB-ECP-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1138,,tag_lu_350,tax_group_3
|
||||
lu_2015_tax_AB-ECP-3,Achat Biens 3% - Extracommunautaire fin privées,AB-ECP-3,purchase,group,100,,,lu_2011_chart_1,136,"lu_2015_tax_AB-ECP-3-n,lu_2015_tax_AB-ECP-3-p",tag_lu_61,tax_group_3
|
||||
lu_2015_tax_AB-ECP-6-n,Achat Biens 6% - Extracommunautaire fin privées (-),AB-ECP-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1140,,tag_lu_525,tax_group_6
|
||||
lu_2015_tax_AB-ECP-6-p,Achat Biens 6% - Extracommunautaire fin privées (+),AB-ECP-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1141,,tag_lu_346,tax_group_6
|
||||
lu_2015_tax_AB-ECP-6,Achat Biens 6% - Extracommunautaire fin privées,AB-ECP-6,purchase,group,100,,,lu_2011_chart_1,139,"lu_2015_tax_AB-ECP-6-n,lu_2015_tax_AB-ECP-6-p",tag_lu_57,tax_group_6
|
||||
lu_2015_tax_AB-ECP-8-n,Achat Biens 8% - Extracommunautaire fin privées (-),AB-ECP-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1143,,tag_lu_526,tax_group_8
|
||||
lu_2015_tax_AB-ECP-8-p,Achat Biens 8% - Extracommunautaire fin privées (+),AB-ECP-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1144,,tag_lu_378,tax_group_8
|
||||
lu_2015_tax_AB-ECP-8,Achat Biens 8% - Extracommunautaire fin privées,AB-ECP-8,purchase,group,100,,,lu_2011_chart_1,142,"lu_2015_tax_AB-ECP-8-n,lu_2015_tax_AB-ECP-8-p",tag_lu_97,tax_group_8
|
||||
lu_2011_tax_AB-IC-0,Achat Biens Exonéré - Intracommunautaire,AB-IC-0,purchase,percent,0,,,lu_2011_chart_1,145,,tag_lu_20,tax_group_0
|
||||
lu_2011_tax_AB-IC-12-n,Achat Biens 12% - Intracommunautaire (-),AB-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1147,,tag_lu_491,tax_group_12
|
||||
lu_2011_tax_AB-IC-12-p,Achat Biens 12% - Intracommunautaire (+),AB-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1148,,tag_lu_309,tax_group_12
|
||||
lu_2011_tax_AB-IC-12,Achat Biens 12% - Intracommunautaire,AB-IC-12,purchase,group,100,,,lu_2011_chart_1,146,"lu_2011_tax_AB-IC-12-n,lu_2011_tax_AB-IC-12-p",tag_lu_16,tax_group_12
|
||||
lu_2015_tax_AB-IC-14-n,Achat Biens 14% - Intracommunautaire (-),AB-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1150,,tag_lu_492,tax_group_14
|
||||
lu_2015_tax_AB-IC-14-p,Achat Biens 14% - Intracommunautaire (+),AB-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1151,,tag_lu_317,tax_group_14
|
||||
lu_2015_tax_AB-IC-14,Achat Biens 14% - Intracommunautaire,AB-IC-14,purchase,group,100,,,lu_2011_chart_1,149,"lu_2015_tax_AB-IC-14-n,lu_2015_tax_AB-IC-14-p",tag_lu_28,tax_group_14
|
||||
lu_2011_tax_AB-IC-15-n,Achat Biens 15% - Intracommunautaire (-),AB-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1153,,tag_lu_493,tax_group_15
|
||||
lu_2011_tax_AB-IC-15-p,Achat Biens 15% - Intracommunautaire (+),AB-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1154,,tag_lu_297,tax_group_15
|
||||
lu_2011_tax_AB-IC-15,Achat Biens 15% - Intracommunautaire,AB-IC-15,purchase,group,100,,,lu_2011_chart_1,152,"lu_2011_tax_AB-IC-15-n,lu_2011_tax_AB-IC-15-p",tag_lu_04,tax_group_15
|
||||
lu_2015_tax_AB-IC-17-n,Achat Biens 17% - Intracommunautaire (-),AB-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1156,,tag_lu_494,tax_group_17
|
||||
lu_2015_tax_AB-IC-17-p,Achat Biens 17% - Intracommunautaire (+),AB-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1157,,tag_lu_313,tax_group_17
|
||||
lu_2015_tax_AB-IC-17,Achat Biens 17% - Intracommunautaire,AB-IC-17,purchase,group,100,,,lu_2011_chart_1,155,"lu_2015_tax_AB-IC-17-n,lu_2015_tax_AB-IC-17-p",tag_lu_24,tax_group_17
|
||||
lu_2011_tax_AB-IC-3-n,Achat Biens 3% - Intracommunautaire (-),AB-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1159,,tag_lu_495,tax_group_3
|
||||
lu_2011_tax_AB-IC-3-p,Achat Biens 3% - Intracommunautaire (+),AB-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1160,,tag_lu_305,tax_group_3
|
||||
lu_2011_tax_AB-IC-3,Achat Biens 3% - Intracommunautaire,AB-IC-3,purchase,group,100,,,lu_2011_chart_1,158,"lu_2011_tax_AB-IC-3-n,lu_2011_tax_AB-IC-3-p",tag_lu_12,tax_group_3
|
||||
lu_2011_tax_AB-IC-6-n,Achat Biens 6% - Intracommunautaire (-),AB-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1162,,tag_lu_496,tax_group_6
|
||||
lu_2011_tax_AB-IC-6-p,Achat Biens 6% - Intracommunautaire (+),AB-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1163,,tag_lu_301,tax_group_6
|
||||
lu_2011_tax_AB-IC-6,Achat Biens 6% - Intracommunautaire,AB-IC-6,purchase,group,100,,,lu_2011_chart_1,161,"lu_2011_tax_AB-IC-6-n,lu_2011_tax_AB-IC-6-p",tag_lu_08,tax_group_6
|
||||
lu_2015_tax_AB-IC-8-n,Achat Biens 8% - Intracommunautaire (-),AB-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1165,,tag_lu_497,tax_group_8
|
||||
lu_2015_tax_AB-IC-8-p,Achat Biens 8% - Intracommunautaire (+),AB-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1166,,tag_lu_321,tax_group_8
|
||||
lu_2015_tax_AB-IC-8,Achat Biens 8% - Intracommunautaire,AB-IC-8,purchase,group,100,,,lu_2011_chart_1,164,"lu_2015_tax_AB-IC-8-n,lu_2015_tax_AB-IC-8-p",tag_lu_32,tax_group_8
|
||||
lu_2011_tax_AB-PA-0,Achat Biens 0% - Pays,AB-PA-0,purchase,percent,0,,,lu_2011_chart_1,167,,tag_lu_220,tax_group_0
|
||||
lu_2011_tax_AB-PA-12,Achat Biens 12% - Pays,AB-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,168,,"tag_lu_221,tag_lu_447",tax_group_12
|
||||
lu_2015_tax_AB-PA-14,Achat Biens 14% - Pays,AB-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,169,,"tag_lu_222,tag_lu_448",tax_group_14
|
||||
lu_2011_tax_AB-PA-15,Achat Biens 15% - Pays,AB-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,170,,"tag_lu_223,tag_lu_449",tax_group_15
|
||||
lu_2015_tax_AB-PA-17,Achat Biens 17% - Pays,AB-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,171,,"tag_lu_224,tag_lu_450",tax_group_17
|
||||
lu_2011_tax_AB-PA-3,Achat Biens 3% - Pays,AB-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,172,,"tag_lu_225,tag_lu_451",tax_group_3
|
||||
lu_2011_tax_AB-PA-6,Achat Biens 6% - Pays,AB-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,173,,"tag_lu_226,tag_lu_452",tax_group_6
|
||||
lu_2015_tax_AB-PA-8,Achat Biens 8% - Pays,AB-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,174,,"tag_lu_453,tag_lu_227",tax_group_8
|
||||
lu_2011_tax_AP-EC-0,Achat Prestations Exonérées - Extracommunautaire,AP-EC-0,purchase,percent,0,,,lu_2011_chart_1,175,,tag_lu_153,tax_group_0
|
||||
lu_2011_tax_AP-EC-12-n,Achat Prestations 12% - Extracommunautaire (-),AP-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1177,,tag_lu_556,tax_group_12
|
||||
lu_2011_tax_AP-EC-12-p,Achat Prestations 12% - Extracommunautaire (+),AP-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1178,,tag_lu_425,tax_group_12
|
||||
lu_2011_tax_AP-EC-12,Achat Prestations 12% - Extracommunautaire,AP-EC-12,purchase,group,100,,,lu_2011_chart_1,176,"lu_2011_tax_AP-EC-12-n,lu_2011_tax_AP-EC-12-p",tag_lu_149,tax_group_12
|
||||
lu_2015_tax_AP-EC-14-n,Achat Prestations 14% - Extracommunautaire (-),AP-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1180,,tag_lu_557,tax_group_14
|
||||
lu_2015_tax_AP-EC-14-p,Achat Prestations 14% - Extracommunautaire (+),AP-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1181,,tag_lu_433,tax_group_14
|
||||
lu_2015_tax_AP-EC-14,Achat Prestations 14% - Extracommunautaire,AP-EC-14,purchase,group,100,,,lu_2011_chart_1,179,"lu_2015_tax_AP-EC-14-n,lu_2015_tax_AP-EC-14-p",tag_lu_161,tax_group_14
|
||||
lu_2011_tax_AP-EC-15-n,Achat Prestations 15% - Extracommunautaire (-),AP-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1183,,tag_lu_558,tax_group_15
|
||||
lu_2011_tax_AP-EC-15-p,Achat Prestations 15% - Extracommunautaire (+),AP-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1184,,tag_lu_413,tax_group_15
|
||||
lu_2011_tax_AP-EC-15,Achat Prestations 15% - Extracommunautaire,AP-EC-15,purchase,group,100,,,lu_2011_chart_1,182,"lu_2011_tax_AP-EC-15-n,lu_2011_tax_AP-EC-15-p",tag_lu_137,tax_group_15
|
||||
lu_2015_tax_AP-EC-17-n,Achat Prestations 17% - Extracommunautaire (-),AP-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1186,,tag_lu_559,tax_group_17
|
||||
lu_2015_tax_AP-EC-17-p,Achat Prestations 17% - Extracommunautaire (+),AP-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1187,,tag_lu_429,tax_group_17
|
||||
lu_2015_tax_AP-EC-17,Achat Prestations 17% - Extracommunautaire,AP-EC-17,purchase,group,100,,,lu_2011_chart_1,185,"lu_2015_tax_AP-EC-17-n,lu_2015_tax_AP-EC-17-p",tag_lu_157,tax_group_17
|
||||
lu_2011_tax_AP-EC-3-n,Achat Prestations 3% - Extracommunautaire (-),AP-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1189,,tag_lu_560,tax_group_3
|
||||
lu_2011_tax_AP-EC-3-p,Achat Prestations 3% - Extracommunautaire (+),AP-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1190,,tag_lu_421,tax_group_3
|
||||
lu_2011_tax_AP-EC-3,Achat Prestations 3% - Extracommunautaire,AP-EC-3,purchase,group,100,,,lu_2011_chart_1,188,"lu_2011_tax_AP-EC-3-n,lu_2011_tax_AP-EC-3-p",tag_lu_145,tax_group_3
|
||||
lu_2011_tax_AP-EC-6-n,Achat Prestations 6% - Extracommunautaire (-),AP-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1192,,tag_lu_561,tax_group_6
|
||||
lu_2011_tax_AP-EC-6-p,Achat Prestations 6% - Extracommunautaire (+),AP-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1193,,tag_lu_417,tax_group_6
|
||||
lu_2011_tax_AP-EC-6,Achat Prestations 6% - Extracommunautaire,AP-EC-6,purchase,group,100,,,lu_2011_chart_1,191,"lu_2011_tax_AP-EC-6-n,lu_2011_tax_AP-EC-6-p",tag_lu_141,tax_group_6
|
||||
lu_2015_tax_AP-EC-8-n,Achat Prestations 8% - Extracommunautaire (-),AP-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1195,,tag_lu_562,tax_group_8
|
||||
lu_2015_tax_AP-EC-8-p,Achat Prestations 8% - Extracommunautaire (+),AP-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1196,,tag_lu_437,tax_group_8
|
||||
lu_2015_tax_AP-EC-8,Achat Prestations 8% - Extracommunautaire,AP-EC-8,purchase,group,100,,,lu_2011_chart_1,194,"lu_2015_tax_AP-EC-8-n,lu_2015_tax_AP-EC-8-p",tag_lu_165,tax_group_8
|
||||
lu_2011_tax_AP-IC-0,Achat Prestations Exonérées - Intracommunautaire,AP-IC-0,purchase,percent,0,,,lu_2011_chart_1,197,,tag_lu_120,tax_group_0
|
||||
lu_2011_tax_AP-IC-12-n,Achat Prestations 12% - Intracommunautaire (-),AP-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1199,,tag_lu_563,tax_group_12
|
||||
lu_2011_tax_AP-IC-12-p,Achat Prestations 12% - Intracommunautaire (+),AP-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1200,,tag_lu_396,tax_group_12
|
||||
lu_2011_tax_AP-IC-12,Achat Prestations 12% - Intracommunautaire,AP-IC-12,purchase,group,100,,,lu_2011_chart_1,198,"lu_2011_tax_AP-IC-12-n,lu_2011_tax_AP-IC-12-p",tag_lu_116,tax_group_12
|
||||
lu_2015_tax_AP-IC-14-n,Achat Prestations 14% - Intracommunautaire (-),AP-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1202,,tag_lu_564,tax_group_14
|
||||
lu_2015_tax_AP-IC-14-p,Achat Prestations 14% - Intracommunautaire (+),AP-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1203,,tag_lu_404,tax_group_14
|
||||
lu_2015_tax_AP-IC-14,Achat Prestations 14% - Intracommunautaire,AP-IC-14,purchase,group,100,,,lu_2011_chart_1,201,"lu_2015_tax_AP-IC-14-n,lu_2015_tax_AP-IC-14-p",tag_lu_128,tax_group_14
|
||||
lu_2011_tax_AP-IC-15-n,Achat Prestations 15% - Intracommunautaire (-),AP-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1205,,tag_lu_565,tax_group_15
|
||||
lu_2011_tax_AP-IC-15-p,Achat Prestations 15% - Intracommunautaire (+),AP-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1206,,tag_lu_384,tax_group_15
|
||||
lu_2011_tax_AP-IC-15,Achat Prestations 15% - Intracommunautaire,AP-IC-15,purchase,group,100,,,lu_2011_chart_1,204,"lu_2011_tax_AP-IC-15-n,lu_2011_tax_AP-IC-15-p",tag_lu_104,tax_group_15
|
||||
lu_2015_tax_AP-IC-17-n,Achat Prestations 17% - Intracommunautaire (-),AP-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1208,,tag_lu_566,tax_group_17
|
||||
lu_2015_tax_AP-IC-17-p,Achat Prestations 17% - Intracommunautaire (+),AP-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1209,,tag_lu_400,tax_group_17
|
||||
lu_2015_tax_AP-IC-17,Achat Prestations 17% - Intracommunautaire,AP-IC-17,purchase,group,100,,,lu_2011_chart_1,207,"lu_2015_tax_AP-IC-17-n,lu_2015_tax_AP-IC-17-p",tag_lu_124,tax_group_17
|
||||
lu_2011_tax_AP-IC-3-n,Achat Prestations 3% - Intracommunautaire (-),AP-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1211,,tag_lu_567,tax_group_3
|
||||
lu_2011_tax_AP-IC-3-p,Achat Prestations 3% - Intracommunautaire (+),AP-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1212,,tag_lu_392,tax_group_3
|
||||
lu_2011_tax_AP-IC-3,Achat Prestations 3% - Intracommunautaire,AP-IC-3,purchase,group,100,,,lu_2011_chart_1,210,"lu_2011_tax_AP-IC-3-n,lu_2011_tax_AP-IC-3-p",tag_lu_112,tax_group_3
|
||||
lu_2011_tax_AP-IC-6-n,Achat Prestations 6% - Intracommunautaire (-),AP-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1214,,tag_lu_568,tax_group_6
|
||||
lu_2011_tax_AP-IC-6-p,Achat Prestations 6% - Intracommunautaire (+),AP-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1215,,tag_lu_388,tax_group_6
|
||||
lu_2011_tax_AP-IC-6,Achat Prestations 6% - Intracommunautaire,AP-IC-6,purchase,group,100,,,lu_2011_chart_1,213,"lu_2011_tax_AP-IC-6-n,lu_2011_tax_AP-IC-6-p",tag_lu_108,tax_group_6
|
||||
lu_2015_tax_AP-IC-8-n,Achat Prestations 8% - Intracommunautaire (-),AP-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1217,,tag_lu_569,tax_group_8
|
||||
lu_2015_tax_AP-IC-8-p,Achat Prestations 8% - Intracommunautaire (+),AP-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1218,,tag_lu_408,tax_group_8
|
||||
lu_2015_tax_AP-IC-8,Achat Prestations 8% - Intracommunautaire,AP-IC-8,purchase,group,100,,,lu_2011_chart_1,216,"lu_2015_tax_AP-IC-8-n,lu_2015_tax_AP-IC-8-p",tag_lu_132,tax_group_8
|
||||
lu_2011_tax_AP-PA-0,Achat Prestations 0% - Pays,AP-PA-0,purchase,percent,0,,,lu_2011_chart_1,219,,tag_lu_228,tax_group_0
|
||||
lu_2011_tax_AP-PA-12,Achat Prestations 12% - Pays,AP-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,220,,"tag_lu_454,tag_lu_229",tax_group_12
|
||||
lu_2015_tax_AP-PA-14,Achat Prestations 14% - Pays,AP-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,221,,"tag_lu_456,tag_lu_230",tax_group_14
|
||||
lu_2011_tax_AP-PA-15,Achat Prestations 15% - Pays,AP-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,222,,"tag_lu_457,tag_lu_231",tax_group_15
|
||||
lu_2015_tax_AP-PA-17,Achat Prestations 17% - Pays,AP-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,223,,"tag_lu_458,tag_lu_232",tax_group_17
|
||||
lu_2011_tax_AP-PA-3,Achat Prestations 3% - Pays,AP-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,224,,"tag_lu_233,tag_lu_459",tax_group_3
|
||||
lu_2011_tax_AP-PA-6,Achat Prestations 6% - Pays,AP-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,225,,"tag_lu_460,tag_lu_234",tax_group_6
|
||||
lu_2015_tax_AP-PA-8,Achat Prestations 8% - Pays,AP-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,226,,"tag_lu_235,tag_lu_461",tax_group_8
|
||||
lu_2011_tax_FB-EC-0,Frais Biens Exonéré - Extracommunautaire,FB-EC-0,purchase,percent,0,,,lu_2011_chart_1,227,,tag_lu_70,tax_group_0
|
||||
lu_2011_tax_FB-EC-12-n,Frais Biens 12% - Extracommunautaire (-),FB-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1229,,tag_lu_527,tax_group_12
|
||||
lu_2011_tax_FB-EC-12-p,Frais Biens 12% - Extracommunautaire (+),FB-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1230,,tag_lu_339,tax_group_12
|
||||
lu_2011_tax_FB-EC-12,Frais Biens 12% - Extracommunautaire,FB-EC-12,purchase,group,100,,,lu_2011_chart_1,228,"lu_2011_tax_FB-EC-12-n,lu_2011_tax_FB-EC-12-p",tag_lu_50,tax_group_12
|
||||
lu_2015_tax_FB-EC-14-n,Frais Biens 14% - Extracommunautaire (-),FB-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1232,,tag_lu_528,tax_group_14
|
||||
lu_2015_tax_FB-EC-14-p,Frais Biens 14% - Extracommunautaire (+),FB-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1233,,tag_lu_363,tax_group_14
|
||||
lu_2015_tax_FB-EC-14,Frais Biens 14% - Extracommunautaire,FB-EC-14,purchase,group,100,,,lu_2011_chart_1,231,"lu_2015_tax_FB-EC-14-n,lu_2015_tax_FB-EC-14-p",tag_lu_82,tax_group_14
|
||||
lu_2011_tax_FB-EC-15-n,Frais Biens 15% - Extracommunautaire (-),FB-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1235,,tag_lu_529,tax_group_15
|
||||
lu_2011_tax_FB-EC-15-p,Frais Biens 15% - Extracommunautaire (+),FB-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1236,,tag_lu_327,tax_group_15
|
||||
lu_2011_tax_FB-EC-15,Frais Biens 15% - Extracommunautaire,FB-EC-15,purchase,group,100,,,lu_2011_chart_1,234,"lu_2011_tax_FB-EC-15-n,lu_2011_tax_FB-EC-15-p",tag_lu_38,tax_group_15
|
||||
lu_2015_tax_FB-EC-17-n,Frais Biens 17% - Extracommunautaire (-),FB-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1238,,tag_lu_530,tax_group_17
|
||||
lu_2015_tax_FB-EC-17-p,Frais Biens 17% - Extracommunautaire (+),FB-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1239,,tag_lu_359,tax_group_17
|
||||
lu_2015_tax_FB-EC-17,Frais Biens 17% - Extracommunautaire,FB-EC-17,purchase,group,100,,,lu_2011_chart_1,237,"lu_2015_tax_FB-EC-17-n,lu_2015_tax_FB-EC-17-p",tag_lu_78,tax_group_17
|
||||
lu_2011_tax_FB-EC-3-n,Frais Biens 3% - Extracommunautaire (-),FB-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1241,,tag_lu_531,tax_group_3
|
||||
lu_2011_tax_FB-EC-3-p,Frais Biens 3% - Extracommunautaire (+),FB-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1242,,tag_lu_335,tax_group_3
|
||||
lu_2011_tax_FB-EC-3,Frais Biens 3% - Extracommunautaire,FB-EC-3,purchase,group,100,,,lu_2011_chart_1,240,"lu_2011_tax_FB-EC-3-n,lu_2011_tax_FB-EC-3-p",tag_lu_46,tax_group_3
|
||||
lu_2011_tax_FB-EC-6-n,Frais Biens 6% - Extracommunautaire (-),FB-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1244,,tag_lu_532,tax_group_6
|
||||
lu_2011_tax_FB-EC-6-p,Frais Biens 6% - Extracommunautaire (+),FB-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1245,,tag_lu_331,tax_group_6
|
||||
lu_2011_tax_FB-EC-6,Frais Biens 6% - Extracommunautaire,FB-EC-6,purchase,group,100,,,lu_2011_chart_1,243,"lu_2011_tax_FB-EC-6-n,lu_2011_tax_FB-EC-6-p",tag_lu_42,tax_group_6
|
||||
lu_2015_tax_FB-EC-8-n,Frais Biens 8% - Extracommunautaire (-),FB-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1247,,tag_lu_533,tax_group_8
|
||||
lu_2015_tax_FB-EC-8-p,Frais Biens 8% - Extracommunautaire (+),FB-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1248,,tag_lu_367,tax_group_8
|
||||
lu_2015_tax_FB-EC-8,Frais Biens 8% - Extracommunautaire,FB-EC-8,purchase,group,100,,,lu_2011_chart_1,246,"lu_2015_tax_FB-EC-8-n,lu_2015_tax_FB-EC-8-p",tag_lu_86,tax_group_8
|
||||
lu_2015_tax_FB-ECP-0,Frais Biens Exonéré - Extracommunautaire fin privées,FB-ECP-0,purchase,percent,0,,,lu_2011_chart_1,249,,tag_lu_74,tax_group_0
|
||||
lu_2015_tax_FB-ECP-12-n,Frais Biens 12% - Extracommunautaire fin privées (-),FB-ECP-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1251,,tag_lu_534,tax_group_12
|
||||
lu_2015_tax_FB-ECP-12-p,Frais Biens 12% - Extracommunautaire fin privées (+),FB-ECP-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1252,,tag_lu_355,tax_group_12
|
||||
lu_2015_tax_FB-ECP-12,Frais Biens 12% - Extracommunautaire fin privées,FB-ECP-12,purchase,group,100,,,lu_2011_chart_1,250,"lu_2015_tax_FB-ECP-12-n,lu_2015_tax_FB-ECP-12-p",tag_lu_66,tax_group_12
|
||||
lu_2015_tax_FB-ECP-14-n,Frais Biens 14% - Extracommunautaire fin privées (-),FB-ECP-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1254,,tag_lu_535,tax_group_14
|
||||
lu_2015_tax_FB-ECP-14-p,Frais Biens 14% - Extracommunautaire fin privées (+),FB-ECP-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1255,,tag_lu_375,tax_group_14
|
||||
lu_2015_tax_FB-ECP-14,Frais Biens 14% - Extracommunautaire fin privées,FB-ECP-14,purchase,group,100,,,lu_2011_chart_1,253,"lu_2015_tax_FB-ECP-14-n,lu_2015_tax_FB-ECP-14-p",tag_lu_94,tax_group_14
|
||||
lu_2015_tax_FB-ECP-15-n,Frais Biens 15% - Extracommunautaire fin privées (-),FB-ECP-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1257,,tag_lu_536,tax_group_15
|
||||
lu_2015_tax_FB-ECP-15-p,Frais Biens 15% - Extracommunautaire fin privées (+),FB-ECP-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1258,,tag_lu_343,tax_group_15
|
||||
lu_2015_tax_FB-ECP-15,Frais Biens 15% - Extracommunautaire fin privées,FB-ECP-15,purchase,group,100,,,lu_2011_chart_1,256,"lu_2015_tax_FB-ECP-15-n,lu_2015_tax_FB-ECP-15-p",tag_lu_54,tax_group_15
|
||||
lu_2015_tax_FB-ECP-17-n,Frais Biens 17% - Extracommunautaire fin privées (-),FB-ECP-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1260,,tag_lu_537,tax_group_17
|
||||
lu_2015_tax_FB-ECP-17-p,Frais Biens 17% - Extracommunautaire fin privées (+),FB-ECP-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1261,,tag_lu_371,tax_group_17
|
||||
lu_2015_tax_FB-ECP-17,Frais Biens 17% - Extracommunautaire fin privées,FB-ECP-17,purchase,group,100,,,lu_2011_chart_1,259,"lu_2015_tax_FB-ECP-17-n,lu_2015_tax_FB-ECP-17-p",tag_lu_90,tax_group_17
|
||||
lu_2015_tax_FB-ECP-3-n,Frais Biens 3% - Extracommunautaire fin privées (-),FB-ECP-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1263,,tag_lu_538,tax_group_3
|
||||
lu_2015_tax_FB-ECP-3-p,Frais Biens 3% - Extracommunautaire fin privées (+),FB-ECP-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1264,,tag_lu_351,tax_group_3
|
||||
lu_2015_tax_FB-ECP-3,Frais Biens 3% - Extracommunautaire fin privées,FB-ECP-3,purchase,group,100,,,lu_2011_chart_1,262,"lu_2015_tax_FB-ECP-3-n,lu_2015_tax_FB-ECP-3-p",tag_lu_62,tax_group_3
|
||||
lu_2015_tax_FB-ECP-6-n,Frais Biens 6% - Extracommunautaire fin privées (-),FB-ECP-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1266,,tag_lu_539,tax_group_6
|
||||
lu_2015_tax_FB-ECP-6-p,Frais Biens 6% - Extracommunautaire fin privées (+),FB-ECP-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1267,,tag_lu_347,tax_group_6
|
||||
lu_2015_tax_FB-ECP-6,Frais Biens 6% - Extracommunautaire fin privées,FB-ECP-6,purchase,group,100,,,lu_2011_chart_1,265,"lu_2015_tax_FB-ECP-6-n,lu_2015_tax_FB-ECP-6-p",tag_lu_58,tax_group_6
|
||||
lu_2015_tax_FB-ECP-8-n,Frais Biens 8% - Extracommunautaire fin privées (-),FB-ECP-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1269,,tag_lu_540,tax_group_8
|
||||
lu_2015_tax_FB-ECP-8-p,Frais Biens 8% - Extracommunautaire fin privées (+),FB-ECP-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1270,,tag_lu_379,tax_group_8
|
||||
lu_2015_tax_FB-ECP-8,Frais Biens 8% - Extracommunautaire fin privées,FB-ECP-8,purchase,group,100,,,lu_2011_chart_1,268,"lu_2015_tax_FB-ECP-8-n,lu_2015_tax_FB-ECP-8-p",tag_lu_98,tax_group_8
|
||||
lu_2011_tax_FB-IC-0,Frais Biens Exonéré - Intracommunautaire,FB-IC-0,purchase,percent,0,,,lu_2011_chart_1,271,,tag_lu_21,tax_group_0
|
||||
lu_2011_tax_FB-IC-12-n,Frais Biens 12% - Intracommunautaire (-),FB-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1273,,tag_lu_498,tax_group_12
|
||||
lu_2011_tax_FB-IC-12-p,Frais Biens 12% - Intracommunautaire (+),FB-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1274,,tag_lu_310,tax_group_12
|
||||
lu_2011_tax_FB-IC-12,Frais Biens 12% - Intracommunautaire,FB-IC-12,purchase,group,100,,,lu_2011_chart_1,272,"lu_2011_tax_FB-IC-12-n,lu_2011_tax_FB-IC-12-p",tag_lu_17,tax_group_12
|
||||
lu_2015_tax_FB-IC-14-n,Frais Biens 14% - Intracommunautaire (-),FB-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1276,,tag_lu_499,tax_group_14
|
||||
lu_2015_tax_FB-IC-14-p,Frais Biens 14% - Intracommunautaire (+),FB-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1277,,tag_lu_318,tax_group_14
|
||||
lu_2015_tax_FB-IC-14,Frais Biens 14% - Intracommunautaire,FB-IC-14,purchase,group,100,,,lu_2011_chart_1,275,"lu_2015_tax_FB-IC-14-n,lu_2015_tax_FB-IC-14-p",tag_lu_29,tax_group_14
|
||||
lu_2011_tax_FB-IC-15-n,Frais Biens 15% - Intracommunautaire (-),FB-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1279,,tag_lu_500,tax_group_15
|
||||
lu_2011_tax_FB-IC-15-p,Frais Biens 15% - Intracommunautaire (+),FB-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1280,,tag_lu_298,tax_group_15
|
||||
lu_2011_tax_FB-IC-15,Frais Biens 15% - Intracommunautaire,FB-IC-15,purchase,group,100,,,lu_2011_chart_1,278,"lu_2011_tax_FB-IC-15-n,lu_2011_tax_FB-IC-15-p",tag_lu_05,tax_group_15
|
||||
lu_2015_tax_FB-IC-17-n,Frais Biens 17% - Intracommunautaire (-),FB-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1282,,tag_lu_501,tax_group_17
|
||||
lu_2015_tax_FB-IC-17-p,Frais Biens 17% - Intracommunautaire (+),FB-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1283,,tag_lu_314,tax_group_17
|
||||
lu_2015_tax_FB-IC-17,Frais Biens 17% - Intracommunautaire,FB-IC-17,purchase,group,100,,,lu_2011_chart_1,281,"lu_2015_tax_FB-IC-17-n,lu_2015_tax_FB-IC-17-p",tag_lu_25,tax_group_17
|
||||
lu_2011_tax_FB-IC-3-n,Frais Biens 3% - Intracommunautaire (-),FB-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1285,,tag_lu_502,tax_group_3
|
||||
lu_2011_tax_FB-IC-3-p,Frais Biens 3% - Intracommunautaire (+),FB-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1286,,tag_lu_306,tax_group_3
|
||||
lu_2011_tax_FB-IC-3,Frais Biens 3% - Intracommunautaire,FB-IC-3,purchase,group,100,,,lu_2011_chart_1,284,"lu_2011_tax_FB-IC-3-n,lu_2011_tax_FB-IC-3-p",tag_lu_13,tax_group_3
|
||||
lu_2011_tax_FB-IC-6-n,Frais Biens 6% - Intracommunautaire (-),FB-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1288,,tag_lu_503,tax_group_6
|
||||
lu_2011_tax_FB-IC-6-p,Frais Biens 6% - Intracommunautaire (+),FB-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1289,,tag_lu_302,tax_group_6
|
||||
lu_2011_tax_FB-IC-6,Frais Biens 6% - Intracommunautaire,FB-IC-6,purchase,group,100,,,lu_2011_chart_1,287,"lu_2011_tax_FB-IC-6-n,lu_2011_tax_FB-IC-6-p",tag_lu_09,tax_group_6
|
||||
lu_2015_tax_FB-IC-8-n,Frais Biens 8% - Intracommunautaire (-),FB-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1291,,tag_lu_504,tax_group_8
|
||||
lu_2015_tax_FB-IC-8-p,Frais Biens 8% - Intracommunautaire (+),FB-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1292,,tag_lu_322,tax_group_8
|
||||
lu_2015_tax_FB-IC-8,Frais Biens 8% - Intracommunautaire,FB-IC-8,purchase,group,100,,,lu_2011_chart_1,290,"lu_2015_tax_FB-IC-8-n,lu_2015_tax_FB-IC-8-p",tag_lu_33,tax_group_8
|
||||
lu_2011_tax_FB-PA-0,Frais Biens 0% - Pays,FB-PA-0,purchase,percent,0,,,lu_2011_chart_1,293,,tag_lu_236,tax_group_0
|
||||
lu_2011_tax_FB-PA-12,Frais Biens 12% - Pays,FB-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,294,,"tag_lu_237,tag_lu_462",tax_group_12
|
||||
lu_2015_tax_FB-PA-14,Frais Biens 14% - Pays,FB-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,295,,"tag_lu_463,tag_lu_238",tax_group_14
|
||||
lu_2011_tax_FB-PA-15,Frais Biens 15% - Pays,FB-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,296,,"tag_lu_239,tag_lu_464",tax_group_15
|
||||
lu_2015_tax_FB-PA-17,Frais Biens 17% - Pays,FB-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,297,,"tag_lu_240,tag_lu_465",tax_group_17
|
||||
lu_2011_tax_FB-PA-3,Frais Biens 3% - Pays,FB-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,298,,"tag_lu_241,tag_lu_466",tax_group_3
|
||||
lu_2011_tax_FB-PA-6,Frais Biens 6% - Pays,FB-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,299,,"tag_lu_242,tag_lu_467",tax_group_6
|
||||
lu_2015_tax_FB-PA-8,Frais Biens 8% - Pays,FB-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,300,,"tag_lu_468,tag_lu_243",tax_group_8
|
||||
lu_2011_tax_FP-EC-0,Frais Prestations Exonérées - Extracommunautaire,FP-EC-0,purchase,percent,0,,,lu_2011_chart_1,301,,tag_lu_154,tax_group_0
|
||||
lu_2011_tax_FP-EC-12-n,Frais Prestations 12% - Extracommunautaire (-),FP-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1303,,tag_lu_570,tax_group_12
|
||||
lu_2011_tax_FP-EC-12-p,Frais Prestations 12% - Extracommunautaire (+),FP-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1304,,tag_lu_426,tax_group_12
|
||||
lu_2011_tax_FP-EC-12,Frais Prestations 12% - Extracommunautaire,FP-EC-12,purchase,group,100,,,lu_2011_chart_1,302,"lu_2011_tax_FP-EC-12-n,lu_2011_tax_FP-EC-12-p",tag_lu_150,tax_group_12
|
||||
lu_2015_tax_FP-EC-14-n,Frais Prestations 14% - Extracommunautaire (-),FP-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1306,,tag_lu_571,tax_group_14
|
||||
lu_2015_tax_FP-EC-14-p,Frais Prestations 14% - Extracommunautaire (+),FP-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1307,,tag_lu_434,tax_group_14
|
||||
lu_2015_tax_FP-EC-14,Frais Prestations 14% - Extracommunautaire,FP-EC-14,purchase,group,100,,,lu_2011_chart_1,305,"lu_2015_tax_FP-EC-14-n,lu_2015_tax_FP-EC-14-p",tag_lu_162,tax_group_14
|
||||
lu_2011_tax_FP-EC-15-n,Frais Prestations 15% - Extracommunautaire (-),FP-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1309,,tag_lu_572,tax_group_15
|
||||
lu_2011_tax_FP-EC-15-p,Frais Prestations 15% - Extracommunautaire (+),FP-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1310,,tag_lu_414,tax_group_15
|
||||
lu_2011_tax_FP-EC-15,Frais Prestations 15% - Extracommunautaire,FP-EC-15,purchase,group,100,,,lu_2011_chart_1,308,"lu_2011_tax_FP-EC-15-n,lu_2011_tax_FP-EC-15-p",tag_lu_138,tax_group_15
|
||||
lu_2015_tax_FP-EC-17-n,Frais Prestations 17% - Extracommunautaire (-),FP-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1312,,tag_lu_573,tax_group_17
|
||||
lu_2015_tax_FP-EC-17-p,Frais Prestations 17% - Extracommunautaire (+),FP-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1313,,tag_lu_430,tax_group_17
|
||||
lu_2015_tax_FP-EC-17,Frais Prestations 17% - Extracommunautaire,FP-EC-17,purchase,group,100,,,lu_2011_chart_1,311,"lu_2015_tax_FP-EC-17-n,lu_2015_tax_FP-EC-17-p",tag_lu_158,tax_group_17
|
||||
lu_2011_tax_FP-EC-3-n,Frais Prestations 3% - Extracommunautaire (-),FP-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1315,,tag_lu_574,tax_group_3
|
||||
lu_2011_tax_FP-EC-3-p,Frais Prestations 3% - Extracommunautaire (+),FP-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1316,,tag_lu_422,tax_group_3
|
||||
lu_2011_tax_FP-EC-3,Frais Prestations 3% - Extracommunautaire,FP-EC-3,purchase,group,100,,,lu_2011_chart_1,314,"lu_2011_tax_FP-EC-3-n,lu_2011_tax_FP-EC-3-p",tag_lu_146,tax_group_3
|
||||
lu_2011_tax_FP-EC-6-n,Frais Prestations 6% - Extracommunautaire (-),FP-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1318,,tag_lu_575,tax_group_6
|
||||
lu_2011_tax_FP-EC-6-p,Frais Prestations 6% - Extracommunautaire (+),FP-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1319,,tag_lu_418,tax_group_6
|
||||
lu_2011_tax_FP-EC-6,Frais Prestations 6% - Extracommunautaire,FP-EC-6,purchase,group,100,,,lu_2011_chart_1,317,"lu_2011_tax_FP-EC-6-n,lu_2011_tax_FP-EC-6-p",tag_lu_142,tax_group_6
|
||||
lu_2015_tax_FP-EC-8-n,Frais Prestations 8% - Extracommunautaire (-),FP-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1321,,tag_lu_576,tax_group_8
|
||||
lu_2015_tax_FP-EC-8-p,Frais Prestations 8% - Extracommunautaire (+),FP-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1322,,tag_lu_438,tax_group_8
|
||||
lu_2015_tax_FP-EC-8,Frais Prestations 8% - Extracommunautaire,FP-EC-8,purchase,group,100,,,lu_2011_chart_1,320,"lu_2015_tax_FP-EC-8-n,lu_2015_tax_FP-EC-8-p",tag_lu_166,tax_group_8
|
||||
lu_2011_tax_FP-IC-0,Frais Prestations Exonérées - Intracommunautaire,FP-IC-0,purchase,percent,0,,,lu_2011_chart_1,323,,tag_lu_121,tax_group_0
|
||||
lu_2011_tax_FP-IC-12-n,Frais Prestations 12% - Intracommunautaire (-),FP-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1325,,tag_lu_577,tax_group_12
|
||||
lu_2011_tax_FP-IC-12-p,Frais Prestations 12% - Intracommunautaire (+),FP-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1326,,tag_lu_397,tax_group_12
|
||||
lu_2011_tax_FP-IC-12,Frais Prestations 12% - Intracommunautaire,FP-IC-12,purchase,group,100,,,lu_2011_chart_1,324,"lu_2011_tax_FP-IC-12-n,lu_2011_tax_FP-IC-12-p",tag_lu_117,tax_group_12
|
||||
lu_2015_tax_FP-IC-14-n,Frais Prestations 14% - Intracommunautaire (-),FP-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1328,,tag_lu_578,tax_group_14
|
||||
lu_2015_tax_FP-IC-14-p,Frais Prestations 14% - Intracommunautaire (+),FP-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1329,,tag_lu_405,tax_group_14
|
||||
lu_2015_tax_FP-IC-14,Frais Prestations 14% - Intracommunautaire,FP-IC-14,purchase,group,100,,,lu_2011_chart_1,327,"lu_2015_tax_FP-IC-14-n,lu_2015_tax_FP-IC-14-p",tag_lu_129,tax_group_14
|
||||
lu_2011_tax_FP-IC-15-n,Frais Prestations 15% - Intracommunautaire (-),FP-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1331,,tag_lu_579,tax_group_15
|
||||
lu_2011_tax_FP-IC-15-p,Frais Prestations 15% - Intracommunautaire (+),FP-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1332,,tag_lu_385,tax_group_15
|
||||
lu_2011_tax_FP-IC-15,Frais Prestations 15% - Intracommunautaire,FP-IC-15,purchase,group,100,,,lu_2011_chart_1,330,"lu_2011_tax_FP-IC-15-n,lu_2011_tax_FP-IC-15-p",tag_lu_105,tax_group_15
|
||||
lu_2015_tax_FP-IC-17-n,Frais Prestations 17% - Intracommunautaire (-),FP-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1334,,tag_lu_580,tax_group_17
|
||||
lu_2015_tax_FP-IC-17-p,Frais Prestations 17% - Intracommunautaire (+),FP-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1335,,tag_lu_401,tax_group_17
|
||||
lu_2015_tax_FP-IC-17,Frais Prestations 17% - Intracommunautaire,FP-IC-17,purchase,group,100,,,lu_2011_chart_1,333,"lu_2015_tax_FP-IC-17-n,lu_2015_tax_FP-IC-17-p",tag_lu_125,tax_group_17
|
||||
lu_2011_tax_FP-IC-3-n,Frais Prestations 3% - Intracommunautaire (-),FP-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1337,,tag_lu_581,tax_group_3
|
||||
lu_2011_tax_FP-IC-3-p,Frais Prestations 3% - Intracommunautaire (+),FP-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1338,,tag_lu_393,tax_group_3
|
||||
lu_2011_tax_FP-IC-3,Frais Prestations 3% - Intracommunautaire,FP-IC-3,purchase,group,100,,,lu_2011_chart_1,336,"lu_2011_tax_FP-IC-3-n,lu_2011_tax_FP-IC-3-p",tag_lu_113,tax_group_3
|
||||
lu_2011_tax_FP-IC-6-n,Frais Prestations 6% - Intracommunautaire (-),FP-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1340,,tag_lu_582,tax_group_6
|
||||
lu_2011_tax_FP-IC-6-p,Frais Prestations 6% - Intracommunautaire (+),FP-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1341,,tag_lu_389,tax_group_6
|
||||
lu_2011_tax_FP-IC-6,Frais Prestations 6% - Intracommunautaire,FP-IC-6,purchase,group,100,,,lu_2011_chart_1,339,"lu_2011_tax_FP-IC-6-n,lu_2011_tax_FP-IC-6-p",tag_lu_109,tax_group_6
|
||||
lu_2015_tax_FP-IC-8-n,Frais Prestations 8% - Intracommunautaire (-),FP-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1343,,tag_lu_583,tax_group_8
|
||||
lu_2015_tax_FP-IC-8-p,Frais Prestations 8% - Intracommunautaire (+),FP-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1344,,tag_lu_409,tax_group_8
|
||||
lu_2015_tax_FP-IC-8,Frais Prestations 8% - Intracommunautaire,FP-IC-8,purchase,group,100,,,lu_2011_chart_1,342,"lu_2015_tax_FP-IC-8-n,lu_2015_tax_FP-IC-8-p",tag_lu_133,tax_group_8
|
||||
lu_2011_tax_FP-PA-0,Frais Prestations 0% - Pays,FP-PA-0,purchase,percent,0,,,lu_2011_chart_1,345,,tag_lu_244,tax_group_0
|
||||
lu_2011_tax_FP-PA-12,Frais Prestations 12% - Pays,FP-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,346,,"tag_lu_469,tag_lu_245",tax_group_12
|
||||
lu_2015_tax_FP-PA-14,Frais Prestations 14% - Pays,FP-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,347,,"tag_lu_470,tag_lu_246",tax_group_14
|
||||
lu_2011_tax_FP-PA-15,Frais Prestations 15% - Pays,FP-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,348,,"tag_lu_247,tag_lu_471",tax_group_15
|
||||
lu_2015_tax_FP-PA-17,Frais Prestations 17% - Pays,FP-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,349,,"tag_lu_248,tag_lu_472",tax_group_17
|
||||
lu_2011_tax_FP-PA-3,Frais Prestations 3% - Pays,FP-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,350,,"tag_lu_473,tag_lu_249",tax_group_3
|
||||
lu_2011_tax_FP-PA-6,Frais Prestations 6% - Pays,FP-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,351,,"tag_lu_474,tag_lu_250",tax_group_6
|
||||
lu_2015_tax_FP-PA-8,Frais Prestations 8% - Pays,FP-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,352,,"tag_lu_475,tag_lu_251",tax_group_8
|
||||
lu_2011_tax_IB-EC-0,Investissement Biens Exonéré - Extracommunautaire,IB-EC-0,purchase,percent,0,,,lu_2011_chart_1,353,,tag_lu_71,tax_group_0
|
||||
lu_2011_tax_IB-EC-12-n,Investissement Biens 12% - Extracommunautaire (-),IB-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1355,,tag_lu_541,tax_group_12
|
||||
lu_2011_tax_IB-EC-12-p,Investissement Biens 12% - Extracommunautaire (+),IB-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1356,,tag_lu_340,tax_group_12
|
||||
lu_2011_tax_IB-EC-12,Investissement Biens 12% - Extracommunautaire,IB-EC-12,purchase,group,100,,,lu_2011_chart_1,354,"lu_2011_tax_IB-EC-12-n,lu_2011_tax_IB-EC-12-p",tag_lu_51,tax_group_12
|
||||
lu_2015_tax_IB-EC-14-n,Investissement Biens 14% - Extracommunautaire (-),IB-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1358,,tag_lu_542,tax_group_14
|
||||
lu_2015_tax_IB-EC-14-p,Investissement Biens 14% - Extracommunautaire (+),IB-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1359,,tag_lu_364,tax_group_14
|
||||
lu_2015_tax_IB-EC-14,Investissement Biens 14% - Extracommunautaire,IB-EC-14,purchase,group,100,,,lu_2011_chart_1,357,"lu_2015_tax_IB-EC-14-n,lu_2015_tax_IB-EC-14-p",tag_lu_83,tax_group_14
|
||||
lu_2011_tax_IB-EC-15-n,Investissement Biens 15% - Extracommunautaire (-),IB-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1361,,tag_lu_543,tax_group_15
|
||||
lu_2011_tax_IB-EC-15-p,Investissement Biens 15% - Extracommunautaire (+),IB-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1362,,tag_lu_328,tax_group_15
|
||||
lu_2011_tax_IB-EC-15,Investissement Biens 15% - Extracommunautaire,IB-EC-15,purchase,group,100,,,lu_2011_chart_1,360,"lu_2011_tax_IB-EC-15-n,lu_2011_tax_IB-EC-15-p",tag_lu_39,tax_group_15
|
||||
lu_2015_tax_IB-EC-17-n,Investissement Biens 17% - Extracommunautaire (-),IB-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1364,,tag_lu_544,tax_group_17
|
||||
lu_2015_tax_IB-EC-17-p,Investissement Biens 17% - Extracommunautaire (+),IB-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1365,,tag_lu_360,tax_group_17
|
||||
lu_2015_tax_IB-EC-17,Investissement Biens 17% - Extracommunautaire,IB-EC-17,purchase,group,100,,,lu_2011_chart_1,363,"lu_2015_tax_IB-EC-17-n,lu_2015_tax_IB-EC-17-p",tag_lu_79,tax_group_17
|
||||
lu_2011_tax_IB-EC-3-n,Investissement Biens 3% - Extracommunautaire (-),IB-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1367,,tag_lu_545,tax_group_3
|
||||
lu_2011_tax_IB-EC-3-p,Investissement Biens 3% - Extracommunautaire (+),IB-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1368,,tag_lu_336,tax_group_3
|
||||
lu_2011_tax_IB-EC-3,Investissement Biens 3% - Extracommunautaire,IB-EC-3,purchase,group,100,,,lu_2011_chart_1,366,"lu_2011_tax_IB-EC-3-n,lu_2011_tax_IB-EC-3-p",tag_lu_47,tax_group_3
|
||||
lu_2011_tax_IB-EC-6-n,Investissement Biens 6% - Extracommunautaire (-),IB-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1370,,tag_lu_546,tax_group_6
|
||||
lu_2011_tax_IB-EC-6-p,Investissement Biens 6% - Extracommunautaire (+),IB-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1371,,tag_lu_332,tax_group_6
|
||||
lu_2011_tax_IB-EC-6,Investissement Biens 6% - Extracommunautaire,IB-EC-6,purchase,group,100,,,lu_2011_chart_1,369,"lu_2011_tax_IB-EC-6-n,lu_2011_tax_IB-EC-6-p",tag_lu_43,tax_group_6
|
||||
lu_2015_tax_IB-EC-8-n,Investissement Biens 8% - Extracommunautaire (-),IB-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1373,,tag_lu_547,tax_group_8
|
||||
lu_2015_tax_IB-EC-8-p,Investissement Biens 8% - Extracommunautaire (+),IB-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1374,,tag_lu_368,tax_group_8
|
||||
lu_2015_tax_IB-EC-8,Investissement Biens 8% - Extracommunautaire,IB-EC-8,purchase,group,100,,,lu_2011_chart_1,372,"lu_2015_tax_IB-EC-8-n,lu_2015_tax_IB-EC-8-p",tag_lu_87,tax_group_8
|
||||
lu_2015_tax_IB-ECP-0,Investissement Biens Exonéré - Extracommunautaire fin privées,IB-ECP-0,purchase,percent,0,,,lu_2011_chart_1,375,,tag_lu_75,tax_group_0
|
||||
lu_2015_tax_IB-ECP-12-n,Investissement Biens 12% - Extracommunautaire fin privées (-),IB-ECP-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1377,,tag_lu_548,tax_group_12
|
||||
lu_2015_tax_IB-ECP-12-p,Investissement Biens 12% - Extracommunautaire fin privées (+),IB-ECP-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1378,,tag_lu_356,tax_group_12
|
||||
lu_2015_tax_IB-ECP-12,Investissement Biens 12% - Extracommunautaire fin privées,IB-ECP-12,purchase,group,100,,,lu_2011_chart_1,376,"lu_2015_tax_IB-ECP-12-n,lu_2015_tax_IB-ECP-12-p",tag_lu_67,tax_group_12
|
||||
lu_2015_tax_IB-ECP-14-n,Investissement Biens 14% - Extracommunautaire fin privées (-),IB-ECP-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1380,,tag_lu_549,tax_group_14
|
||||
lu_2015_tax_IB-ECP-14-p,Investissement Biens 14% - Extracommunautaire fin privées (+),IB-ECP-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1381,,tag_lu_376,tax_group_14
|
||||
lu_2015_tax_IB-ECP-14,Investissement Biens 14% - Extracommunautaire fin privées,IB-ECP-14,purchase,group,100,,,lu_2011_chart_1,379,"lu_2015_tax_IB-ECP-14-n,lu_2015_tax_IB-ECP-14-p",tag_lu_95,tax_group_14
|
||||
lu_2015_tax_IB-ECP-15-n,Investissement Biens 15% - Extracommunautaire fin privées (-),IB-ECP-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1383,,tag_lu_550,tax_group_15
|
||||
lu_2015_tax_IB-ECP-15-p,Investissement Biens 15% - Extracommunautaire fin privées (+),IB-ECP-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1384,,tag_lu_344,tax_group_15
|
||||
lu_2015_tax_IB-ECP-15,Investissement Biens 15% - Extracommunautaire fin privées,IB-ECP-15,purchase,group,100,,,lu_2011_chart_1,382,"lu_2015_tax_IB-ECP-15-n,lu_2015_tax_IB-ECP-15-p",tag_lu_55,tax_group_15
|
||||
lu_2015_tax_IB-ECP-17-n,Investissement Biens 17% - Extracommunautaire fin privées (-),IB-ECP-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1386,,tag_lu_551,tax_group_17
|
||||
lu_2015_tax_IB-ECP-17-p,Investissement Biens 17% - Extracommunautaire fin privées (+),IB-ECP-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1387,,tag_lu_372,tax_group_17
|
||||
lu_2015_tax_IB-ECP-17,Investissement Biens 17% - Extracommunautaire fin privées,IB-ECP-17,purchase,group,100,,,lu_2011_chart_1,385,"lu_2015_tax_IB-ECP-17-n,lu_2015_tax_IB-ECP-17-p",tag_lu_91,tax_group_17
|
||||
lu_2015_tax_IB-ECP-3-n,Investissement Biens 3% - Extracommunautaire fin privées (-),IB-ECP-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1389,,tag_lu_552,tax_group_3
|
||||
lu_2015_tax_IB-ECP-3-p,Investissement Biens 3% - Extracommunautaire fin privées (+),IB-ECP-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1390,,tag_lu_352,tax_group_3
|
||||
lu_2015_tax_IB-ECP-3,Investissement Biens 3% - Extracommunautaire fin privées,IB-ECP-3,purchase,group,100,,,lu_2011_chart_1,388,"lu_2015_tax_IB-ECP-3-n,lu_2015_tax_IB-ECP-3-p",tag_lu_63,tax_group_3
|
||||
lu_2015_tax_IB-ECP-6-n,Investissement Biens 6% - Extracommunautaire fin privées (-),IB-ECP-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1392,,tag_lu_553,tax_group_6
|
||||
lu_2015_tax_IB-ECP-6-p,Investissement Biens 6% - Extracommunautaire fin privées (+),IB-ECP-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1393,,tag_lu_348,tax_group_6
|
||||
lu_2015_tax_IB-ECP-6,Investissement Biens 6% - Extracommunautaire fin privées,IB-ECP-6,purchase,group,100,,,lu_2011_chart_1,391,"lu_2015_tax_IB-ECP-6-n,lu_2015_tax_IB-ECP-6-p",tag_lu_59,tax_group_6
|
||||
lu_2015_tax_IB-ECP-8-n,Investissement Biens 8% - Extracommunautaire fin privées (-),IB-ECP-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1395,,tag_lu_554,tax_group_8
|
||||
lu_2015_tax_IB-ECP-8-p,Investissement Biens 8% - Extracommunautaire fin privées (+),IB-ECP-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1396,,tag_lu_380,tax_group_8
|
||||
lu_2015_tax_IB-ECP-8,Investissement Biens 8% - Extracommunautaire fin privées,IB-ECP-8,purchase,group,100,,,lu_2011_chart_1,394,"lu_2015_tax_IB-ECP-8-n,lu_2015_tax_IB-ECP-8-p",tag_lu_99,tax_group_8
|
||||
lu_2011_tax_IB-IC-0,Investissement Biens Exonéré - Intracommunautaire,IB-IC-0,purchase,percent,0,,,lu_2011_chart_1,397,,tag_lu_22,tax_group_0
|
||||
lu_2011_tax_IB-IC-12-n,Investissement Biens 12% - Intracommunautaire (-),IB-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1399,,tag_lu_505,tax_group_12
|
||||
lu_2011_tax_IB-IC-12-p,Investissement Biens 12% - Intracommunautaire (+),IB-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1400,,tag_lu_311,tax_group_12
|
||||
lu_2011_tax_IB-IC-12,Investissement Biens 12% - Intracommunautaire,IB-IC-12,purchase,group,100,,,lu_2011_chart_1,398,"lu_2011_tax_IB-IC-12-n,lu_2011_tax_IB-IC-12-p",tag_lu_18,tax_group_12
|
||||
lu_2015_tax_IB-IC-14-n,Investissement Biens 14% - Intracommunautaire (-),IB-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1402,,tag_lu_506,tax_group_14
|
||||
lu_2015_tax_IB-IC-14-p,Investissement Biens 14% - Intracommunautaire (+),IB-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1403,,tag_lu_319,tax_group_14
|
||||
lu_2015_tax_IB-IC-14,Investissement Biens 14% - Intracommunautaire,IB-IC-14,purchase,group,100,,,lu_2011_chart_1,401,"lu_2015_tax_IB-IC-14-n,lu_2015_tax_IB-IC-14-p",tag_lu_30,tax_group_14
|
||||
lu_2011_tax_IB-IC-15-n,Investissement Biens 15% - Intracommunautaire (-),IB-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1405,,tag_lu_507,tax_group_15
|
||||
lu_2011_tax_IB-IC-15-p,Investissement Biens 15% - Intracommunautaire (+),IB-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1406,,tag_lu_299,tax_group_15
|
||||
lu_2011_tax_IB-IC-15,Investissement Biens 15% - Intracommunautaire,IB-IC-15,purchase,group,100,,,lu_2011_chart_1,404,"lu_2011_tax_IB-IC-15-n,lu_2011_tax_IB-IC-15-p",tag_lu_06,tax_group_15
|
||||
lu_2015_tax_IB-IC-17-n,Investissement Biens 17% - Intracommunautaire (-),IB-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1408,,tag_lu_508,tax_group_17
|
||||
lu_2015_tax_IB-IC-17-p,Investissement Biens 17% - Intracommunautaire (+),IB-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1409,,tag_lu_315,tax_group_17
|
||||
lu_2015_tax_IB-IC-17,Investissement Biens 17% - Intracommunautaire,IB-IC-17,purchase,group,100,,,lu_2011_chart_1,407,"lu_2015_tax_IB-IC-17-n,lu_2015_tax_IB-IC-17-p",tag_lu_26,tax_group_17
|
||||
lu_2011_tax_IB-IC-3-n,Investissement Biens 3% - Intracommunautaire (-),IB-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1411,,tag_lu_509,tax_group_3
|
||||
lu_2011_tax_IB-IC-3-p,Investissement Biens 3% - Intracommunautaire (+),IB-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1412,,tag_lu_307,tax_group_3
|
||||
lu_2011_tax_IB-IC-3,Investissement Biens 3% - Intracommunautaire,IB-IC-3,purchase,group,100,,,lu_2011_chart_1,410,"lu_2011_tax_IB-IC-3-n,lu_2011_tax_IB-IC-3-p",tag_lu_14,tax_group_3
|
||||
lu_2011_tax_IB-IC-6-n,Investissement Biens 6% - Intracommunautaire (-),IB-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1414,,tag_lu_510,tax_group_6
|
||||
lu_2011_tax_IB-IC-6-p,Investissement Biens 6% - Intracommunautaire (+),IB-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1415,,tag_lu_303,tax_group_6
|
||||
lu_2011_tax_IB-IC-6,Investissement Biens 6% - Intracommunautaire,IB-IC-6,purchase,group,100,,,lu_2011_chart_1,413,"lu_2011_tax_IB-IC-6-n,lu_2011_tax_IB-IC-6-p",tag_lu_10,tax_group_6
|
||||
lu_2015_tax_IB-IC-8-n,Investissement Biens 8% - Intracommunautaire (-),IB-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1417,,tag_lu_511,tax_group_8
|
||||
lu_2015_tax_IB-IC-8-p,Investissement Biens 8% - Intracommunautaire (+),IB-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1418,,tag_lu_323,tax_group_8
|
||||
lu_2015_tax_IB-IC-8,Investissement Biens 8% - Intracommunautaire,IB-IC-8,purchase,group,100,,,lu_2011_chart_1,416,"lu_2015_tax_IB-IC-8-n,lu_2015_tax_IB-IC-8-p",tag_lu_34,tax_group_8
|
||||
lu_2011_tax_IB-PA-0,Investissement Biens 0% - Pays,IB-PA-0,purchase,percent,0,,,lu_2011_chart_1,419,,tag_lu_252,tax_group_0
|
||||
lu_2011_tax_IB-PA-12,Investissement Biens 12% - Pays,IB-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,420,,"tag_lu_476,tag_lu_253",tax_group_12
|
||||
lu_2015_tax_IB-PA-14,Investissement Biens 14% - Pays,IB-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,421,,"tag_lu_477,tag_lu_254",tax_group_14
|
||||
lu_2011_tax_IB-PA-15,Investissement Biens 15% - Pays,IB-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,422,,"tag_lu_255,tag_lu_478",tax_group_15
|
||||
lu_2015_tax_IB-PA-17,Investissement Biens 17% - Pays,IB-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,423,,"tag_lu_479,tag_lu_256",tax_group_17
|
||||
lu_2011_tax_IB-PA-3,Investissement Biens 3% - Pays,IB-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,424,,"tag_lu_480,tag_lu_257",tax_group_3
|
||||
lu_2011_tax_IB-PA-6,Investissement Biens 6% - Pays,IB-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,425,,"tag_lu_481,tag_lu_258",tax_group_6
|
||||
lu_2015_tax_IB-PA-8,Investissement Biens 8% - Pays,IB-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,426,,"tag_lu_482,tag_lu_259",tax_group_8
|
||||
lu_2011_tax_IP-EC-0,Investissement Prestations Exonérées - Extracommunautaire,IP-EC-0,purchase,percent,0,,,lu_2011_chart_1,427,,tag_lu_155,tax_group_0
|
||||
lu_2011_tax_IP-EC-12-n,Investissement Prestations 12% - Extracommunautaire (-),IP-EC-12-n,none,percent,-12,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1429,,tag_lu_584,tax_group_12
|
||||
lu_2011_tax_IP-EC-12-p,Investissement Prestations 12% - Extracommunautaire (+),IP-EC-12-p,none,percent,12,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1430,,tag_lu_427,tax_group_12
|
||||
lu_2011_tax_IP-EC-12,Investissement Prestations 12% - Extracommunautaire,IP-EC-12,purchase,group,100,,,lu_2011_chart_1,428,"lu_2011_tax_IP-EC-12-n,lu_2011_tax_IP-EC-12-p",tag_lu_151,tax_group_12
|
||||
lu_2015_tax_IP-EC-14-n,Investissement Prestations 14% - Extracommunautaire (-),IP-EC-14-n,none,percent,-14,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1432,,tag_lu_585,tax_group_14
|
||||
lu_2015_tax_IP-EC-14-p,Investissement Prestations 14% - Extracommunautaire (+),IP-EC-14-p,none,percent,14,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1433,,tag_lu_435,tax_group_14
|
||||
lu_2015_tax_IP-EC-14,Investissement Prestations 14% - Extracommunautaire,IP-EC-14,purchase,group,100,,,lu_2011_chart_1,431,"lu_2015_tax_IP-EC-14-n,lu_2015_tax_IP-EC-14-p",tag_lu_163,tax_group_14
|
||||
lu_2011_tax_IP-EC-15-n,Investissement Prestations 15% - Extracommunautaire (-),IP-EC-15-n,none,percent,-15,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1435,,tag_lu_586,tax_group_15
|
||||
lu_2011_tax_IP-EC-15-p,Investissement Prestations 15% - Extracommunautaire (+),IP-EC-15-p,none,percent,15,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1436,,tag_lu_415,tax_group_15
|
||||
lu_2011_tax_IP-EC-15,Investissement Prestations 15% - Extracommunautaire,IP-EC-15,purchase,group,100,,,lu_2011_chart_1,434,"lu_2011_tax_IP-EC-15-n,lu_2011_tax_IP-EC-15-p",tag_lu_139,tax_group_15
|
||||
lu_2015_tax_IP-EC-17-n,Investissement Prestations 17% - Extracommunautaire (-),IP-EC-17-n,none,percent,-17,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1438,,tag_lu_587,tax_group_17
|
||||
lu_2015_tax_IP-EC-17-p,Investissement Prestations 17% - Extracommunautaire (+),IP-EC-17-p,none,percent,17,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1439,,tag_lu_431,tax_group_17
|
||||
lu_2015_tax_IP-EC-17,Investissement Prestations 17% - Extracommunautaire,IP-EC-17,purchase,group,100,,,lu_2011_chart_1,437,"lu_2015_tax_IP-EC-17-n,lu_2015_tax_IP-EC-17-p",tag_lu_159,tax_group_17
|
||||
lu_2011_tax_IP-EC-3-n,Investissement Prestations 3% - Extracommunautaire (-),IP-EC-3-n,none,percent,-3,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1441,,tag_lu_588,tax_group_3
|
||||
lu_2011_tax_IP-EC-3-p,Investissement Prestations 3% - Extracommunautaire (+),IP-EC-3-p,none,percent,3,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1442,,tag_lu_423,tax_group_3
|
||||
lu_2011_tax_IP-EC-3,Investissement Prestations 3% - Extracommunautaire,IP-EC-3,purchase,group,100,,,lu_2011_chart_1,440,"lu_2011_tax_IP-EC-3-n,lu_2011_tax_IP-EC-3-p",tag_lu_147,tax_group_3
|
||||
lu_2011_tax_IP-EC-6-n,Investissement Prestations 6% - Extracommunautaire (-),IP-EC-6-n,none,percent,-6,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1444,,tag_lu_589,tax_group_6
|
||||
lu_2011_tax_IP-EC-6-p,Investissement Prestations 6% - Extracommunautaire (+),IP-EC-6-p,none,percent,6,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1445,,tag_lu_419,tax_group_6
|
||||
lu_2011_tax_IP-EC-6,Investissement Prestations 6% - Extracommunautaire,IP-EC-6,purchase,group,100,,,lu_2011_chart_1,443,"lu_2011_tax_IP-EC-6-n,lu_2011_tax_IP-EC-6-p",tag_lu_143,tax_group_6
|
||||
lu_2015_tax_IP-EC-8-n,Investissement Prestations 8% - Extracommunautaire (-),IP-EC-8-n,none,percent,-8,lu_2011_account_4614113,lu_2011_account_4614113,lu_2011_chart_1,1447,,tag_lu_590,tax_group_8
|
||||
lu_2015_tax_IP-EC-8-p,Investissement Prestations 8% - Extracommunautaire (+),IP-EC-8-p,none,percent,8,lu_2011_account_4216113,lu_2011_account_4216113,lu_2011_chart_1,1448,,tag_lu_439,tax_group_8
|
||||
lu_2015_tax_IP-EC-8,Investissement Prestations 8% - Extracommunautaire,IP-EC-8,purchase,group,100,,,lu_2011_chart_1,446,"lu_2015_tax_IP-EC-8-n,lu_2015_tax_IP-EC-8-p",tag_lu_167,tax_group_8
|
||||
lu_2011_tax_IP-IC-0,Investissement Prestations Exonérées - Intracommunautaire,IP-IC-0,purchase,percent,0,,,lu_2011_chart_1,449,,tag_lu_122,tax_group_0
|
||||
lu_2011_tax_IP-IC-12-n,Investissement Prestations 12% - Intracommunautaire (-),IP-IC-12-n,none,percent,-12,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1451,,tag_lu_591,tax_group_12
|
||||
lu_2011_tax_IP-IC-12-p,Investissement Prestations 12% - Intracommunautaire (+),IP-IC-12-p,none,percent,12,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1452,,tag_lu_398,tax_group_12
|
||||
lu_2011_tax_IP-IC-12,Investissement Prestations 12% - Intracommunautaire,IP-IC-12,purchase,group,100,,,lu_2011_chart_1,450,"lu_2011_tax_IP-IC-12-n,lu_2011_tax_IP-IC-12-p",tag_lu_118,tax_group_12
|
||||
lu_2015_tax_IP-IC-14-n,Investissement Prestations 14% - Intracommunautaire (-),IP-IC-14-n,none,percent,-14,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1454,,tag_lu_592,tax_group_14
|
||||
lu_2015_tax_IP-IC-14-p,Investissement Prestations 14% - Intracommunautaire (+),IP-IC-14-p,none,percent,14,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1455,,tag_lu_406,tax_group_14
|
||||
lu_2015_tax_IP-IC-14,Investissement Prestations 14% - Intracommunautaire,IP-IC-14,purchase,group,100,,,lu_2011_chart_1,453,"lu_2015_tax_IP-IC-14-n,lu_2015_tax_IP-IC-14-p",tag_lu_130,tax_group_14
|
||||
lu_2011_tax_IP-IC-15-n,Investissement Prestations 15% - Intracommunautaire (-),IP-IC-15-n,none,percent,-15,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1457,,tag_lu_593,tax_group_15
|
||||
lu_2011_tax_IP-IC-15-p,Investissement Prestations 15% - Intracommunautaire (+),IP-IC-15-p,none,percent,15,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1458,,tag_lu_386,tax_group_15
|
||||
lu_2011_tax_IP-IC-15,Investissement Prestations 15% - Intracommunautaire,IP-IC-15,purchase,group,100,,,lu_2011_chart_1,456,"lu_2011_tax_IP-IC-15-n,lu_2011_tax_IP-IC-15-p",tag_lu_106,tax_group_15
|
||||
lu_2015_tax_IP-IC-17-n,Investissement Prestations 17% - Intracommunautaire (-),IP-IC-17-n,none,percent,-17,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1460,,tag_lu_594,tax_group_17
|
||||
lu_2015_tax_IP-IC-17-p,Investissement Prestations 17% - Intracommunautaire (+),IP-IC-17-p,none,percent,17,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1461,,tag_lu_402,tax_group_17
|
||||
lu_2015_tax_IP-IC-17,Investissement Prestations 17% - Intracommunautaire,IP-IC-17,purchase,group,100,,,lu_2011_chart_1,459,"lu_2015_tax_IP-IC-17-n,lu_2015_tax_IP-IC-17-p",tag_lu_126,tax_group_17
|
||||
lu_2011_tax_IP-IC-3-n,Investissement Prestations 3% - Intracommunautaire (-),IP-IC-3-n,none,percent,-3,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1463,,tag_lu_595,tax_group_3
|
||||
lu_2011_tax_IP-IC-3-p,Investissement Prestations 3% - Intracommunautaire (+),IP-IC-3-p,none,percent,3,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1464,,tag_lu_394,tax_group_3
|
||||
lu_2011_tax_IP-IC-3,Investissement Prestations 3% - Intracommunautaire,IP-IC-3,purchase,group,100,,,lu_2011_chart_1,462,"lu_2011_tax_IP-IC-3-n,lu_2011_tax_IP-IC-3-p",tag_lu_114,tax_group_3
|
||||
lu_2011_tax_IP-IC-6-n,Investissement Prestations 6% - Intracommunautaire (-),IP-IC-6-n,none,percent,-6,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1466,,tag_lu_596,tax_group_6
|
||||
lu_2011_tax_IP-IC-6-p,Investissement Prestations 6% - Intracommunautaire (+),IP-IC-6-p,none,percent,6,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1467,,tag_lu_390,tax_group_6
|
||||
lu_2011_tax_IP-IC-6,Investissement Prestations 6% - Intracommunautaire,IP-IC-6,purchase,group,100,,,lu_2011_chart_1,465,"lu_2011_tax_IP-IC-6-n,lu_2011_tax_IP-IC-6-p",tag_lu_110,tax_group_6
|
||||
lu_2015_tax_IP-IC-8-n,Investissement Prestations 8% - Intracommunautaire (-),IP-IC-8-n,none,percent,-8,lu_2011_account_4614112,lu_2011_account_4614112,lu_2011_chart_1,1469,,tag_lu_597,tax_group_8
|
||||
lu_2015_tax_IP-IC-8-p,Investissement Prestations 8% - Intracommunautaire (+),IP-IC-8-p,none,percent,8,lu_2011_account_4216112,lu_2011_account_4216112,lu_2011_chart_1,1470,,tag_lu_410,tax_group_8
|
||||
lu_2015_tax_IP-IC-8,Investissement Prestations 8% - Intracommunautaire,IP-IC-8,purchase,group,100,,,lu_2011_chart_1,468,"lu_2015_tax_IP-IC-8-n,lu_2015_tax_IP-IC-8-p",tag_lu_134,tax_group_8
|
||||
lu_2011_tax_IP-PA-0,Investissement Prestations 0% - Pays,IP-PA-0,purchase,percent,0,,,lu_2011_chart_1,471,,tag_lu_260,tax_group_0
|
||||
lu_2011_tax_IP-PA-12,Investissement Prestations 12% - Pays,IP-PA-12,purchase,percent,12,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,472,,"tag_lu_483,tag_lu_261",tax_group_12
|
||||
lu_2015_tax_IP-PA-14,Investissement Prestations 14% - Pays,IP-PA-14,purchase,percent,14,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,473,,"tag_lu_484,tag_lu_262",tax_group_14
|
||||
lu_2011_tax_IP-PA-15,Investissement Prestations 15% - Pays,IP-PA-15,purchase,percent,15,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,474,,"tag_lu_485,tag_lu_263",tax_group_15
|
||||
lu_2015_tax_IP-PA-17,Investissement Prestations 17% - Pays,IP-PA-17,purchase,percent,17,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,475,,"tag_lu_486,tag_lu_264",tax_group_17
|
||||
lu_2011_tax_IP-PA-3,Investissement Prestations 3% - Pays,IP-PA-3,purchase,percent,3,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,476,,"tag_lu_265,tag_lu_487",tax_group_3
|
||||
lu_2011_tax_IP-PA-6,Investissement Prestations 6% - Pays,IP-PA-6,purchase,percent,6,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,477,,"tag_lu_488,tag_lu_266",tax_group_6
|
||||
lu_2015_tax_IP-PA-8,Investissement Prestations 8% - Pays,IP-PA-8,purchase,percent,8,lu_2011_account_4216111,lu_2011_account_4216111,lu_2011_chart_1,478,,"tag_lu_489,tag_lu_267",tax_group_8
|
||||
lu_2015_tax_V-ART-43_60b,Vente - Autres Exonérations (Article 43 et 60 bis),V-ART-43_60b,sale,percent,0,,,lu_2011_chart_1,479,,tag_lu_174,tax_group_0
|
||||
lu_2015_tax_V-ART-44_56q,Vente - Autres Exonérations (Article 44 et 56 quarter),V-ART-44_56q,sale,percent,0,,,lu_2011_chart_1,480,,tag_lu_176,tax_group_0
|
||||
lu_2011_tax_VB-EC-0,Vente Biens - Extracommunautaire,VB-EC-0,sale,percent,0,,,lu_2011_chart_1,481,,tag_lu_172,tax_group_0
|
||||
lu_2011_tax_VB-EC-Tab,Vente Biens Tabacs - Extracommunautaire,VB-EC-Tab,sale,percent,0,,,lu_2011_chart_1,482,,tag_lu_178,tax_group_0
|
||||
lu_2011_tax_VB-IC-0,Vente Biens - Intracommunautaire,VB-IC-0,sale,percent,0,,,lu_2011_chart_1,483,,tag_lu_192,tax_group_0
|
||||
lu_2011_tax_VB-IC-Tab,Vente Biens Tabacs - Intracommunautaire,VB-IC-Tab,sale,percent,0,,,lu_2011_chart_1,484,,tag_lu_179,tax_group_0
|
||||
lu_2011_tax_VB-PA-0,Vente Biens 0% - Pays,VB-PA-0,sale,percent,0,,,lu_2011_chart_1,485,,tag_lu_208,tax_group_0
|
||||
lu_2011_tax_VB-PA-12,Vente Biens 12% - Pays,VB-PA-12,sale,percent,12,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,486,,"tag_lu_283,tag_lu_205",tax_group_12
|
||||
lu_2015_tax_VB-PA-14,Vente Biens 14% - Pays,VB-PA-14,sale,percent,14,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,487,,"tag_lu_290,tag_lu_214",tax_group_14
|
||||
lu_2011_tax_VB-PA-15,Vente Biens 15% - Pays,VB-PA-15,sale,percent,15,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,488,,"tag_lu_274,tag_lu_196",tax_group_15
|
||||
lu_2015_tax_VB-PA-17,Vente Biens 17% - Pays,VB-PA-17,sale,percent,17,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,489,,"tag_lu_287,tag_lu_211",tax_group_17
|
||||
lu_2011_tax_VB-PA-3,Vente Biens 3% - Pays,VB-PA-3,sale,percent,3,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,490,,"tag_lu_202,tag_lu_280",tax_group_3
|
||||
lu_2011_tax_VB-PA-6,Vente Biens 6% - Pays,VB-PA-6,sale,percent,6,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,491,,"tag_lu_277,tag_lu_199",tax_group_6
|
||||
lu_2015_tax_VB-PA-8,Vente Biens 8% - Pays,VB-PA-8,sale,percent,8,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,492,,"tag_lu_293,tag_lu_217",tax_group_8
|
||||
lu_2011_tax_VB-PA-Tab,Vente Biens Tabacs - Pays,VB-PA-Tab,sale,percent,0,,,lu_2011_chart_1,493,,tag_lu_180,tax_group_0
|
||||
lu_2015_tax_VB-TR-0,Vente Biens – Triangulaire Intracommunautaire,VB-TR-0,sale,percent,0,,,lu_2011_chart_1,494,,tag_lu_182,tax_group_0
|
||||
lu_2011_tax_VP-EC-0,Vente Prestations - Extracommunautaire,VP-EC-0,sale,percent,0,,,lu_2011_chart_1,495,,tag_lu_184,tax_group_0
|
||||
lu_2011_tax_VP-IC-0,Vente Prestations - Intracommunautaire,VP-IC-0,sale,percent,0,,,lu_2011_chart_1,496,,tag_lu_188,tax_group_0
|
||||
lu_2011_tax_VP-IC-EX,'Vente Prestations - Intracommunautaire exonérées dans l''état membre',VP-IC-EX,sale,percent,0,,,lu_2011_chart_1,497,,tag_lu_190,tax_group_0
|
||||
lu_2011_tax_VP-PA-0,Vente Prestations 0% - Pays,VP-PA-0,sale,percent,0,,,lu_2011_chart_1,498,,tag_lu_209,tax_group_0
|
||||
lu_2011_tax_VP-PA-12,Vente Prestations 12% - Pays,VP-PA-12,sale,percent,12,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,499,,"tag_lu_284,tag_lu_206",tax_group_12
|
||||
lu_2015_tax_VP-PA-14,Vente Prestations 14% - Pays,VP-PA-14,sale,percent,14,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,500,,"tag_lu_291,tag_lu_215",tax_group_14
|
||||
lu_2011_tax_VP-PA-15,Vente Prestations 15% - Pays,VP-PA-15,sale,percent,15,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,501,,"tag_lu_275,tag_lu_197",tax_group_15
|
||||
lu_2015_tax_VP-PA-17,Vente Prestations 17% - Pays,VP-PA-17,sale,percent,17,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,502,,"tag_lu_288,tag_lu_212",tax_group_17
|
||||
lu_2011_tax_VP-PA-3,Vente Prestations 3% - Pays,VP-PA-3,sale,percent,3,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,503,,"tag_lu_281,tag_lu_203",tax_group_3
|
||||
lu_2011_tax_VP-PA-6,Vente Prestations 6% - Pays,VP-PA-6,sale,percent,6,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,504,,"tag_lu_200,tag_lu_278",tax_group_6
|
||||
lu_2015_tax_VP-PA-8,Vente Prestations 8% - Pays,VP-PA-8,sale,percent,8,lu_2011_account_4614111,lu_2011_account_4614111,lu_2011_chart_1,505,,"tag_lu_294,tag_lu_218",tax_group_8
|
||||
lu_2015_tax_SANS,Sans Taxes,SANS,purchase,percent,0,,,lu_2011_chart_1,506,,tag_lu_598,tax_group_0
|
||||
lu_2015_tax_SANS,Sans Taxes,SANS,sale,percent,0,,,lu_2011_chart_1,507,,tag_lu_598,tax_group_0
|
||||
|
||||
|
@@ -0,0 +1,6 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_tags_on_taxes
|
||||
migrate_tags_on_taxes(cr, registry)
|
||||
@@ -73,22 +73,26 @@ class AccountChartTemplate(models.Model):
|
||||
|
||||
@api.multi
|
||||
def _process_accounts_translations(self, company_id, langs, field):
|
||||
in_ids = self.env['account.account.template'].search([('chart_template_id', '=', self.id)], order='id')
|
||||
out_ids = self.env['account.account'].search([('company_id', '=', company_id)], order='id')
|
||||
in_ids, out_ids = self._get_template_from_model(company_id, 'account.account')
|
||||
return self.process_translations(langs, field, in_ids, out_ids)
|
||||
|
||||
@api.multi
|
||||
def _process_taxes_translations(self, company_id, langs, field):
|
||||
in_ids = self.env['account.tax.template'].search([('chart_template_id', '=', self.id)], order='id')
|
||||
out_ids = self.env['account.tax'].search([('company_id', '=', company_id)], order='id')
|
||||
in_ids, out_ids = self._get_template_from_model(company_id, 'account.tax')
|
||||
return self.process_translations(langs, field, in_ids, out_ids)
|
||||
|
||||
@api.multi
|
||||
def _process_fiscal_pos_translations(self, company_id, langs, field):
|
||||
in_ids = self.env['account.fiscal.position.template'].search([('chart_template_id', '=', self.id)], order='id')
|
||||
out_ids = self.env['account.fiscal.position'].search([('company_id', '=', company_id)], order='id')
|
||||
in_ids, out_ids = self._get_template_from_model(company_id, 'account.fiscal.position')
|
||||
return self.process_translations(langs, field, in_ids, out_ids)
|
||||
|
||||
def _get_template_from_model(self, company_id, model):
|
||||
out_data = self.env['ir.model.data'].search([('model', '=', model), ('name', '=like', str(company_id)+'\_%')])
|
||||
out_ids = self.env[model].search([('id', 'in', out_data.mapped('res_id'))], order='id')
|
||||
in_xml_id_names = [xml_id.partition(str(company_id) + '_')[-1] for xml_id in out_data.mapped('name')]
|
||||
in_xml_ids = self.env['ir.model.data'].search([('model', '=', model+'.template'), ('name', 'in', in_xml_id_names)])
|
||||
in_ids = self.env[model+'.template'].search([('id', 'in', in_xml_ids.mapped('res_id'))], order='id')
|
||||
return (in_ids, out_ids)
|
||||
|
||||
class BaseLanguageInstall(models.TransientModel):
|
||||
""" Install Language"""
|
||||
|
||||
@@ -28,7 +28,7 @@ With this module you will have:
|
||||
- Minimal chart of account tested in production environments.
|
||||
- Minimal chart of taxes, to comply with SAT_ requirements.
|
||||
|
||||
.. SAT: http://www.sat.gob.mx/
|
||||
.. _SAT: http://www.sat.gob.mx/
|
||||
""",
|
||||
"depends": [
|
||||
"account",
|
||||
|
||||
@@ -479,7 +479,7 @@
|
||||
<field name='name'>119.01 IVA pendiente de pago</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
<field name='nature'>D</field>
|
||||
<field name='nature'>A</field>
|
||||
</record>
|
||||
<record id='account_tag_119_02' model='account.account.tag'>
|
||||
<field name='name'>119.02 IVA de importación pendiente de pago</field>
|
||||
@@ -2015,7 +2015,7 @@
|
||||
<field name='name'>304.01 Utilidad de ejercicios anteriores</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
<field name='nature'>D</field>
|
||||
<field name='nature'>A</field>
|
||||
</record>
|
||||
<record id='account_tag_304_02' model='account.account.tag'>
|
||||
<field name='name'>304.02 Pérdida de ejercicios anteriores</field>
|
||||
@@ -2429,7 +2429,7 @@
|
||||
<field name='name'>503.01 Devoluciones, descuentos o bonificaciones sobre compras</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
<field name='nature'>D</field>
|
||||
<field name='nature'>A</field>
|
||||
</record>
|
||||
<record id='account_tag_504_01' model='account.account.tag'>
|
||||
<field name='name'>504.01 Gastos indirectos de fabricación</field>
|
||||
@@ -5573,7 +5573,7 @@
|
||||
<field name='name'>899.01 Otras cuentas de orden</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
<field name='nature'>A</field>
|
||||
<field name='nature'>D</field>
|
||||
</record>
|
||||
<record id='account_tag_899_02' model='account.account.tag'>
|
||||
<field name='name'>899.02 Contra cuenta otras cuentas de orden</field>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
{
|
||||
"name" : "Norway - Accounting",
|
||||
"version" : "1.1",
|
||||
"version" : "2.0",
|
||||
"author" : "Rolv Råen",
|
||||
'category': 'Localization',
|
||||
"description": """This is the module to manage the accounting chart for Norway in Odoo.
|
||||
|
||||
@@ -1,142 +1,171 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<!-- Account Tags -->
|
||||
<data>
|
||||
|
||||
<record id="tax_tag_ut25" model="account.account.tag">
|
||||
<field name="name">Utgående 25% mva</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_ut15" model="account.account.tag">
|
||||
<field name="name">Utgående 15% mva</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_ut8" model="account.account.tag">
|
||||
<field name="name">Utgående 10% mva</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_in25" model="account.account.tag">
|
||||
<field name="name">Inngående 25% mva</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_in15" model="account.account.tag">
|
||||
<field name="name">Inngående 15% mva</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_in8" model="account.account.tag">
|
||||
<field name="name">Inngående 10% mva</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tax_tag_in0" model="account.account.tag">
|
||||
<field name="name">Inngående 0% mva</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tax_tag_ut0" model="account.account.tag">
|
||||
<field name="name">Utgående 0% mva</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<!-- Account Tags -->
|
||||
<record id="tag_no_01" model="account.account.tag">
|
||||
<field name="name">Sum avgiftsgrunnlag</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_02" model="account.account.tag">
|
||||
<field name="name">Sum innkjøp</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_03" model="account.account.tag">
|
||||
<field name="name">Ikke momspliktig omsetning</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_04" model="account.account.tag">
|
||||
<field name="name">Grunnlag for utgående avgift, høy sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_05" model="account.account.tag">
|
||||
<field name="name">Grunnlag for utgående avgift, mellom sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_06" model="account.account.tag">
|
||||
<field name="name">Grunnlag for utgående avgift, lav sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_07" model="account.account.tag">
|
||||
<field name="name">Grunnlag for inngående avgift, høy sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_08" model="account.account.tag">
|
||||
<field name="name">Grunnlag for inngående avgift, mellom sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_09" model="account.account.tag">
|
||||
<field name="name">Grunnlag for inngående avgift, lav sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_10" model="account.account.tag">
|
||||
<field name="name">Netto beregnet avgift</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_11" model="account.account.tag">
|
||||
<field name="name">Beregnet inngående avgift, høy sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_12" model="account.account.tag">
|
||||
<field name="name">Beregnet inngående avgift, lav sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_13" model="account.account.tag">
|
||||
<field name="name">Beregnet inngående avgift, mellom sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_14" model="account.account.tag">
|
||||
<field name="name">Beregnet utgående avgift, høy sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_15" model="account.account.tag">
|
||||
<field name="name">Beregnet utgående avgift, lav sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_no_16" model="account.account.tag">
|
||||
<field name="name">Beregnet utgående avgift, mellom sats</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="tax1" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Utgående 25% mva</field>
|
||||
<field name="description">Utgående 25% mva</field>
|
||||
<field name="amount">25</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="account_id" ref="chart2701"/>
|
||||
<field name="refund_account_id" ref="chart2701"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_ut25')])]"/>
|
||||
<record id="tax1" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Utgående 25% mva</field>
|
||||
<field name="description">Utgående 25% mva</field>
|
||||
<field name="amount">25</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="account_id" ref="chart2701"/>
|
||||
<field name="refund_account_id" ref="chart2701"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_no_04'),ref('tag_no_14')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_25"/>
|
||||
</record>
|
||||
<record id="tax2" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Utgående 15% mva</field>
|
||||
<field name="description">Utgående 15% mva</field>
|
||||
<field name="amount">15</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="account_id" ref="chart2703"/>
|
||||
<field name="refund_account_id" ref="chart2703"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_ut15')])]"/>
|
||||
</record>
|
||||
<record id="tax2" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Utgående 15% mva</field>
|
||||
<field name="description">Utgående 15% mva</field>
|
||||
<field name="amount">15</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="account_id" ref="chart2703"/>
|
||||
<field name="refund_account_id" ref="chart2703"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_no_05'),ref('tag_no_16')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_15"/>
|
||||
</record>
|
||||
<record id="tax3" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Utgående 10% mva</field>
|
||||
<field name="description">Utgående 10% mva</field>
|
||||
<field name="amount">10</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="account_id" ref="chart2704"/>
|
||||
<field name="refund_account_id" ref="chart2704"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_ut8')])]"/>
|
||||
</record>
|
||||
<record id="tax3" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Utgående 10% mva</field>
|
||||
<field name="description">Utgående 10% mva</field>
|
||||
<field name="amount">10</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="account_id" ref="chart2704"/>
|
||||
<field name="refund_account_id" ref="chart2704"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_no_06'),ref('tag_no_15')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_10"/>
|
||||
</record>
|
||||
<record id="tax4" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Inngående 25% mva</field>
|
||||
<field name="description">Inngående 25% mva</field>
|
||||
<field name="amount">25</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="account_id" ref="chart2711"/>
|
||||
<field name="refund_account_id" ref="chart2711"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_in25')])]"/>
|
||||
</record>
|
||||
<record id="tax4" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Inngående 25% mva</field>
|
||||
<field name="description">Inngående 25% mva</field>
|
||||
<field name="amount">25</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="account_id" ref="chart2711"/>
|
||||
<field name="refund_account_id" ref="chart2711"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_no_07'),ref('tag_no_11')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_25"/>
|
||||
</record>
|
||||
<record id="tax5" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Inngående 15% mva</field>
|
||||
<field name="description">Inngående 15% mva</field>
|
||||
<field name="amount">15</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="account_id" ref="chart2713"/>
|
||||
<field name="refund_account_id" ref="chart2713"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_in15')])]"/>
|
||||
</record>
|
||||
<record id="tax5" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Inngående 15% mva</field>
|
||||
<field name="description">Inngående 15% mva</field>
|
||||
<field name="amount">15</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="account_id" ref="chart2713"/>
|
||||
<field name="refund_account_id" ref="chart2713"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_no_08'),ref('tag_no_13')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_15"/>
|
||||
</record>
|
||||
<record id="tax6" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Inngående 10% mva</field>
|
||||
<field name="description">Inngående 10% mva</field>
|
||||
<field name="amount">10</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="account_id" ref="chart2714"/>
|
||||
<field name="refund_account_id" ref="chart2714"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_in8')])]"/>
|
||||
</record>
|
||||
<record id="tax6" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Inngående 10% mva</field>
|
||||
<field name="description">Inngående 10% mva</field>
|
||||
<field name="amount">10</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="account_id" ref="chart2714"/>
|
||||
<field name="refund_account_id" ref="chart2714"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_no_09'),ref('tag_no_12')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_10"/>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<record id="tax7" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Inngående 0% mva</field>
|
||||
<field name="description">Inngående 0% mva</field>
|
||||
<field name="amount">0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="account_id" ref="chart2714"/>
|
||||
<field name="refund_account_id" ref="chart2714"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_in0')])]"/>
|
||||
<record id="tax7" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Inngående 0% mva</field>
|
||||
<field name="description">Inngående 0% mva</field>
|
||||
<field name="amount">0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="account_id" ref="chart2714"/>
|
||||
<field name="refund_account_id" ref="chart2714"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<record id="tax8" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Utgående 0% mva</field>
|
||||
<field name="description">Utgående 0% mva</field>
|
||||
<field name="amount">0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="account_id" ref="chart2704"/>
|
||||
<field name="refund_account_id" ref="chart2704"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_ut0')])]"/>
|
||||
<record id="tax8" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="no_chart_template"/>
|
||||
<field name="name">Utgående 0% mva</field>
|
||||
<field name="description">Utgående 0% mva</field>
|
||||
<field name="amount">0</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="account_id" ref="chart2704"/>
|
||||
<field name="refund_account_id" ref="chart2704"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_no_03')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_tags_on_taxes
|
||||
migrate_tags_on_taxes(cr, registry)
|
||||
@@ -0,0 +1,7 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_set_tags_and_taxes_updatable
|
||||
migrate_set_tags_and_taxes_updatable(cr, registry, 'l10n_no')
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
{
|
||||
'name' : 'Poland - Accounting',
|
||||
'version' : '1.02',
|
||||
'version' : '2.0',
|
||||
'author' : 'Grzegorz Grzelak (OpenGLOBE)',
|
||||
'website': 'http://www.openglobe.pl',
|
||||
'category': 'Localization',
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_tags_on_taxes
|
||||
migrate_tags_on_taxes(cr, registry)
|
||||
@@ -0,0 +1,6 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_set_tags_and_taxes_updatable
|
||||
migrate_set_tags_and_taxes_updatable(cr, registry, 'l10n_pl')
|
||||
@@ -6,6 +6,7 @@
|
||||
{
|
||||
'name': 'Singapore - Accounting',
|
||||
'author': 'Tech Receptives',
|
||||
'version': '2.0',
|
||||
'website': 'http://www.techreceptives.com',
|
||||
'category': 'Localization',
|
||||
'description': """
|
||||
|
||||
@@ -1,96 +1,194 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<data>
|
||||
|
||||
<!-- Account Tags -->
|
||||
|
||||
<record id="tag_sg_sale_tax_es_0" model="account.account.tag">
|
||||
<field name="name">Sales Tax 0% ES33</field>
|
||||
<record id="tag_sg_01" model="account.account.tag">
|
||||
<field name="name">Chart of Singapore</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_sale_tax_ds_7" model="account.account.tag">
|
||||
<field name="name">Sales Tax 7% DS</field>
|
||||
<record id="tag_sg_02" model="account.account.tag">
|
||||
<field name="name">Tax Balance To Pay</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_sale_tax_esn_0" model="account.account.tag">
|
||||
<field name="name">Sales Tax 0% ESN33</field>
|
||||
<record id="tag_sg_03" model="account.account.tag">
|
||||
<field name="name">Tax Received</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_sale_tax_os_0" model="account.account.tag">
|
||||
<field name="name">Sales Tax 0% OS</field>
|
||||
<record id="tag_sg_04" model="account.account.tag">
|
||||
<field name="name">Tax Received @ 0%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_sale_tax_zr_0" model="account.account.tag">
|
||||
<field name="name">Sales Tax 0% ZR</field>
|
||||
<record id="tag_sg_05" model="account.account.tag">
|
||||
<field name="name">Tax Received @ 7% SR</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_sale_tax_sr_7" model="account.account.tag">
|
||||
<field name="name">Sales Tax 7% SR</field>
|
||||
<record id="tag_sg_06" model="account.account.tag">
|
||||
<field name="name">Tax Received @ 7% DS</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_txn33_7" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 7% TX-N33</field>
|
||||
<record id="tag_sg_07" model="account.account.tag">
|
||||
<field name="name">Tax Paid</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_txe33_7" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 7% TX-E33</field>
|
||||
<record id="tag_sg_08" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 7% TX7</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_bl_7" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 7% BL</field>
|
||||
<record id="tag_sg_09" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 7% TX-N33</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_im_7" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 7% IM</field>
|
||||
<record id="tag_sg_10" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 7% TX-E33</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_txre_7" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 7% TX-RE</field>
|
||||
<record id="tag_sg_11" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 7% BL</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_me_0" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 0% ME</field>
|
||||
<record id="tag_sg_12" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 7% IM</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_nr_0" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 0% NR</field>
|
||||
<record id="tag_sg_13" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 7% TX-RE</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_zp_0" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 0% ZP</field>
|
||||
<record id="tag_sg_14" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 0% ME</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_op_0" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 0% OP</field>
|
||||
<record id="tag_sg_15" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 0% NR</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_ep_0" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 0% EP</field>
|
||||
<record id="tag_sg_16" model="account.account.tag">
|
||||
<field name="name">Tax Paid @ 0% ZP</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_mes_0" model="account.account.tag">
|
||||
<field name="name">Purchase Tax MES</field>
|
||||
<record id="tag_sg_17" model="account.account.tag">
|
||||
<field name="name">MES Purchase Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_sg_purchase_tax_tx7_7" model="account.account.tag">
|
||||
<field name="name">Purchase Tax 7% TX7</field>
|
||||
<record id="tag_sg_18" model="account.account.tag">
|
||||
<field name="name">Out of Scope Taxes</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_19" model="account.account.tag">
|
||||
<field name="name">Out of Scope Purchase Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_20" model="account.account.tag">
|
||||
<field name="name">Out of Scope Sales Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_21" model="account.account.tag">
|
||||
<field name="name">Exempted Taxes</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_22" model="account.account.tag">
|
||||
<field name="name">Exempted Purchase Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_23" model="account.account.tag">
|
||||
<field name="name">Exempted Sales Tax ES33</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_24" model="account.account.tag">
|
||||
<field name="name">Exempted Sales Tax ESN33</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_25" model="account.account.tag">
|
||||
<field name="name">Tax Bases</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_26" model="account.account.tag">
|
||||
<field name="name">Base of Taxed Sales</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_27" model="account.account.tag">
|
||||
<field name="name">Sales 7% Standard</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_28" model="account.account.tag">
|
||||
<field name="name">Sales 7% Standard SR</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_29" model="account.account.tag">
|
||||
<field name="name">Sales 7% Standard DS</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_30" model="account.account.tag">
|
||||
<field name="name">Sales 0% Standard</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_31" model="account.account.tag">
|
||||
<field name="name">Sales Exempted</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_32" model="account.account.tag">
|
||||
<field name="name">Sales Exempted ES33</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_33" model="account.account.tag">
|
||||
<field name="name">Sales Exempted ESN33</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_34" model="account.account.tag">
|
||||
<field name="name">Base of Taxed Purchases</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_35" model="account.account.tag">
|
||||
<field name="name">Purchase 7% Standard TX7</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_36" model="account.account.tag">
|
||||
<field name="name">Purchase 7% Standard TX-N33</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_37" model="account.account.tag">
|
||||
<field name="name">Purchase 7% Standard TX-E33</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_38" model="account.account.tag">
|
||||
<field name="name">Purchase 7% Standard BL</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_39" model="account.account.tag">
|
||||
<field name="name">Purchase 7% Standard IM</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_40" model="account.account.tag">
|
||||
<field name="name">Purchase 7% Standard TX-RE</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_41" model="account.account.tag">
|
||||
<field name="name">Purchase 0% Standard ME</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_42" model="account.account.tag">
|
||||
<field name="name">Purchase 0% Standard NR</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_43" model="account.account.tag">
|
||||
<field name="name">Purchase 0% Standard ZP</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_44" model="account.account.tag">
|
||||
<field name="name">Purchase Imports Under MES</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_45" model="account.account.tag">
|
||||
<field name="name">Purchase Exempted</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_46" model="account.account.tag">
|
||||
<field name="name">Purchase Out Of Scope</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_sg_47" model="account.account.tag">
|
||||
<field name="name">Sales Out Of Scope</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
@@ -106,7 +204,7 @@
|
||||
<field name="account_id" ref="account_account_791"/>
|
||||
<field name="refund_account_id" ref="account_account_791"/>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_sale_tax_es_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_23'),ref('tag_sg_32')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -120,7 +218,7 @@
|
||||
<field name="account_id" ref="account_account_792"/>
|
||||
<field name="refund_account_id" ref="account_account_792"/>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_sale_tax_ds_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_06'), ref('tag_sg_29')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_7"/>
|
||||
</record>
|
||||
|
||||
@@ -134,7 +232,7 @@
|
||||
<field name="account_id" ref="account_account_793"/>
|
||||
<field name="refund_account_id" ref="account_account_793"/>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_sale_tax_esn_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_24'),ref('tag_sg_33')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -148,7 +246,7 @@
|
||||
<field name="account_id" ref="account_account_794"/>
|
||||
<field name="refund_account_id" ref="account_account_794"/>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_sale_tax_os_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_20'),ref('tag_sg_47')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -162,7 +260,7 @@
|
||||
<field name="account_id" ref="account_account_795"/>
|
||||
<field name="refund_account_id" ref="account_account_795"/>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_sale_tax_zr_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_04'), ref('tag_sg_30')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -176,7 +274,7 @@
|
||||
<field name="account_id" ref="account_account_796"/>
|
||||
<field name="refund_account_id" ref="account_account_796"/>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_sale_tax_sr_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_05'),ref('tag_sg_28')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_7"/>
|
||||
</record>
|
||||
|
||||
@@ -192,7 +290,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_txn33_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_09'), ref('tag_sg_36')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_7"/>
|
||||
</record>
|
||||
|
||||
@@ -206,7 +304,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_txe33_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_10'),ref('tag_sg_37')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_7"/>
|
||||
</record>
|
||||
|
||||
@@ -220,7 +318,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_bl_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_11'),ref('tag_sg_38')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_7"/>
|
||||
</record>
|
||||
|
||||
@@ -234,7 +332,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_im_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_12'),ref('tag_sg_39')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_7"/>
|
||||
</record>
|
||||
|
||||
@@ -248,7 +346,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_txre_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_13'),ref('tag_sg_40')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_7"/>
|
||||
</record>
|
||||
|
||||
@@ -262,7 +360,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_me_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_14'),ref('tag_sg_41')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -276,7 +374,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_nr_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_15'),ref('tag_sg_42')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -290,7 +388,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_zp_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_16'),ref('tag_sg_43')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -304,7 +402,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_op_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_19'),ref('tag_sg_46')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -318,7 +416,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_ep_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_22'),ref('tag_sg_45')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -332,7 +430,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_mes_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_17'),ref('tag_sg_44')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -346,7 +444,7 @@
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="chart_template_id" ref="sg_chart_template"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_purchase_tax_tx7_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_sg_08'),ref('tag_sg_35')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_7"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_tags_on_taxes
|
||||
migrate_tags_on_taxes(cr, registry)
|
||||
@@ -0,0 +1,6 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_set_tags_and_taxes_updatable
|
||||
migrate_set_tags_and_taxes_updatable(cr, registry, 'l10n_sg')
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
{
|
||||
'name': 'Thailand - Accounting',
|
||||
'version': '1.0',
|
||||
'version': '2.0',
|
||||
'category': 'Localization',
|
||||
'description': """
|
||||
Chart of Accounts for Thailand.
|
||||
|
||||
@@ -242,75 +242,94 @@
|
||||
|
||||
<!-- Account Tax Tags -->
|
||||
|
||||
<record id="tag_input_vat_7" model="account.account.tag">
|
||||
<field name="name">Input VAT 7%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_output_7" model="account.account.tag">
|
||||
<field name="name">Output VAT 7%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_comp_tax_trans_1" model="account.account.tag">
|
||||
<field name="name">Company Tax 1% (Transportation)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_comp_tax_advt_2" model="account.account.tag">
|
||||
<field name="name">Company Tax 2% (Advertising)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_comp_tax_serv_3" model="account.account.tag">
|
||||
<field name="name">Company Tax 3% (Service)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_comp_tax_rent_5" model="account.account.tag">
|
||||
<field name="name">Company Tax 5% (Rental)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_pers_tax_trans_1" model="account.account.tag">
|
||||
<field name="name">Personal Tax 1% (Transportation)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_pers_tax_advt_2" model="account.account.tag">
|
||||
<field name="name">Personal Tax 2% (Advertising)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_pers_tax_serv_3" model="account.account.tag">
|
||||
<field name="name">Personal Tax 3% (Service)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_pers_tax_rent_5" model="account.account.tag">
|
||||
<field name="name">Personal Tax 5% (Rental)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_income_tax_trans_1" model="account.account.tag">
|
||||
<field name="name">Income Tax 1% (Transportation)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_income_tax_advt_2" model="account.account.tag">
|
||||
<field name="name">Income Tax 2% (Advertising)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_income_tax_serv_3" model="account.account.tag">
|
||||
<field name="name">Income Tax 3% (Service)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<record id="tag_income_tax_rent_5" model="account.account.tag">
|
||||
<field name="name">Income Tax 5% (Rental)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_01" model="account.account.tag">
|
||||
<field name="name">Taxes to be paid</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_02" model="account.account.tag">
|
||||
<field name="name">Withholding Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_03" model="account.account.tag">
|
||||
<field name="name">Personal Withholding Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_04" model="account.account.tag">
|
||||
<field name="name">Personal Withholding Tax (Service)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_05" model="account.account.tag">
|
||||
<field name="name">Personal Withholding Tax (Other)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_06" model="account.account.tag">
|
||||
<field name="name">Company Withholding Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_07" model="account.account.tag">
|
||||
<field name="name">Company Withholding Tax (Service)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_08" model="account.account.tag">
|
||||
<field name="name">Company Withholding Tax (Other)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_09" model="account.account.tag">
|
||||
<field name="name">Value Added Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_10" model="account.account.tag">
|
||||
<field name="name">Output VAT</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_11" model="account.account.tag">
|
||||
<field name="name">Input VAT</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_12" model="account.account.tag">
|
||||
<field name="name">Taxable amounts</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_13" model="account.account.tag">
|
||||
<field name="name">Withholding Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_14" model="account.account.tag">
|
||||
<field name="name">Personal Withholding Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_15" model="account.account.tag">
|
||||
<field name="name">Personal Withholding Tax (Service)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_16" model="account.account.tag">
|
||||
<field name="name">Personal Withholding Tax (Other)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_17" model="account.account.tag">
|
||||
<field name="name">Company Withholding Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_18" model="account.account.tag">
|
||||
<field name="name">Company Withholding Tax (Service)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_19" model="account.account.tag">
|
||||
<field name="name">Company Withholding Tax (Other)</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_20" model="account.account.tag">
|
||||
<field name="name">Value Added Tax</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_21" model="account.account.tag">
|
||||
<field name="name">Output VAT</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_th_22" model="account.account.tag">
|
||||
<field name="name">Input VAT</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
<!-- TAXES -->
|
||||
|
||||
@@ -322,7 +341,7 @@
|
||||
<field name="account_id" ref="a_input_vat"/>
|
||||
<field name="refund_account_id" ref="a_input_vat"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_input_vat_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_22'), ref('tag_th_11')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_vat_7"/>
|
||||
</record>
|
||||
|
||||
@@ -334,7 +353,7 @@
|
||||
<field name="account_id" ref="a_output_vat"/>
|
||||
<field name="refund_account_id" ref="a_output_vat"/>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_output_7')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_21'), ref('tag_th_10')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_vat_7"/>
|
||||
</record>
|
||||
|
||||
@@ -346,7 +365,7 @@
|
||||
<field name="account_id" ref="a_wht"/>
|
||||
<field name="refund_account_id" ref="a_wht"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_comp_tax_trans_1')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_19'),ref('tag_th_08')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_1"/>
|
||||
</record>
|
||||
|
||||
@@ -358,7 +377,7 @@
|
||||
<field name="account_id" ref="a_wht"/>
|
||||
<field name="refund_account_id" ref="a_wht"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_comp_tax_advt_2')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_19'),ref('tag_th_08')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_2"/>
|
||||
</record>
|
||||
|
||||
@@ -370,7 +389,7 @@
|
||||
<field name="account_id" ref="a_wht"/>
|
||||
<field name="refund_account_id" ref="a_wht"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_comp_tax_serv_3')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_18'),ref('tag_th_07')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_3"/>
|
||||
</record>
|
||||
|
||||
@@ -382,7 +401,7 @@
|
||||
<field name="account_id" ref="a_wht"/>
|
||||
<field name="refund_account_id" ref="a_wht"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_comp_tax_rent_5')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_19'),ref('tag_th_08')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_5"/>
|
||||
</record>
|
||||
|
||||
@@ -394,7 +413,7 @@
|
||||
<field name="account_id" ref="a_wht"/>
|
||||
<field name="refund_account_id" ref="a_wht"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_pers_tax_trans_1')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_05'),ref('tag_th_19')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_1"/>
|
||||
</record>
|
||||
|
||||
@@ -406,7 +425,7 @@
|
||||
<field name="account_id" ref="a_wht"/>
|
||||
<field name="refund_account_id" ref="a_wht"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_pers_tax_advt_2')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_05'),ref('tag_th_19')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_2"/>
|
||||
</record>
|
||||
|
||||
@@ -418,7 +437,7 @@
|
||||
<field name="account_id" ref="a_wht"/>
|
||||
<field name="refund_account_id" ref="a_wht"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_pers_tax_serv_3')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_15'),ref('tag_th_04')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_3"/>
|
||||
</record>
|
||||
|
||||
@@ -430,7 +449,7 @@
|
||||
<field name="account_id" ref="a_wht"/>
|
||||
<field name="refund_account_id" ref="a_wht"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_pers_tax_rent_5')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_th_05'),ref('tag_th_19')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_5"/>
|
||||
</record>
|
||||
|
||||
@@ -442,7 +461,6 @@
|
||||
<field name="account_id" ref="a_wht_income"/>
|
||||
<field name="refund_account_id" ref="a_wht_income"/>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_income_tax_trans_1')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_1"/>
|
||||
</record>
|
||||
|
||||
@@ -454,7 +472,6 @@
|
||||
<field name="account_id" ref="a_wht_income"/>
|
||||
<field name="refund_account_id" ref="a_wht_income"/>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_income_tax_advt_2')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_2"/>
|
||||
</record>
|
||||
|
||||
@@ -466,7 +483,6 @@
|
||||
<field name="account_id" ref="a_wht_income"/>
|
||||
<field name="refund_account_id" ref="a_wht_income"/>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_income_tax_serv_3')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_3"/>
|
||||
</record>
|
||||
|
||||
@@ -478,7 +494,6 @@
|
||||
<field name="account_id" ref="a_wht_income"/>
|
||||
<field name="refund_account_id" ref="a_wht_income"/>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_income_tax_rent_5')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_5"/>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_tags_on_taxes
|
||||
migrate_tags_on_taxes(cr, registry)
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{
|
||||
"name": "Vietnam - Accounting",
|
||||
"version": "1.0",
|
||||
"version": "2.0",
|
||||
"author": "General Solutions",
|
||||
'website': 'http://gscom.vn',
|
||||
'category': 'Localization',
|
||||
|
||||
@@ -1,28 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Tax Definitions -->
|
||||
<record id="tax_tag_purchase_10" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT được khấu trừ 10%</field>
|
||||
<record id="tag_vn_01" model="account.account.tag">
|
||||
<field name="name">HHDV mua vào</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_purchase_5" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT được khấu trừ 5%</field>
|
||||
<record id="tag_vn_02" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT HHDV mua vào</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_purchase_0" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT được khấu trừ 0%</field>
|
||||
<record id="tag_vn_03" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT HHDV mua vào chịu thuế 0%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_sale_10" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT phải nộp 10%</field>
|
||||
<record id="tag_vn_04" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT HHDV mua vào chịu thuế 5%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_sale_5" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT phải nộp 5%</field>
|
||||
<record id="tag_vn_05" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT HHDV mua vào chịu thuế 10%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tax_tag_sale_0" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT phải nộp 0%</field>
|
||||
<record id="tag_vn_06" model="account.account.tag">
|
||||
<field name="name">Giá trị HHDV mua vào</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_07" model="account.account.tag">
|
||||
<field name="name">Giá trị HHDV mua vào chịu thuế 0%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_08" model="account.account.tag">
|
||||
<field name="name">Giá trị HHDV mua vào chịu thuế 5%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_09" model="account.account.tag">
|
||||
<field name="name">Giá trị HHDV mua vào chịu thuế 10%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_10" model="account.account.tag">
|
||||
<field name="name">HHDV bán ra</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_11" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT HHDV bán ra</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_12" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT HHDV bán ra chịu thuế 0%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_13" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT HHDV bán ra chịu thuế 5%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_14" model="account.account.tag">
|
||||
<field name="name">Thuế GTGT HHDV bán ra chịu thuế 10%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_15" model="account.account.tag">
|
||||
<field name="name">Giá trị HHDV bán ra</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_16" model="account.account.tag">
|
||||
<field name="name">Giá trị HHDV bán ra chịu thuế 0%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_17" model="account.account.tag">
|
||||
<field name="name">Giá trị HHDV bán ra chịu thuế 5%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
<record id="tag_vn_18" model="account.account.tag">
|
||||
<field name="name">Giá trị HHDV bán ra chịu thuế 10%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
</record>
|
||||
|
||||
@@ -36,7 +84,7 @@
|
||||
<field name="account_id" ref="chart1331"/>
|
||||
<field name="refund_account_id" ref="chart1331"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_purchase_10')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_vn_09'),ref('tag_vn_05')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_10"/>
|
||||
</record>
|
||||
<record id="tax_purchase_vat5" model="account.tax.template">
|
||||
@@ -48,7 +96,7 @@
|
||||
<field name="account_id" ref="chart1331"/>
|
||||
<field name="refund_account_id" ref="chart1331"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_purchase_5')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_vn_08'),ref('tag_vn_04')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_5"/>
|
||||
</record>
|
||||
<record id="tax_purchase_vat0" model="account.tax.template">
|
||||
@@ -60,7 +108,7 @@
|
||||
<field name="account_id" ref="chart1331"/>
|
||||
<field name="refund_account_id" ref="chart1331"/>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_purchase_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_vn_07')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
|
||||
@@ -74,7 +122,7 @@
|
||||
<field name="account_id" ref="chart33311"/>
|
||||
<field name="refund_account_id" ref="chart33311"/>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_sale_10')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_vn_18'),ref('tag_vn_14')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_10"/>
|
||||
</record>
|
||||
<record id="tax_sale_vat5" model="account.tax.template">
|
||||
@@ -86,7 +134,7 @@
|
||||
<field name="account_id" ref="chart33311"/>
|
||||
<field name="refund_account_id" ref="chart33311"/>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_sale_5')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_vn_17'),ref('tag_vn_13')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_5"/>
|
||||
</record>
|
||||
<record id="tax_sale_vat0" model="account.tax.template">
|
||||
@@ -98,7 +146,7 @@
|
||||
<field name="account_id" ref="chart33311"/>
|
||||
<field name="refund_account_id" ref="chart33311"/>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tax_tag_sale_0')])]"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_vn_16')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_0"/>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
def migrate(cr, version):
|
||||
registry = RegistryManager.get(cr.dbname)
|
||||
from openerp.addons.account.models.chart_template import migrate_tags_on_taxes
|
||||
migrate_tags_on_taxes(cr, registry)
|
||||
@@ -288,7 +288,10 @@ var Chatter = Widget.extend(chat_mixin, {
|
||||
if (this.fields.thread && event.data.thread) {
|
||||
fieldNames.push(this.fields.thread.name);
|
||||
}
|
||||
this.trigger_up('reload', {fieldNames: fieldNames});
|
||||
this.trigger_up('reload', {
|
||||
fieldNames: fieldNames,
|
||||
keepChanges: true,
|
||||
});
|
||||
},
|
||||
_onScheduleActivity: function () {
|
||||
this.fields.activity.scheduleActivity(false);
|
||||
|
||||
@@ -13,7 +13,6 @@ var BasicComposer = Composers.BasicComposer;
|
||||
|
||||
var createAsyncView = testUtils.createAsyncView;
|
||||
var createView = testUtils.createView;
|
||||
var createAsyncView = testUtils.createAsyncView;
|
||||
|
||||
QUnit.module('mail', {}, function () {
|
||||
|
||||
@@ -496,7 +495,7 @@ QUnit.test('chatter: post, receive and star messages', function (assert) {
|
||||
});
|
||||
|
||||
QUnit.test('form activity widget: schedule next activity', function (assert) {
|
||||
assert.expect(4);
|
||||
assert.expect(5);
|
||||
this.data.partner.records[0].activity_ids = [1];
|
||||
this.data.partner.records[0].activity_state = 'today';
|
||||
this.data['mail.activity'].records = [{
|
||||
@@ -508,6 +507,7 @@ QUnit.test('form activity widget: schedule next activity', function (assert) {
|
||||
activity_type_id: 2,
|
||||
}];
|
||||
|
||||
var checkReadArgs = false;
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'partner',
|
||||
@@ -529,6 +529,10 @@ QUnit.test('form activity widget: schedule next activity', function (assert) {
|
||||
"the feedback should be sent correctly");
|
||||
return $.when();
|
||||
}
|
||||
if (args.method === 'read' && checkReadArgs) {
|
||||
assert.deepEqual(args.args[1], ['activity_ids', 'message_ids', 'display_name'],
|
||||
"should only read the mail fields");
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
intercepts: {
|
||||
@@ -555,6 +559,8 @@ QUnit.test('form activity widget: schedule next activity', function (assert) {
|
||||
view_type: "form",
|
||||
views: [[false, "form"]],
|
||||
}, "should do a do_action with correct parameters");
|
||||
checkReadArgs = true; // should re-read the activities when closing the dialog
|
||||
event.data.options.on_close();
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -567,6 +573,55 @@ QUnit.test('form activity widget: schedule next activity', function (assert) {
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('form activity widget: schedule activity does not discard changes', function (assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'partner',
|
||||
data: this.data,
|
||||
arch: '<form string="Partners">' +
|
||||
'<sheet>' +
|
||||
'<field name="foo"/>' +
|
||||
'</sheet>' +
|
||||
'<div class="oe_chatter">' +
|
||||
'<field name="activity_ids" widget="mail_activity"/>' +
|
||||
'</div>' +
|
||||
'</form>',
|
||||
res_id: 2,
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'write') {
|
||||
assert.deepEqual(args.args[1], {foo: 'new value'},
|
||||
"should correctly save the change");
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
intercepts: {
|
||||
get_bus: function (event) {
|
||||
event.stopPropagation();
|
||||
event.data.callback(new Bus());
|
||||
},
|
||||
do_action: function (event) {
|
||||
event.data.options.on_close();
|
||||
},
|
||||
},
|
||||
viewOptions: {
|
||||
mode: 'edit',
|
||||
},
|
||||
});
|
||||
|
||||
// update value of foo field
|
||||
form.$('.o_field_widget[name=foo]').val('new value').trigger('input');
|
||||
|
||||
// schedule an activity (this triggers a do_action)
|
||||
form.$('.o_chatter_button_schedule_activity').click();
|
||||
|
||||
// save the record
|
||||
form.$buttons.find('.o_form_button_save').click();
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('form activity widget: mark as done and remove', function (assert) {
|
||||
assert.expect(14);
|
||||
|
||||
@@ -631,11 +686,11 @@ QUnit.test('form activity widget: mark as done and remove', function (assert) {
|
||||
if (nbReads === 1) { // first read
|
||||
assert.strictEqual(args.args[1].length, 4, 'should read all fiels the first time');
|
||||
} else if (nbReads === 2) { // second read: after the unlink
|
||||
assert.ok(_.isEqual(args.args[1], ['activity_ids']),
|
||||
'should only read the activities after an unlink');
|
||||
assert.ok(_.isEqual(args.args[1], ['activity_ids', 'display_name']),
|
||||
'should only read the activities (+ display_name) after an unlink');
|
||||
} else { // third read: after marking an activity done
|
||||
assert.ok(_.isEqual(args.args[1], ['activity_ids', 'message_ids']),
|
||||
'should read the activities and messages after marking an activity done');
|
||||
assert.ok(_.isEqual(args.args[1], ['activity_ids', 'message_ids', 'display_name']),
|
||||
'should read the activities and messages (+ display_name) after marking an activity done');
|
||||
}
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
@@ -754,8 +809,8 @@ QUnit.test('followers widget: follow/unfollow, edit subtypes', function (assert)
|
||||
assert.strictEqual(args.args[1].length, 3,
|
||||
'should read "foo", "message_follower_ids" and "display_name"');
|
||||
} else { // three next reads: only read 'message_follower_ids' field
|
||||
assert.ok(_.isEqual(args.args[1], ['message_follower_ids']),
|
||||
'should only read "message_follower_ids"');
|
||||
assert.deepEqual(args.args[1], ['message_follower_ids', 'display_name'],
|
||||
'should only read "message_follower_ids" and "display_name"');
|
||||
}
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
|
||||
@@ -28,9 +28,11 @@
|
||||
<field name="workorder_id" invisible="1"/>
|
||||
<field name="location_id" invisible="1"/>
|
||||
<field name="location_dest_id" invisible="1"/>
|
||||
<field name="production_id" invisible="1"/>
|
||||
<field name="raw_material_production_id" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="active_move_line_ids" attrs="{'readonly': [('is_done', '=', True)]}" context="{'default_workorder_id': workorder_id, 'default_product_uom_id': product_uom, 'default_product_id': product_id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id}">
|
||||
<field name="active_move_line_ids" attrs="{'readonly': [('is_done', '=', True)]}" context="{'default_workorder_id': workorder_id, 'default_product_uom_id': product_uom, 'default_product_id': product_id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id, 'default_production_id': production_id or raw_material_production_id}">
|
||||
<tree editable="bottom" decoration-success="product_qty==qty_done" decoration-danger="(product_qty > 0) and (qty_done>product_qty)">
|
||||
<field name="lot_id" domain="[('product_id', '=', parent.product_id)]" context="{'default_product_id': parent.product_id}"/>
|
||||
<field name="product_qty" invisible="not context.get('show_reserved') or context.get('serial') or context.get('state_done')" readonly="1"/>
|
||||
@@ -41,6 +43,7 @@
|
||||
<field name="location_id" invisible="1"/>
|
||||
<field name="location_dest_id" invisible="1"/>
|
||||
<field name="done_wo" invisible="1"/>
|
||||
<field name="production_id" invisible="1" />
|
||||
</tree>
|
||||
</field>
|
||||
<footer class="oe_edit_only">
|
||||
|
||||
@@ -55,7 +55,6 @@ class ChangeProductionQty(models.TransientModel):
|
||||
operation_bom_qty[operation.id] = bom_data['qty']
|
||||
self._update_product_to_produce(production, production.product_qty - qty_produced)
|
||||
moves = production.move_raw_ids.filtered(lambda x: x.state not in ('done', 'cancel'))
|
||||
moves.do_unreserve()
|
||||
moves.action_assign()
|
||||
for wo in production.workorder_ids:
|
||||
operation = wo.operation_id
|
||||
|
||||
@@ -78,22 +78,22 @@ class MrpProductProduce(models.TransientModel):
|
||||
@api.multi
|
||||
def do_produce(self):
|
||||
# Nothing to do for lots since values are created using default data (stock.move.lots)
|
||||
moves = self.production_id.move_raw_ids
|
||||
quantity = self.product_qty
|
||||
if float_compare(quantity, 0, precision_rounding=self.product_uom_id.rounding) <= 0:
|
||||
raise UserError(_('You should at least produce some quantity'))
|
||||
for move in moves.filtered(lambda x: x.product_id.tracking == 'none' and x.quantity_done == 0 and x.state not in ('done', 'cancel')):
|
||||
if move.unit_factor:
|
||||
for move in self.production_id.move_raw_ids:
|
||||
# TODO currently not possible to guess if the user updated quantity by hand or automatically by the produce wizard.
|
||||
if move.product_id.tracking == 'none' and move.quantity_done < move.product_uom_qty and move.state not in ('done', 'cancel') and move.unit_factor:
|
||||
rounding = move.product_uom.rounding
|
||||
move.quantity_done += float_round(quantity * move.unit_factor, precision_rounding=rounding)
|
||||
moves = self.production_id.move_finished_ids.filtered(lambda x: x.product_id.tracking == 'none' and x.state not in ('done', 'cancel'))
|
||||
for move in moves:
|
||||
rounding = move.product_uom.rounding
|
||||
if move.product_id.id == self.production_id.product_id.id:
|
||||
move.quantity_done += float_round(quantity, precision_rounding=rounding)
|
||||
elif move.unit_factor:
|
||||
# byproducts handling
|
||||
move.quantity_done += float_round(quantity * move.unit_factor, precision_rounding=rounding)
|
||||
for move in self.production_id.move_finished_ids:
|
||||
if move.product_id.tracking == 'none' and move.state not in ('done', 'cancel'):
|
||||
rounding = move.product_uom.rounding
|
||||
if move.product_id.id == self.production_id.product_id.id:
|
||||
move.quantity_done += float_round(quantity, precision_rounding=rounding)
|
||||
elif move.unit_factor:
|
||||
# byproducts handling
|
||||
move.quantity_done += float_round(quantity * move.unit_factor, precision_rounding=rounding)
|
||||
self.check_finished_move_lots()
|
||||
if self.production_id.state == 'confirmed':
|
||||
self.production_id.write({
|
||||
|
||||
@@ -916,7 +916,7 @@ class PosOrderLine(models.Model):
|
||||
self._onchange_qty()
|
||||
self.tax_ids = self.product_id.taxes_id.filtered(lambda r: not self.company_id or r.company_id == self.company_id)
|
||||
fpos = self.order_id.fiscal_position_id
|
||||
tax_ids_after_fiscal_position = fpos.map_tax(self.tax_ids, line.product_id, line.order_id.partner_id) if fpos else self.tax_ids
|
||||
tax_ids_after_fiscal_position = fpos.map_tax(self.tax_ids, self.product_id, self.order_id.partner_id) if fpos else self.tax_ids
|
||||
self.price_unit = self.env['account.tax']._fix_tax_included_price(price, self.product_id.taxes_id, tax_ids_after_fiscal_position)
|
||||
|
||||
@api.onchange('qty', 'discount', 'price_unit', 'tax_ids')
|
||||
|
||||
@@ -1674,6 +1674,9 @@ exports.Orderline = Backbone.Model.extend({
|
||||
if (!no_map_tax){
|
||||
tax = self._map_tax_fiscal_position(tax);
|
||||
}
|
||||
if (!tax){
|
||||
return;
|
||||
}
|
||||
if (tax.amount_type === 'group'){
|
||||
var ret = self.compute_all(tax.children_tax_ids, price_unit, quantity, currency_rounding);
|
||||
total_excluded = ret.total_excluded;
|
||||
|
||||
@@ -21,7 +21,7 @@ class ProcurementGroup(models.Model):
|
||||
having the moves grouped into pickings that represent the sales order.
|
||||
|
||||
Used in: sales order (to group delivery order lines like the so), pull/push
|
||||
rules (to pack like the delivery order), on orderpoints (e.g. for wave picking
|
||||
rules (to pack like the delivery order), on orderpoints (e.g. for batch picking
|
||||
all the similar products together).
|
||||
|
||||
Grouping is made only if the source and the destination is the same.
|
||||
|
||||
@@ -127,8 +127,9 @@ class ProductProduct(models.Model):
|
||||
'Cost', company_dependent=True,
|
||||
digits=dp.get_precision('Product Price'),
|
||||
groups="base.group_user",
|
||||
help="Cost used for standard stock valuation in accounting and used as a base price on purchase orders. "
|
||||
"Expressed in the default unit of measure of the product.")
|
||||
help = "Cost used for stock valuation in standard price and as a first price to set in average/fifo. "
|
||||
"Also used as a base price for pricelists. "
|
||||
"Expressed in the default unit of measure of the product.")
|
||||
volume = fields.Float('Volume', help="The volume in m3.")
|
||||
weight = fields.Float(
|
||||
'Weight', digits=dp.get_precision('Stock Weight'),
|
||||
|
||||
@@ -78,7 +78,9 @@ class ProductTemplate(models.Model):
|
||||
'Cost', compute='_compute_standard_price',
|
||||
inverse='_set_standard_price', search='_search_standard_price',
|
||||
digits=dp.get_precision('Product Price'), groups="base.group_user",
|
||||
help="The cost price is used to valuate your inventory.")
|
||||
help = "Cost used for stock valuation in standard price and as a first price to set in average/fifo. "
|
||||
"Also used as a base price for pricelists. "
|
||||
"Expressed in the default unit of measure of the product. ")
|
||||
|
||||
volume = fields.Float(
|
||||
'Volume', compute='_compute_volume', inverse='_set_volume',
|
||||
|
||||
@@ -321,9 +321,8 @@
|
||||
<record id="ir_actions_server_project_sample" model="ir.actions.server">
|
||||
<field name="name">Project: Activate Sample Project</field>
|
||||
<field name="model_id" ref="project.model_project_project"/>
|
||||
<field name="code">
|
||||
action = model.activate_sample_project()
|
||||
</field>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.activate_sample_project()</field>
|
||||
</record>
|
||||
|
||||
<record id="open_view_project_all" model="ir.actions.act_window">
|
||||
|
||||
@@ -51,7 +51,7 @@ class AccountInvoice(models.Model):
|
||||
'uom_id': line.product_uom.id,
|
||||
'product_id': line.product_id.id,
|
||||
'account_id': invoice_line.with_context({'journal_id': self.journal_id.id, 'type': 'in_invoice'})._default_account(),
|
||||
'price_unit': line.order_id.currency_id.compute(line.price_unit, self.currency_id, round=False),
|
||||
'price_unit': line.order_id.currency_id.with_context(date=self.date_invoice).compute(line.price_unit, self.currency_id, round=False),
|
||||
'quantity': qty,
|
||||
'discount': 0.0,
|
||||
'account_analytic_id': line.account_analytic_id.id,
|
||||
@@ -84,11 +84,11 @@ class AccountInvoice(models.Model):
|
||||
self.purchase_id = False
|
||||
return {}
|
||||
|
||||
@api.onchange('currency_id')
|
||||
@api.onchange('currency_id', 'date_invoice')
|
||||
def _onchange_currency_id(self):
|
||||
if self.currency_id:
|
||||
for line in self.invoice_line_ids.filtered(lambda r: r.purchase_line_id):
|
||||
line.price_unit = line.purchase_id.currency_id.compute(line.purchase_line_id.price_unit, self.currency_id, round=False)
|
||||
line.price_unit = line.purchase_id.currency_id.with_context(date=self.date_invoice).compute(line.purchase_line_id.price_unit, self.currency_id, round=False)
|
||||
|
||||
@api.onchange('invoice_line_ids')
|
||||
def _onchange_origin(self):
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
-
|
||||
!python {model: product.product, id: product_average_icecream}: |
|
||||
assert self.qty_available == 10.0, 'Wrong quantity in stock after first reception'
|
||||
assert self.average_price == 60.0, 'Standard price should be the price of the first reception!'
|
||||
assert self.standard_price == 60.0, 'Standard price should be the price of the first reception!'
|
||||
-
|
||||
I create a draft Purchase Order for second incoming shipment for 30 pieces at 80€
|
||||
-
|
||||
@@ -75,7 +75,7 @@
|
||||
Check the standard price
|
||||
-
|
||||
!python {model: product.product, id: product_average_icecream}: |
|
||||
assert self.average_price == 75.0, 'After second reception, we should have an average price of 75.0 on the product'
|
||||
assert self.standard_price == 75.0, 'After second reception, we should have an average price of 75.0 on the product'
|
||||
-
|
||||
Create picking to send some goods
|
||||
-
|
||||
@@ -101,7 +101,7 @@
|
||||
Check the standard price (60 * 10 + 30 * 80) / 40 = 75.0 did not change
|
||||
-
|
||||
!python {model: product.product, id: product_average_icecream}: |
|
||||
assert self.average_price == 75.0, 'Average price should not have changed with outgoing picking!'
|
||||
assert self.standard_price == 75.0, 'Average price should not have changed with outgoing picking!'
|
||||
assert self.qty_available == 20.0, 'Pieces were not picked correctly as the quantity on hand is wrong'
|
||||
-
|
||||
Make a new purchase order with 500 g Average Ice Cream at a price of 0.2€/g
|
||||
@@ -131,4 +131,4 @@
|
||||
-
|
||||
!python {model: product.product, id: product_average_icecream}: |
|
||||
assert self.qty_available == 20.5, 'Reception of purchase order in grams leads to wrong quantity in stock'
|
||||
assert round(self.average_price, 2) == 78.05, 'Standard price as average price of third reception with other UoM incorrect! Got %s instead of 78.05' % (round(self.standard_price, 2),)
|
||||
assert round(self.standard_price, 2) == 78.05, 'Standard price as average price of third reception with other UoM incorrect! Got %s instead of 78.05' % (round(self.standard_price, 2),)
|
||||
|
||||
@@ -341,10 +341,7 @@
|
||||
!python {model: purchase.order, id: purchase_order_fifo_neg}: |
|
||||
picking = self.picking_ids[0]
|
||||
self.env['stock.immediate.transfer'].create({'pick_id': picking.id}).process()
|
||||
original_out_move = self.env['stock.picking'].browse(ref('outgoing_fifo_shipment_neg')).move_lines[0]
|
||||
assert original_out_move.remaining_qty == 50.0, 'On the out move of 100, 50 still needs to be matched'
|
||||
assert original_out_move.value == 2500, 'Value of the move should be 2500'
|
||||
-
|
||||
-
|
||||
Receive purchase order with 600 kg FIFO Ice Cream at 80 euro/kg
|
||||
-
|
||||
!record {model: purchase.order, id: purchase_order_fifo_neg2}:
|
||||
@@ -368,6 +365,9 @@
|
||||
picking = self.picking_ids[0]
|
||||
self.env['stock.immediate.transfer'].create({'pick_id': picking.id}).process()
|
||||
original_out_move = self.env['stock.picking'].browse(ref('outgoing_fifo_shipment_neg')).move_lines[0]
|
||||
assert original_out_move.value == 6500.0, 'First original out move should have 6500 as value'
|
||||
outgoing_shipment_fifo_icecream_neg2 = self.env['stock.picking'].browse(ref('outgoing_fifo_shipment_neg2')).move_lines[0]
|
||||
original_out_move._fifo_vacuum()
|
||||
outgoing_shipment_fifo_icecream_neg2._fifo_vacuum()
|
||||
assert original_out_move.value == -6500.0, 'First original out move should have -6500 as value'
|
||||
assert original_out_move.product_id.stock_value == 12000.0, 'Stock Value should be 12000'
|
||||
assert original_out_move.product_id.qty_available == 150.0, 'Qty available should be 150'
|
||||
@@ -26,10 +26,10 @@ class AccountAnalyticLine(models.Model):
|
||||
|
||||
@api.multi
|
||||
def write(self, values):
|
||||
# prevent to update invoiced timesheets
|
||||
#if self.filtered(lambda timesheet: timesheet.timesheet_invoice_id):
|
||||
# if any([field_name in values for field_name in ['unit_amount', 'employee_id', 'task_id', 'timesheet_revenue', 'so_line', 'amount', 'date']]):
|
||||
# raise UserError(_('You can not modify already invoiced timesheets.'))
|
||||
# prevent to update invoiced timesheets if product_id is not of type order
|
||||
if self.so_line.product_id.invoice_policy != "order" and self.filtered(lambda timesheet: timesheet.timesheet_invoice_id):
|
||||
if any([field_name in values for field_name in ['unit_amount', 'employee_id', 'task_id', 'timesheet_revenue', 'so_line', 'amount', 'date']]):
|
||||
raise UserError(_('You can not modify already invoiced timesheets.'))
|
||||
|
||||
so_lines = self.mapped('so_line')
|
||||
if values.get('task_id'):
|
||||
@@ -134,7 +134,7 @@ class AccountAnalyticLine(models.Model):
|
||||
total_revenue_invoiced = sum(analytic_lines.mapped('timesheet_revenue'))
|
||||
# compute (new) revenue of current timesheet line
|
||||
revenue = min(
|
||||
analytic_account.currency_id.round(unit_amount * so_line.currency_id.compute(so_line.price_unit, analytic_account.currency_id) * (1-so_line.discount)),
|
||||
analytic_account.currency_id.round(unit_amount * so_line.currency_id.compute(so_line.price_unit, analytic_account.currency_id) * (1-(so_line.discount/100))),
|
||||
total_revenue_so - total_revenue_invoiced
|
||||
)
|
||||
billable_type = 'billable_fixed'
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.sale.tests.test_sale_common import TestSale
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.tools import float_compare, float_repr
|
||||
|
||||
|
||||
@@ -187,6 +188,16 @@ class TestSaleTimesheet(TestSale):
|
||||
self.assertEquals(timesheet2.timesheet_invoice_id, invoice)
|
||||
self.assertEquals(timesheet3.timesheet_invoice_id, invoice)
|
||||
|
||||
# check that analytic line for product 'ordered' can be altered
|
||||
with self.assertRaises(UserError):
|
||||
timesheet1.write(dict(unit_amount=10))
|
||||
self.assertNotEquals(timesheet1.unit_amount, 10)
|
||||
|
||||
# check that analytic line for product 'delivered' cannot be altered
|
||||
timesheet3.write(dict(unit_amount=10))
|
||||
self.assertEquals(timesheet3.unit_amount, 10)
|
||||
|
||||
|
||||
def test_revenue_multi_currency(self):
|
||||
""" Create a SO with 2 lines : one for a delivered service, one for a ordered service. Confirm
|
||||
and invoice it. For this, we use a partner having a DIFFERENT currency from the current company.
|
||||
|
||||
@@ -43,14 +43,13 @@
|
||||
'wizard/stock_immediate_transfer_views.xml',
|
||||
'wizard/stock_backorder_confirmation_views.xml',
|
||||
|
||||
'views/stock_scrap_views.xml',
|
||||
|
||||
'views/res_partner_views.xml',
|
||||
'views/product_strategy_views.xml',
|
||||
'views/stock_inventory_views.xml',
|
||||
'views/stock_incoterms_views.xml',
|
||||
'views/stock_production_lot_views.xml',
|
||||
'views/stock_picking_views.xml',
|
||||
'views/stock_scrap_views.xml',
|
||||
'views/stock_inventory_views.xml',
|
||||
'views/stock_quant_views.xml',
|
||||
'views/stock_location_views.xml',
|
||||
'views/procurement_views.xml',
|
||||
|
||||
@@ -131,7 +131,6 @@
|
||||
-
|
||||
!record {model: stock.picking, id: incomming_shipment}:
|
||||
picking_type_id: stock.picking_type_in
|
||||
origin: 'incoming_shipment for test'
|
||||
location_id: stock_location_suppliers
|
||||
location_dest_id: stock_location_stock
|
||||
-
|
||||
@@ -146,7 +145,6 @@
|
||||
-
|
||||
!record {model: stock.picking, id: incomming_shipment1}:
|
||||
picking_type_id: stock.picking_type_in
|
||||
origin: 'incoming_shipment'
|
||||
partner_id: base.res_partner_1
|
||||
location_id: stock.stock_location_suppliers
|
||||
location_dest_id: stock.stock_location_stock
|
||||
@@ -160,7 +158,6 @@
|
||||
-
|
||||
!record {model: stock.picking, id: incomming_shipment2}:
|
||||
picking_type_id: stock.picking_type_in
|
||||
origin: 'incoming_shipment main_warehouse'
|
||||
partner_id: base.res_partner_1
|
||||
location_id: stock.stock_location_suppliers
|
||||
location_dest_id: stock.stock_location_stock
|
||||
@@ -174,7 +171,6 @@
|
||||
-
|
||||
!record {model: stock.picking, id: incomming_shipment3}:
|
||||
picking_type_id: stock.picking_type_in
|
||||
origin: 'incoming_shipment your_company warehouse'
|
||||
partner_id: base.res_partner_1
|
||||
location_id: stock.stock_location_suppliers
|
||||
location_dest_id: stock.stock_location_stock
|
||||
@@ -188,7 +184,6 @@
|
||||
-
|
||||
!record {model: stock.picking, id: incomming_shipment4}:
|
||||
picking_type_id: stock.picking_type_in
|
||||
origin: 'incoming_shipment_main_warehouse'
|
||||
partner_id: base.res_partner_1
|
||||
location_id: stock.stock_location_suppliers
|
||||
location_dest_id: stock.stock_location_stock
|
||||
@@ -219,7 +214,6 @@
|
||||
-
|
||||
!record {model: stock.picking, id: incomming_chicago_warehouse1}:
|
||||
picking_type_id: chi_picking_type_in
|
||||
origin: 'incoming_shipment_chicago_warehouse'
|
||||
partner_id: base.res_partner_1
|
||||
location_id: stock.stock_location_suppliers
|
||||
location_dest_id: stock.stock_location_shop0
|
||||
@@ -240,7 +234,6 @@
|
||||
-
|
||||
!record {model: stock.picking, id: incomming_chicago_warehouse2}:
|
||||
picking_type_id: chi_picking_type_in
|
||||
origin: 'incoming_shipment chicago_warehouse'
|
||||
partner_id: base.res_partner_1
|
||||
location_id: stock.stock_location_suppliers
|
||||
location_dest_id: stock.stock_location_shop0
|
||||
|
||||
@@ -152,7 +152,7 @@ class ProcurementOrder(models.Model):
|
||||
qty_done = sum(self.move_ids.filtered(lambda move: move.state == 'done').mapped('product_uom_qty'))
|
||||
qty_left = max(self.product_qty - qty_done, 0)
|
||||
return {
|
||||
'name': self.name,
|
||||
'name': self.name[:2000],
|
||||
'company_id': self.rule_id.company_id.id or self.rule_id.location_src_id.company_id.id or self.rule_id.location_id.company_id.id or self.company_id.id,
|
||||
'product_id': self.product_id.id,
|
||||
'product_uom': self.product_uom.id,
|
||||
|
||||
@@ -76,7 +76,7 @@ class Product(models.Model):
|
||||
reordering_min_qty = fields.Float(compute='_compute_nbr_reordering_rules')
|
||||
reordering_max_qty = fields.Float(compute='_compute_nbr_reordering_rules')
|
||||
|
||||
@api.depends('stock_quant_ids', 'stock_move_ids')
|
||||
@api.depends('stock_move_ids.product_qty', 'stock_move_ids.state')
|
||||
def _compute_quantities(self):
|
||||
res = self._compute_quantities_dict(self._context.get('lot_id'), self._context.get('owner_id'), self._context.get('package_id'), self._context.get('from_date'), self._context.get('to_date'))
|
||||
for product in self:
|
||||
@@ -154,9 +154,15 @@ class Product(models.Model):
|
||||
It will return all stock locations when no parameters are given
|
||||
Possible parameters are shop, warehouse, location, force_company, compute_child
|
||||
'''
|
||||
# TDE FIXME: clean that brol, context seems overused
|
||||
Warehouse = self.env['stock.warehouse']
|
||||
|
||||
if self.env.context.get('company_owned', False):
|
||||
company_id = self.env.user.company_id.id
|
||||
return (
|
||||
[('location_id.company_id', '=', company_id)],
|
||||
[('location_id.company_id', '=', False), ('location_dest_id.company_id', '=', company_id)],
|
||||
[('location_id.company_id', '=', company_id), ('location_dest_id.company_id', '=', False),
|
||||
])
|
||||
location_ids = []
|
||||
if self.env.context.get('location', False):
|
||||
if isinstance(self.env.context['location'], pycompat.integer_types):
|
||||
|
||||
@@ -35,7 +35,7 @@ class StockConfigSettings(models.TransientModel):
|
||||
string="No Rescheduling Propagation",
|
||||
oldname='default_new_propagation_minimum_delta',
|
||||
help="Rescheduling applies to any chain of operations (e.g. Make To Order, Pick Pack Ship). In the case of MTO sales, a vendor delay (updated incoming date) impacts the expected delivery date to the customer. \n This option allows to not propagate the rescheduling if the change is not critical.")
|
||||
module_stock_picking_wave = fields.Boolean("Picking Waves")
|
||||
module_stock_picking_batch = fields.Boolean("Batch Pickings", oldname="module_stock_picking_wave")
|
||||
module_stock_calendar = fields.Boolean("Vendor Calendar for Reordering",
|
||||
help='Scheduled dates of requests for quotation generated from reordering rules are based on vendor lead times (defined on products).\nBy default, such a scheduling is made on calendar days. This option allow to adapt the scheduling with vendor calendars to set on reordering rules.')
|
||||
module_stock_barcode = fields.Boolean("Barcode Scanner")
|
||||
|
||||
@@ -352,8 +352,11 @@ class StockMove(models.Model):
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
# FIXME: pim fix your crap
|
||||
if vals.get('product_uom_qty') and self.env.context.get('do_not_unreserve') is None:
|
||||
self.filtered(lambda m: m.state not in ['draft', 'done', 'cancel']).do_unreserve()
|
||||
if vals.get('product_uom_qty'):
|
||||
if self.env.context.get('do_not_unreserve') is None:
|
||||
move_to_unreserve = self.filtered(lambda m: m.state not in ['draft', 'done', 'cancel'] and m.reserved_availability > vals.get('product_uom_qty'))
|
||||
move_to_unreserve.do_unreserve()
|
||||
(self - move_to_unreserve).filtered(lambda m: m.state == 'assigned').write({'state': 'partially_available'})
|
||||
|
||||
# TDE CLEANME: it is a gros bordel + tracking
|
||||
Picking = self.env['stock.picking']
|
||||
|
||||
@@ -42,7 +42,7 @@ class StockMoveLine(models.Model):
|
||||
from_loc = fields.Char(compute='_compute_location_description')
|
||||
to_loc = fields.Char(compute='_compute_location_description')
|
||||
lots_visible = fields.Boolean(compute='_compute_lots_visible')
|
||||
state = fields.Selection(related='move_id.state')
|
||||
state = fields.Selection(related='move_id.state', store=True)
|
||||
consume_line_ids = fields.Many2many('stock.move.line', 'stock_move_line_consume_rel', 'consume_line_id', 'produce_line_id', help="Technical link to see who consumed what. ")
|
||||
produce_line_ids = fields.Many2many('stock.move.line', 'stock_move_line_consume_rel', 'produce_line_id', 'consume_line_id', help="Technical link to see which line was produced with this. ")
|
||||
|
||||
|
||||
@@ -187,7 +187,7 @@ class Picking(models.Model):
|
||||
help="If this shipment was split, then this field links to the shipment which contains the already processed part.")
|
||||
|
||||
move_type = fields.Selection([
|
||||
('direct', 'Partial'), ('one', 'All at once')], 'Shipping Policy',
|
||||
('direct', 'As soon as possible'), ('one', 'When all products are ready')], 'Shipping Policy',
|
||||
default='direct', required=True,
|
||||
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]},
|
||||
help="It specifies goods to be deliver partially or all at once")
|
||||
@@ -236,7 +236,7 @@ class Picking(models.Model):
|
||||
readonly=True, required=True,
|
||||
states={'draft': [('readonly', False)]})
|
||||
location_dest_id = fields.Many2one(
|
||||
'stock.location', "Destination Location Zone",
|
||||
'stock.location', "Destination Location",
|
||||
default=lambda self: self.env['stock.picking.type'].browse(self._context.get('default_picking_type_id')).default_location_dest_id,
|
||||
readonly=True, required=True,
|
||||
states={'draft': [('readonly', False)]})
|
||||
@@ -644,8 +644,8 @@ class Picking(models.Model):
|
||||
for move in self.move_lines:
|
||||
quantity_todo.setdefault(move.product_id.id, 0)
|
||||
quantity_done.setdefault(move.product_id.id, 0)
|
||||
quantity_todo[move.product_id.id] += move.product_qty
|
||||
quantity_done[move.product_id.id] += move.quantity_done #TODO: convert to base units
|
||||
quantity_todo[move.product_id.id] += move.product_uom_qty
|
||||
quantity_done[move.product_id.id] += move.quantity_done
|
||||
for ops in self.move_line_ids.filtered(lambda x: x.package_id and not x.product_id and not x.move_id):
|
||||
for quant in ops.package_id.quant_ids:
|
||||
quantity_done.setdefault(quant.product_id.id, 0)
|
||||
|
||||
@@ -11,10 +11,15 @@ from odoo.osv import expression
|
||||
class StockQuant(models.Model):
|
||||
_name = 'stock.quant'
|
||||
_description = 'Quants'
|
||||
_rec_name = 'product_id'
|
||||
|
||||
product_id = fields.Many2one(
|
||||
'product.product', 'Product',
|
||||
ondelete='restrict', readonly=True, required=True)
|
||||
# so user can filter on template in webclient
|
||||
product_tmpl_id = fields.Many2one(
|
||||
'product.template', string='Product Template',
|
||||
related='product_id.product_tmpl_id')
|
||||
product_uom_id = fields.Many2one(
|
||||
'product.uom', 'Unit of Measure',
|
||||
readonly=True, related='product_id.uom_id')
|
||||
@@ -43,6 +48,18 @@ class StockQuant(models.Model):
|
||||
readonly=True, required=True)
|
||||
in_date = fields.Datetime('Incoming Date', readonly=True)
|
||||
|
||||
@api.multi
|
||||
def action_view_stock_moves(self):
|
||||
self.ensure_one()
|
||||
action = self.env.ref('stock.stock_move_line_action').read()[0]
|
||||
action['domain'] = [
|
||||
('product_id', '=', self.product_id.id),
|
||||
'|', ('location_id', '=', self.location_id.id),
|
||||
('location_dest_id', '=', self.location_id.id),
|
||||
('lot_id', '=', self.lot_id.id),
|
||||
('package_id', '=', self.package_id.id)]
|
||||
return action
|
||||
|
||||
@api.multi
|
||||
@api.constrains('product_id')
|
||||
def check_product_id(self):
|
||||
|
||||
@@ -12,6 +12,10 @@ class StockMove(TransactionCase):
|
||||
self.customer_location = self.env.ref('stock.stock_location_customers')
|
||||
self.supplier_location = self.env.ref('stock.stock_location_suppliers')
|
||||
self.pack_location = self.env.ref('stock.location_pack_zone')
|
||||
self.transit_location = self.env['stock.location'].search([
|
||||
('company_id', '=', self.env.user.company_id.id),
|
||||
('usage', '=', 'transit'),
|
||||
], limit=1)
|
||||
self.uom_unit = self.env.ref('product.product_uom_unit')
|
||||
self.product1 = self.env['product.product'].create({
|
||||
'name': 'Product A',
|
||||
@@ -2632,3 +2636,39 @@ class StockMove(TransactionCase):
|
||||
self.assertEqual(quant.in_date, Datetime.to_string(initial_in_date_lot1))
|
||||
elif quant.lot_id == lot2:
|
||||
self.assertEqual(quant.in_date, initial_in_date_lot2)
|
||||
|
||||
def test_transit_1(self):
|
||||
""" Receive some products, send some to transit, check the product's `available_qty`
|
||||
computed field with or without the "company_owned" key in the context.
|
||||
"""
|
||||
move1 = self.env['stock.move'].create({
|
||||
'name': 'test_transit_1',
|
||||
'location_id': self.supplier_location.id,
|
||||
'location_dest_id': self.stock_location.id,
|
||||
'product_id': self.product1.id,
|
||||
'product_uom': self.uom_unit.id,
|
||||
'product_uom_qty': 10.0,
|
||||
'picking_type_id': self.env.ref('stock.picking_type_in').id,
|
||||
})
|
||||
move1.action_confirm()
|
||||
move1.action_assign()
|
||||
move1.move_line_ids.qty_done = 10
|
||||
move1.action_done()
|
||||
|
||||
self.assertEqual(self.product1.qty_available, 10.0)
|
||||
|
||||
move2 = self.env['stock.move'].create({
|
||||
'name': 'test_transit_1',
|
||||
'location_id': self.stock_location.id,
|
||||
'location_dest_id': self.transit_location.id,
|
||||
'product_id': self.product1.id,
|
||||
'product_uom': self.uom_unit.id,
|
||||
'product_uom_qty': 5.0,
|
||||
})
|
||||
move2.action_confirm()
|
||||
move2.action_assign()
|
||||
move2.move_line_ids.qty_done = 5
|
||||
move2.action_done()
|
||||
|
||||
self.assertEqual(self.product1.qty_available, 5.0)
|
||||
self.assertEqual(self.product1.with_context(company_owned=True).qty_available, 10.0)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
from odoo.addons.stock.tests.common import TestStockCommon
|
||||
from odoo.exceptions import UserError
|
||||
from odoo import api, registry
|
||||
|
||||
|
||||
class TestPickShip(TestStockCommon):
|
||||
@@ -1204,3 +1205,83 @@ class TestSinglePicking(TestStockCommon):
|
||||
})
|
||||
move_line.lot_id = lot1
|
||||
delivery_order.action_done()
|
||||
|
||||
|
||||
class TestStockUOM(TestStockCommon):
|
||||
|
||||
def setUp(self):
|
||||
with registry().cursor() as cr:
|
||||
env = api.Environment(cr, 1, {})
|
||||
dp = env.ref('product.decimal_product_uom')
|
||||
self.old_digits = dp.digits
|
||||
dp.digits = 7
|
||||
super(TestStockUOM, self).setUp()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestStockUOM, self).tearDown()
|
||||
with self.registry.cursor() as cr:
|
||||
env = api.Environment(cr, 1, {})
|
||||
dp = env.ref('product.decimal_product_uom')
|
||||
dp.digits = self.old_digits
|
||||
|
||||
def test_pickings_transfer_with_different_uom_and_back_orders(self):
|
||||
""" Picking transfer with diffrent unit of meassure. """
|
||||
# weight category
|
||||
categ_test = self.env['product.uom.categ'].create({'name': 'Bigger than tons'})
|
||||
|
||||
T_LBS = self.env['product.uom'].create({
|
||||
'name': 'T-LBS',
|
||||
'category_id': categ_test.id,
|
||||
'uom_type': 'reference',
|
||||
'rounding': 0.01
|
||||
})
|
||||
T_GT = self.env['product.uom'].create({
|
||||
'name': 'T-GT',
|
||||
'category_id': categ_test.id,
|
||||
'uom_type': 'bigger',
|
||||
'rounding': 0.0000001,
|
||||
'factor_inv': 2240.00,
|
||||
})
|
||||
T_TEST = self.env['product.product'].create({
|
||||
'name': 'T_TEST',
|
||||
'type': 'product',
|
||||
'uom_id': T_LBS.id,
|
||||
'uom_po_id': T_LBS.id,
|
||||
'tracking': 'lot',
|
||||
})
|
||||
picking_in = self.env['stock.picking'].create({
|
||||
'partner_id': self.partner_delta_id,
|
||||
'picking_type_id': self.picking_type_in,
|
||||
'location_id': self.supplier_location,
|
||||
'location_dest_id': self.stock_location
|
||||
})
|
||||
move = self.env['stock.move'].create({
|
||||
'name': 'First move with 60 GT',
|
||||
'product_id': T_TEST.id,
|
||||
'product_uom_qty': 60,
|
||||
'product_uom': T_GT.id,
|
||||
'picking_id': picking_in.id,
|
||||
'location_id': self.supplier_location,
|
||||
'location_dest_id': self.stock_location
|
||||
})
|
||||
picking_in.action_confirm()
|
||||
|
||||
self.assertEqual(move.product_uom_qty, 60.00, 'Wrong T_GT quantity')
|
||||
self.assertEqual(move.product_qty, 134400.00, 'Wrong T_LBS quantity')
|
||||
|
||||
lot = self.env['stock.production.lot'].create({'name': 'Lot TEST', 'product_id': T_TEST.id})
|
||||
self.env['stock.move.line'].create({
|
||||
'move_id': move.id,
|
||||
'product_id': T_TEST.id,
|
||||
'product_uom_id': T_LBS.id,
|
||||
'location_id': self.supplier_location,
|
||||
'location_dest_id': self.stock_location,
|
||||
'qty_done': 42760.00,
|
||||
'lot_id': lot.id,
|
||||
})
|
||||
|
||||
picking_in.action_done()
|
||||
back_order_in = self.env['stock.picking'].search([('backorder_id', '=', picking_in.id)])
|
||||
|
||||
self.assertEqual(len(back_order_in), 1.00, 'There should be one back order created')
|
||||
self.assertEqual(back_order_in.move_lines.product_qty, 91640.00, 'There should be one back order created')
|
||||
|
||||
@@ -848,9 +848,7 @@ class TestStockFlow(TestStockCommon):
|
||||
|
||||
res_dict = picking_out.button_validate()
|
||||
wizard = self.env[(res_dict.get('res_model'))].browse(res_dict.get('res_id'))
|
||||
res_dict_for_back_order = wizard.process()
|
||||
backorder_wizard = self.env[(res_dict_for_back_order.get('res_model'))].browse(res_dict_for_back_order.get('res_id'))
|
||||
backorder_wizard.process()
|
||||
wizard.process()
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Check product stock location quantity and quantity available.
|
||||
@@ -931,9 +929,7 @@ class TestStockFlow(TestStockCommon):
|
||||
# Transfer Incoming shipment.
|
||||
res_dict = picking_in.button_validate()
|
||||
wizard = self.env[(res_dict.get('res_model'))].browse(res_dict.get('res_id'))
|
||||
res_dict_for_back_order = wizard.process()
|
||||
backorder_wizard = self.env[(res_dict_for_back_order.get('res_model'))].browse(res_dict_for_back_order.get('res_id'))
|
||||
backorder_wizard.process()
|
||||
wizard.process()
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Check incoming shipment after transfer.
|
||||
@@ -970,7 +966,9 @@ class TestStockFlow(TestStockCommon):
|
||||
pack_opt.write({'product_uom_qty': 0.5})
|
||||
res_dict = picking_out.button_validate()
|
||||
wizard = self.env[(res_dict.get('res_model'))].browse(res_dict.get('res_id'))
|
||||
wizard.process()
|
||||
res_dict_for_back_order = wizard.process()
|
||||
backorder_wizard = self.env[(res_dict_for_back_order.get('res_model'))].browse(res_dict_for_back_order.get('res_id'))
|
||||
backorder_wizard.process()
|
||||
quants = self.StockQuantObj.search([('product_id', '=', productKG.id), ('location_id', '=', self.stock_location)])
|
||||
total_qty = [quant.quantity for quant in quants]
|
||||
# Check total quantity stock location.
|
||||
@@ -992,7 +990,9 @@ class TestStockFlow(TestStockCommon):
|
||||
pack_opt.write({'product_uom_qty': 0.5})
|
||||
res_dict = bo_out_1.button_validate()
|
||||
wizard = self.env[(res_dict.get('res_model'))].browse(res_dict.get('res_id'))
|
||||
wizard.process()
|
||||
res_dict_for_back_order = wizard.process()
|
||||
backorder_wizard = self.env[(res_dict_for_back_order.get('res_model'))].browse(res_dict_for_back_order.get('res_id'))
|
||||
backorder_wizard.process()
|
||||
quants = self.StockQuantObj.search([('product_id', '=', productKG.id), ('location_id', '=', self.stock_location)])
|
||||
total_qty = [quant.quantity for quant in quants]
|
||||
|
||||
@@ -1014,7 +1014,9 @@ class TestStockFlow(TestStockCommon):
|
||||
pack_opt.write({'product_uom_qty': 0.5})
|
||||
res_dict = bo_out_2.button_validate()
|
||||
wizard = self.env[(res_dict.get('res_model'))].browse(res_dict.get('res_id'))
|
||||
wizard.process()
|
||||
res_dict_for_back_order = wizard.process()
|
||||
backorder_wizard = self.env[(res_dict_for_back_order.get('res_model'))].browse(res_dict_for_back_order.get('res_id'))
|
||||
backorder_wizard.process()
|
||||
# Check total quantity stock location of product KG.
|
||||
quants = self.StockQuantObj.search([('product_id', '=', productKG.id), ('location_id', '=', self.stock_location)])
|
||||
total_qty = [quant.quantity for quant in quants]
|
||||
@@ -1035,7 +1037,9 @@ class TestStockFlow(TestStockCommon):
|
||||
pack_opt.write({'product_uom_qty': 0.5})
|
||||
res_dict = bo_out_3.button_validate()
|
||||
wizard = self.env[(res_dict.get('res_model'))].browse(res_dict.get('res_id'))
|
||||
wizard.process()
|
||||
res_dict_for_back_order = wizard.process()
|
||||
backorder_wizard = self.env[(res_dict_for_back_order.get('res_model'))].browse(res_dict_for_back_order.get('res_id'))
|
||||
backorder_wizard.process()
|
||||
quants = self.StockQuantObj.search([('product_id', '=', productKG.id), ('location_id', '=', self.stock_location)])
|
||||
total_qty = [quant.quantity for quant in quants]
|
||||
self.assertEqual(sum(total_qty), 999.9980, 'Expecting 999.9980 kg , got %.4f kg on location stock!' % (sum(total_qty)))
|
||||
|
||||
@@ -92,9 +92,9 @@
|
||||
</record>
|
||||
|
||||
<!-- Procurements are located in Warehouse menu hierarchy, MRP users should come to Stock application to use it. -->
|
||||
<menuitem id="menu_stock_sched" name="Schedulers" parent="stock.menu_stock_root" groups="group_stock_manager" sequence="50"/>
|
||||
<menuitem action="action_procurement_compute" id="menu_procurement_compute" parent="menu_stock_sched" sequence="2" groups="base.group_no_one"/>
|
||||
<menuitem action="procurement.action_compute_schedulers" id="menu_stock_proc_schedulers" parent="menu_stock_sched" sequence="1" groups="stock.group_stock_manager"/>
|
||||
<menuitem id="procurement_order_compute_all_menu" name="Schedulers" sequence="5" groups="group_stock_manager" parent="menu_stock_warehouse_mgmt"/>
|
||||
<menuitem action="procurement.action_compute_schedulers" id="menu_stock_proc_schedulers" parent="procurement_order_compute_all_menu" name="Run Scheduler" sequence="5" groups="stock.group_stock_manager"/>
|
||||
<menuitem action="action_procurement_compute" id="menu_procurement_compute" parent="procurement_order_compute_all_menu" sequence="10" groups="base.group_no_one"/>
|
||||
<menuitem id="menu_stock_procurement" name="Automatic Procurements" parent="stock.menu_stock_config_settings" sequence="5"/>
|
||||
<menuitem action="procurement.procurement_order_action_exceptions" id="menu_stock_procurement_action" parent="stock.menu_warehouse_report" sequence="130" groups="stock.group_stock_manager"/>
|
||||
</odoo>
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 o_setting_box">
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="module_stock_picking_wave"/>
|
||||
<field name="module_stock_picking_batch"/>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="module_stock_picking_wave"/>
|
||||
<label for="module_stock_picking_batch"/>
|
||||
<div class="text-muted">
|
||||
Process picking in batch per worker
|
||||
</div>
|
||||
|
||||
@@ -271,5 +271,5 @@
|
||||
<field name="domain">[('inventory_id', '=', active_id)]</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_inventory_form" id="menu_action_inventory_form" parent="menu_stock_inventory_control" sequence="30"/>
|
||||
<menuitem action="action_inventory_form" id="menu_action_inventory_form" parent="stock_picking_menu_product" sequence="30"/>
|
||||
</odoo>
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<menuitem action="action_location_form" id="menu_action_location_form"
|
||||
parent="menu_warehouse_config" sequence="2"/>
|
||||
parent="menu_warehouse_config" sequence="2" groups="stock.group_stock_multi_locations"/>
|
||||
|
||||
|
||||
<record id="stock_location_path_filter" model="ir.ui.view">
|
||||
|
||||
@@ -9,12 +9,18 @@
|
||||
<menuitem id="menu_stock_config_settings" name="Configuration" parent="menu_stock_root"
|
||||
sequence="100" groups="group_stock_manager"/>
|
||||
<menuitem id="menu_warehouse_config" name="Warehouse Management" parent="menu_stock_config_settings" groups="stock.group_stock_manager" sequence="1"/>
|
||||
<menuitem id="menu_packages_config" name="Packages" parent="menu_stock_config_settings" sequence="3"/>
|
||||
|
||||
<menuitem id="menu_wms_barcode_nomenclature_all" parent="menu_stock_config_settings" action="barcodes.action_barcode_nomenclature_form"
|
||||
sequence="50" groups="base.group_no_one"/>
|
||||
|
||||
<menuitem id="menu_product_in_config_stock" name="Products" parent="stock.menu_stock_config_settings" sequence="4"/>
|
||||
|
||||
<menuitem id="menu_wms_barcode_nomenclature_all" parent="menu_product_in_config_stock" action="barcodes.action_barcode_nomenclature_form"
|
||||
sequence="50" groups="base.group_no_one"/>
|
||||
|
||||
<menuitem id="product_uom_menu" name="Units of Measures" parent="menu_stock_config_settings"
|
||||
sequence="5" groups="product.group_uom"/>
|
||||
|
||||
<menuitem id="menu_packages_config" name="Packages" parent="menu_stock_config_settings" sequence="6"/>
|
||||
|
||||
<menuitem
|
||||
action="product.product_category_action_form" id="menu_product_category_config_stock"
|
||||
parent="stock.menu_product_in_config_stock" sequence="2"/>
|
||||
@@ -26,13 +32,15 @@
|
||||
parent="menu_product_in_config_stock" sequence="5" groups="product.group_product_variant"/>
|
||||
<menuitem
|
||||
action="product.product_uom_categ_form_action" id="menu_stock_uom_categ_form_action"
|
||||
parent="menu_product_in_config_stock" sequence="5" groups="product.group_uom"/>
|
||||
name="UoM Categories"
|
||||
parent="product_uom_menu" sequence="5"/>
|
||||
<menuitem
|
||||
id="menu_stock_unit_measure_stock" name="Units of Measure"
|
||||
parent="stock.menu_product_in_config_stock" sequence="35" groups="product.group_uom"/>
|
||||
|
||||
<menuitem id="menu_stock_uom_form_action" action="product.product_uom_form_action"
|
||||
parent="menu_stock_config_settings" sequence="35" groups="product.group_uom"/>
|
||||
name="UoM"
|
||||
parent="product_uom_menu" sequence="35"/>
|
||||
|
||||
<menuitem id="menu_stock_inventory_control" name="Inventory Control" parent="menu_stock_root" sequence="4"/>
|
||||
|
||||
|
||||
@@ -5,14 +5,15 @@
|
||||
<field name="model">stock.move.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree decoration-muted="state == 'cancel'" decoration-danger="(state not in ('cancel','done'))" string="Move Lines" create="0">
|
||||
<field name="date"/>
|
||||
<field name="picking_id" string="Reference"/>
|
||||
<field name="create_date" invisible="1" groups="base.group_no_one"/>
|
||||
<field name="product_id"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="product_uom_qty"/>
|
||||
<field name="qty_done" string="Quantity Done"/>
|
||||
<field name="product_uom_id" options="{'no_open': True, 'no_create': True}" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<field name="location_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="location_dest_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="date" groups="base.group_no_one"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -28,27 +29,55 @@
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="picking_id"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="date" groups="base.group_no_one"/>
|
||||
<field name="picking_id" string="Reference"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_uom_qty"/>
|
||||
<field name="product_uom_id" options="{'no_open': True, 'no_create': True}" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<field name="location_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="location_dest_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="date" groups="base.group_no_one"/>
|
||||
</group>
|
||||
<group>
|
||||
<label for="product_uom_qty" string="Quantity Reserved"/>
|
||||
<div class="o_row">
|
||||
<field name="product_uom_qty"/>
|
||||
<field name="product_uom_id" options="{'no_create': True}" string="Unit of Measure" groups="product.group_uom"/>
|
||||
</div>
|
||||
<label for="qty_done" string="Quantity Done"/>
|
||||
<div class="o_row">
|
||||
<field name="qty_done"/>
|
||||
<field name="product_uom_id" options="{'no_create': True}" string="Unit of Measure" groups="product.group_uom"/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="stock_move_line_view_search" model="ir.ui.view">
|
||||
<field name="name">stock.move.line.search</field>
|
||||
<field name="model">stock.move.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Stock Moves">
|
||||
<field name="picking_id" string="Reference"/>
|
||||
<field name="product_id"/>
|
||||
<field name="location_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="location_dest_id" groups="stock.group_stock_multi_locations"/>
|
||||
<filter string="Done" name="done" domain="[('state','=','done')]"/>
|
||||
<separator/>
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Status" name="by_state" domain="[]" context="{'group_by':'state'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="stock_move_line_action" model="ir.actions.act_window">
|
||||
<field name="name">Stock Move Lines</field>
|
||||
<field name="name">Product Moves</field>
|
||||
<field name="res_model">stock.move.line</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="view_move_line_tree"/>
|
||||
<field name="context">{}</field>
|
||||
<field name="context">{'search_default_done': 1}</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="stock_move_line_action" id="stock_move_line_menu" parent="stock.menu_warehouse_report" sequence="150" groups="base.group_no_one"/>
|
||||
|
||||
@@ -231,6 +231,8 @@
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" />
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
</div>
|
||||
<group>
|
||||
<group name="main_grp" colspan="2">
|
||||
<group name="main_grp_col1">
|
||||
@@ -358,7 +360,7 @@
|
||||
</record>
|
||||
|
||||
<record id="stock_move_action" model="ir.actions.act_window">
|
||||
<field name="name">Stock Moves</field>
|
||||
<field name="name">Picking Moves</field>
|
||||
<field name="res_model">stock.move</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree decoration-info="state == 'draft'" decoration-muted="state == 'cancel'" decoration-danger="state not in ('cancel', 'done') and scheduled_date < current_date" string="Picking list">
|
||||
<field name="name"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="location_dest_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date" invisible="1"/>
|
||||
<field name="scheduled_date"/>
|
||||
@@ -210,13 +210,13 @@
|
||||
<button name="do_print_picking" string="Print" groups="stock.group_stock_user" type="object" attrs="{'invisible': [('state', 'not in', ('assigned', 'partially_available'))]}"/>
|
||||
<button name="%(action_report_delivery)d" string="Print" states="done" type="action" groups="base.group_user"/>
|
||||
<button name="%(act_stock_return_picking)d" string="Return" states="done" type="action" groups="base.group_user"/>
|
||||
<button name="action_cancel" states="assigned,confirmed,partially_available,draft,waiting" string="Cancel" groups="base.group_user" type="object"/>
|
||||
<field name="picking_type_code" invisible="1"/>
|
||||
<button name="do_unreserve" string="Unreserve" groups="base.group_user" type="object" attrs="{'invisible': ['|', ('picking_type_code', '=', 'incoming'), ('state', 'not in', ('assigned', 'partially_available'))]}"/>
|
||||
<field name="show_operations" invisible="1" readonly="1"/>
|
||||
<field name="move_line_exist" invisible="1"/>
|
||||
<field name="has_packages" invisible="1"/>
|
||||
<button name="button_scrap" type="object" string="Scrap" attrs="{'invisible': ['|', '&', ('picking_type_code', '!=', 'incoming'), ('state', 'in', ('draft', 'cancel', 'waiting')), '&', ('picking_type_code', '=', 'incoming'), ('state', '!=', 'done')]}"/>
|
||||
<button name="action_cancel" states="assigned,confirmed,partially_available,draft,waiting" string="Cancel" groups="base.group_user" type="object"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,partially_available,assigned,done" />
|
||||
<field name="picking_type_entire_packs" invisible="1"/>
|
||||
</header>
|
||||
@@ -243,7 +243,7 @@
|
||||
</group>
|
||||
<group>
|
||||
<field name="scheduled_date"/>
|
||||
<field name="origin" placeholder="e.g. PO0032" class="oe_inline"/>
|
||||
<field name="origin" placeholder="e.g. PO0032" readonly="1"/>
|
||||
<field name="owner_id" groups="stock.group_tracking_owner"/>
|
||||
<div groups="stock.group_tracking_owner" colspan="2" col="2">
|
||||
<button name="action_assign_owner" string="Assign Owner" type="object" attrs="{'invisible': ['|',('move_line_exist', '=', False),('state', 'not in', ('draft','assigned','confirmed'))]}"
|
||||
@@ -273,9 +273,8 @@
|
||||
</page>
|
||||
<page string="Operations">
|
||||
<field name="id" invisible="1"/>
|
||||
<field name="move_lines" attrs="{'readonly': [('state', 'in', ('cancel', 'done'))]}" context="{'default_picking_id': id, 'form_view_ref':'stock.view_move_picking_form', 'address_in_id': partner_id, 'default_picking_type_id': picking_type_id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id}">
|
||||
<tree decoration-danger="state != 'done' and quantity_done > reserved_availability" decoration-muted="scrapped == True" string="Stock Moves" editable="bottom">
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="move_lines" attrs="{'readonly': [('state', 'in', ('cancel', 'done'))]}" context="{'picking_type_code': picking_type_code, 'default_picking_id': id, 'form_view_ref':'stock.view_move_picking_form', 'address_in_id': partner_id, 'default_picking_type_id': picking_type_id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id}">
|
||||
<tree decoration-danger="state != 'done' and quantity_done > reserved_availability" decoration-muted="scrapped == True or state == 'cancel'" string="Stock Moves" editable="bottom">
|
||||
<field name="date_expected" invisible="1"/>
|
||||
<field name="state" invisible="1" readonly="0"/>
|
||||
<field name="picking_type_id" invisible="1"/>
|
||||
@@ -291,9 +290,9 @@
|
||||
<field name="product_id" required="1" attrs="{'readonly': ['&', ('state', '!=', 'draft'), ('additional', '=', False)]}"/>
|
||||
<field name="is_initial_demand_editable" invisible="1"/>
|
||||
<field name="product_uom_qty" string="Initial Demand" attrs="{'readonly': [('is_initial_demand_editable', '=', False), ('state', '!=', 'draft')]}"/>
|
||||
<field name="product_uom" attrs="{'readonly': [('state', '!=', 'draft'), ('additional', '=', False)]}" options="{'no_open': True, 'no_create': True}" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<field name="reserved_availability" string="Reserved"/>
|
||||
<field name="reserved_availability" string="Reserved" invisible="context.get('picking_type_code') == 'incoming'"/>
|
||||
<field name="quantity_done" string="Done" attrs="{'readonly': ['|', ('show_details_visible', '=', True), ('state', '=', 'cancel')], 'invisible': ['|', ('state', 'in', ['draft', 'confirmed', 'waiting']), ('show_operations', '=', True)]}"/>
|
||||
<field name="product_uom" attrs="{'readonly': [('state', '!=', 'draft'), ('additional', '=', False)]}" options="{'no_open': True, 'no_create': True}" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<button name="action_show_details" string="Register lots, packs, location" type="object" icon="fa-list" attrs="{'invisible': [('show_details_visible', '=', False)]}"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -302,14 +301,14 @@
|
||||
<page string="Additional Info" name="extra">
|
||||
<group>
|
||||
<group>
|
||||
<field name="move_type"/>
|
||||
<field name="picking_type_id" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||
<field name="picking_type_code" invisible="1"/>
|
||||
<field name="move_type" attrs="{'invisible': [('picking_type_code', '=', 'incoming')]}"/>
|
||||
<field name="picking_type_id" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
|
||||
<field name="group_id" groups="base.group_no_one"/>
|
||||
<field name="priority"/>
|
||||
<field name="priority" attrs="{'invisible': [('picking_type_code', '=', 'incoming')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
@@ -388,7 +387,11 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="all_picking" name="All Transfers" parent="menu_stock_warehouse_mgmt" sequence="2" action="action_picking_tree_all" groups="stock.group_stock_manager,stock.group_stock_user"/>
|
||||
<menuitem id="stock_picking_menu_product" name="Products"
|
||||
parent="menu_stock_warehouse_mgmt" sequence="1"
|
||||
groups="stock.group_stock_manager,stock.group_stock_user"/>
|
||||
|
||||
<menuitem id="all_picking" name="Transfers" parent="stock_picking_menu_product" sequence="5" action="action_picking_tree_all" groups="stock.group_stock_manager,stock.group_stock_user"/>
|
||||
|
||||
<record id="stock_picking_action_picking_type" model="ir.actions.act_window">
|
||||
<field name="name">All Transfers</field>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<separator/>
|
||||
<filter name="negative" string="Negative Stock" domain="[('quantity', '<', 0.0)]"/>
|
||||
<filter name="positive" string="Positive Stock" domain="[('quantity', '>', 0.0)]"/>
|
||||
<filter name="reserved" string="Reservations" domain="[('reserved_quantity', '>', 0.0)]"/>
|
||||
</group>
|
||||
<group expand='0' string='Group by...'>
|
||||
<filter string='Location' name="locationgroup" domain="[]" context="{'group_by': 'location_id'}"/>
|
||||
@@ -37,20 +38,33 @@
|
||||
<field eval="10" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Inventory Valuation" create="false" edit="false" delete="false">
|
||||
<group>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button class="oe_stat_button" icon="fa-arrows-v" type="object" name="action_view_stock_moves" string="Picking Moves"/>
|
||||
</div>
|
||||
<group>
|
||||
<field name="product_id"/>
|
||||
<field name="quantity"/>
|
||||
<field name="product_uom_id" groups="product.group_uom"/>
|
||||
<field name="lot_id" groups="stock.group_production_lot"/>
|
||||
<field name="package_id" groups="stock.group_tracking_lot"/>
|
||||
<field name="location_id"/>
|
||||
<field name="owner_id" groups="stock.group_tracking_owner"/>
|
||||
<group>
|
||||
<field name="product_id"/>
|
||||
<field name="location_id"/>
|
||||
<field name="lot_id" groups="stock.group_production_lot"/>
|
||||
<field name="package_id" groups="stock.group_tracking_lot"/>
|
||||
<field name="owner_id" groups="stock.group_tracking_owner"/>
|
||||
</group>
|
||||
<group>
|
||||
<label for="quantity" string="Quantity On Hand"/>
|
||||
<div class="o_row">
|
||||
<field name="quantity"/>
|
||||
<field name="product_uom_id" groups="product.group_uom"/>
|
||||
</div>
|
||||
<label for="reserved_quantity" string="Quantity Reserved"/>
|
||||
<div class="o_row">
|
||||
<field name="reserved_quantity"/>
|
||||
<field name="product_uom_id" groups="product.group_uom"/>
|
||||
</div>
|
||||
<field name="in_date" attrs="{'invisible': [('lot_id', '=', False)]}" groups="stock.group_production_lot"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="in_date" attrs="{'invisible': [('lot_id', '=', False)]}" groups="stock.group_production_lot"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -62,12 +76,13 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Inventory Valuation" create="0" delete="0">
|
||||
<field name="product_id"/>
|
||||
<field name="quantity"/>
|
||||
<field name="product_uom_id" groups="product.group_uom"/>
|
||||
<field name="location_id"/>
|
||||
<field name="owner_id" groups="stock.group_tracking_owner"/>
|
||||
<field name="lot_id" groups="stock.group_production_lot"/>
|
||||
<field name="package_id" groups="stock.group_tracking_lot"/>
|
||||
<field name="reserved_quantity" string="Reserved"/>
|
||||
<field name="quantity" string="On Hand"/>
|
||||
<field name="product_uom_id" groups="product.group_uom"/>
|
||||
<field name="owner_id" groups="stock.group_tracking_owner"/>
|
||||
<field name='company_id' groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -79,18 +94,30 @@
|
||||
<field name="model">stock.quant</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Inventory">
|
||||
<field name="location_id" type="row"/>
|
||||
<field name="product_id" type="row"/>
|
||||
<field name="location_id" type="col"/>
|
||||
<field name="quantity" type="measure"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="stock_quant_view_graph" model="ir.ui.view">
|
||||
<field name="name">stock.quant.graph</field>
|
||||
<field name="model">stock.quant</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Stock Quant">
|
||||
<field name="location_id"/>
|
||||
<field name="quantity" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="quantsact"> <!-- Menu + python -->
|
||||
<field name="name">Inventory</field>
|
||||
<field name="res_model">stock.quant</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,pivot</field>
|
||||
<field name="context">{'search_default_internal_loc': 1, 'search_default_transit_loc': 1}</field>
|
||||
<field name="view_mode">tree,form,pivot,graph</field>
|
||||
<field name="context">{'search_default_internal_loc': 1,}</field>
|
||||
<field name="help">This analysis gives you a fast overview on the current stock level of your products and their current inventory value.</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="product_template_open_quants"> <!-- Not used -->
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
<menuitem
|
||||
id="menu_stock_scrap"
|
||||
name="Scrap"
|
||||
parent="menu_stock_inventory_control"
|
||||
parent="stock_picking_menu_product"
|
||||
action="action_stock_scrap"
|
||||
sequence="99"/>
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
<form string="Immediate transfer?">
|
||||
<group>
|
||||
<p>
|
||||
You haven't entered (<i>done</i>) quantities, by clicking on <i>apply</i>
|
||||
Odoo will process all the reserved quantities.
|
||||
You haven't entered <i>done</i> quantities, by clicking on <i>apply</i>
|
||||
Odoo will process all the <i>reserved</i> quantities.
|
||||
</p>
|
||||
</group>
|
||||
<footer>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
from . import account_chart_template
|
||||
from . import account_invoice
|
||||
from . import account_move
|
||||
from . import product
|
||||
from . import stock
|
||||
from . import stock_config_settings
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class AccountMove(models.Model):
|
||||
_inherit = 'account.move'
|
||||
|
||||
stock_move_id = fields.Many2one('stock.move', string='Stock Move')
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
from odoo import api, fields, models, tools, _
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.tools import float_is_zero
|
||||
from odoo.tools import float_is_zero, pycompat
|
||||
from odoo.addons import decimal_precision as dp
|
||||
|
||||
|
||||
@@ -16,17 +16,17 @@ class ProductTemplate(models.Model):
|
||||
('manual_periodic', 'Periodic (manual)'),
|
||||
('real_time', 'Perpetual (automated)')], string='Inventory Valuation',
|
||||
company_dependent=True, copy=True, default='manual_periodic',
|
||||
help="If perpetual valuation is enabled for a product, the system will automatically create journal entries corresponding to stock moves, with product price as specified by the 'Costing Method'" \
|
||||
"The inventory variation account set on the product category will represent the current inventory value, and the stock input and stock output account will hold the counterpart moves for incoming and outgoing products.")
|
||||
help="""Manual: The accounting entries to value the inventory are not posted automatically.
|
||||
Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.""")
|
||||
valuation = fields.Char(compute='_compute_valuation_type', inverse='_set_valuation_type')
|
||||
property_cost_method = fields.Selection([
|
||||
('standard', 'Standard Price'),
|
||||
('fifo', '(financial) FIFO'),
|
||||
('average', 'AVCO')], string='Costing Method',
|
||||
('fifo', 'First In First Out (FIFO)'),
|
||||
('average', 'Average Cost (AVCO)')], string='Costing Method',
|
||||
company_dependent=True, copy=True,
|
||||
help="""Standard Price: The cost price is manually updated at the end of a specific period (usually once a year).
|
||||
Average Price: The cost price is recomputed at each incoming shipment and used for the product valuation.
|
||||
Real Price: The cost price displayed is the price of the last outgoing product (will be use in case of inventory loss for example).""")
|
||||
help="""Standard Price: The products are valued at their standard cost defined on the product.
|
||||
Average Cost (AVCO): The products are valued at weighted average cost.
|
||||
First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.""")
|
||||
cost_method = fields.Char(compute='_compute_cost_method', inverse='_set_cost_method')
|
||||
property_stock_account_input = fields.Many2one(
|
||||
'account.account', 'Stock Input Account',
|
||||
@@ -38,19 +38,6 @@ class ProductTemplate(models.Model):
|
||||
company_dependent=True, domain=[('deprecated', '=', False)],
|
||||
help="When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless "
|
||||
"there is a specific valuation account set on the destination location. When not set on the product, the one from the product category is used.")
|
||||
average_price = fields.Float(
|
||||
'Average Cost', compute='_compute_average_price',
|
||||
digits=dp.get_precision('Product Price'), groups="base.group_user",
|
||||
help="Average cost of the product, in the default unit of measure of the product.")
|
||||
|
||||
@api.multi
|
||||
def _compute_average_price(self):
|
||||
unique_variants = self.filtered(lambda template: len(template.product_variant_ids) == 1)
|
||||
for template in unique_variants:
|
||||
template.average_price = template.product_variant_ids.average_price
|
||||
for template in (self - unique_variants):
|
||||
template.average_price = 0.0
|
||||
|
||||
|
||||
@api.one
|
||||
@api.depends('property_valuation', 'categ_id.property_valuation')
|
||||
@@ -73,11 +60,6 @@ class ProductTemplate(models.Model):
|
||||
def _set_cost_method(self):
|
||||
return self.write({'property_cost_method': self.cost_method})
|
||||
|
||||
@api.onchange('type')
|
||||
def onchange_type_valuation(self):
|
||||
# TO REMOVE IN MASTER
|
||||
pass
|
||||
|
||||
@api.multi
|
||||
def _get_product_accounts(self):
|
||||
""" Add the stock accounts related to product to the result of super()
|
||||
@@ -105,20 +87,9 @@ class ProductTemplate(models.Model):
|
||||
class ProductProduct(models.Model):
|
||||
_inherit = 'product.product'
|
||||
|
||||
average_price = fields.Float(
|
||||
'Average Cost',
|
||||
digits=dp.get_precision('Product Price'),
|
||||
groups="base.group_user",
|
||||
compute='_compute_average_price',
|
||||
help="Calculated average cost")
|
||||
stock_value = fields.Float(
|
||||
'Value', compute='_compute_stock_value')
|
||||
|
||||
@api.onchange('type')
|
||||
def onchange_type_valuation(self):
|
||||
# TO REMOVE IN MASTER
|
||||
pass
|
||||
|
||||
@api.multi
|
||||
def do_change_standard_price(self, new_price, account_id):
|
||||
""" Changes the Standard Price of Product and creates an account move accordingly."""
|
||||
@@ -166,93 +137,45 @@ class ProductProduct(models.Model):
|
||||
self.write({'standard_price': new_price})
|
||||
return True
|
||||
|
||||
def _get_latest_cumulated_value(self, not_move=False):
|
||||
def _get_fifo_candidates_in_move(self):
|
||||
""" Find IN moves that can be used to value OUT moves.
|
||||
"""
|
||||
self.ensure_one()
|
||||
# TODO: only filter on IN and OUT stock.move
|
||||
domain = [
|
||||
('product_id', '=', self.id),
|
||||
('state', '=', 'done'),
|
||||
]
|
||||
if not_move:
|
||||
domain += [('id', '!=', not_move.id)]
|
||||
latest = self.env['stock.move'].search(domain, order='date desc, id desc', limit=1)
|
||||
if not latest:
|
||||
return 0.0
|
||||
return latest.cumulated_value
|
||||
|
||||
def _get_candidates_out_move(self):
|
||||
self.ensure_one()
|
||||
# TODO: filter at start of period
|
||||
candidates = self.env['stock.move'].search([
|
||||
('product_id', '=', self.id),
|
||||
('location_dest_id.usage', 'not in', ('transit', 'internal')),
|
||||
('location_id.usage', 'in', ('transit', 'internal')),
|
||||
('remaining_qty', '>', 0),
|
||||
('state', '=', 'done')
|
||||
], order='date, id') #TODO: case
|
||||
domain = [('product_id', '=', self.id), ('remaining_qty', '>', 0.0)] + self.env['stock.move']._get_in_base_domain()
|
||||
candidates = self.env['stock.move'].search(domain, order='date, id')
|
||||
return candidates
|
||||
|
||||
def _get_candidates_move(self):
|
||||
self.ensure_one()
|
||||
# TODO: filter at start of period
|
||||
candidates = self.env['stock.move'].search([
|
||||
('product_id', '=', self.id),
|
||||
('location_dest_id.usage', 'in', ('transit', 'internal')),
|
||||
('location_id.usage', 'not in', ('transit', 'internal')),
|
||||
('remaining_qty', '>', 0),
|
||||
('state', '=', 'done')
|
||||
], order='date, id') #TODO: case where
|
||||
return candidates
|
||||
|
||||
@api.multi
|
||||
def _compute_average_price(self):
|
||||
for product in self:
|
||||
if product.qty_available > 0:
|
||||
last_cumulated_value = product._get_latest_cumulated_value()
|
||||
product.average_price = last_cumulated_value / product.qty_available
|
||||
else:
|
||||
product.average_price = 0
|
||||
|
||||
@api.multi
|
||||
def _compute_stock_value(self):
|
||||
for product in self:
|
||||
if product.cost_method == 'standard':
|
||||
product.stock_value = product.standard_price * product.qty_available
|
||||
elif product.cost_method == 'average':
|
||||
product.stock_value = product._get_latest_cumulated_value()
|
||||
elif product.cost_method == 'fifo': #Could also do same as for average, but it would lead to more rounding errors
|
||||
moves = product._get_candidates_move()
|
||||
value = 0
|
||||
for move in moves:
|
||||
value += move.remaining_qty * move.price_unit
|
||||
product.stock_value = value
|
||||
if product.cost_method in ['standard', 'average']:
|
||||
product.stock_value = product.standard_price * product.with_context(company_owned=True).qty_available
|
||||
elif product.cost_method == 'fifo':
|
||||
StockMove = self.env['stock.move']
|
||||
domain = [('product_id', '=', product.id)] + StockMove._get_all_base_domain()
|
||||
moves = StockMove.search(domain)
|
||||
product.stock_value = sum(moves.mapped('value'))
|
||||
|
||||
|
||||
class ProductCategory(models.Model):
|
||||
_inherit = 'product.category'
|
||||
|
||||
property_valuation = fields.Selection([
|
||||
('manual_periodic', 'Periodic (manual)'),
|
||||
('real_time', 'Perpetual (automated)')], string='Inventory Valuation',
|
||||
('manual_periodic', 'Manual'),
|
||||
('real_time', 'Automated')], string='Inventory Valuation',
|
||||
company_dependent=True, copy=True, required=True,
|
||||
help="If perpetual valuation is enabled for a product, the system "
|
||||
"will automatically create journal entries corresponding to "
|
||||
"stock moves, with product price as specified by the 'Costing "
|
||||
"Method'. The inventory variation account set on the product "
|
||||
"category will represent the current inventory value, and the "
|
||||
"stock input and stock output account will hold the counterpart "
|
||||
"moves for incoming and outgoing products.")
|
||||
help="""Manual: The accounting entries to value the inventory are not posted automatically.
|
||||
Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.
|
||||
""")
|
||||
property_cost_method = fields.Selection([
|
||||
('standard', 'Standard Price'),
|
||||
('fifo', '(financial) FIFO)'),
|
||||
('average', 'AVCO')], string="Costing Method",
|
||||
('fifo', 'First In First Out (FIFO)'),
|
||||
('average', 'Average Cost (AVCO)')], string="Costing Method",
|
||||
company_dependent=True, copy=True, required=True,
|
||||
help="Standard Price: The cost price is manually updated at the end "
|
||||
"of a specific period (usually once a year).\nAverage Price: "
|
||||
"The cost price is recomputed at each incoming shipment and "
|
||||
"used for the product valuation.\nReal Price: The cost price "
|
||||
"displayed is the price of the last outgoing product (will be "
|
||||
"used in case of inventory loss for example).""")
|
||||
help=""""Standard Price: The products are valued at their standard cost defined on the product.
|
||||
Average Cost (AVCO): The products are valued at weighted average cost.
|
||||
First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.
|
||||
""")
|
||||
property_stock_journal = fields.Many2one(
|
||||
'account.journal', 'Stock Journal', company_dependent=True,
|
||||
help="When doing real-time inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.")
|
||||
|
||||
@@ -55,11 +55,25 @@ class StockMoveLine(models.Model):
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
super(StockMoveLine, self).write(vals)
|
||||
if 'qty_done' in vals:
|
||||
for move in self.mapped('move_id').filtered(lambda m: m.state == 'done'):
|
||||
move.value = move.quantity_done * move.price_unit
|
||||
move.replay()
|
||||
# We need to update the `value`, `remaining_value` and `remaining_qty` on the linked
|
||||
# stock move.
|
||||
moves_to_update = {}
|
||||
for move_line in self.filtered(lambda ml: ml.state == 'done'):
|
||||
moves_to_update[move_line.move_id] = vals['qty_done'] - move_line.qty_done
|
||||
|
||||
for move_id, qty_difference in moves_to_update.items():
|
||||
# more/less units are available, update `value`, `remaining_value` and
|
||||
# `remaining_qty` on the linked stock move.
|
||||
move_vals = {
|
||||
'value': move_id.value + qty_difference * move_id.price_unit,
|
||||
'remaining_value': move_id.remaining_value + qty_difference * move_id.price_unit,
|
||||
'remaining_qty': move_id.remaining_qty + qty_difference,
|
||||
}
|
||||
move_id.write(move_vals)
|
||||
if move_id.product_id.valuation == 'real_time':
|
||||
move_id.with_context(force_valuation_amount=qty_difference*move_id.price_unit)._account_entry_move()
|
||||
return super(StockMoveLine, self).write(vals)
|
||||
|
||||
|
||||
class StockMove(models.Model):
|
||||
@@ -67,162 +81,235 @@ class StockMove(models.Model):
|
||||
|
||||
to_refund = fields.Boolean(string="To Refund (update SO/PO)",
|
||||
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order')
|
||||
|
||||
value = fields.Float()
|
||||
cumulated_value = fields.Float()
|
||||
remaining_qty = fields.Float()
|
||||
last_done_move_id = fields.Many2one('stock.move')
|
||||
last_done_remaining_qty = fields.Float()
|
||||
last_done_qty = fields.Float()
|
||||
|
||||
# TODO: add constraints remaining_qty > 0
|
||||
# TODO: add constrain price_unit = 0 on done move?
|
||||
remaining_value = fields.Float()
|
||||
account_move_ids = fields.One2many('account.move', 'stock_move_id')
|
||||
|
||||
@api.multi
|
||||
def _get_price_unit(self):
|
||||
def action_get_account_moves(self):
|
||||
self.ensure_one()
|
||||
if self.product_id.cost_method == 'average':
|
||||
return self.product_id.average_price or self.product_id.standard_price
|
||||
if self.product_id.cost_method == 'fifo':
|
||||
move = self.search([('product_id', '=', self.product_id.id),
|
||||
('state', '=', 'done'),
|
||||
('location_id.usage', '=', 'internal'),
|
||||
('location_dest_id.usage', '!=', 'internal')], order='date desc', limit=1)
|
||||
if move:
|
||||
return move.price_unit or self.product_id.standard_price
|
||||
return self.product_id.standard_price
|
||||
action_ref = self.env.ref('account.action_move_journal_line')
|
||||
if not action_ref:
|
||||
return False
|
||||
action_data = action_ref.read()[0]
|
||||
action_data['domain'] = [('id', 'in', self.account_move_ids.ids)]
|
||||
return action_data
|
||||
|
||||
def _update_future_cumulated_value(self, value):
|
||||
self.ensure_one()
|
||||
moves = self.search([('state', '=', 'done'),
|
||||
('date', '>', self.date),
|
||||
('product_id', '=', self.product_id.id)])
|
||||
for move in moves:
|
||||
move.value += value
|
||||
def get_price_unit(self):
|
||||
""" Returns the unit price to store on the quant """
|
||||
return self.price_unit or self.product_id.standard_price
|
||||
|
||||
# def change_move_value_in_the_past(self, value):
|
||||
# self.ensure_one()
|
||||
# if self.product_id.cost_method == 'fifo':
|
||||
# moves = self.search([('state', '=', 'done'),
|
||||
# ('date', '>', self.date),
|
||||
# ('product_id', '=', self.product_id.id)])
|
||||
# if self.location_id.usage not in ('internal', 'transit'):
|
||||
# if move.last_done_move_id and move.last_done_remaining_qty:
|
||||
@api.model
|
||||
def _get_in_base_domain(self, company_id=False):
|
||||
domain = [
|
||||
('state', '=', 'done'),
|
||||
('location_id.company_id', '=', False),
|
||||
('location_dest_id.company_id', '=', company_id or self.env.user.company_id.id)
|
||||
]
|
||||
return domain
|
||||
|
||||
@api.multi
|
||||
def replay(self):
|
||||
# Easy scenario: avergae /done
|
||||
# search last move before this one
|
||||
start_move = self.search([('product_id', '=', self.product_id.id),
|
||||
('state', '=', 'done'),
|
||||
('date', '<', self.date)], limit=1, order='date desc') #filter on outgoing/incoming moves
|
||||
next_moves = self.search([('product_id', '=', self.product_id.id),
|
||||
('state', '=', 'done'),
|
||||
('date', '>', start_move.date)], order='date') # filter on outgoing/incoming moves
|
||||
if start_move:
|
||||
last_cumulated_value = start_move.cumulated_value
|
||||
last_done_qty_available = start_move.last_done_qty
|
||||
else:
|
||||
last_cumulated_value = 0.0
|
||||
last_done_qty_available = 0.0
|
||||
if self.product_id.cost_method == 'average':
|
||||
for move in next_moves:
|
||||
if move.location_id.usage in ('internal', 'transit') and move.location_dest_id.usage not in ('internal', 'transit'):
|
||||
if last_done_qty_available:
|
||||
move.value = - ((last_cumulated_value / last_done_qty_available) * move.product_qty)
|
||||
last_done_qty_available -= move.product_qty
|
||||
else:
|
||||
last_done_qty_available += move.product_qty
|
||||
move.cumulated_value = last_cumulated_value + move.value
|
||||
last_cumulated_value = move.cumulated_value
|
||||
move.last_done_qty = last_done_qty_available
|
||||
|
||||
|
||||
# FIFO: needs dict with qty_remaining to replay algorithm
|
||||
|
||||
|
||||
# update cumulated_value according to value
|
||||
|
||||
# update outs according to values
|
||||
|
||||
# update
|
||||
@api.model
|
||||
def _get_all_base_domain(self, company_id=False):
|
||||
domain = [
|
||||
('state', '=', 'done'),
|
||||
'|',
|
||||
'&',
|
||||
('location_id.company_id', '=', False),
|
||||
('location_dest_id.company_id', '=', company_id or self.env.user.company_id.id),
|
||||
'&',
|
||||
('location_id.company_id', '=', company_id or self.env.user.company_id.id),
|
||||
('location_dest_id.company_id', '=', False)
|
||||
]
|
||||
return domain
|
||||
|
||||
def _get_in_domain(self):
|
||||
return [('product_id', '=', self.product_id.id)] + self._get_in_base_domain(company_id=self.company_id.id)
|
||||
|
||||
def _get_all_domain(self):
|
||||
return [('product_id', '=', self.product_id.id)] + self._get_all_base_domain(company_id=self.company_id.id)
|
||||
|
||||
def _is_in(self):
|
||||
""" Check if the move should be considered as entering the company so that the cost method
|
||||
will be able to apply the correct logic.
|
||||
|
||||
:return: True if the move is entering the company else False
|
||||
"""
|
||||
return not self.location_id.company_id and self.location_dest_id.company_id.id == self.company_id.id
|
||||
|
||||
def _is_out(self):
|
||||
""" Check if the move should be considered as leaving the company so that the cost method
|
||||
will be able to apply the correct logic.
|
||||
|
||||
:return: True if the move is leaving the company else False
|
||||
"""
|
||||
return self.location_id.company_id.id == self.company_id.id and not self.location_dest_id.company_id
|
||||
|
||||
@api.multi
|
||||
def action_done(self):
|
||||
qty_available = {}
|
||||
for move in self:
|
||||
#Should write move.price_unit here maybe, certainly on incoming
|
||||
if move.product_id.cost_method == 'average':
|
||||
qty_available[move.product_id.id] = move.product_id.qty_available
|
||||
self.product_price_update_before_done()
|
||||
res = super(StockMove, self).action_done()
|
||||
for move in res:
|
||||
if move.location_id.usage not in ('internal', 'transit') and move.location_dest_id.usage in ('internal', 'transit'):
|
||||
if move._is_in():
|
||||
if move.product_id.cost_method in ['fifo', 'average']:
|
||||
if not move.price_unit:
|
||||
move.price_unit = move._get_price_unit()
|
||||
move.value = move.price_unit * move.product_qty
|
||||
move.cumulated_value = move.product_id._get_latest_cumulated_value(not_move=move) + move.value
|
||||
move.remaining_qty = move.product_qty
|
||||
price_unit = move.price_unit or move.get_price_unit()
|
||||
value = price_unit * move.product_qty
|
||||
vals = {
|
||||
'price_unit': price_unit,
|
||||
'value': value,
|
||||
'remaining_value': value,
|
||||
}
|
||||
if move.product_id.cost_method == 'fifo':
|
||||
# If you find an out with qty_remaining (because of negative stock), you can change it over there
|
||||
candidates_out = move.product_id._get_candidates_out_move()
|
||||
qty_to_take = move.product_qty
|
||||
for candidate in candidates_out:
|
||||
if candidate.remaining_qty < qty_to_take:
|
||||
qty_taken_on_candidate = candidate.remaining_qty
|
||||
else:
|
||||
qty_taken_on_candidate = qty_to_take
|
||||
candidate.remaining_qty -= qty_taken_on_candidate
|
||||
move.remaining_qty -= qty_taken_on_candidate
|
||||
qty_to_take -= qty_taken_on_candidate
|
||||
candidate.value += move.price_unit * qty_taken_on_candidate
|
||||
candidate.cumulated_value += move.price_unit * qty_taken_on_candidate
|
||||
candidate._update_future_cumulated_value(move.price_unit * qty_taken_on_candidate)
|
||||
candidate.price_unit = candidate.value / candidate.product_qty
|
||||
move.last_done_qty = move.product_id.qty_available
|
||||
else:
|
||||
move.price_unit = move.product_id.standard_price
|
||||
move.value = move.price_unit * move.product_qty
|
||||
elif move.location_id.usage in ('internal', 'transit') and move.location_dest_id.usage not in ('internal', 'transit'):
|
||||
vals['remaining_qty'] = move.product_qty
|
||||
move.write(vals)
|
||||
else: # standard
|
||||
move.write({
|
||||
'price_unit': move.product_id.standard_price,
|
||||
'value': move.product_id.standard_price * move.product_qty,
|
||||
})
|
||||
elif move._is_out():
|
||||
if move.product_id.cost_method == 'fifo':
|
||||
qty_to_take = move.product_qty
|
||||
tmp_value = 0
|
||||
candidates = move.product_id._get_candidates_move()
|
||||
last_candidate = False
|
||||
# Find back incoming stock moves (called candidates here) to value this move.
|
||||
qty_to_take_on_candidates = move.product_qty
|
||||
candidates = move.product_id._get_fifo_candidates_in_move()
|
||||
new_standard_price = 0
|
||||
tmp_value = 0 # to accumulate the value taken on the candidates
|
||||
for candidate in candidates:
|
||||
if candidate.remaining_qty <= qty_to_take:
|
||||
new_standard_price = candidate.price_unit
|
||||
if candidate.remaining_qty <= qty_to_take_on_candidates:
|
||||
qty_taken_on_candidate = candidate.remaining_qty
|
||||
else:
|
||||
qty_taken_on_candidate = qty_to_take
|
||||
tmp_value += qty_taken_on_candidate * candidate.price_unit
|
||||
candidate.remaining_qty -= qty_taken_on_candidate
|
||||
qty_to_take -= qty_taken_on_candidate
|
||||
if qty_to_take == 0:
|
||||
qty_taken_on_candidate = qty_to_take_on_candidates
|
||||
|
||||
value_taken_on_candidate = qty_taken_on_candidate * candidate.price_unit
|
||||
candidate_vals = {
|
||||
'remaining_qty': candidate.remaining_qty - qty_taken_on_candidate,
|
||||
'remaining_value': candidate.remaining_value - value_taken_on_candidate,
|
||||
}
|
||||
candidate.write(candidate_vals)
|
||||
|
||||
qty_to_take_on_candidates -= qty_taken_on_candidate
|
||||
tmp_value += value_taken_on_candidate
|
||||
if qty_to_take_on_candidates == 0:
|
||||
break
|
||||
last_candidate = candidate
|
||||
if last_candidate:
|
||||
move.last_done_move_id = last_candidate.id
|
||||
move.last_done_remaining_qty = last_candidate.remaining_qty
|
||||
if qty_to_take > 0:
|
||||
move.remaining_qty = qty_to_take # In case there are no candidates to match, put standard price on it
|
||||
move.value = -tmp_value
|
||||
move.cumulated_value = move.product_id._get_latest_cumulated_value(not_move=move) + move.value
|
||||
move.last_done_qty = move.product_id.qty_available
|
||||
elif move.product_id.cost_method == 'average':
|
||||
|
||||
# Update the standard price with the price of the last used candidate, if any.
|
||||
if new_standard_price:
|
||||
move.product_id.standard_price = new_standard_price
|
||||
|
||||
# If there's still quantity to value but we're out of candidates, we fall in the
|
||||
# negative stock use case. We chose to value the out move at the price of the
|
||||
# last out and a correction entry will be made once `_fifo_vacuum` is called.
|
||||
if qty_to_take_on_candidates == 0:
|
||||
move.write({
|
||||
'value': -tmp_value, # outgoing move are valued negatively
|
||||
'price_unit': -tmp_value / move.product_qty,
|
||||
})
|
||||
elif qty_to_take_on_candidates > 0:
|
||||
last_fifo_price = new_standard_price or move.product_id.standard_price
|
||||
negative_stock_value = last_fifo_price * -qty_to_take_on_candidates
|
||||
vals = {
|
||||
'remaining_qty': -qty_to_take_on_candidates,
|
||||
'remaining_value': negative_stock_value,
|
||||
'value': -tmp_value + negative_stock_value,
|
||||
'price_unit': (-tmp_value + negative_stock_value) / move.product_qty,
|
||||
}
|
||||
move.write(vals)
|
||||
elif move.product_id.cost_method in ['standard', 'average']:
|
||||
curr_rounding = move.company_id.currency_id.rounding
|
||||
avg_price_unit = float_round(move.product_id._get_latest_cumulated_value(not_move=move) / qty_available[move.product_id.id], precision_rounding=curr_rounding)
|
||||
move.value = float_round(-avg_price_unit * move.product_qty, precision_rounding=curr_rounding)
|
||||
move.remaining_qty = 0
|
||||
move.cumulated_value = move.product_id._get_latest_cumulated_value(not_move=move) + move.value
|
||||
move.last_done_qty = move.product_id.qty_available
|
||||
elif move.product_id.cost_method == 'standard':
|
||||
move.value = - move.product_id.standard_price * move.product_qty
|
||||
|
||||
value = -float_round(move.product_id.standard_price * move.product_qty, precision_rounding=curr_rounding)
|
||||
move.write({
|
||||
'value': value,
|
||||
'price_unit': value / move.product_qty,
|
||||
})
|
||||
for move in res.filtered(lambda m: m.product_id.valuation == 'real_time'):
|
||||
move._account_entry_move()
|
||||
return res
|
||||
|
||||
@api.multi
|
||||
def product_price_update_before_done(self):
|
||||
tmpl_dict = defaultdict(lambda: 0.0)
|
||||
# adapt standard price on incomming moves if the product cost_method is 'average'
|
||||
std_price_update = {}
|
||||
for move in self.filtered(lambda move: move.location_id.usage in ('supplier', 'production') and move.product_id.cost_method == 'average'):
|
||||
product_tot_qty_available = move.product_id.qty_available + tmpl_dict[move.product_id.id]
|
||||
|
||||
if product_tot_qty_available == 0:
|
||||
new_std_price = move.get_price_unit()
|
||||
else:
|
||||
# Get the standard price
|
||||
amount_unit = std_price_update.get((move.company_id.id, move.product_id.id)) or move.product_id.standard_price
|
||||
new_std_price = ((amount_unit * product_tot_qty_available) + (move.get_price_unit() * move.product_qty)) / (product_tot_qty_available + move.product_qty)
|
||||
|
||||
tmpl_dict[move.product_id.id] += move.product_qty
|
||||
# Write the standard price, as SUPERUSER_ID because a warehouse manager may not have the right to write on products
|
||||
move.product_id.with_context(force_company=move.company_id.id).sudo().write({'standard_price': new_std_price})
|
||||
std_price_update[move.company_id.id, move.product_id.id] = new_std_price
|
||||
|
||||
@api.model
|
||||
def _fifo_vacuum(self):
|
||||
""" Every moves that need to be fixed are identifiable by having a negative `remaining_qty`.
|
||||
"""
|
||||
# FIXME: sort by date (does filtered lose the order?)
|
||||
for move in self.filtered(lambda m: (m._is_in() or m._is_out()) and m.remaining_qty < 0):
|
||||
domain = [
|
||||
'|',
|
||||
('date', '>', move.date),
|
||||
'&',
|
||||
('date', '=', move.date),
|
||||
('id', '>', move.id)
|
||||
]
|
||||
domain += self._get_in_domain()
|
||||
candidates = self.search(domain, order='date, id')
|
||||
if not candidates:
|
||||
return
|
||||
qty_to_take_on_candidates = abs(move.remaining_qty)
|
||||
tmp_value = 0
|
||||
for candidate in candidates:
|
||||
if candidate.remaining_qty <= qty_to_take_on_candidates:
|
||||
qty_taken_on_candidate = candidate.remaining_qty
|
||||
else:
|
||||
qty_taken_on_candidate = qty_to_take_on_candidates
|
||||
|
||||
value_taken_on_candidate = qty_taken_on_candidate * candidate.price_unit
|
||||
candidate_vals = {
|
||||
'remaining_qty': candidate.remaining_qty - qty_taken_on_candidate,
|
||||
'remaining_value': candidate.remaining_value - value_taken_on_candidate,
|
||||
}
|
||||
candidate.write(candidate_vals)
|
||||
|
||||
qty_to_take_on_candidates -= qty_taken_on_candidate
|
||||
tmp_value += value_taken_on_candidate
|
||||
if qty_to_take_on_candidates == 0:
|
||||
break
|
||||
|
||||
corrected_value = move.remaining_value + tmp_value
|
||||
if move.product_id.valuation == 'real_time':
|
||||
if move._is_in():
|
||||
# If we just compensated an IN move that has a negative remaining
|
||||
# quantity, it means the move has returned more items than it received.
|
||||
# The correction should behave as a return too. As `_account_entry_move`
|
||||
# will post the natural values for an IN move (credit IN account, debit
|
||||
# OUT one), we inverse the sign to create the correct entries.
|
||||
move.with_context(force_valuation_amount=-corrected_value)._account_entry_move()
|
||||
else:
|
||||
move.with_context(force_valuation_amount=corrected_value)._account_entry_move()
|
||||
|
||||
if qty_to_take_on_candidates == 0:
|
||||
move.write({
|
||||
'value': move.value - corrected_value,
|
||||
'remaining_value': 0,
|
||||
'remaining_qty': 0,
|
||||
})
|
||||
elif qty_to_take_on_candidates > 0:
|
||||
# It's possible that `remaining_value` is equals to 0 even if the move needs to be
|
||||
# compensated (negative stock for the first ever out in FIFO).
|
||||
move.write({
|
||||
'value': move.value - corrected_value,
|
||||
'remaining_value': 0 if not move.remaining_value else move.remaining_value + corrected_value,
|
||||
'remaining_qty': -qty_to_take_on_candidates,
|
||||
})
|
||||
|
||||
@api.multi
|
||||
def _get_accounting_data_for_valuation(self):
|
||||
""" Return the accounts and journal to use to post Journal Entries for
|
||||
@@ -344,7 +431,9 @@ class StockMove(models.Model):
|
||||
'journal_id': journal_id,
|
||||
'line_ids': move_lines,
|
||||
'date': date,
|
||||
'ref': self.picking_id.name})
|
||||
'ref': self.picking_id.name,
|
||||
'stock_move_id': self.id,
|
||||
})
|
||||
new_account_move.post()
|
||||
|
||||
def _account_entry_move(self):
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -39,10 +39,7 @@
|
||||
</field>
|
||||
<field name="standard_price" position="replace">
|
||||
<field name="standard_price"
|
||||
attrs="{'readonly': [('valuation','=','real_time')]}"
|
||||
widget='monetary' options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="average_price" readonly="1"
|
||||
attrs="{'invisible': [('cost_method','!=', 'average')]}"
|
||||
attrs="{'readonly':[('valuation','=','real_time')]}"
|
||||
widget='monetary' options="{'currency_field': 'currency_id'}"/>
|
||||
</field>
|
||||
<div name="standard_price_uom" position="after">
|
||||
@@ -97,6 +94,7 @@
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="stock_value" sum="Stock Valuation"/>
|
||||
<field name="qty_available" context="{'company_owned': True}"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -2,6 +2,17 @@
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record id="view_move_form_inherit" model="ir.ui.view">
|
||||
<field name="name">stock.move.form.inherit</field>
|
||||
<field name="model">stock.move</field>
|
||||
<field name="inherit_id" ref="stock.view_move_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button name="action_get_account_moves" icon="fa-arrows" class="oe_stat_button" string="Account Moves" type="object"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_inventory_form_inherit" model="ir.ui.view">
|
||||
<field name="name">stock.inventory.form.inherit</field>
|
||||
<field name="model">stock.inventory</field>
|
||||
@@ -50,14 +61,16 @@
|
||||
<field name="picking_type_id" invisible="1"/>
|
||||
<field name="create_date" invisible="1" groups="base.group_no_one"/>
|
||||
<field name="product_id"/>
|
||||
<field name="price_unit"/>
|
||||
<field name="product_uom_qty"/>
|
||||
<field name="product_uom" options="{'no_open': True, 'no_create': True}" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<field name="location_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="location_dest_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="date" groups="base.group_no_one"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="product_uom_qty" string="Qty"/>
|
||||
<field name="product_uom" options="{'no_open': True, 'no_create': True}" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<field name="price_unit"/>
|
||||
<field name="remaining_qty"/>
|
||||
<field name="value" sum="Stock Valuation"/>
|
||||
<field name="remaining_value" sum="Stock Valuation"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -17,8 +17,19 @@ class WizardValuationHistory(models.TransientModel):
|
||||
@api.multi
|
||||
def open_table(self):
|
||||
self.ensure_one()
|
||||
if self.compute_at_date and self.date:
|
||||
|
||||
# Call `_fifo_vacuum` on concerned moves
|
||||
fifo_valued_products = self.env['product.product']
|
||||
fifo_valued_products |= self.env['product.template'].search([('property_cost_method', '=', 'fifo')]).mapped('product_variant_ids')
|
||||
fifo_valued_categories = self.env['product.category'].search([('property_cost_method', '=', 'fifo')])
|
||||
fifo_valued_products |= self.env['product.product'].search([('categ_id', 'child_of', fifo_valued_categories.ids)])
|
||||
moves_to_vacuum = self.env['stock.move']
|
||||
Move = self.env['stock.move']
|
||||
for product in fifo_valued_products:
|
||||
moves_to_vacuum |= Move.search([('product_id', '=', product.id), ('remaining_qty', '<', 0)] + Move._get_all_base_domain())
|
||||
moves_to_vacuum._fifo_vacuum()
|
||||
|
||||
if self.compute_at_date and self.date:
|
||||
action = self.env['ir.model.data'].xmlid_to_object('stock_account.stock_move_valuation_action')
|
||||
if not action:
|
||||
action = {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<group>
|
||||
<group>
|
||||
<field name="compute_at_date" widget="radio"/>
|
||||
<field name="date" attrs="{'invisible': [('compute_at_date', '=', False)]}"/>
|
||||
<field name="date" attrs="{'invisible': [('compute_at_date', '=', 0)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<footer>
|
||||
|
||||
+7
-7
@@ -2,23 +2,23 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
{
|
||||
'name': 'Warehouse Management: Waves',
|
||||
'name': 'Warehouse Management: Batch Picking',
|
||||
'version': '1.0',
|
||||
'category': 'Warehouse',
|
||||
'description': """
|
||||
This module adds the picking wave option in warehouse management
|
||||
================================================================
|
||||
This module adds the batch picking option in warehouse management
|
||||
=================================================================
|
||||
""",
|
||||
'website': 'https://www.odoo.com/page/warehouse',
|
||||
'depends': ['stock'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'views/stock_picking_wave_views.xml',
|
||||
'data/stock_picking_wave_data.xml',
|
||||
'wizard/stock_picking_to_wave_views.xml',
|
||||
'views/stock_picking_batch_views.xml',
|
||||
'data/stock_picking_batch_data.xml',
|
||||
'wizard/stock_picking_to_batch_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'data/stock_picking_wave_demo.xml',
|
||||
'data/stock_picking_batch_demo.xml',
|
||||
],
|
||||
'installable': True,
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Batch picking related subtypes for messaging / Chatter -->
|
||||
<record id="mt_batch_state" model="mail.message.subtype">
|
||||
<field name="name">Stage Changed</field>
|
||||
<field name="res_model">stock.picking.batch</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Stage Changed</field>
|
||||
</record>
|
||||
|
||||
<record id="seq_picking_batch" model="ir.sequence">
|
||||
<field name="name">Batch Picking</field>
|
||||
<field name="code">picking.batch</field>
|
||||
<field name="prefix">Batch/</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Add batch picking -->
|
||||
<record id="stock_picking_batch_dry_1" model="stock.picking.batch">
|
||||
<field name="name">Picking Dry for John</field>
|
||||
<field name="state">in_progress</field>
|
||||
</record>
|
||||
<record id="stock_picking_batch_freeze_1" model="stock.picking.batch">
|
||||
<field name="name">Picking Freeze for Mickael</field>
|
||||
<field name="state">in_progress</field>
|
||||
</record>
|
||||
|
||||
<!-- Add picking -->
|
||||
<record id="Picking_A" model="stock.picking">
|
||||
<field name="name">Picking #1</field>
|
||||
<field name="move_type">one</field>
|
||||
<field name="priority">2</field>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
<field name="batch_id" ref="stock_picking_batch_freeze_1"/>
|
||||
<field name="location_id" ref="stock.stock_location_stock"/>
|
||||
<field name="location_dest_id" ref="stock.stock_location_output"/>
|
||||
</record>
|
||||
<record id="Picking_B" model="stock.picking">
|
||||
<field name="name">Picking #2</field>
|
||||
<field name="move_type">one</field>
|
||||
<field name="state">assigned</field>
|
||||
<field name="priority">1</field>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
<field name="batch_id" ref="stock_picking_batch_dry_1"/>
|
||||
<field name="location_id" ref="stock.stock_location_stock"/>
|
||||
<field name="location_dest_id" ref="stock.stock_location_output"/>
|
||||
</record>
|
||||
<record id="Picking_C" model="stock.picking">
|
||||
<field name="name">Picking #3</field>
|
||||
<field name="move_type">one</field>
|
||||
<field name="state">assigned</field>
|
||||
<field name="priority">1</field>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
<field name="batch_id" ref="stock_picking_batch_freeze_1"/>
|
||||
<field name="location_id" ref="stock.stock_location_stock"/>
|
||||
<field name="location_dest_id" ref="stock.stock_location_output"/>
|
||||
</record>
|
||||
|
||||
<!-- add Product -->
|
||||
<record id="product_product_ice_cream_choco" model="product.product">
|
||||
<field name="name">Ice Cream Chocolate</field>
|
||||
<field name="default_code">IC-CHOCO</field>
|
||||
<field name="categ_id" ref="product.product_category_all"/>
|
||||
<field name="list_price">450.0</field>
|
||||
<field name="standard_price">300.0</field>
|
||||
<field name="type">consu</field>
|
||||
<field name="uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="uom_po_id" ref="product.product_uom_unit"/>
|
||||
<field name="description_sale">Ice Cream Chocolate with sticks</field>
|
||||
</record>
|
||||
<record id="product_product_ice_cream_vani" model="product.product">
|
||||
<field name="name">Ice Cream Vanilla</field>
|
||||
<field name="default_code">IC-VANI</field>
|
||||
<field name="categ_id" ref="product.product_category_all"/>
|
||||
<field name="list_price">450.0</field>
|
||||
<field name="standard_price">300.0</field>
|
||||
<field name="type">consu</field>
|
||||
<field name="uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="uom_po_id" ref="product.product_uom_unit"/>
|
||||
<field name="description_sale">Ice Cream Vanilla</field>
|
||||
</record>
|
||||
<record id="product_product_dry_specu" model="product.product">
|
||||
<field name="name">Speculoos</field>
|
||||
<field name="default_code">DRY-SPEC</field>
|
||||
<field name="categ_id" ref="product.product_category_all"/>
|
||||
<field name="list_price">150.0</field>
|
||||
<field name="standard_price">100.0</field>
|
||||
<field name="type">consu</field>
|
||||
<field name="uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="uom_po_id" ref="product.product_uom_unit"/>
|
||||
<field name="description_sale">Speculoos - A belgian speciality</field>
|
||||
</record>
|
||||
|
||||
<!-- Add stock move -->
|
||||
<record id="stock_move1" model="stock.move">
|
||||
<field name="name">A first stock move</field>
|
||||
<field name="picking_id" ref="Picking_A"/>
|
||||
<field name="location_id" ref="stock.stock_location_stock"/>
|
||||
<field name="location_dest_id" ref="stock.stock_location_output"/>
|
||||
<field name="product_uom" ref="product.product_uom_unit" />
|
||||
<field name="product_id" ref="product_product_ice_cream_choco"/>
|
||||
</record>
|
||||
<record id="stock_move2" model="stock.move">
|
||||
<field name="name">A second stock move</field>
|
||||
<field name="picking_id" ref="Picking_A"/>
|
||||
<field name="location_id" ref="stock.stock_location_stock"/>
|
||||
<field name="location_dest_id" ref="stock.stock_location_output"/>
|
||||
<field name="product_uom" ref="product.product_uom_unit" />
|
||||
<field name="product_id" ref="product_product_ice_cream_vani"/>
|
||||
</record>
|
||||
<record id="stock_move3" model="stock.move">
|
||||
<field name="name">A third stock move</field>
|
||||
<field name="picking_id" ref="Picking_B"/>
|
||||
<field name="location_id" ref="stock.stock_location_stock"/>
|
||||
<field name="location_dest_id" ref="stock.stock_location_output"/>
|
||||
<field name="product_uom" ref="product.product_uom_unit" />
|
||||
<field name="product_id" ref="product_product_dry_specu"/>
|
||||
</record>
|
||||
<record id="stock_move4" model="stock.move">
|
||||
<field name="name">A fourth stock move</field>
|
||||
<field name="picking_id" ref="Picking_C"/>
|
||||
<field name="location_id" ref="stock.stock_location_stock"/>
|
||||
<field name="location_dest_id" ref="stock.stock_location_output"/>
|
||||
<field name="product_uom" ref="product.product_uom_unit" />
|
||||
<field name="product_id" ref="product_product_ice_cream_vani"/>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user