[MERGE] Forward-port saas-16 up to ba15df47cb
This commit is contained in:
@@ -520,6 +520,12 @@ class AccountJournal(models.Model):
|
||||
res += [(journal.id, name)]
|
||||
return res
|
||||
|
||||
@api.model
|
||||
def name_search(self, name='', args=None, operator='ilike', limit=100):
|
||||
args = args or []
|
||||
recs = self.search(['|', ('code', operator, name), ('name', operator, name)] + args, limit=limit)
|
||||
return recs.name_get()
|
||||
|
||||
@api.multi
|
||||
@api.depends('company_id')
|
||||
def _belong_to_company(self):
|
||||
|
||||
@@ -410,8 +410,6 @@ class AccountBankStatementLine(models.Model):
|
||||
for line in self:
|
||||
if line.journal_entry_ids.ids:
|
||||
raise UserError(_('In order to delete a bank statement line, you must first cancel it to delete related journal items.'))
|
||||
if line.move_name:
|
||||
raise UserError(_('It is not allowed to delete a bank statement line that already created a journal entry since it would create a gap in the numbering. You should create the journal entry again and cancel it thanks to a regular revert.'))
|
||||
return super(AccountBankStatementLine, self).unlink()
|
||||
|
||||
@api.multi
|
||||
|
||||
@@ -486,6 +486,8 @@ class AccountInvoice(models.Model):
|
||||
payment_term_id = False
|
||||
fiscal_position = False
|
||||
bank_id = False
|
||||
warning = {}
|
||||
domain = {}
|
||||
company_id = self.company_id.id
|
||||
p = self.partner_id if not company_id else self.partner_id.with_context(force_company=company_id)
|
||||
type = self.type
|
||||
@@ -520,7 +522,6 @@ class AccountInvoice(models.Model):
|
||||
}
|
||||
if p.invoice_warn == 'block':
|
||||
self.partner_id = False
|
||||
return {'warning': warning}
|
||||
|
||||
self.account_id = account_id
|
||||
self.payment_term_id = payment_term_id
|
||||
@@ -530,8 +531,14 @@ class AccountInvoice(models.Model):
|
||||
bank_ids = p.commercial_partner_id.bank_ids
|
||||
bank_id = bank_ids[0].id if bank_ids else False
|
||||
self.partner_bank_id = bank_id
|
||||
return {'domain': {'partner_bank_id': [('id', 'in', bank_ids.ids)]}}
|
||||
return {}
|
||||
domain = {'partner_bank_id': [('id', 'in', bank_ids.ids)]}
|
||||
|
||||
res = {}
|
||||
if warning:
|
||||
res['warning'] = warning
|
||||
if domain:
|
||||
res['domain'] = domain
|
||||
return res
|
||||
|
||||
@api.multi
|
||||
def get_delivery_partner_id(self):
|
||||
@@ -1029,6 +1036,20 @@ class AccountInvoice(models.Model):
|
||||
result.append((0, 0, values))
|
||||
return result
|
||||
|
||||
def _get_refund_common_fields(self):
|
||||
return ['partner_id', 'payment_term_id', 'account_id', 'currency_id', 'journal_id']
|
||||
|
||||
def _get_refund_prepare_fields(self):
|
||||
return ['name', 'reference', 'comment', 'date_due']
|
||||
|
||||
def _get_refund_modify_read_fields(self):
|
||||
read_fields = ['type', 'number', 'invoice_line_ids', 'tax_line_ids', 'date']
|
||||
return self._get_refund_common_fields() + self._get_refund_prepare_fields() + read_fields
|
||||
|
||||
def _get_refund_copy_fields(self):
|
||||
copy_fields = ['company_id', 'user_id', 'fiscal_position_id']
|
||||
return self._get_refund_common_fields() + self._get_refund_prepare_fields() + copy_fields
|
||||
|
||||
@api.model
|
||||
def _get_refund_common_fields(self):
|
||||
return ['partner_id', 'payment_term_id', 'account_id', 'currency_id', 'journal_id']
|
||||
@@ -1397,6 +1418,12 @@ class AccountInvoiceLine(models.Model):
|
||||
"""
|
||||
pass
|
||||
|
||||
@api.multi
|
||||
def unlink(self):
|
||||
if self.filtered(lambda r: r.invoice_id and r.invoice_id.state != 'draft'):
|
||||
raise UserError(_('You can only delete an invoice line if the invoice is in draft state.'))
|
||||
return super(AccountInvoiceLine, self).unlink()
|
||||
|
||||
class AccountInvoiceTax(models.Model):
|
||||
_name = "account.invoice.tax"
|
||||
_description = "Invoice Tax"
|
||||
|
||||
@@ -228,8 +228,8 @@ class AccountMove(models.Model):
|
||||
'date': date,
|
||||
'journal_id': journal_id.id if journal_id else self.journal_id.id,
|
||||
'ref': _('reversal of: ') + self.name})
|
||||
for acm_line in reversed_move.line_ids:
|
||||
acm_line.with_context(check_move_validity=False).write({
|
||||
for acm_line in reversed_move.line_ids.with_context(check_move_validity=False):
|
||||
acm_line.write({
|
||||
'debit': acm_line.credit,
|
||||
'credit': acm_line.debit,
|
||||
'amount_currency': -acm_line.amount_currency
|
||||
|
||||
@@ -52,7 +52,7 @@ class account_abstract_payment(models.AbstractModel):
|
||||
@api.constrains('amount')
|
||||
def _check_amount(self):
|
||||
if not self.amount > 0.0:
|
||||
raise ValidationError('The payment amount must be strictly positive.')
|
||||
raise ValidationError(_('The payment amount must be strictly positive.'))
|
||||
|
||||
@api.one
|
||||
@api.depends('payment_type', 'journal_id')
|
||||
@@ -434,8 +434,16 @@ class account_payment(models.Model):
|
||||
amount_wo = total_payment_company_signed - total_residual_company_signed
|
||||
else:
|
||||
amount_wo = total_residual_company_signed - total_payment_company_signed
|
||||
debit_wo = amount_wo > 0 and amount_wo or 0.0
|
||||
credit_wo = amount_wo < 0 and -amount_wo or 0.0
|
||||
# Align the sign of the secondary currency writeoff amount with the sign of the writeoff
|
||||
# amount in the company currency
|
||||
if amount_wo > 0:
|
||||
debit_wo = amount_wo
|
||||
credit_wo = 0.0
|
||||
amount_currency_wo = abs(amount_currency_wo)
|
||||
else:
|
||||
debit_wo = 0.0
|
||||
credit_wo = -amount_wo
|
||||
amount_currency_wo = -abs(amount_currency_wo)
|
||||
writeoff_line['name'] = self.writeoff_label
|
||||
writeoff_line['account_id'] = self.writeoff_account_id.id
|
||||
writeoff_line['debit'] = debit_wo
|
||||
|
||||
@@ -322,7 +322,7 @@
|
||||
<field domain="[('company_id', '=', company_id), ('internal_type', '=', 'payable'), ('deprecated', '=', False)]"
|
||||
name="account_id" groups="account.group_account_manager"/>
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="payment_term_id" options="{'no_create': True}" attrs="{'invisible': [('payment_term_id','=',False)]}"/>
|
||||
<field name="payment_term_id" options="{'no_create': True}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="fiscal_position_id" options="{'no_create': True}" placeholder="Auto-detect"/>
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
id="account.action_all_partner_invoices"
|
||||
name="All Invoices"
|
||||
res_model="account.invoice"
|
||||
domain="[('partner_id', '=', active_id)]"
|
||||
domain="[('partner_id', 'child_of', active_id)]"
|
||||
src_model="res.partner"/>
|
||||
|
||||
<act_window
|
||||
@@ -226,6 +226,7 @@
|
||||
<record id="view_account_journal_tree" model="ir.ui.view">
|
||||
<field name="name">account.journal.tree</field>
|
||||
<field name="model">account.journal</field>
|
||||
<field name="priority">1</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Account Journal">
|
||||
<field name='sequence' widget='handle'/>
|
||||
|
||||
@@ -95,7 +95,10 @@ class AccountInvoiceRefund(models.TransientModel):
|
||||
'fiscal_position_id': inv.fiscal_position_id.id,
|
||||
})
|
||||
for field in inv_obj._get_refund_common_fields():
|
||||
invoice[field] = invoice[field] and invoice[field][0]
|
||||
if inv_obj._fields[field].type == 'many2one':
|
||||
invoice[field] = invoice[field] and invoice[field][0]
|
||||
else:
|
||||
invoice[field] = invoice[field] or False
|
||||
inv_refund = inv_obj.create(invoice)
|
||||
if inv_refund.payment_term_id.id:
|
||||
inv_refund._onchange_payment_term_date_invoice()
|
||||
|
||||
@@ -147,7 +147,7 @@ QUnit.test('click events are correctly triggered', function (assert) {
|
||||
execute_action: function (event) {
|
||||
var data = event.data;
|
||||
assert.strictEqual(data.model, 'line', "should have correct model");
|
||||
assert.strictEqual(data.record_id, 4, "should have correct res_id");
|
||||
assert.deepEqual(data.res_ids, [4], "should have correct res_ids");
|
||||
assert.strictEqual(data.action_data.name, 'create_move',
|
||||
"should call correct method");
|
||||
},
|
||||
|
||||
@@ -43,6 +43,8 @@ class AccountBankStatementImport(models.TransientModel):
|
||||
if not journal:
|
||||
# The active_id is passed in context so the wizard can call import_file again once the journal is created
|
||||
return self.with_context(active_id=self.ids[0])._journal_creation_wizard(currency, account_number)
|
||||
if not journal.default_debit_account_id or not journal.default_credit_account_id:
|
||||
raise UserError(_('You have to set a Default Debit Account and a Default Credit Account for the journal: %s') % (journal.name,))
|
||||
# Prepare statement data to be used for bank statements creation
|
||||
stmts_vals = self._complete_stmts_vals(stmts_vals, journal, account_number)
|
||||
# Create the bank statements
|
||||
@@ -220,6 +222,9 @@ class AccountBankStatementImport(models.TransientModel):
|
||||
filtered_st_lines.append(line_vals)
|
||||
else:
|
||||
ignored_statement_lines_import_ids.append(line_vals['unique_import_id'])
|
||||
if 'balance_start' in st_vals:
|
||||
st_vals['balance_start'] += line_vals['amount']
|
||||
|
||||
if len(filtered_st_lines) > 0:
|
||||
# Remove values that won't be used to create records
|
||||
st_vals.pop('transactions', None)
|
||||
|
||||
@@ -468,6 +468,12 @@ msgstr ""
|
||||
msgid "You have already imported that file."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_import
|
||||
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:47
|
||||
#, python-format
|
||||
msgid "You have to set a Default Debit Account and a Default Credit Account for the journal: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_bank_statement_import
|
||||
#: model:ir.ui.view,arch_db:account_bank_statement_import.account_bank_statement_import_view
|
||||
msgid "_Import"
|
||||
|
||||
@@ -29,13 +29,7 @@ class AccountRegisterPayments(models.TransientModel):
|
||||
def _onchange_amount(self):
|
||||
if hasattr(super(AccountRegisterPayments, self), '_onchange_amount'):
|
||||
super(AccountRegisterPayments, self)._onchange_amount()
|
||||
# TODO: merge, refactor and complete the amount_to_text and amount_to_text_en classes
|
||||
check_amount_in_words = amount_to_text_en.amount_to_text(math.floor(self.amount), lang='en', currency='')
|
||||
check_amount_in_words = check_amount_in_words.replace(' and Zero Cent', '') # Ugh
|
||||
decimals = self.amount % 1
|
||||
if decimals >= 10**-2:
|
||||
check_amount_in_words += _(' and %s/100') % str(int(round(float_round(decimals*100, precision_rounding=1))))
|
||||
self.check_amount_in_words = check_amount_in_words
|
||||
self.check_amount_in_words = self.env['account.payment']._get_check_amount_in_words(self.amount)
|
||||
|
||||
def get_payment_vals(self):
|
||||
res = super(AccountRegisterPayments, self).get_payment_vals()
|
||||
@@ -56,6 +50,15 @@ class AccountPayment(models.Model):
|
||||
help="The selected journal is configured to print check numbers. If your pre-printed check paper already has numbers "
|
||||
"or if the current numbering is wrong, you can change it in the journal configuration page.")
|
||||
|
||||
def _get_check_amount_in_words(self, amount):
|
||||
# TODO: merge, refactor and complete the amount_to_text and amount_to_text_en classes
|
||||
check_amount_in_words = amount_to_text_en.amount_to_text(math.floor(amount), lang='en', currency='')
|
||||
check_amount_in_words = check_amount_in_words.replace(' and Zero Cent', '') # Ugh
|
||||
decimals = amount % 1
|
||||
if decimals >= 10**-2:
|
||||
check_amount_in_words += _(' and %s/100') % str(int(round(float_round(decimals*100, precision_rounding=1))))
|
||||
return check_amount_in_words
|
||||
|
||||
@api.onchange('journal_id')
|
||||
def _onchange_journal_id(self):
|
||||
if hasattr(super(AccountPayment, self), '_onchange_journal_id'):
|
||||
@@ -67,12 +70,7 @@ class AccountPayment(models.Model):
|
||||
def _onchange_amount(self):
|
||||
if hasattr(super(AccountPayment, self), '_onchange_amount'):
|
||||
super(AccountPayment, self)._onchange_amount()
|
||||
check_amount_in_words = amount_to_text_en.amount_to_text(math.floor(self.amount), lang='en', currency='')
|
||||
check_amount_in_words = check_amount_in_words.replace(' and Zero Cent', '') # Ugh
|
||||
decimals = self.amount % 1
|
||||
if decimals >= 10**-2:
|
||||
check_amount_in_words += _(' and %s/100') % str(int(round(float_round(decimals*100, precision_rounding=1))))
|
||||
self.check_amount_in_words = check_amount_in_words
|
||||
self.check_amount_in_words = self._get_check_amount_in_words(self.amount)
|
||||
|
||||
def _check_communication(self, payment_method_id, communication):
|
||||
super(AccountPayment, self)._check_communication(payment_method_id, communication)
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="account_analytic_line_action">
|
||||
<field name="context">{'search_default_group_date': 1, 'search_default_group_journal': 1, 'default_account_id': active_id}</field>
|
||||
<field name="context">{'search_default_group_date': 1, 'default_account_id': active_id}</field>
|
||||
<field name="domain">[('account_id','=', active_id)]</field>
|
||||
<field name="name">Costs & Revenues</field>
|
||||
<field name="res_model">account.analytic.line</field>
|
||||
|
||||
@@ -44,8 +44,8 @@ class BarcodeNomenclature(models.Model):
|
||||
if len(code) != 8:
|
||||
return -1
|
||||
|
||||
sum1 = ean[1] + ean[3] + ean[5]
|
||||
sum2 = ean[0] + ean[2] + ean[4] + ean[6]
|
||||
sum1 = int(ean[1]) + int(ean[3]) + int(ean[5])
|
||||
sum2 = int(ean[0]) + int(ean[2]) + int(ean[4]) + int(ean[6])
|
||||
total = sum1 + 3 * sum2
|
||||
return int((10 - total % 10) % 10)
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
from . import test_barcode_nomenclature
|
||||
@@ -0,0 +1,15 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo.tests import common
|
||||
|
||||
|
||||
class TestBarcodeNomenclature(common.TransactionCase):
|
||||
|
||||
def test_ean8_checksum(self):
|
||||
barcode_nomenclature = self.env['barcode.nomenclature']
|
||||
ean8 = "87111125"
|
||||
checksum = barcode_nomenclature.ean8_checksum(ean8)
|
||||
self.assertEqual(checksum, int(ean8[-1]))
|
||||
checksum = barcode_nomenclature.ean8_checksum("8711112")
|
||||
self.assertEqual(checksum, -1)
|
||||
checksum = barcode_nomenclature.ean8_checksum("871111256")
|
||||
self.assertEqual(checksum, -1)
|
||||
@@ -223,10 +223,14 @@ class ResPartner(models.Model):
|
||||
return True
|
||||
|
||||
# Norway VAT validation, contributed by Rolv Råen (adEgo) <rora@adego.no>
|
||||
# Support for MVA suffix contributed by Bringsvor Consulting AS (bringsvor@bringsvor.com)
|
||||
def check_vat_no(self, vat):
|
||||
'''
|
||||
"""
|
||||
Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
|
||||
'''
|
||||
"""
|
||||
if len(vat) == 12 and vat.upper().endswith('MVA'):
|
||||
vat = vat[:-3] # Strictly speaking we should enforce the suffix MVA but...
|
||||
|
||||
if len(vat) != 9:
|
||||
return False
|
||||
try:
|
||||
|
||||
@@ -279,25 +279,26 @@ FormRenderer.include({
|
||||
children: []
|
||||
});
|
||||
}
|
||||
|
||||
// register actions, alongside a generated unique ID
|
||||
_.each(node.children, function (column, column_index) {
|
||||
_.each(column.children, function (action, action_index) {
|
||||
action.attrs.id = 'action_' + column_index + '_' + action_index;
|
||||
self.actionsDescr[action.attrs.id] = action.attrs;
|
||||
});
|
||||
});
|
||||
|
||||
var $html = $('<div>').append($(QWeb.render('DashBoard', {node: node})));
|
||||
|
||||
// render each view
|
||||
_.each(node.children, function (column, column_index) {
|
||||
_.each(column.children, function (action, action_index) {
|
||||
var attrs = action.attrs;
|
||||
var domain = Domain.prototype.stringToArray(attrs.domain, {});
|
||||
var context = new Context(attrs.context);
|
||||
var actionID = _.str.toNumber(attrs.name);
|
||||
self.actionsDescr[actionID] = attrs;
|
||||
var $node = $html.find('.oe_action[data-id=' + actionID + '] .oe_content');
|
||||
self.defs.push(self._createController({
|
||||
$node: $node,
|
||||
actionID: actionID,
|
||||
context: context,
|
||||
domain: domain,
|
||||
viewType: attrs.view_mode,
|
||||
}));
|
||||
});
|
||||
_.each(this.actionsDescr, function (action) {
|
||||
self.defs.push(self._createController({
|
||||
$node: $html.find('.oe_action[data-id=' + action.id + '] .oe_content'),
|
||||
actionID: _.str.toNumber(action.name),
|
||||
context: new Context(action.context),
|
||||
domain: Domain.prototype.stringToArray(action.domain, {}),
|
||||
viewType: action.view_mode,
|
||||
}));
|
||||
});
|
||||
$html.find('.oe_dashboard_column').sortable({
|
||||
connectWith: '.oe_dashboard_column',
|
||||
@@ -341,7 +342,7 @@ FormRenderer.include({
|
||||
*/
|
||||
_onFoldClick: function (event) {
|
||||
var $e = $(event.currentTarget);
|
||||
var $action = $e.parents('.oe_action:first');
|
||||
var $action = $e.closest('.oe_action');
|
||||
var id = $action.data('id');
|
||||
var actionAttrs = this.actionsDescr[id];
|
||||
|
||||
|
||||
@@ -108,6 +108,9 @@
|
||||
}
|
||||
.oe_content {
|
||||
padding: 0 12px 12px 12px;
|
||||
&.oe_folded {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Override border of many2manytags defined for form_views
|
||||
@@ -139,4 +142,5 @@
|
||||
// Favorites menu in control panel
|
||||
.o_add_to_dashboard {
|
||||
display: none; // hidden by default
|
||||
.o-search-options-dropdown-custom-li;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
</table>
|
||||
</t>
|
||||
<t t-name="DashBoard.action">
|
||||
<div t-att-data-id="action.attrs.name" class="oe_action">
|
||||
<div t-att-data-id="action.attrs.id" class="oe_action">
|
||||
<h2 t-attf-class="oe_header #{action.attrs.string ? '' : 'oe_header_empty'}">
|
||||
<span class="oe_header_txt"> <t t-esc="action.attrs.string"/> </span>
|
||||
<input class = "oe_header_text" type="text"/>
|
||||
@@ -27,8 +27,7 @@
|
||||
<span class='oe_icon oe_minimize oe_fold' t-if="!action.attrs.fold"></span>
|
||||
<span class='oe_icon oe_maximize oe_fold' t-if="action.attrs.fold"></span>
|
||||
</h2>
|
||||
|
||||
<div t-attf-id="#{element_id}_action_#{column_index}_#{action_index}" class="oe_content" t-att-style="action.attrs.fold ? 'display: none' : null"></div>
|
||||
<div t-att-class="'oe_content' + (action.attrs.fold ? ' oe_folded' : '')"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="DashBoard.layouts">
|
||||
|
||||
@@ -326,4 +326,55 @@ QUnit.test('can drag and drop a view', function (assert) {
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('twice the same action in a dashboard', function (assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'board',
|
||||
data: this.data,
|
||||
arch: '<form string="My Dashboard">' +
|
||||
'<board style="2-1">' +
|
||||
'<column>' +
|
||||
'<action context="{}" view_mode="list" string="ABC" name="51" domain="[]"></action>' +
|
||||
'<action context="{}" view_mode="kanban" string="DEF" name="51" domain="[]"></action>' +
|
||||
'</column>' +
|
||||
'</board>' +
|
||||
'</form>',
|
||||
mockRPC: function (route) {
|
||||
if (route === '/board/static/src/img/layout_1-1-1.png') {
|
||||
return $.when();
|
||||
}
|
||||
if (route === '/web/action/load') {
|
||||
return $.when({
|
||||
res_model: 'partner',
|
||||
views: [[4, 'list'],[5, 'kanban']],
|
||||
});
|
||||
}
|
||||
if (route === '/web/view/add_custom') {
|
||||
assert.step('add custom');
|
||||
return $.when(true);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
archs: {
|
||||
'partner,4,list':
|
||||
'<tree string="Partner"><field name="foo"/></tree>',
|
||||
'partner,5,kanban':
|
||||
'<kanban><templates><t t-name="kanban-box">' +
|
||||
'<div><field name="foo"/></div>' +
|
||||
'</t></templates></kanban>',
|
||||
},
|
||||
});
|
||||
|
||||
var $firstAction = form.$('.oe_action:contains(ABC)');
|
||||
assert.strictEqual($firstAction.find('.o_list_view').length, 1,
|
||||
"list view should be displayed in 'ABC' block");
|
||||
var $secondAction = form.$('.oe_action:contains(DEF)');
|
||||
assert.strictEqual($secondAction.find('.o_kanban_view').length, 1,
|
||||
"kanban view should be displayed in 'DEF' block");
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -25,7 +25,7 @@ class Message(models.Model):
|
||||
@api.model
|
||||
def _find_allowed_model_wise(self, doc_model, doc_dict):
|
||||
if doc_model == 'calendar.event':
|
||||
order = self._context.get('order', self._order)
|
||||
order = self._context.get('order', self.env[doc_model]._order)
|
||||
for virtual_id in self.env[doc_model].browse(doc_dict).get_recurrent_ids([], order=order):
|
||||
doc_dict.setdefault(virtual_id, doc_dict[get_real_ids(virtual_id)])
|
||||
return super(Message, self)._find_allowed_model_wise(doc_model, doc_dict)
|
||||
|
||||
@@ -97,7 +97,7 @@ class Lead(models.Model):
|
||||
user_id = fields.Many2one('res.users', string='Salesperson', index=True, track_visibility='onchange', default=lambda self: self.env.user)
|
||||
referred = fields.Char('Referred By')
|
||||
|
||||
date_open = fields.Datetime('Assigned', readonly=True)
|
||||
date_open = fields.Datetime('Assigned', readonly=True, default=fields.Datetime.now)
|
||||
day_open = fields.Float(compute='_compute_day_open', string='Days to Assign', store=True)
|
||||
day_close = fields.Float(compute='_compute_day_close', string='Days to Close', store=True)
|
||||
date_last_stage_update = fields.Datetime(string='Last Stage Update', index=True, default=fields.Datetime.now)
|
||||
@@ -685,7 +685,7 @@ class Lead(models.Model):
|
||||
email_split = tools.email_split(self.email_from)
|
||||
return {
|
||||
'name': name,
|
||||
'user_id': self.user_id.id,
|
||||
'user_id': self.env.context.get('default_user_id') or self.user_id.id,
|
||||
'comment': self.description,
|
||||
'team_id': self.team_id.id,
|
||||
'parent_id': parent_id,
|
||||
@@ -891,29 +891,30 @@ class Lead(models.Model):
|
||||
'nb_opportunities': 0,
|
||||
}
|
||||
|
||||
opportunities = self.search([('type', '=', 'opportunity'), ('user_id', '=', self._uid), ('activity_date_deadline', '!=', False)])
|
||||
opportunities = self.search([('type', '=', 'opportunity'), ('user_id', '=', self._uid)])
|
||||
|
||||
for opp in opportunities:
|
||||
# Expected closing
|
||||
if opp.date_deadline:
|
||||
date_deadline = fields.Date.from_string(opp.date_deadline)
|
||||
if date_deadline == date.today():
|
||||
result['closing']['today'] += 1
|
||||
if date.today() <= date_deadline <= date.today() + timedelta(days=7):
|
||||
result['closing']['next_7_days'] += 1
|
||||
if date_deadline < date.today():
|
||||
result['closing']['overdue'] += 1
|
||||
# Next activities
|
||||
for activity in opp.activity_ids:
|
||||
date_deadline = fields.Date.from_string(activity.date_deadline)
|
||||
if date_deadline == date.today():
|
||||
result['activity']['today'] += 1
|
||||
if date.today() <= date_deadline <= date.today() + timedelta(days=7):
|
||||
result['activity']['next_7_days'] += 1
|
||||
if date_deadline < date.today():
|
||||
result['activity']['overdue'] += 1
|
||||
if opp.activity_date_deadline:
|
||||
if opp.date_deadline:
|
||||
date_deadline = fields.Date.from_string(opp.date_deadline)
|
||||
if date_deadline == date.today():
|
||||
result['closing']['today'] += 1
|
||||
if date.today() <= date_deadline <= date.today() + timedelta(days=7):
|
||||
result['closing']['next_7_days'] += 1
|
||||
if date_deadline < date.today() and not opp.date_closed:
|
||||
result['closing']['overdue'] += 1
|
||||
# Next activities
|
||||
for activity in opp.activity_ids:
|
||||
date_deadline = fields.Date.from_string(activity.date_deadline)
|
||||
if date_deadline == date.today():
|
||||
result['activity']['today'] += 1
|
||||
if date.today() <= date_deadline <= date.today() + timedelta(days=7):
|
||||
result['activity']['next_7_days'] += 1
|
||||
if date_deadline < date.today():
|
||||
result['activity']['overdue'] += 1
|
||||
# Won in Opportunities
|
||||
if opp.date_closed:
|
||||
if opp.date_closed and opp.stage_id.probability == 100:
|
||||
date_closed = fields.Date.from_string(opp.date_closed)
|
||||
if date.today().replace(day=1) <= date_closed <= date.today():
|
||||
if opp.planned_revenue:
|
||||
|
||||
@@ -60,7 +60,10 @@ class CRMSettings(models.TransientModel):
|
||||
|
||||
@api.onchange('default_generate_lead_from_alias')
|
||||
def _onchange_default_generate_lead_from_alias(self):
|
||||
self.alias_prefix = 'info' if self.default_generate_lead_from_alias else False
|
||||
if self.default_generate_lead_from_alias:
|
||||
self.alias_prefix = self.alias_prefix or 'info'
|
||||
else:
|
||||
self.alias_prefix = False
|
||||
|
||||
@api.model
|
||||
def get_default_alias_prefix(self, fields):
|
||||
|
||||
@@ -95,7 +95,9 @@ class Lead2OpportunityPartner(models.TransientModel):
|
||||
|
||||
leads = self.env['crm.lead'].browse(vals.get('lead_ids'))
|
||||
for lead in leads:
|
||||
partner_id = self._create_partner(lead.id, self.action, vals.get('partner_id') or lead.partner_id.id)
|
||||
self_def_user = self.with_context(default_user_id=self.user_id.id)
|
||||
partner_id = self_def_user._create_partner(
|
||||
lead.id, self.action, vals.get('partner_id') or lead.partner_id.id)
|
||||
res = lead.convert_opportunity(partner_id, [], False)
|
||||
user_ids = vals.get('user_ids')
|
||||
|
||||
@@ -135,9 +137,6 @@ class Lead2OpportunityPartner(models.TransientModel):
|
||||
leads = self.env['crm.lead'].browse(self._context.get('active_ids', []))
|
||||
values.update({'lead_ids': leads.ids, 'user_ids': [self.user_id.id]})
|
||||
self._convert_opportunity(values)
|
||||
for lead in leads:
|
||||
if lead.partner_id and lead.partner_id.user_id != lead.user_id:
|
||||
self.env['res.partner'].browse(lead.partner_id.id).write({'user_id': lead.user_id.id})
|
||||
|
||||
return leads[0].redirect_opportunity_view()
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@ class SaleOrder(models.Model):
|
||||
def action_confirm(self):
|
||||
self.ensure_one()
|
||||
res = super(SaleOrder, self).action_confirm()
|
||||
self.order_line._update_registrations(confirm=False, cancel_to_draft=False)
|
||||
# confirm registration if it was free (otherwise it will be confirmed once invoice fully paid)
|
||||
self.order_line._update_registrations(confirm=self.amount_total == 0, cancel_to_draft=False)
|
||||
if any(self.order_line.filtered(lambda line: line.event_id)):
|
||||
return self.env['ir.actions.act_window'].with_context(default_sale_order_id=self.id).for_xml_id('event_sale', 'action_sale_order_event_registration')
|
||||
return res
|
||||
|
||||
@@ -461,7 +461,6 @@
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="analytic_account_id" groups="analytic.group_analytic_accounting"/>
|
||||
<field name="message_unread" invisible="1"/>
|
||||
<field name="attachment_number" invisible="1"/>
|
||||
<field name="attachment_number" string=" "/>
|
||||
<button name="action_get_attachment_view" string="View Attachments" type="object" icon="fa-paperclip"/>
|
||||
<field name="tax_ids" widget="many2many_tags"/>
|
||||
|
||||
@@ -32,7 +32,7 @@ class HrExpenseRegisterPaymentWizard(models.TransientModel):
|
||||
@api.constrains('amount')
|
||||
def _check_amount(self):
|
||||
if not self.amount > 0.0:
|
||||
raise ValidationError('The payment amount must be strictly positive.')
|
||||
raise ValidationError(_('The payment amount must be strictly positive.'))
|
||||
|
||||
@api.one
|
||||
@api.depends('journal_id')
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
import models
|
||||
@@ -0,0 +1,16 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': "Check Printing in Expenses",
|
||||
'summary': """Print amount in words on checks issued for expenses""",
|
||||
'category': 'Accounting',
|
||||
'description': """
|
||||
Print amount in words on checks issued for expenses
|
||||
""",
|
||||
'category': 'Accounting & Finance',
|
||||
'version': '1.0',
|
||||
'depends': ['account_check_printing', 'hr_expense'],
|
||||
'auto_install': True,
|
||||
'data': [
|
||||
'views/payment.xml',
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import payment
|
||||
@@ -0,0 +1,39 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class HrExpenseRegisterPaymentWizard(models.TransientModel):
|
||||
_inherit = "hr.expense.register.payment.wizard"
|
||||
|
||||
check_amount_in_words = fields.Char(string="Amount in Words")
|
||||
check_manual_sequencing = fields.Boolean(related='journal_id.check_manual_sequencing')
|
||||
# Note: a check_number == 0 means that it will be attributed when the check is printed
|
||||
check_number = fields.Integer(string="Check Number", readonly=True, copy=False, default=0,
|
||||
help="Number of the check corresponding to this payment. If your pre-printed check are not already numbered, "
|
||||
"you can manage the numbering in the journal configuration page.")
|
||||
payment_method_code_2 = fields.Char(related='payment_method_id.code',
|
||||
help="Technical field used to adapt the interface to the payment type selected.",
|
||||
readonly=True)
|
||||
|
||||
@api.onchange('journal_id')
|
||||
def _onchange_journal_id(self):
|
||||
if hasattr(super(HrExpenseRegisterPaymentWizard, self), '_onchange_journal_id'):
|
||||
super(HrExpenseRegisterPaymentWizard, self)._onchange_journal_id()
|
||||
if self.journal_id.check_manual_sequencing:
|
||||
self.check_number = self.journal_id.check_sequence_id.number_next_actual
|
||||
|
||||
@api.onchange('amount')
|
||||
def _onchange_amount(self):
|
||||
if hasattr(super(HrExpenseRegisterPaymentWizard, self), '_onchange_amount'):
|
||||
super(HrExpenseRegisterPaymentWizard, self)._onchange_amount()
|
||||
self.check_amount_in_words = self.env['account.payment']._get_check_amount_in_words(self.amount)
|
||||
|
||||
def get_payment_vals(self):
|
||||
res = super(HrExpenseRegisterPaymentWizard, self).get_payment_vals()
|
||||
if self.payment_method_id == self.env.ref('account_check_printing.account_payment_method_check'):
|
||||
res.update({
|
||||
'check_amount_in_words': self.check_amount_in_words,
|
||||
'check_manual_sequencing': self.check_manual_sequencing,
|
||||
})
|
||||
return res
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<data>
|
||||
<record id="hr_expense_register_payment_view_form_check_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.expense.register.payment.wizard.form.check.inherited</field>
|
||||
<field name="model">hr.expense.register.payment.wizard</field>
|
||||
<field name="inherit_id" ref="hr_expense.hr_expense_register_payment_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@name='amount_div']" position="after">
|
||||
<field name="check_amount_in_words" attrs="{'invisible': [('payment_method_code_2', '!=', 'check_printing')]}" groups="base.group_no_one"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='communication']" position="after">
|
||||
<field name="payment_method_code_2" invisible="1"/>
|
||||
<field name="check_manual_sequencing" invisible="1"/>
|
||||
<field name="check_number" attrs="{'invisible': ['|', ('payment_method_code_2', '!=', 'check_printing'), ('check_manual_sequencing', '=', False)]}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
@@ -12,7 +12,7 @@ class HrHolidaysController(http.Controller):
|
||||
comparison, record, redirect = MailController._check_token_and_record_or_redirect('hr.holidays', int(res_id), token)
|
||||
if comparison and record:
|
||||
try:
|
||||
record.action_validate()
|
||||
record.action_approve()
|
||||
except Exception:
|
||||
return MailController._redirect_to_messaging()
|
||||
return redirect
|
||||
|
||||
@@ -85,7 +85,7 @@ class HrTimesheetSheet(models.Model):
|
||||
AND id <> %s''',
|
||||
(sheet.date_to, sheet.date_from, new_user_id, sheet.id))
|
||||
if any(self.env.cr.fetchall()):
|
||||
raise ValidationError('You cannot have 2 timesheets that overlap!\nPlease use the menu \'My Current Timesheet\' to avoid this problem.')
|
||||
raise ValidationError(_('You cannot have 2 timesheets that overlap!\nPlease use the menu \'My Current Timesheet\' to avoid this problem.'))
|
||||
|
||||
@api.onchange('employee_id')
|
||||
def onchange_employee_id(self):
|
||||
|
||||
@@ -44,6 +44,8 @@ msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: constraint:account.invoice:0
|
||||
#: code:addons/l10n_be_invoice_bba/models/account_invoice.py:34
|
||||
#, python-format
|
||||
msgid "Invalid BBA Structured Communication !"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,184 +1,184 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
|
||||
|
||||
import random
|
||||
import re
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
|
||||
"""
|
||||
account.invoice object:
|
||||
- Add support for Belgian structured communication
|
||||
- Rename 'reference' field labels to 'Communication'
|
||||
"""
|
||||
|
||||
|
||||
class AccountInvoice(models.Model):
|
||||
_inherit = 'account.invoice'
|
||||
|
||||
@api.model
|
||||
def _get_reference_type(self):
|
||||
"""Add BBA Structured Communication Type and change labels from 'reference' into 'communication' """
|
||||
res = super(AccountInvoice, self)._get_reference_type()
|
||||
res[[i for i, x in enumerate(res) if x[0] == 'none'][0]] = ('none', _('Free Communication'))
|
||||
res.append(('bba', 'BBA Structured Communication'))
|
||||
return res
|
||||
|
||||
reference_type = fields.Selection('_get_reference_type', string='Payment Reference',
|
||||
required=True, readonly=True)
|
||||
|
||||
@api.constrains('reference', 'reference_type')
|
||||
def _check_communication(self):
|
||||
for inv in self:
|
||||
if inv.reference_type == 'bba' and not self.check_bbacomm(inv.reference):
|
||||
raise ValidationError('Invalid BBA Structured Communication !')
|
||||
|
||||
def check_bbacomm(self, val):
|
||||
supported_chars = '0-9+*/ '
|
||||
pattern = re.compile('[^' + supported_chars + ']')
|
||||
if pattern.findall(val or ''):
|
||||
return False
|
||||
bbacomm = re.sub('\D', '', val or '')
|
||||
if len(bbacomm) == 12:
|
||||
base = int(bbacomm[:10])
|
||||
mod = base % 97 or 97
|
||||
if mod == int(bbacomm[-2:]):
|
||||
return True
|
||||
|
||||
@api.onchange('partner_id', 'type', 'reference_type')
|
||||
def _onchange_partner_id(self):
|
||||
result = super(AccountInvoice, self)._onchange_partner_id()
|
||||
reference = False
|
||||
reference_type = 'none'
|
||||
if self.partner_id:
|
||||
if (self.type == 'out_invoice'):
|
||||
reference_type = self.partner_id.out_inv_comm_type
|
||||
if reference_type:
|
||||
reference = self.generate_bbacomm(self.type, reference_type, self.partner_id.id, '')['value']['reference']
|
||||
self.reference_type = reference_type or 'none'
|
||||
self.reference = reference
|
||||
return result
|
||||
|
||||
def generate_bbacomm(self, type, reference_type, partner_id, reference):
|
||||
reference = reference or ''
|
||||
algorithm = False
|
||||
if partner_id:
|
||||
algorithm = self.env['res.partner'].browse(partner_id).out_inv_comm_algorithm
|
||||
algorithm = algorithm or 'random'
|
||||
if (type == 'out_invoice'):
|
||||
if reference_type == 'bba':
|
||||
if algorithm == 'date':
|
||||
if not self.check_bbacomm(reference):
|
||||
date = fields.Date.from_string(fields.Date.today())
|
||||
doy = date.strftime('%j')
|
||||
year = date.strftime('%Y')
|
||||
seq = '001'
|
||||
invoices = self.search([('type', '=', 'out_invoice'), ('reference_type', '=', 'bba'),
|
||||
('reference', 'like', '+++%s/%s/%%' % (doy, year))], order='reference')
|
||||
if invoices:
|
||||
prev_seq = int(invoices[-1].reference[12:15])
|
||||
if prev_seq < 999:
|
||||
seq = '%03d' % (prev_seq + 1)
|
||||
else:
|
||||
raise UserError(_('The daily maximum of outgoing invoices with an automatically generated BBA Structured Communications has been exceeded!'
|
||||
'\nPlease create manually a unique BBA Structured Communication.'))
|
||||
bbacomm = doy + year + seq
|
||||
base = int(bbacomm)
|
||||
mod = base % 97 or 97
|
||||
reference = '+++%s/%s/%s%02d+++' % (doy, year, seq, mod)
|
||||
elif algorithm == 'partner_ref':
|
||||
if not self.check_bbacomm(reference):
|
||||
partner_ref = self.env['res.partner'].browse(partner_id).ref
|
||||
partner_ref_nr = re.sub('\D', '', partner_ref or '')
|
||||
if (len(partner_ref_nr) < 3) or (len(partner_ref_nr) > 7):
|
||||
raise UserError(_('The Partner should have a 3-7 digit Reference Number for the generation of BBA Structured Communications!'
|
||||
'\nPlease correct the Partner record.'))
|
||||
else:
|
||||
partner_ref_nr = partner_ref_nr.ljust(7, '0')
|
||||
seq = '001'
|
||||
invoices = self.search([('type', '=', 'out_invoice'), ('reference_type', '=', 'bba'),
|
||||
('reference', 'like', '+++%s/%s/%%' % (partner_ref_nr[:3], partner_ref_nr[3:]))], order='reference')
|
||||
if invoices:
|
||||
prev_seq = int(invoices[-1].reference[12:15])
|
||||
if prev_seq < 999:
|
||||
seq = '%03d' % (prev_seq + 1)
|
||||
else:
|
||||
raise UserError(_('The daily maximum of outgoing invoices with an automatically generated BBA Structured Communications has been exceeded!'
|
||||
'\nPlease create manually a unique BBA Structured Communication.'))
|
||||
bbacomm = partner_ref_nr + seq
|
||||
base = int(bbacomm)
|
||||
mod = base % 97 or 97
|
||||
reference = '+++%s/%s/%s%02d+++' % (partner_ref_nr[:3], partner_ref_nr[3:], seq, mod)
|
||||
elif algorithm == 'random':
|
||||
if not self.check_bbacomm(reference):
|
||||
base = random.randint(1, 9999999999)
|
||||
bbacomm = str(base).rjust(10, '0')
|
||||
base = int(bbacomm)
|
||||
mod = base % 97 or 97
|
||||
mod = str(mod).rjust(2, '0')
|
||||
reference = '+++%s/%s/%s%s+++' % (bbacomm[:3], bbacomm[3:7], bbacomm[7:], mod)
|
||||
else:
|
||||
raise UserError(_("Unsupported Structured Communication Type Algorithm '%s' !"
|
||||
"\nPlease contact your Odoo support channel.") % algorithm)
|
||||
return {'value': {'reference': reference}}
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
reference = vals.get('reference', False)
|
||||
reference_type = vals.get('reference_type', False)
|
||||
if vals.get('type') == 'out_invoice' and not reference_type:
|
||||
# fallback on default communication type for partner
|
||||
partner = self.env['res.partner'].browse(vals['partner_id'])
|
||||
reference_type = partner.out_inv_comm_type
|
||||
if reference_type == 'bba':
|
||||
reference = self.generate_bbacomm(vals['type'], reference_type, partner.id, '')['value']['reference']
|
||||
vals.update({
|
||||
'reference_type': reference_type or 'none',
|
||||
'reference': reference,
|
||||
})
|
||||
|
||||
if reference_type == 'bba':
|
||||
if not reference:
|
||||
raise UserError(_('Empty BBA Structured Communication!'
|
||||
'\nPlease fill in a unique BBA Structured Communication.'))
|
||||
if self.check_bbacomm(reference):
|
||||
reference = re.sub('\D', '', reference)
|
||||
vals['reference'] = '+++' + reference[0:3] + '/' + reference[3:7] + '/' + reference[7:] + '+++'
|
||||
same_ids = self.search([('type', '=', 'out_invoice'), ('reference_type', '=', 'bba'), ('reference', '=', vals['reference'])])
|
||||
if same_ids:
|
||||
raise UserError(_('The BBA Structured Communication has already been used!'
|
||||
'\nPlease create manually a unique BBA Structured Communication.'))
|
||||
return super(AccountInvoice, self).create(vals)
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
for invoice in self:
|
||||
if 'reference_type' in vals:
|
||||
reference_type = vals['reference_type']
|
||||
else:
|
||||
reference_type = invoice.reference_type or ''
|
||||
|
||||
if reference_type == 'bba' and 'reference' in vals:
|
||||
if self.check_bbacomm(vals['reference']):
|
||||
reference = re.sub('\D', '', vals['reference'])
|
||||
vals['reference'] = '+++' + reference[0:3] + '/' + reference[3:7] + '/' + reference[7:] + '+++'
|
||||
same_ids = self.search([('id', '!=', invoice.id), ('type', '=', 'out_invoice'),
|
||||
('reference_type', '=', 'bba'), ('reference', '=', vals['reference'])])
|
||||
if same_ids:
|
||||
raise UserError(_('The BBA Structured Communication has already been used!'
|
||||
'\nPlease create manually a unique BBA Structured Communication.'))
|
||||
return super(AccountInvoice, self).write(vals)
|
||||
|
||||
@api.multi
|
||||
def copy(self, default=None):
|
||||
self.ensure_one()
|
||||
default = default or {}
|
||||
if self.type in ['out_invoice']:
|
||||
reference_type = self.reference_type or 'none'
|
||||
default['reference_type'] = reference_type
|
||||
if reference_type == 'bba':
|
||||
default['reference'] = self.generate_bbacomm(self.type, reference_type, self.partner_id.id, '')['value']['reference']
|
||||
return super(AccountInvoice, self).copy(default)
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
|
||||
|
||||
import random
|
||||
import re
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
|
||||
"""
|
||||
account.invoice object:
|
||||
- Add support for Belgian structured communication
|
||||
- Rename 'reference' field labels to 'Communication'
|
||||
"""
|
||||
|
||||
|
||||
class AccountInvoice(models.Model):
|
||||
_inherit = 'account.invoice'
|
||||
|
||||
@api.model
|
||||
def _get_reference_type(self):
|
||||
"""Add BBA Structured Communication Type and change labels from 'reference' into 'communication' """
|
||||
res = super(AccountInvoice, self)._get_reference_type()
|
||||
res[[i for i, x in enumerate(res) if x[0] == 'none'][0]] = ('none', _('Free Communication'))
|
||||
res.append(('bba', 'BBA Structured Communication'))
|
||||
return res
|
||||
|
||||
reference_type = fields.Selection('_get_reference_type', string='Payment Reference',
|
||||
required=True, readonly=True)
|
||||
|
||||
@api.constrains('reference', 'reference_type')
|
||||
def _check_communication(self):
|
||||
for inv in self:
|
||||
if inv.reference_type == 'bba' and not self.check_bbacomm(inv.reference):
|
||||
raise ValidationError(_('Invalid BBA Structured Communication !'))
|
||||
|
||||
def check_bbacomm(self, val):
|
||||
supported_chars = '0-9+*/ '
|
||||
pattern = re.compile('[^' + supported_chars + ']')
|
||||
if pattern.findall(val or ''):
|
||||
return False
|
||||
bbacomm = re.sub('\D', '', val or '')
|
||||
if len(bbacomm) == 12:
|
||||
base = int(bbacomm[:10])
|
||||
mod = base % 97 or 97
|
||||
if mod == int(bbacomm[-2:]):
|
||||
return True
|
||||
|
||||
@api.onchange('partner_id', 'type', 'reference_type')
|
||||
def _onchange_partner_id(self):
|
||||
result = super(AccountInvoice, self)._onchange_partner_id()
|
||||
reference = False
|
||||
reference_type = 'none'
|
||||
if self.partner_id:
|
||||
if (self.type == 'out_invoice'):
|
||||
reference_type = self.partner_id.out_inv_comm_type
|
||||
if reference_type:
|
||||
reference = self.generate_bbacomm(self.type, reference_type, self.partner_id.id, '')['value']['reference']
|
||||
self.reference_type = reference_type or 'none'
|
||||
self.reference = reference
|
||||
return result
|
||||
|
||||
def generate_bbacomm(self, type, reference_type, partner_id, reference):
|
||||
reference = reference or ''
|
||||
algorithm = False
|
||||
if partner_id:
|
||||
algorithm = self.env['res.partner'].browse(partner_id).out_inv_comm_algorithm
|
||||
algorithm = algorithm or 'random'
|
||||
if (type == 'out_invoice'):
|
||||
if reference_type == 'bba':
|
||||
if algorithm == 'date':
|
||||
if not self.check_bbacomm(reference):
|
||||
date = fields.Date.from_string(fields.Date.today())
|
||||
doy = date.strftime('%j')
|
||||
year = date.strftime('%Y')
|
||||
seq = '001'
|
||||
invoices = self.search([('type', '=', 'out_invoice'), ('reference_type', '=', 'bba'),
|
||||
('reference', 'like', '+++%s/%s/%%' % (doy, year))], order='reference')
|
||||
if invoices:
|
||||
prev_seq = int(invoices[-1].reference[12:15])
|
||||
if prev_seq < 999:
|
||||
seq = '%03d' % (prev_seq + 1)
|
||||
else:
|
||||
raise UserError(_('The daily maximum of outgoing invoices with an automatically generated BBA Structured Communications has been exceeded!'
|
||||
'\nPlease create manually a unique BBA Structured Communication.'))
|
||||
bbacomm = doy + year + seq
|
||||
base = int(bbacomm)
|
||||
mod = base % 97 or 97
|
||||
reference = '+++%s/%s/%s%02d+++' % (doy, year, seq, mod)
|
||||
elif algorithm == 'partner_ref':
|
||||
if not self.check_bbacomm(reference):
|
||||
partner_ref = self.env['res.partner'].browse(partner_id).ref
|
||||
partner_ref_nr = re.sub('\D', '', partner_ref or '')
|
||||
if (len(partner_ref_nr) < 3) or (len(partner_ref_nr) > 7):
|
||||
raise UserError(_('The Partner should have a 3-7 digit Reference Number for the generation of BBA Structured Communications!'
|
||||
'\nPlease correct the Partner record.'))
|
||||
else:
|
||||
partner_ref_nr = partner_ref_nr.ljust(7, '0')
|
||||
seq = '001'
|
||||
invoices = self.search([('type', '=', 'out_invoice'), ('reference_type', '=', 'bba'),
|
||||
('reference', 'like', '+++%s/%s/%%' % (partner_ref_nr[:3], partner_ref_nr[3:]))], order='reference')
|
||||
if invoices:
|
||||
prev_seq = int(invoices[-1].reference[12:15])
|
||||
if prev_seq < 999:
|
||||
seq = '%03d' % (prev_seq + 1)
|
||||
else:
|
||||
raise UserError(_('The daily maximum of outgoing invoices with an automatically generated BBA Structured Communications has been exceeded!'
|
||||
'\nPlease create manually a unique BBA Structured Communication.'))
|
||||
bbacomm = partner_ref_nr + seq
|
||||
base = int(bbacomm)
|
||||
mod = base % 97 or 97
|
||||
reference = '+++%s/%s/%s%02d+++' % (partner_ref_nr[:3], partner_ref_nr[3:], seq, mod)
|
||||
elif algorithm == 'random':
|
||||
if not self.check_bbacomm(reference):
|
||||
base = random.randint(1, 9999999999)
|
||||
bbacomm = str(base).rjust(10, '0')
|
||||
base = int(bbacomm)
|
||||
mod = base % 97 or 97
|
||||
mod = str(mod).rjust(2, '0')
|
||||
reference = '+++%s/%s/%s%s+++' % (bbacomm[:3], bbacomm[3:7], bbacomm[7:], mod)
|
||||
else:
|
||||
raise UserError(_("Unsupported Structured Communication Type Algorithm '%s' !"
|
||||
"\nPlease contact your Odoo support channel.") % algorithm)
|
||||
return {'value': {'reference': reference}}
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
reference = vals.get('reference', False)
|
||||
reference_type = vals.get('reference_type', False)
|
||||
if vals.get('type') == 'out_invoice' and not reference_type:
|
||||
# fallback on default communication type for partner
|
||||
partner = self.env['res.partner'].browse(vals['partner_id'])
|
||||
reference_type = partner.out_inv_comm_type
|
||||
if reference_type == 'bba':
|
||||
reference = self.generate_bbacomm(vals['type'], reference_type, partner.id, '')['value']['reference']
|
||||
vals.update({
|
||||
'reference_type': reference_type or 'none',
|
||||
'reference': reference,
|
||||
})
|
||||
|
||||
if reference_type == 'bba':
|
||||
if not reference:
|
||||
raise UserError(_('Empty BBA Structured Communication!'
|
||||
'\nPlease fill in a unique BBA Structured Communication.'))
|
||||
if self.check_bbacomm(reference):
|
||||
reference = re.sub('\D', '', reference)
|
||||
vals['reference'] = '+++' + reference[0:3] + '/' + reference[3:7] + '/' + reference[7:] + '+++'
|
||||
same_ids = self.search([('type', '=', 'out_invoice'), ('reference_type', '=', 'bba'), ('reference', '=', vals['reference'])])
|
||||
if same_ids:
|
||||
raise UserError(_('The BBA Structured Communication has already been used!'
|
||||
'\nPlease create manually a unique BBA Structured Communication.'))
|
||||
return super(AccountInvoice, self).create(vals)
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
for invoice in self:
|
||||
if 'reference_type' in vals:
|
||||
reference_type = vals['reference_type']
|
||||
else:
|
||||
reference_type = invoice.reference_type or ''
|
||||
|
||||
if reference_type == 'bba' and 'reference' in vals:
|
||||
if self.check_bbacomm(vals['reference']):
|
||||
reference = re.sub('\D', '', vals['reference'])
|
||||
vals['reference'] = '+++' + reference[0:3] + '/' + reference[3:7] + '/' + reference[7:] + '+++'
|
||||
same_ids = self.search([('id', '!=', invoice.id), ('type', '=', 'out_invoice'),
|
||||
('reference_type', '=', 'bba'), ('reference', '=', vals['reference'])])
|
||||
if same_ids:
|
||||
raise UserError(_('The BBA Structured Communication has already been used!'
|
||||
'\nPlease create manually a unique BBA Structured Communication.'))
|
||||
return super(AccountInvoice, self).write(vals)
|
||||
|
||||
@api.multi
|
||||
def copy(self, default=None):
|
||||
self.ensure_one()
|
||||
default = default or {}
|
||||
if self.type in ['out_invoice']:
|
||||
reference_type = self.reference_type or 'none'
|
||||
default['reference_type'] = reference_type
|
||||
if reference_type == 'bba':
|
||||
default['reference'] = self.generate_bbacomm(self.type, reference_type, self.partner_id.id, '')['value']['reference']
|
||||
return super(AccountInvoice, self).copy(default)
|
||||
|
||||
@@ -27,5 +27,4 @@
|
||||
'data/res_country_state_data.xml',
|
||||
'data/account_account_type_data.xml',
|
||||
],
|
||||
'license': 'GPL-3',
|
||||
}
|
||||
|
||||
@@ -27,5 +27,4 @@
|
||||
'data/l10n_cn_small_business_chart_data.xml',
|
||||
'data/account_chart_template_data.yml',
|
||||
],
|
||||
'license': 'GPL-3',
|
||||
}
|
||||
|
||||
@@ -550,7 +550,7 @@ http://kjs.mof.gov.cn/zhengwuxinxi/zhengcefabu/201111/t20111107_605525.html
|
||||
|
||||
<!-- Account Tax Tags-->
|
||||
<record id="tax_tag1" model="account.account.tag">
|
||||
<field name="name">17%的增值税销项税</field>
|
||||
<field name="name">增值税17%销项税</field>
|
||||
</record>
|
||||
<record id="tax_tag2" model="account.account.tag">
|
||||
<field name="name">增值税17%进项税</field>
|
||||
@@ -559,8 +559,8 @@ http://kjs.mof.gov.cn/zhengwuxinxi/zhengcefabu/201111/t20111107_605525.html
|
||||
<!-- 增值税 -->
|
||||
<record id="vats_small_business" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="l10n_chart_china_small_business"/>
|
||||
<field name="name">17%的增值税销项税 - 中国小企业会计科目表</field>
|
||||
<field name="description">17%的增值税销项税</field>
|
||||
<field name="name">增值税17%销项税 - 中国小企业会计科目表</field>
|
||||
<field name="description">增值税17%销项税</field>
|
||||
<field eval="17" name="amount"/>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="refund_account_id" ref="small_business_chart2221"/>
|
||||
|
||||
@@ -36,5 +36,4 @@ Including the following data in the Accounting Standards for Business Enterprise
|
||||
'data/account_chart_template_data.xml',
|
||||
'data/account_chart_template_data.yml',
|
||||
],
|
||||
'license': 'GPL-3',
|
||||
}
|
||||
|
||||
@@ -90,9 +90,9 @@ en Odoo):
|
||||
'data': [
|
||||
# Basic accounting data
|
||||
'data/l10n_do_chart_data.xml',
|
||||
'data/account_account_tag_data.xml',
|
||||
'data/account.account.template.csv',
|
||||
'data/account_chart_template_data.xml',
|
||||
'data/account_account_tag_data.xml',
|
||||
'data/account.tax.template.xml',
|
||||
# Country States
|
||||
'data/l10n_do_state_data.xml',
|
||||
|
||||
@@ -1,254 +1,271 @@
|
||||
id,code,name,user_type_id/id,reconcile,chart_template_id/id
|
||||
do_niif_11010301,11010301,Depósitos a Corto Plazo,account.data_account_type_liquidity,FALSE,do_chart_template
|
||||
do_niif_11020100,11020100,Bonos y Acciones Temporales,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11020200,11020200,Operaciones en Bolsa,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11020300,11020300,Otros Valores Negociables,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11030101,11030101,Cheques Devueltos por Cobrar,account.data_account_type_receivable,TRUE,do_chart_template
|
||||
do_niif_11030102,11030102,Intereses por Cobrar,account.data_account_type_receivable,TRUE,do_chart_template
|
||||
do_niif_11030201,11030201,Cuenta por Cobrar a Clientes,account.data_account_type_receivable,TRUE,do_chart_template
|
||||
do_niif_11030202,11030202,Cuenta por Cobrar a Funcionarios y Empleados,account.data_account_type_receivable,TRUE,do_chart_template
|
||||
do_niif_11030203,11030203,Cuenta por Cobrar a Afiliadas,account.data_account_type_receivable,TRUE,do_chart_template
|
||||
do_niif_11030204,11030204,Cuenta por Cobrar a Accionistas,account.data_account_type_receivable,TRUE,do_chart_template
|
||||
do_niif_11030205,11030205,Otras Cuentas por Cobrar,account.data_account_type_receivable,TRUE,do_chart_template
|
||||
do_niif_11040100,11040100,Provisión Incobrables a Clientes,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11040200,11040200,Provisión Incobrables a Funcionarios y Empleados,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11040300,11040300,Provisión Incobrables a Afiliadas,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11040400,11040400,Provisión Incobrables a Accionistas,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11040500,11040500,Provisión Otras Cuentas Incobrables,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11050100,11050100,Inventario de Mercancías o Productos Terminados,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11050200,11050200,Inventario de Materia Prima,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11050300,11050300,Inventario en Tránsito,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11050400,11050400,Materiales y Suministros en Inventario,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11050500,11050500,Combustibles en Inventario,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11060100,11060100,Deterioro Acum. de Inventario en Almacen,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11060200,11060200,Deterioro Acum. de Materiales y Suministros,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11060300,11060300,Deterioro Acum. de Combustibles,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11070100,11070100,Obsolescencia Inventario en Almacen,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11070200,11070200,Obsolescencia Materiales y Suministros,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11070300,11070300,Obsolescencia Combustibles,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11080101,11080101,ITBIS Pagado en Compras Locales,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11080102,11080102,ITBIS Pagado en Servicios Locales,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11080103,11080103,ITBIS Pagado por Importaciones,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11080301,11080301,ITBIS Pagado en Ventas con Tarjeta de Crédito (Norma 08-04),account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11080302,11080302,Saldo a Favor ITBIS,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11080303,11080303,Saldo a Favor ISR,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11090100,11090100,Acciones Temporales,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11090200,11090200,Depósitos a Plazo Temporales,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11090300,11090300,Bonos Temporales,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_11100100,11100100,Gastos Pagados por Anticipado,account.data_account_type_prepayments,FALSE,do_chart_template
|
||||
do_niif_11100200,11100200,Renta Pagada por Anticipado,account.data_account_type_prepayments,FALSE,do_chart_template
|
||||
do_niif_11100300,11100300,Seguros Pagados por Anticipado,account.data_account_type_prepayments,FALSE,do_chart_template
|
||||
do_niif_11100400,11100400,Anticipos ISR,account.data_account_type_prepayments,FALSE,do_chart_template
|
||||
do_niif_11100500,11100500,Anticipos Gastos,account.data_account_type_prepayments,FALSE,do_chart_template
|
||||
do_niif_12010101,12010101,Terrenos,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12010102,12010102,Edificaciones,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12010201,12010201,Equipo de Transporte,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12010202,12010202,Mobiliario y Equipos,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12010301,12010301,Maquinaria,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12010302,12010302,Herramientas,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12010303,12010303,Instalaciones,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12010304,12010304,Misceláneos u otros activos,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12020100,12020100,Depreciación Acum. de Edificios,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12020200,12020200,Depreciación Acum. de Equipo de Transporte,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12020300,12020300,Depreciación Acum. de Mobiliario y Equipos,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12020400,12020400,Depreciación Acum. de Maquinaria,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12020500,12020500,Depreciación Acum. de Herramientas,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12020600,12020600,Depreciación Acum. de Instalaciones,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12040100,12040100,Marcas y Patentes,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12040200,12040200,Programas Informáticos,account.data_account_type_fixed_assets,FALSE,do_chart_template
|
||||
do_niif_12050100,12050100,Edificios y Locales Arrendados,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_12050200,12050200,Maquinaria y Equipo Arrendados,account.data_account_type_current_assets,FALSE,do_chart_template
|
||||
do_niif_12050300,12050300,Instalaciones Arrendadas,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12060100,12060100,Depreciación Acum. Edificios y Locales,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12060200,12060200,Depreciación Acum. Maquinaria y Equipo,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12060300,12060300,Depreciación Acum. Instalaciones,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12070100,12070100,Deterioro Valor Acum. Edificios y Locales,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12070200,12070200,Deterioro Valor Acum. Maquinaria y Equipo,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12070300,12070300,Deterioro Valor Acum. Instalaciones,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12080100,12080100,Acciones en otras sociedades,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12090100,12090100,Diferencias temporales deducibles,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12090200,12090200,Gastos Organizacionales Diferidos,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_12090300,12090300,ISR Deducible,account.data_account_type_non_current_assets,FALSE,do_chart_template
|
||||
do_niif_21010100,21010100,Préstamos Bancarios por Pagar,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21010200,21010200,Cuenta por Pagar Proveedores Locales,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21010300,21010300,Cuenta por Pagar Proveedores del Exterior,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21010400,21010400,Nóminas por Pagar,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21010500,21010500,Intereses por Pagar,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21010600,21010600,Otras Cuentas por Pagar,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21020100,21020100,Dividendos por Pagar,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21020200,21020200,Comisiones por Pagar,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21020300,21020300,Bonificaciones por Pagar,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21020400,21020400,Regalía Pascual por Pagar,account.data_account_type_payable,TRUE,do_chart_template
|
||||
do_niif_21030101,21030101,ITBIS por Venta Servicios,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030102,21030102,ITBIS por Venta Bienes,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030103,21030103,ITBIS por Venta Bienes - al Exterior,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030201,21030201,ITBIS Retenido Persona Jurídica (N 02-05),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030202,21030202,ITBIS Retenido Persona Física (R 293-11),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030203,21030203,ITBIS Retenido a Entidades No Lucrativas (N 01-2011),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030204,21030204,ITBIS Retenido por Servicios Profesionales Liberales (N 02-05),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030205,21030205,ITBIS Retenido a Proveedores Informales de Bienes (N 08-10),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030301,21030301,ISR Retenido por Honorarios Profesionales de Personas Físicas,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030302,21030302,ISR Retenido por Alquileres Pagados a Personas Físicas,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030303,21030303,ISR Retenido por Dividendos Pagados,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030304,21030304,ISR Retenido por Intereses Pagados al Exterior,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030305,21030305,ISR Retenido por Intereses Pagados,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030306,21030306,ISR Retenido por Transferencias de Títulos y Propiedades,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030307,21030307,ISR Retenido por Remesas al Exterior (Ley 253-12),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030308,21030308,Otras Retenciones (N 07-07),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030309,21030309,Otras Retenciones,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030401,21030401,Retención de Seguro Familiar de Salud (SFS),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030402,21030402,"Seguro de vejez, Discapacidad y Sobre Vivencia (AFP)",account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030404,21030404,Impuesto al Salario (ISR),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030501,21030501,ISR por Pagar,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030502,21030502,Anticipos ISR por Pagar,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030503,21030503,Seguro de Riesgo Laboral (SRL),account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030504,21030504,INFOTEP,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21030505,21030505,Otros Impuestos por Pagar,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21040100,21040100,Provisión Pago Alquileres,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21040200,21040200,Provisión Arrendamiento Financiero,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21040300,21040300,Provisión Gastos Fijos,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21050100,21050100,Tarjeta de Crédito Empresarial,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_21050200,21050200,Prima de Tarjetas de Crédito,account.data_account_type_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22010100,22010100,Préstamos Bancarios Largo Plazo,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22010200,22010200,Préstamos Hipotecarios LP,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22012300,22012300,Otros Préstamos LP,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22020100,22020100,Provisión Beneficios de Empleados LP,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22020200,22020200,Provisión Prestaciones Laborales,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22020300,22020300,Provisión Indemnizaciones,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22030100,22030100,Anticipos de Clientes,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22030200,22030200,Garantías de Clientes,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_22040100,22040100,Provisión Arrendamiento Financiero LP,account.data_account_type_non_current_liabilities,FALSE,do_chart_template
|
||||
do_niif_31010100,31010100,Capital Social Autorizado,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_31010200,31010200,Capital Social en Acciones no Emitidas,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_31010300,31010300,Capital Social Pagado,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_31010400,31010400,Capital Social No Pagado,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_31010500,31010500,Acciones o Participaciones en Tesorería,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_31020100,31020100,Superávit por Revaluación de Terrenos,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_31020200,31020200,Superávit por Revaluación de Edificaciones,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_31020300,31020300,Superávit por Revaluación de Instalaciones,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_31020400,31020400,Superávit por Revaluación de Mobiliario y Equipo,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_32010100,32010100,Reserva Legal,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_33010100,33010100,Utilidades de Ejercicios Anteriores,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_33010200,33010200,Pérdidas de Ejercicios Anteriores,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_33020100,33020100,Utilidad del Ejercicio,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_33020200,33020200,Pérdidas del Ejercicio,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_33040100,33040100,Superávit en Reserva,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_33040200,33040200,Déficit en Reserva,account.data_account_type_equity,FALSE,do_chart_template
|
||||
do_niif_41010100,41010100,Ventas Bienes,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_41010200,41010200,Ventas Bienes - Al Exterior,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_41020100,41020100,Ventas Servicios,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_41020200,41020200,Ventas Servicios - Al Exterior,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_41030100,41030100,Devoluciones de Bienes,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_41030200,41030200,Devoluciones por Servicios,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_41040100,41040100,Descuentos por Ventas (por NC),account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_42010100,42010100,Intereses sobre Certificados,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_42010200,42010200,Intereses en Cuentas Bancarias,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_42010300,42010300,Intereses por Financiamientos,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_42020100,42020100,Ingresos por Ventas de Activos,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_42030100,42030100,Ingresos por Dividendos Ganados,account.data_account_type_revenue,FALSE,do_chart_template
|
||||
do_niif_42040100,42040100,Ingresos por Diferencia Cambiaria,account.data_account_type_other_income,FALSE,do_chart_template
|
||||
do_niif_42040200,42040200,Cobro de Cuentas Incobrables,account.data_account_type_other_income,FALSE,do_chart_template
|
||||
do_niif_42040300,42040300,Otros Ingresos,account.data_account_type_other_income,FALSE,do_chart_template
|
||||
do_niif_51010100,51010100,Costos de Bienes,account.data_account_type_direct_costs,FALSE,do_chart_template
|
||||
do_niif_51010200,51010200,Otros Costos de Venta,account.data_account_type_direct_costs,FALSE,do_chart_template
|
||||
do_niif_51020100,51020100,Materia Prima,account.data_account_type_direct_costs,FALSE,do_chart_template
|
||||
do_niif_51020200,51020200,Mano de Obra,account.data_account_type_direct_costs,FALSE,do_chart_template
|
||||
do_niif_51020300,51020300,Costos Indirectos,account.data_account_type_direct_costs,FALSE,do_chart_template
|
||||
do_niif_52010100,52010100,Sueldos y Salarios,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010200,52010200,Regalía Pascual,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010300,52010300,Retribuciones Complementarias,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010400,52010400,Bono Vacacional,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010500,52010500,Bono por Desempeño,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010600,52010600,Comisiones,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010700,52010700,Indemnizaciones,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010800,52010800,Bonificaciones y Gratificaciones,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010900,52010900,Dietas al Personal,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52011000,52011000,Cursos y Entrenamientos,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52011100,52011100,Prestaciones Laborales (Preaviso y Cesantia),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52011200,52011200,Incentivos,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52011300,52011300,Horas Extras,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52011400,52011400,Otros Gastos de Personal,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010102,52010102,Aportes a la Administradora de Fondos de Pensiones (AFP),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010103,52010103,Aportes al Seguro Riesgo Laboral (SRL),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010104,52010104,Seguro Familiar de Salud (SFS),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010201,52010201,Aportes a la Administradora de Riesgos de Salud (ARS),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010202,52010202,Seguros al Personal,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010203,52010203,Planes Complementarios de Salud,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010204,52010204,Seguros de Vida,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52010205,52010205,Aportes al Infotep,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020100,52020100,Energía Eléctrica,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020200,52020200,Comunicaciones,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020300,52020300,Papelería y útiles,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020400,52020400,Útiles de Aseo y Limpieza,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020500,52020500,Material de Empaque,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020600,52020600,Seguro de Edificio,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020700,52020700,Combustibles y Lubricantes,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020800,52020800,Alquileres,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52020900,52020900,Franquicias,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52021000,52021000,Inducción a Vendedores,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52021100,52021100,Seguros,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52021200,52021200,Servicios de Mensajería,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52021300,52021300,Flete y Carga,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52021400,52021400,Cuotas y Suscripciones,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52021500,52021500,Otros Gastos de Administración,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030101,52030101,Legales (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030102,52030102,Contabilidad y Auditoría (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030103,52030103,Tecnología (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030104,52030104,Mantenimiento de Planta (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030105,52030105,Mantenimiento del Local (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030106,52030106,Mantenimiento Mobiliario y Equipos (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030107,52030107,Asesorías (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030108,52030108,Fumigaciones (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030109,52030109,Copias y Escaneos (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030110,52030110,Servicios de Vigilancia (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030111,52030111,Otros Servicios Profesionales (P. Física),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030201,52030201,Legales (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030202,52030202,Contabilidad y Auditoría (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030203,52030203,Tecnología (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030204,52030204,Mantenimiento de Planta (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030205,52030205,Mantenimiento del Local (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030206,52030206,Mantenimiento Mobiliario y Equipos (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030207,52030207,Asesorías (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030208,52030208,Fumigaciones (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030209,52030209,Copias y Escaneos (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030210,52030210,Servicios de Vigilancia (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030211,52030211,Otros Servicios Profesionales (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030301,52030301,Honorarios por Servicios del Exterior - Relacionadas,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52030302,52030302,Honorarios por Servicios del Exterior - Terceros,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52040100,52040100,Gastos por Depreciación de Edificios,account.data_account_type_depreciation,FALSE,do_chart_template
|
||||
do_niif_52040200,52040200,Gastos por Depreciación de Equipo de Transporte,account.data_account_type_depreciation,FALSE,do_chart_template
|
||||
do_niif_52040300,52040300,Gastos por Depreciación de Mobiliario y Equipos,account.data_account_type_depreciation,FALSE,do_chart_template
|
||||
do_niif_52040400,52040400,Gastos por Depreciación de Maquinaria,account.data_account_type_depreciation,FALSE,do_chart_template
|
||||
do_niif_52040500,52040500,Gastos por Depreciación de Herramientas,account.data_account_type_depreciation,FALSE,do_chart_template
|
||||
do_niif_52040600,52040600,Gastos por Depreciación de Instalaciones,account.data_account_type_depreciation,FALSE,do_chart_template
|
||||
do_niif_52050100,52050100,Gastos por Reparación de Edificios,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52050200,52050200,Gastos por Reparación de Equipo de Transporte,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52050300,52050300,Gastos por Reparación de Mobiliario y Equipos,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52050400,52050400,Gastos por Reparación de Maquinaria,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52050500,52050500,Gastos por Reparación de Herramientas,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52050600,52050600,Gastos por Reparación de Instalaciones,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52060100,52060100,Relaciones Públicas,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52060200,52060200,Publicidad,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52060300,52060300,Viajes,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52060400,52060400,Donaciones,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52060500,52060500,Donaciones a ProIndustria (Ley 392-07),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52060600,52060600,Promociones,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52060700,52060700,Otros Gastos de Representación,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070100,52070100,Gastos por Préstamos Bancarios,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070200,52070200,Retención por Cheques y Transacciones Electrónicas (0.015%),account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070300,52070300,Intereses Bancarios,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070400,52070400,Comisiones Bancarias,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070500,52070500,Comisión de Tarjeta de Crédito,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070600,52070600,Nota de Cargos por Banco,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070700,52070700,Seguro sobre Préstamos Bancarios,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070800,52070800,Diferencia Negativa Cambiaria,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52070900,52070900,Otro Gastos Financieros,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52080100,52080100,Gastos por Siniestros,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52080200,52080200,Pérdidas por Ventas de Activos Fijos,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52080300,52080300,Pérdidas por Cuentas Incobrables,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52080400,52080400,Gastos por ISR,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52080500,52080500,Impuestos a los Activos,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52080600,52080600,Penalidades/Recargos de DGII,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52080700,52080700,Penalidades/Recargos de TSS,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_52080800,52080800,Gastos Sin Comprobante,account.data_account_type_expenses,FALSE,do_chart_template
|
||||
do_niif_61010100,61010100,Pérdidas y Ganancias,account.data_unaffected_earnings,FALSE,do_chart_template
|
||||
id,code,name,user_type_id/id,reconcile,chart_template_id/id,tag_ids/id
|
||||
do_niif_11010301,11010301,Depósitos a corto plazo en RD$,account.data_account_type_liquidity,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1101,account_tag_110103"
|
||||
do_niif_11010302,11010302,Depósitos a corto plazo en USD$,account.data_account_type_liquidity,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1101,account_tag_110103"
|
||||
do_niif_11020100,11020100,Bonos y Acciones Temporales,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1102"
|
||||
do_niif_11020200,11020200,Operaciones en Bolsa,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1102"
|
||||
do_niif_11020300,11020300,Otros Valores Negociables,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1102"
|
||||
do_niif_11030101,11030101,Cheques Devueltos por Cobrar,account.data_account_type_receivable,TRUE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1103,account_tag_110301"
|
||||
do_niif_11030102,11030102,Intereses por Cobrar,account.data_account_type_receivable,TRUE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1103,account_tag_110301"
|
||||
do_niif_11030201,11030201,Cuenta por Cobrar a Clientes,account.data_account_type_receivable,TRUE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1103,account_tag_110302"
|
||||
do_niif_11030202,11030202,Cuenta por Cobrar a Funcionarios y Empleados,account.data_account_type_receivable,TRUE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1103,account_tag_110302"
|
||||
do_niif_11030203,11030203,Cuenta por Cobrar a Afiliadas,account.data_account_type_receivable,TRUE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1103,account_tag_110302"
|
||||
do_niif_11030204,11030204,Cuenta por Cobrar a Accionistas,account.data_account_type_receivable,TRUE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1103,account_tag_110302"
|
||||
do_niif_11030205,11030205,Otras Cuentas por Cobrar,account.data_account_type_receivable,TRUE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1103,account_tag_110302"
|
||||
do_niif_11040100,11040100,Provisión Incobrables a Clientes,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1104"
|
||||
do_niif_11040200,11040200,Provisión Incobrables a Funcionarios y Empleados,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1104"
|
||||
do_niif_11040300,11040300,Provisión Incobrables a Afiliadas,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1104"
|
||||
do_niif_11040400,11040400,Provisión Incobrables a Accionistas,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1104"
|
||||
do_niif_11040500,11040500,Provisión Otras Cuentas Incobrables,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1104"
|
||||
do_niif_11050100,11050100,Inventario de Mercancías o Productos Terminados,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1105"
|
||||
do_niif_11050200,11050200,Inventario de Materia Prima,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1105"
|
||||
do_niif_11050300,11050300,Inventario en Tránsito,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1105"
|
||||
do_niif_11050400,11050400,Materiales y Suministros en Inventario,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1105"
|
||||
do_niif_11050500,11050500,Combustibles en Inventario,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1105"
|
||||
do_niif_11050600,11050600,Bienes Enviados No Facturados,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1105"
|
||||
do_niif_11060100,11060100,Deterioro Acum. de Inventario en Almacen,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1106"
|
||||
do_niif_11060200,11060200,Deterioro Acum. de Materiales y Suministros,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1106"
|
||||
do_niif_11060300,11060300,Deterioro Acum. de Combustibles,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1106"
|
||||
do_niif_11070100,11070100,Obsolescencia Inventario en Almacen,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1107"
|
||||
do_niif_11070200,11070200,Obsolescencia Materiales y Suministros,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1107"
|
||||
do_niif_11070300,11070300,Obsolescencia Combustibles,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1107"
|
||||
do_niif_11080101,11080101,ITBIS Pagado en Compras Locales,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1108,account_tag_110801"
|
||||
do_niif_11080102,11080102,ITBIS Pagado en Servicios Locales,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1108,account_tag_110801"
|
||||
do_niif_11080103,11080103,ITBIS Pagado por Importaciones,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1108,account_tag_110801"
|
||||
do_niif_11080301,11080301,ITBIS Pagado en Ventas con Tarjeta de Crédito (Norma 08-04),account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1108,account_tag_110803"
|
||||
do_niif_11080302,11080302,Saldo a Favor ITBIS,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1108,account_tag_110803"
|
||||
do_niif_11080303,11080303,Saldo a Favor ISR,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1108,account_tag_110803"
|
||||
do_niif_11090100,11090100,Acciones Temporales,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1109"
|
||||
do_niif_11090200,11090200,Depósitos a Plazo Temporales,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1109"
|
||||
do_niif_11090300,11090300,Bonos Temporales,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1109"
|
||||
do_niif_11090400,11090400,Fianzas y Depósitos,account.data_account_type_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1109"
|
||||
do_niif_11100100,11100100,Gastos Pagados por Anticipado,account.data_account_type_prepayments,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1110"
|
||||
do_niif_11100200,11100200,Renta Pagada por Anticipado,account.data_account_type_prepayments,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1110"
|
||||
do_niif_11100300,11100300,Seguros Pagados por Anticipado,account.data_account_type_prepayments,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1110"
|
||||
do_niif_11100400,11100400,Anticipos ISR,account.data_account_type_prepayments,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1110"
|
||||
do_niif_11100500,11100500,Anticipos Gastos,account.data_account_type_prepayments,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1110"
|
||||
do_niif_11100600,11100600,Anticipos 1% Activos,account.data_account_type_prepayments,FALSE,do_chart_template,"account_tag_1,account_tag_11,account_tag_1110"
|
||||
do_niif_12010101,12010101,Terrenos,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120101"
|
||||
do_niif_12010102,12010102,Edificaciones,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120101"
|
||||
do_niif_12010103,12010103,Mejoras en Edificaciones,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120101"
|
||||
do_niif_12010201,12010201,Equipo de Transporte,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120102"
|
||||
do_niif_12010202,12010202,Mobiliario y Equipos,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120102"
|
||||
do_niif_12010301,12010301,Maquinaria,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120103"
|
||||
do_niif_12010302,12010302,Herramientas,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120103"
|
||||
do_niif_12010303,12010303,Instalaciones,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120103"
|
||||
do_niif_12010304,12010304,Misceláneos u otros activos,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1201,account_tag_120103"
|
||||
do_niif_12020100,12020100,Depreciación Acum. de Edificios,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1202"
|
||||
do_niif_12020200,12020200,Depreciación Acum. de Equipo de Transporte,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1202"
|
||||
do_niif_12020300,12020300,Depreciación Acum. de Mobiliario y Equipos,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1202"
|
||||
do_niif_12020400,12020400,Depreciación Acum. de Maquinaria,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1202"
|
||||
do_niif_12020500,12020500,Depreciación Acum. de Herramientas,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1202"
|
||||
do_niif_12020600,12020600,Depreciación Acum. de Instalaciones,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1202"
|
||||
do_niif_12040100,12040100,Marcas y Patentes,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1204"
|
||||
do_niif_12040200,12040200,Programas Informáticos,account.data_account_type_fixed_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1204"
|
||||
do_niif_12050100,12050100,Edificios y Locales Arrendados,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1205"
|
||||
do_niif_12050200,12050200,Maquinaria y Equipo Arrendados,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1205"
|
||||
do_niif_12050300,12050300,Instalaciones Arrendadas,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1205"
|
||||
do_niif_12060100,12060100,Depreciación Acum. Edificios y Locales Arrendados,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1206"
|
||||
do_niif_12060200,12060200,Depreciación Acum. Maquinaria y Equipo Arrendados,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1206"
|
||||
do_niif_12060300,12060300,Depreciación Acum. Instalaciones Arrendadas,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1206"
|
||||
do_niif_12070100,12070100,Deterioro Valor Acum. Edificios y Locales Arrendados,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1207"
|
||||
do_niif_12070200,12070200,Deterioro Valor Acum. Maquinaria y Equipo Arrendado,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1207"
|
||||
do_niif_12070300,12070300,Deterioro Valor Acum. Instalaciones Arrendadas,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1207"
|
||||
do_niif_12080100,12080100,Acciones en otras sociedades,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1208"
|
||||
do_niif_12090100,12090100,Diferencias temporales deducibles,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1209"
|
||||
do_niif_12090200,12090200,Gastos Organizacionales Diferidos,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1209"
|
||||
do_niif_12090300,12090300,ISR Deducible,account.data_account_type_non_current_assets,FALSE,do_chart_template,"account_tag_1,account_tag_12,account_tag_1209"
|
||||
do_niif_21010100,21010100,Préstamos Bancarios por Pagar,account.data_account_type_payable,TRUE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2101"
|
||||
do_niif_21010200,21010200,Cuenta por Pagar Proveedores Locales,account.data_account_type_payable,TRUE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2101"
|
||||
do_niif_21010300,21010300,Cuenta por Pagar Proveedores del Exterior,account.data_account_type_payable,TRUE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2101"
|
||||
do_niif_21010400,21010400,Cuenta por Pagar a Afiliadas,account.data_account_type_payable,TRUE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2101"
|
||||
do_niif_21010500,21010500,Cuenta por Pagar a Accionistas,account.data_account_type_payable,TRUE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2101"
|
||||
do_niif_21010600,21010600,Nóminas por Pagar,account.data_account_type_payable,TRUE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2101"
|
||||
do_niif_21010700,21010700,Intereses por Pagar,account.data_account_type_payable,TRUE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2101"
|
||||
do_niif_21010800,21010800,Otras Cuentas por Pagar,account.data_account_type_payable,TRUE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2101"
|
||||
do_niif_21020100,21020100,Dividendos por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21020200,21020200,Comisiones por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21020300,21020300,Vacaciones por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21020400,21020400,Bonificaciones por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21020500,21020500,Regalía Pascual por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21020600,21020600,Seguro Médico por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21020700,21020700,Seguro Familiar de Salud (SFS) por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21020800,21020800,Aporte a Fondo de Pensiones (AFP) por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21020900,21020900,Seguro de Riesgo Laboral (SRL) por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21021000,21021000,INFOTEP por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21021100,21021100,Otras Remuneraciones por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21021200,21021200,Bienes Recibidos no Pagados,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2102"
|
||||
do_niif_21030101,21030101,ITBIS por Venta Servicios,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210301"
|
||||
do_niif_21030102,21030102,ITBIS por Venta Bienes,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210301"
|
||||
do_niif_21030103,21030103,ITBIS por Venta Bienes - al Exterior,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210301"
|
||||
do_niif_21030201,21030201,ITBIS Retenido Persona Jurídica (N 02-05),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210302"
|
||||
do_niif_21030202,21030202,ITBIS Retenido Persona Física (R 293-11),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210302"
|
||||
do_niif_21030203,21030203,ITBIS Retenido a Entidades No Lucrativas (N 01-2011),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210302"
|
||||
do_niif_21030204,21030204,ITBIS Retenido por Servicios Profesionales Liberales (N 02-05),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210302"
|
||||
do_niif_21030205,21030205,ITBIS Retenido a Proveedores Informales de Bienes (N 08-10),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210302"
|
||||
do_niif_21030301,21030301,ISR Retenido por Honorarios Profesionales de Personas Físicas,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030302,21030302,ISR Retenido por Alquileres Pagados a Personas Físicas,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030303,21030303,ISR Retenido por Dividendos Pagados,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030304,21030304,ISR Retenido por Intereses Pagados al Exterior,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030305,21030305,ISR Retenido por Intereses Pagados,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030306,21030306,ISR Retenido por Transferencias de Títulos y Propiedades,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030307,21030307,ISR Retenido por Remesas al Exterior (Ley 253-12),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030308,21030308,Otras Retenciones (N 07-07),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030309,21030309,Otras Retenciones,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210303"
|
||||
do_niif_21030401,21030401,Impuesto al Salario (ISR),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210304"
|
||||
do_niif_21030402,21030402,Retención de Seguro Familiar de Salud (SFS),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210304"
|
||||
do_niif_21030403,21030403,Retención de Fondo de Pensiones (AFP),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210304"
|
||||
do_niif_21030404,21030404,Retención de INFOTEP (0.5%),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210304"
|
||||
do_niif_21030501,21030501,ISR por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210305"
|
||||
do_niif_21030502,21030502,Anticipos ISR por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210305"
|
||||
do_niif_21030503,21030503,Propina por Pagar (Ley 16-92),account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210305"
|
||||
do_niif_21030504,21030504,Otros Impuestos por Pagar,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2103,account_tag_210305"
|
||||
do_niif_21040100,21040100,Provisión Pago Alquileres,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2104"
|
||||
do_niif_21040200,21040200,Provisión Arrendamiento Financiero,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2104"
|
||||
do_niif_21040300,21040300,Provisión Gastos Fijos,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2104"
|
||||
do_niif_21050100,21050100,Tarjeta de Crédito Empresarial,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2105"
|
||||
do_niif_21050200,21050200,Prima de Tarjetas de Crédito,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_21,account_tag_2105"
|
||||
do_niif_22010100,22010100,Préstamos Bancarios Largo Plazo,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2201"
|
||||
do_niif_22010200,22010200,Préstamos Hipotecarios LP,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2201"
|
||||
do_niif_22012300,22012300,Préstamos Accionistas / Particulares,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2201"
|
||||
do_niif_22020100,22020100,Provisión Beneficios de Empleados LP,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2202"
|
||||
do_niif_22020200,22020200,Provisión Prestaciones Laborales,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2202"
|
||||
do_niif_22020300,22020300,Provisión Indemnizaciones,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2202"
|
||||
do_niif_22030100,22030100,Anticipos de Clientes,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2203"
|
||||
do_niif_22030200,22030200,Garantías de Clientes,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2203"
|
||||
do_niif_22040100,22040100,Provisión Arrendamiento Financiero LP,account.data_account_type_non_current_liabilities,FALSE,do_chart_template,"account_tag_2,account_tag_22,account_tag_2204"
|
||||
do_niif_31010100,31010100,Capital Social Autorizado,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3101"
|
||||
do_niif_31010200,31010200,Capital Social en Acciones no Emitidas,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3101"
|
||||
do_niif_31010300,31010300,Capital Social Pagado,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3101"
|
||||
do_niif_31010400,31010400,Capital Social No Pagado,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3101"
|
||||
do_niif_31010500,31010500,Acciones o Participaciones en Tesorería,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3101"
|
||||
do_niif_31020100,31020100,Superávit por Revaluación de Terrenos,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3102"
|
||||
do_niif_31020200,31020200,Superávit por Revaluación de Edificaciones,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3102"
|
||||
do_niif_31020300,31020300,Superávit por Revaluación de Instalaciones,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3102"
|
||||
do_niif_31020400,31020400,Superávit por Revaluación de Mobiliario y Equipo,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_31,account_tag_3102"
|
||||
do_niif_32010100,32010100,Reserva Legal,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_32,account_tag_3201"
|
||||
do_niif_33010100,33010100,Utilidades de Ejercicios Anteriores,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_33,account_tag_3301"
|
||||
do_niif_33010200,33010200,Pérdidas de Ejercicios Anteriores,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_33,account_tag_3301"
|
||||
do_niif_33020100,33020100,Utilidad del Ejercicio,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_33,account_tag_3302"
|
||||
do_niif_33020200,33020200,Pérdidas del Ejercicio,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_33,account_tag_3302"
|
||||
do_niif_33040100,33040100,Superávit en Reserva,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_33,account_tag_3304"
|
||||
do_niif_33040200,33040200,Déficit en Reserva,account.data_account_type_equity,FALSE,do_chart_template,"account_tag_3,account_tag_33,account_tag_3304"
|
||||
do_niif_41010100,41010100,Ventas Bienes,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_41,account_tag_4101"
|
||||
do_niif_41010200,41010200,Ventas Bienes - Al Exterior,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_41,account_tag_4101"
|
||||
do_niif_41020100,41020100,Ventas Servicios,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_41,account_tag_4102"
|
||||
do_niif_41020200,41020200,Ventas Servicios - Al Exterior,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_41,account_tag_4102"
|
||||
do_niif_41030100,41030100,Devoluciones de Bienes,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_41,account_tag_4103"
|
||||
do_niif_41030200,41030200,Devoluciones por Servicios,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_41,account_tag_4103"
|
||||
do_niif_41040100,41040100,Descuentos por Ventas (por NC),account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_41,account_tag_4104"
|
||||
do_niif_42010100,42010100,Intereses sobre Certificados,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_42,account_tag_4201"
|
||||
do_niif_42010200,42010200,Intereses en Cuentas Bancarias,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_42,account_tag_4201"
|
||||
do_niif_42010300,42010300,Intereses por Financiamientos,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_42,account_tag_4201"
|
||||
do_niif_42020100,42020100,Ingresos por Ventas de Activos,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_42,account_tag_4202"
|
||||
do_niif_42030100,42030100,Ingresos por Dividendos Ganados,account.data_account_type_revenue,FALSE,do_chart_template,"account_tag_4,account_tag_42,account_tag_4203"
|
||||
do_niif_42040100,42040100,Ingresos por Diferencia Cambiaria,account.data_account_type_other_income,FALSE,do_chart_template,"account_tag_4,account_tag_42,account_tag_4204"
|
||||
do_niif_42040200,42040200,Cobro de Cuentas Incobrables,account.data_account_type_other_income,FALSE,do_chart_template,"account_tag_4,account_tag_42,account_tag_4204"
|
||||
do_niif_42040300,42040300,Otros Ingresos,account.data_account_type_other_income,FALSE,do_chart_template,"account_tag_4,account_tag_42,account_tag_4204"
|
||||
do_niif_51010100,51010100,Costos de Bienes,account.data_account_type_direct_costs,FALSE,do_chart_template,"account_tag_5,account_tag_51,account_tag_5101"
|
||||
do_niif_51010200,51010200,Costos de Servicios,account.data_account_type_direct_costs,FALSE,do_chart_template,"account_tag_5,account_tag_51,account_tag_5101"
|
||||
do_niif_51010300,51010300,Diferencia de Precio,account.data_account_type_direct_costs,FALSE,do_chart_template,"account_tag_5,account_tag_51,account_tag_5101"
|
||||
do_niif_51020100,51020100,Costos de Materia Prima,account.data_account_type_direct_costs,FALSE,do_chart_template,"account_tag_5,account_tag_51,account_tag_5102"
|
||||
do_niif_51020200,51020200,Costos de Mano de Obra,account.data_account_type_direct_costs,FALSE,do_chart_template,"account_tag_5,account_tag_51,account_tag_5102"
|
||||
do_niif_51020300,51020300,Costos Indirectos,account.data_account_type_direct_costs,FALSE,do_chart_template,"account_tag_5,account_tag_51,account_tag_5102"
|
||||
do_niif_52010100,52010100,Sueldos y Salarios,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010200,52010200,Regalía Pascual,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010300,52010300,Retribuciones Complementarias,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010400,52010400,Bono Vacacional,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010500,52010500,Bono por Desempeño,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010600,52010600,Comisiones,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010700,52010700,Indemnizaciones,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010800,52010800,Bonificaciones y Gratificaciones,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010900,52010900,Dietas al Personal,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52011000,52011000,Cursos y Entrenamientos,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52011100,52011100,Prestaciones Laborales (Preaviso y Cesantia),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52011200,52011200,Incentivos,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52011300,52011300,Horas Extras,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52011400,52011400,Otros Gastos de Personal,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201"
|
||||
do_niif_52010102,52010102,Contribución a la Administradora de Fondos de Pensiones (AFP),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201,account_tag_520101"
|
||||
do_niif_52010103,52010103,Contribución al Seguro Riesgo Laboral (SRL),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201,account_tag_520101"
|
||||
do_niif_52010104,52010104,Contribución al Seguro Familiar de Salud (SFS),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201,account_tag_520101"
|
||||
do_niif_52010201,52010201,Contribución a la Administradora de Riesgos de Salud (ARS),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201,account_tag_520102"
|
||||
do_niif_52010202,52010202,Contribución a Seguros del Personal,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201,account_tag_520102"
|
||||
do_niif_52010203,52010203,Contribución a Planes Complementarios de Salud,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201,account_tag_520102"
|
||||
do_niif_52010204,52010204,Contribución Seguros de Vida,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201,account_tag_520102"
|
||||
do_niif_52010205,52010205,Contribución al INFOTEP,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5201,account_tag_520102"
|
||||
do_niif_52020100,52020100,Energía Eléctrica,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52020200,52020200,Comunicaciones,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52020300,52020300,Papelería y útiles,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52020400,52020400,Útiles de Aseo y Limpieza,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52020500,52020500,Agua y Basura,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52020600,52020600,Seguro de Edificio,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52020700,52020700,Combustibles y Lubricantes,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52020800,52020800,Alquileres,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52020900,52020900,Franquicias,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52021000,52021000,Eventos,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52021100,52021100,Seguros,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52021200,52021200,Servicios de Mensajería,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52021300,52021300,Flete y Carga,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52021400,52021400,Cuotas y Suscripciones,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52021500,52021500,Otros Gastos de Administración,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5202"
|
||||
do_niif_52030101,52030101,Legales (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030102,52030102,Contabilidad y Auditoría (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030103,52030103,Tecnología (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030104,52030104,Mantenimiento de Planta (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030105,52030105,Mantenimiento del Local (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030106,52030106,Mantenimiento Mobiliario y Equipos (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030107,52030107,Asesorías (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030108,52030108,Fumigaciones (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030109,52030109,Copias y Escaneos (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030110,52030110,Servicios de Vigilancia (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030111,52030111,Otros Servicios Profesionales (P. Física),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520301"
|
||||
do_niif_52030201,52030201,Legales (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030202,52030202,Contabilidad y Auditoría (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030203,52030203,Tecnología (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030204,52030204,Mantenimiento de Planta (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030205,52030205,Mantenimiento del Local (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030206,52030206,Mantenimiento Mobiliario y Equipos (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030207,52030207,Asesorías (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030208,52030208,Fumigaciones (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030209,52030209,Copias y Escaneos (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030210,52030210,Servicios de Vigilancia (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030211,52030211,Otros Servicios Profesionales (P. Jurídica),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520302"
|
||||
do_niif_52030301,52030301,Honorarios por Servicios del Exterior - Relacionadas,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520303"
|
||||
do_niif_52030302,52030302,Honorarios por Servicios del Exterior - Terceros,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5203,account_tag_520303"
|
||||
do_niif_52040100,52040100,Gastos por Depreciación de Edificios,account.data_account_type_depreciation,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5204"
|
||||
do_niif_52040200,52040200,Gastos por Depreciación de Equipo de Transporte,account.data_account_type_depreciation,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5204"
|
||||
do_niif_52040300,52040300,Gastos por Depreciación de Mobiliario y Equipos,account.data_account_type_depreciation,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5204"
|
||||
do_niif_52040400,52040400,Gastos por Depreciación de Maquinaria,account.data_account_type_depreciation,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5204"
|
||||
do_niif_52040500,52040500,Gastos por Depreciación de Herramientas,account.data_account_type_depreciation,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5204"
|
||||
do_niif_52040600,52040600,Gastos por Depreciación de Instalaciones,account.data_account_type_depreciation,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5204"
|
||||
do_niif_52050100,52050100,Gastos por Reparación de Edificios,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5205"
|
||||
do_niif_52050200,52050200,Gastos por Reparación de Equipo de Transporte,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5205"
|
||||
do_niif_52050300,52050300,Gastos por Reparación de Mobiliario y Equipos,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5205"
|
||||
do_niif_52050400,52050400,Gastos por Reparación de Maquinaria,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5205"
|
||||
do_niif_52050500,52050500,Gastos por Reparación de Herramientas,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5205"
|
||||
do_niif_52050600,52050600,Gastos por Reparación de Instalaciones,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5205"
|
||||
do_niif_52060100,52060100,Relaciones Públicas,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5206"
|
||||
do_niif_52060200,52060200,Publicidad,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5206"
|
||||
do_niif_52060300,52060300,Viajes,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5206"
|
||||
do_niif_52060400,52060400,Donaciones,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5206"
|
||||
do_niif_52060500,52060500,Donaciones a ProIndustria (Ley 392-07),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5206"
|
||||
do_niif_52060600,52060600,Promociones,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5206"
|
||||
do_niif_52060700,52060700,Otros Gastos de Representación,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5206"
|
||||
do_niif_52070100,52070100,Gastos por Préstamos Financieros,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52070200,52070200,Retención por Cheques y Transferencias Electrónicas (0.15%),account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52070300,52070300,Intereses Bancarios,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52070400,52070400,Comisiones Bancarias,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52070500,52070500,Comisión de Tarjeta de Crédito,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52070600,52070600,Nota de Cargos por Banco,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52070700,52070700,Seguro sobre Préstamos Bancarios,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52070800,52070800,Pérdidas por Diferencia Cambiaria,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52070900,52070900,Otro Gastos Financieros,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5207"
|
||||
do_niif_52080100,52080100,Gastos por Siniestros,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_52080200,52080200,Pérdidas por Ventas de Activos Fijos,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_52080300,52080300,Pérdidas por Cuentas Incobrables,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_52080400,52080400,Gastos por ISR,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_52080500,52080500,Impuestos a los Activos,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_52080600,52080600,Penalidades/Recargos de DGII,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_52080700,52080700,Penalidades/Recargos de TSS,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_52080800,52080800,Gastos Sin Comprobante,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_52080900,52080900,Gastos por Impuestos,account.data_account_type_expenses,FALSE,do_chart_template,"account_tag_5,account_tag_52,account_tag_5208"
|
||||
do_niif_61010100,61010100,Pérdidas y Ganancias,account.data_unaffected_earnings,FALSE,do_chart_template,"account_tag_6,account_tag_61,account_tag_6101"
|
||||
|
||||
|
@@ -183,7 +183,7 @@
|
||||
<field eval="0" name="amount"/>
|
||||
<field name="amount_type">group</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
<field eval="[(6, 0, [ref('tax_10_telco'), ref('tax_2_telco')])]" name="children_tax_ids"/>
|
||||
<field eval="[(6, 0, [ref('tax_18_purch_serv'), ref('tax_10_telco'), ref('tax_2_telco')])]" name="children_tax_ids"/>
|
||||
</record>
|
||||
<record id="ret_100_tax_nonprofit" model="account.tax.template">
|
||||
<field name="chart_template_id" ref="do_chart_template"/>
|
||||
|
||||
@@ -2,9 +2,562 @@
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
|
||||
<!-- Account Tags -->
|
||||
|
||||
<record id='account_tag_1' model='account.account.tag'>
|
||||
<field name='name'>1 Activos</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_11' model='account.account.tag'>
|
||||
<field name='name'>11 Activos Corrientes</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1101' model='account.account.tag'>
|
||||
<field name='name'>1101 Efectivo y Equivalentes de Efectivo</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_110101' model='account.account.tag'>
|
||||
<field name='name'>110101 Caja</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_110102' model='account.account.tag'>
|
||||
<field name='name'>110102 Bancos</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_110103' model='account.account.tag'>
|
||||
<field name='name'>110103 Inversiones Temporales Plazo Menor 90 días</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1102' model='account.account.tag'>
|
||||
<field name='name'>1102 Inversiones en Valores a Corto Plazo</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1103' model='account.account.tag'>
|
||||
<field name='name'>1103 Cuentas y Documentos por Cobrar</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_110301' model='account.account.tag'>
|
||||
<field name='name'>110301 Documentos por Cobrar</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_110302' model='account.account.tag'>
|
||||
<field name='name'>110302 Cuentas por Cobrar</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1104' model='account.account.tag'>
|
||||
<field name='name'>1104 Provisión para Cuentas Incobrables</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1105' model='account.account.tag'>
|
||||
<field name='name'>1105 Inventarios</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1106' model='account.account.tag'>
|
||||
<field name='name'>1106 Deterioro Acumulado de Valor de Inventarios</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1107' model='account.account.tag'>
|
||||
<field name='name'>1107 Estimación por Obsolecencia de Inventario</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1108' model='account.account.tag'>
|
||||
<field name='name'>1108 Impuestos Adelantados</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_110801' model='account.account.tag'>
|
||||
<field name='name'>110801 ITBIS Pagado en Compras</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_110803' model='account.account.tag'>
|
||||
<field name='name'>110803 Otros Impuestos y Saldos</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1109' model='account.account.tag'>
|
||||
<field name='name'>1109 Inversiones Temporales</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1110' model='account.account.tag'>
|
||||
<field name='name'>1110 Pagos Anticipados</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_12' model='account.account.tag'>
|
||||
<field name='name'>12 Activos Fijos</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1201' model='account.account.tag'>
|
||||
<field name='name'>1201 Propiedades, Planta y Equipo</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_120101' model='account.account.tag'>
|
||||
<field name='name'>120101 Bienes Inmuebles (CAT 1)</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_120102' model='account.account.tag'>
|
||||
<field name='name'>120102 Bienes Muebles (CAT 2)</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_120103' model='account.account.tag'>
|
||||
<field name='name'>120103 Bienes Muebles (CAT 3)</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1202' model='account.account.tag'>
|
||||
<field name='name'>1202 Depreciación Acumulada de Propiedades, Planta y Equipo</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1203' model='account.account.tag'>
|
||||
<field name='name'> 1203 Deterioro de Valor Acumulado de Propiedades, Planta y Equipo</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1204' model='account.account.tag'>
|
||||
<field name='name'>1204 Activos Intangibles</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1205' model='account.account.tag'>
|
||||
<field name='name'>1205 Bienes en Arrendamiento</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1206' model='account.account.tag'>
|
||||
<field name='name'>1206 Depreciación Acumulada de Bienes en Arrendamiento</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1207' model='account.account.tag'>
|
||||
<field name='name'>1207 Deterioro de Valor Acumulado de Bienes en Arrendamiento</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1208' model='account.account.tag'>
|
||||
<field name='name'>1208 Inversiones Permanentes</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_1209' model='account.account.tag'>
|
||||
<field name='name'>1209 Activos Diferidos</field>
|
||||
<field name='color'>1</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2' model='account.account.tag'>
|
||||
<field name='name'>2 Pasivos</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_21' model='account.account.tag'>
|
||||
<field name='name'>21 Pasivo Corriente</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2101' model='account.account.tag'>
|
||||
<field name='name'>2101 Cuentas y Documentos por Pagar a Corto Plazo</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2102' model='account.account.tag'>
|
||||
<field name='name'>2102 Beneficios por Pagar a Corto Plazo</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2103' model='account.account.tag'>
|
||||
<field name='name'>2103 Impuestos y Retenciones</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_210301' model='account.account.tag'>
|
||||
<field name='name'>210301 ITBIS por Pagar</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_210302' model='account.account.tag'>
|
||||
<field name='name'>210302 ITBIS Retenido</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_210303' model='account.account.tag'>
|
||||
<field name='name'>210303 ISR Retenido</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_210304' model='account.account.tag'>
|
||||
<field name='name'>210304 Retenciones en Nómina</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_210305' model='account.account.tag'>
|
||||
<field name='name'>210305 Otros Impuestos o Retenciones</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2104' model='account.account.tag'>
|
||||
<field name='name'>2104 Provisiones a Corto Plazo</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2105' model='account.account.tag'>
|
||||
<field name='name'>2105 Tarjetas de Crédito</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_22' model='account.account.tag'>
|
||||
<field name='name'>22 Pasivo No Corriente</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2201' model='account.account.tag'>
|
||||
<field name='name'>2201 Cuentas y Documentos por Pagar a Largo Plazo</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2202' model='account.account.tag'>
|
||||
<field name='name'>2202 Provisión para Obligaciones Laborales</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2203' model='account.account.tag'>
|
||||
<field name='name'>2203 Anticipos y Garantías de Clientes</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_2204' model='account.account.tag'>
|
||||
<field name='name'>2204 Provisiones a Largo Plazo</field>
|
||||
<field name='color'>8</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_3' model='account.account.tag'>
|
||||
<field name='name'>3 Capital</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_31' model='account.account.tag'>
|
||||
<field name='name'>31 Capital Contable</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_3101' model='account.account.tag'>
|
||||
<field name='name'>3101 Capital Social</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_3102' model='account.account.tag'>
|
||||
<field name='name'>3102 Superávit por Revaluación de Activos</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_32' model='account.account.tag'>
|
||||
<field name='name'>32 Utilidades Restringidas</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_3201' model='account.account.tag'>
|
||||
<field name='name'>3201 Reserva Legal</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_33' model='account.account.tag'>
|
||||
<field name='name'>33 Resultados</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_3301' model='account.account.tag'>
|
||||
<field name='name'>3301 Resultados Acumulados</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_3302' model='account.account.tag'>
|
||||
<field name='name'>3302 Resultados del Ejercicio</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_3304' model='account.account.tag'>
|
||||
<field name='name'>3304 Otras Reservas de Patrimonio</field>
|
||||
<field name='color'>6</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4' model='account.account.tag'>
|
||||
<field name='name'>4 Ingresos y Ganancias</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_41' model='account.account.tag'>
|
||||
<field name='name'>41 Ingresos por Operaciones</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4101' model='account.account.tag'>
|
||||
<field name='name'>4101 Ventas de Bienes</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4102' model='account.account.tag'>
|
||||
<field name='name'>4102 Ventas de Servicios</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4103' model='account.account.tag'>
|
||||
<field name='name'>4103 Devoluciones</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4104' model='account.account.tag'>
|
||||
<field name='name'>4104 Descuentos</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_42' model='account.account.tag'>
|
||||
<field name='name'>42 Ingresos No Operacionales</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4201' model='account.account.tag'>
|
||||
<field name='name'>4201 Intereses Ganados</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4202' model='account.account.tag'>
|
||||
<field name='name'>4202 Ventas de Activos</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4203' model='account.account.tag'>
|
||||
<field name='name'>4203 Dividendos Ganados</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_4204' model='account.account.tag'>
|
||||
<field name='name'>4204 Ingresos Extraordinarios</field>
|
||||
<field name='color'>7</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5' model='account.account.tag'>
|
||||
<field name='name'>5 Costos, Gastos y Pérdidas</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_51' model='account.account.tag'>
|
||||
<field name='name'>51 Costos y Gastos de Operación</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5101' model='account.account.tag'>
|
||||
<field name='name'>5101 Costos de Ventas</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5102' model='account.account.tag'>
|
||||
<field name='name'>5102 Costos de Producción</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_52' model='account.account.tag'>
|
||||
<field name='name'>52 Gastos de Operación</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5201' model='account.account.tag'>
|
||||
<field name='name'>5201 Gastos de Personal</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_520101' model='account.account.tag'>
|
||||
<field name='name'>520101 Aportes a la Seguridad Social</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_520102' model='account.account.tag'>
|
||||
<field name='name'>520102 Otras Cargas Patronales</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5202' model='account.account.tag'>
|
||||
<field name='name'>5202 Gastos de Administración</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5203' model='account.account.tag'>
|
||||
<field name='name'>5203 Gastos por Trabajo, Suministros y Servicios</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_520301' model='account.account.tag'>
|
||||
<field name='name'>520301 Gastos Honorarios por Servicios Profesionales (P. Física)</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_520302' model='account.account.tag'>
|
||||
<field name='name'>520302 Gastos Honorarios por Servicios Profesionales (P. Jurídica)</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_520303' model='account.account.tag'>
|
||||
<field name='name'>520303 Gastos Honorarios por Servicios Profesionales (P. Jurídica)</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5204' model='account.account.tag'>
|
||||
<field name='name'>5204 Gastos por Depreciación</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5205' model='account.account.tag'>
|
||||
<field name='name'>5205 Gastos por Reparaciones</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5206' model='account.account.tag'>
|
||||
<field name='name'>5206 Gastos de Representación</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5207' model='account.account.tag'>
|
||||
<field name='name'>5207 Gastos Financieros</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_5208' model='account.account.tag'>
|
||||
<field name='name'>5208 Gastos Extraordinarios</field>
|
||||
<field name='color'>4</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_6' model='account.account.tag'>
|
||||
<field name='name'>6 Cuentas Liquidadoras de Resultados</field>
|
||||
<field name='color'>5</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_61' model='account.account.tag'>
|
||||
<field name='name'>61 Cuenta Liquidadora</field>
|
||||
<field name='color'>5</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_6101' model='account.account.tag'>
|
||||
<field name='name'>6101 Pérdidas y Ganancias</field>
|
||||
<field name='color'>5</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<record id='account_tag_6102' model='account.account.tag'>
|
||||
<field name='name'>6102 Gastos por Impuestos</field>
|
||||
<field name='color'>5</field>
|
||||
<field name='applicability'>accounts</field>
|
||||
</record>
|
||||
|
||||
<!-- Tax Tags -->
|
||||
|
||||
<record id="tag_R_ISR_10" model="account.account.tag">
|
||||
<field name="name">R-ISR 10%</field>
|
||||
<field name="applicability">taxes</field>
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<record id="do_chart_template" model="account.chart.template">
|
||||
<field name="property_account_receivable_id" ref="do_niif_11030201"/>
|
||||
<field name="property_account_payable_id" ref="do_niif_21010200"/>
|
||||
<field name="property_account_expense_categ_id" ref="do_niif_52021500"/>
|
||||
<field name="property_account_expense_categ_id" ref="do_niif_51010100"/>
|
||||
<field name="property_account_income_categ_id" ref="do_niif_41010100"/>
|
||||
<field eval="False" name="use_anglo_saxon"/>
|
||||
<field name="property_stock_account_input_categ_id" ref="do_niif_11050300"/>
|
||||
<field name="property_stock_account_output_categ_id" ref="do_niif_11050300"/>
|
||||
<field name="property_stock_valuation_account_id" ref="do_niif_11060100"/>
|
||||
<field name="property_stock_account_input_categ_id" ref="do_niif_21021200"/>
|
||||
<field name="property_stock_account_output_categ_id" ref="do_niif_11050600"/>
|
||||
<field name="property_stock_valuation_account_id" ref="do_niif_11050100"/>
|
||||
<field name="expense_currency_exchange_account_id" ref="do_niif_52070800"/>
|
||||
<field name="income_currency_exchange_account_id" ref="do_niif_42040100"/>
|
||||
</record>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<field name="bank_account_code_prefix">110102</field>
|
||||
<field name="transfer_account_id" ref="cash_transfer_account"/>
|
||||
<field name="currency_id" ref="base.DOP"/>
|
||||
<field name="spoken_languages" eval="'es_DO'"/>
|
||||
</record>
|
||||
<record id="cash_transfer_account" model="account.account.template">
|
||||
<field name="chart_template_id" ref="do_chart_template"/>
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
<field name="refund_account_id" ref="cuenta209_01"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_iva')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_iva"/>
|
||||
<field name="use_cash_basis" eval="True"/>
|
||||
<field name="cash_basis_account" ref="cuenta208_01"/>
|
||||
</record>
|
||||
|
||||
<record id="tax12" model="account.tax.template">
|
||||
@@ -39,6 +41,8 @@
|
||||
<field name="refund_account_id" ref="cuenta209_01"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_iva')])]"/>
|
||||
<field name="tax_group_id" ref="tax_group_iva"/>
|
||||
<field name="use_cash_basis" eval="True"/>
|
||||
<field name="cash_basis_account" ref="cuenta208_01"/>
|
||||
</record>
|
||||
|
||||
<record id="tax1" model="account.tax.template">
|
||||
@@ -51,6 +55,8 @@
|
||||
<field name="account_id" ref="cuenta216_10"/>
|
||||
<field name="refund_account_id" ref="cuenta216_10"/>
|
||||
<field name="tax_group_id" ref="tax_group_iva_ret"/>
|
||||
<field name="use_cash_basis" eval="True"/>
|
||||
<field name="cash_basis_account" ref="cuenta216_10_20"/>
|
||||
</record>
|
||||
|
||||
<record id="tax2" model="account.tax.template">
|
||||
@@ -63,6 +69,8 @@
|
||||
<field name="account_id" ref="cuenta216_10"/>
|
||||
<field name="refund_account_id" ref="cuenta216_10"/>
|
||||
<field name="tax_group_id" ref="tax_group_iva_ret"/>
|
||||
<field name="use_cash_basis" eval="True"/>
|
||||
<field name="cash_basis_account" ref="cuenta216_10_20"/>
|
||||
</record>
|
||||
|
||||
<record id="tax3" model="account.tax.template">
|
||||
@@ -99,6 +107,8 @@
|
||||
<field name="account_id" ref="cuenta216_10"/>
|
||||
<field name="refund_account_id" ref="cuenta216_10"/>
|
||||
<field name="tax_group_id" ref="tax_group_iva_ret"/>
|
||||
<field name="use_cash_basis" eval="True"/>
|
||||
<field name="cash_basis_account" ref="cuenta216_10_20"/>
|
||||
</record>
|
||||
|
||||
<record id="tax8" model="account.tax.template">
|
||||
@@ -111,6 +121,8 @@
|
||||
<field name="account_id" ref="cuenta216_10"/>
|
||||
<field name="refund_account_id" ref="cuenta216_10"/>
|
||||
<field name="tax_group_id" ref="tax_group_iva_ret"/>
|
||||
<field name="use_cash_basis" eval="True"/>
|
||||
<field name="cash_basis_account" ref="cuenta216_10_20"/>
|
||||
</record>
|
||||
|
||||
<record id="tax13" model="account.tax.template">
|
||||
@@ -123,6 +135,8 @@
|
||||
<field name="account_id" ref="cuenta119_01"/>
|
||||
<field name="refund_account_id" ref="cuenta119_01"/>
|
||||
<field name="tax_group_id" ref="tax_group_iva"/>
|
||||
<field name="use_cash_basis" eval="True"/>
|
||||
<field name="cash_basis_account" ref="cuenta118_01"/>
|
||||
</record>
|
||||
|
||||
<record id="tax14" model="account.tax.template">
|
||||
@@ -135,6 +149,8 @@
|
||||
<field name="account_id" ref="cuenta119_01"/>
|
||||
<field name="refund_account_id" ref="cuenta119_01"/>
|
||||
<field name="tax_group_id" ref="tax_group_iva"/>
|
||||
<field name="use_cash_basis" eval="True"/>
|
||||
<field name="cash_basis_account" ref="cuenta118_01"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -1,28 +1,108 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="account_fiscal_position_personasmoralesdelrgimengeneral0" model="account.fiscal.position.template">
|
||||
<field name="name">Personas morales del régimen general</field>
|
||||
<record id="account_fiscal_position_601_fr" model="account.fiscal.position.template">
|
||||
<field name="name">601 - General de Ley Personas Morales</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_personasmoralesconfinesnolucrativos0" model="account.fiscal.position.template">
|
||||
<field name="name">Personas morales con fines no lucrativos</field>
|
||||
<record id="account_fiscal_position_603_fr" model="account.fiscal.position.template">
|
||||
<field name="name">603 - Personas Morales con Fines no Lucrativos</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_asociacionesreligiosas0" model="account.fiscal.position.template">
|
||||
<field name="name">Asociaciones Religiosas</field>
|
||||
<record id="account_fiscal_position_605_fr" model="account.fiscal.position.template">
|
||||
<field name="name">605 - Sueldos y Salarios e Ingresos Asimilados a Salarios</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_personasmoralesdelrgimensimplificado0" model="account.fiscal.position.template">
|
||||
<field name="name">Personas morales del régimen simplificado</field>
|
||||
<record id="account_fiscal_position_606_fr" model="account.fiscal.position.template">
|
||||
<field name="name">606 - Arrendamiento</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_personafisicaconactividadempresarial0" model="account.fiscal.position.template">
|
||||
<field name="name">Persona física con actividad empresarial</field>
|
||||
<record id="account_fiscal_position_607_fr" model="account.fiscal.position.template">
|
||||
<field name="name">607 - Régimen de Enajenación o Adquisición de Bienes</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_608_fr" model="account.fiscal.position.template">
|
||||
<field name="name">608 - Demás ingresos</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_609_fr" model="account.fiscal.position.template">
|
||||
<field name="name">609 - Consolidación</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_610_fr" model="account.fiscal.position.template">
|
||||
<field name="name">610 - Residentes en el Extranjero sin Establecimiento Permanente en México</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_611_fr" model="account.fiscal.position.template">
|
||||
<field name="name">611 - Ingresos por Dividendos (socios y accionistas)</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_612_fr" model="account.fiscal.position.template">
|
||||
<field name="name">612 - Personas Físicas con Actividades Empresariales y Profesionales</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_614_fr" model="account.fiscal.position.template">
|
||||
<field name="name">614 - Ingresos por intereses</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_615_fr" model="account.fiscal.position.template">
|
||||
<field name="name">615 - Régimen de los ingresos por obtención de premios</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_616_fr" model="account.fiscal.position.template">
|
||||
<field name="name">616 - Sin obligaciones fiscales</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_620_fr" model="account.fiscal.position.template">
|
||||
<field name="name">620 - Sociedades Cooperativas de Producción que optan por diferir sus ingresos</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_621_fr" model="account.fiscal.position.template">
|
||||
<field name="name">621 - Incorporación Fiscal</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_622_fr" model="account.fiscal.position.template">
|
||||
<field name="name">622 - Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_623_fr" model="account.fiscal.position.template">
|
||||
<field name="name">623 - Opcional para Grupos de Sociedades</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_624_fr" model="account.fiscal.position.template">
|
||||
<field name="name">624 - Coordinados</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_628_fr" model="account.fiscal.position.template">
|
||||
<field name="name">628 - Hidrocarburos</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_629_fr" model="account.fiscal.position.template">
|
||||
<field name="name">629 - De los Regímenes Fiscales Preferentes y de las Empresas Multinacionales</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
<record id="account_fiscal_position_630_fr" model="account.fiscal.position.template">
|
||||
<field name="name">630 - Enajenación de acciones en bolsa de valores</field>
|
||||
<field name="chart_template_id" ref="mx_coa"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -8,44 +8,6 @@ from odoo import models, api, _
|
||||
class AccountChartTemplate(models.Model):
|
||||
_inherit = "account.chart.template"
|
||||
|
||||
@api.multi
|
||||
def _load_template(
|
||||
self, company, code_digits=None, transfer_account_id=None,
|
||||
account_ref=None, taxes_ref=None):
|
||||
"""
|
||||
Set the 'use_cash_basis' and 'cash_basis_account' fields on account.account. This hack is needed due to the fact
|
||||
that the tax template does not have the fields 'use_cash_basis' and 'cash_basis_account'.
|
||||
|
||||
This hunk should be removed in master, as the account_tax_cash_basis module has been merged already in account
|
||||
module
|
||||
"""
|
||||
self.ensure_one()
|
||||
accounts, taxes = super(AccountChartTemplate, self)._load_template(
|
||||
company, code_digits=code_digits,
|
||||
transfer_account_id=transfer_account_id, account_ref=account_ref,
|
||||
taxes_ref=taxes_ref)
|
||||
if not self == self.env.ref('l10n_mx.mx_coa'):
|
||||
return accounts, taxes
|
||||
account_tax_obj = self.env['account.tax']
|
||||
account_obj = self.env['account.account']
|
||||
taxes_acc = {
|
||||
'IVA': account_obj.search([('code', '=', '208.01.01')]),
|
||||
'ITAXR_04-OUT': account_obj.search([('code', '=', '216.10.20')]),
|
||||
'ITAXR_10-OUT': account_obj.search([('code', '=', '216.10.20')]),
|
||||
'ITAX_1067-OUT': account_obj.search([('code', '=', '216.10.20')]),
|
||||
'ITAX_167-OUT': account_obj.search([('code', '=', '216.10.20')]),
|
||||
'ITAX_010-OUT': account_obj.search([('code', '=', '208.01.01')]),
|
||||
'ITAX_160-OUT': account_obj.search([('code', '=', '208.01.01')])}
|
||||
|
||||
for tax in self.tax_template_ids:
|
||||
if tax.description not in taxes_acc:
|
||||
continue
|
||||
account_tax_obj.browse(taxes.get(tax.id)).write({
|
||||
'use_cash_basis': True,
|
||||
'cash_basis_account': taxes_acc.get(tax.description).id,
|
||||
})
|
||||
return accounts, taxes
|
||||
|
||||
@api.model
|
||||
def generate_journals(self, acc_template_ref, company, journals_dict=None):
|
||||
"""Set the tax_cash_basis_journal_id on the company"""
|
||||
|
||||
@@ -215,11 +215,12 @@ class Partner(models.Model):
|
||||
(not self.pool._init or test_mode):
|
||||
email_ids = emails.ids
|
||||
dbname = self.env.cr.dbname
|
||||
_context = self._context
|
||||
|
||||
def send_notifications():
|
||||
db_registry = registry(dbname)
|
||||
with api.Environment.manage(), db_registry.cursor() as cr:
|
||||
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||
env = api.Environment(cr, SUPERUSER_ID, _context)
|
||||
env['mail.mail'].browse(email_ids).send()
|
||||
|
||||
# unless asked specifically, send emails after the transaction to
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<separator/>
|
||||
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
|
||||
<separator/>
|
||||
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
|
||||
<filter string="Archived" name="inactive" domain="[('archive','=',True)]"/>
|
||||
<group expand='0' string='Group by...'>
|
||||
<filter string='Assigned' domain="[]" context="{'group_by': 'technician_user_id'}"/>
|
||||
<filter string='Category' domain="[]" context="{'group_by' : 'category_id'}"/>
|
||||
|
||||
@@ -442,7 +442,7 @@ class MarketingCampaignWorkitem(models.Model):
|
||||
for workitem in self:
|
||||
proxy = self.env[workitem.object_id.model]
|
||||
record = proxy.browse(workitem.res_id)
|
||||
if not workitem.res_id or not record:
|
||||
if not workitem.res_id or not record.exists():
|
||||
workitem.res_name = '/'
|
||||
continue
|
||||
workitem.res_name = record.name_get()[0][1]
|
||||
|
||||
@@ -21,5 +21,17 @@
|
||||
<field name="name">Newsletter</field>
|
||||
</record>
|
||||
|
||||
<!-- Cron that process the mass mailing queue -->
|
||||
<record id="ir_cron_mass_mailing_queue" model="ir.cron">
|
||||
<field name="name">Mass Mailing: Process queue</field>
|
||||
<field name="model_id" ref="model_mail_mass_mailing"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model._process_mass_mailing_queue()</field>
|
||||
<field name="user_id" ref="base.user_root" />
|
||||
<field name="interval_number">60</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall" />
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -500,7 +500,7 @@ class MassMailing(models.Model):
|
||||
res = [x for x in read_group_res if x['state'] == state_value]
|
||||
if not res:
|
||||
res = [x for x in read_group_all_states if x['state'] == state_value]
|
||||
res[0]['state'] = [state_value, state_name]
|
||||
res[0]['state'] = state_value
|
||||
result.append(res[0])
|
||||
return result
|
||||
else:
|
||||
|
||||
@@ -55,9 +55,12 @@
|
||||
background-color: @o_mm_def_color_alpha;
|
||||
padding: 24px 3%;
|
||||
|
||||
// Forces on <p/> elements as several mail clients does not correctly
|
||||
// inherit font properties
|
||||
// Forces on <p/> and <hx/> elements as several mail clients does not
|
||||
// correctly inherit font properties
|
||||
&, p {
|
||||
font-size: 14px; // force bootstrap default
|
||||
}
|
||||
&, p, h1, h2, h3, h4, h5, h6 {
|
||||
font-family: @o_mm_def_font;
|
||||
color: lighten(@o_mm_def_text_color, 20%);
|
||||
}
|
||||
|
||||
@@ -861,19 +861,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Cron that process the mass mailing queue -->
|
||||
<record id="ir_cron_mass_mailing_queue" model="ir.cron">
|
||||
<field name="name">Mass Mailing: Process queue</field>
|
||||
<field name="model_id" ref="model_mail_mass_mailing"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model._process_mass_mailing_queue()</field>
|
||||
<field name="user_id" ref="base.user_root" />
|
||||
<field name="interval_number">60</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall" />
|
||||
</record>
|
||||
|
||||
<menuitem name="Campaigns" id="menu_email_campaigns"
|
||||
parent="mass_mailing_menu_root" sequence="5"
|
||||
action="action_view_mass_mailing_campaigns"
|
||||
|
||||
@@ -30,12 +30,13 @@ class MembershipInvoice(models.TransientModel):
|
||||
|
||||
search_view_ref = self.env.ref('account.view_account_invoice_filter', False)
|
||||
form_view_ref = self.env.ref('account.invoice_form', False)
|
||||
tree_view_ref = self.env.ref('account.invoice_tree', False)
|
||||
|
||||
return {
|
||||
'domain': [('id', 'in', invoice_list)],
|
||||
'name': 'Membership Invoices',
|
||||
'res_model': 'account.invoice',
|
||||
'type': 'ir.actions.act_window',
|
||||
'views': [(False, 'tree'), (form_view_ref and form_view_ref.id, 'form')],
|
||||
'views': [(tree_view_ref.id, 'tree'), (form_view_ref.id, 'form')],
|
||||
'search_view_id': search_view_ref and search_view_ref.id,
|
||||
}
|
||||
|
||||
@@ -77,10 +77,9 @@ class MrpUnbuild(models.Model):
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
if not vals.get('name'):
|
||||
if vals['name'] == _('New'):
|
||||
vals['name'] = self.env['ir.sequence'].next_by_code('mrp.unbuild') or _('New')
|
||||
unbuild = super(MrpUnbuild, self).create(vals)
|
||||
return unbuild
|
||||
return super(MrpUnbuild, self).create(vals)
|
||||
|
||||
@api.multi
|
||||
def action_unbuild(self):
|
||||
|
||||
@@ -154,7 +154,7 @@ class StockMove(models.Model):
|
||||
lots = self.env['stock.move.lots']
|
||||
for move in self:
|
||||
unlink_move_lots = move.move_lot_ids.filtered(lambda x : (x.quantity_done == 0) and not x.workorder_id)
|
||||
unlink_move_lots.unlink()
|
||||
unlink_move_lots.sudo().unlink()
|
||||
group_new_quant = {}
|
||||
old_move_lot = {}
|
||||
for movelot in move.move_lot_ids:
|
||||
|
||||
@@ -40,7 +40,8 @@
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<strong>Printing date:</strong><br/>
|
||||
<span t-esc="time.strftime('%Y-%m-%d')"/>
|
||||
<span t-esc="time.strftime('%Y-%m-%d')"
|
||||
t-options='{"widget": "date"}'/>
|
||||
</div>
|
||||
<div class="col-xs-3" t-if="'sale_ref' in o">
|
||||
<strong>Partner Ref:</strong><br/>
|
||||
|
||||
@@ -16,8 +16,10 @@
|
||||
</div>
|
||||
</t>
|
||||
<t t-extend="HiddenInputFile" t-name="HiddenInputPDFFile">
|
||||
<t t-jquery="input[type='file']:first" t-operation="replace">
|
||||
<input type="file" class="o_input_file" name="ufile" accept="application/pdf" />
|
||||
<!-- remove the inputs and put a new one for pdf only -->
|
||||
<t t-jquery="input[type='file']" t-operation="replace"/>
|
||||
<t t-jquery="form" t-operation="append">
|
||||
<input type="file" class="o_input_file" name="ufile" accept="application/pdf"/>
|
||||
</t>
|
||||
</t>
|
||||
</templates>
|
||||
|
||||
@@ -31,7 +31,7 @@ QUnit.module('mrp', {
|
||||
},
|
||||
}, function () {
|
||||
QUnit.test("pdf_viewer without data", function (assert) {
|
||||
assert.expect(3);
|
||||
assert.expect(4);
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
@@ -48,6 +48,8 @@ QUnit.module('mrp', {
|
||||
"there should be a visible 'Upload' button");
|
||||
assert.ok(form.$('.o_field_widget iframe.o_pdfview_iframe').hasClass('o_hidden'),
|
||||
"there should be an invisible iframe");
|
||||
assert.strictEqual(form.$('input[type="file"]').length, 1,
|
||||
"there should be one input");
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<button name="action_see_attachments" type="object" icon="fa-file" attrs="{'invisible': [('has_attachments', '=', True)]}"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom_id" options="{'no_open':True,'no_create':True}" groups="product.group_uom"/>
|
||||
<field name="attribute_value_ids" widget="many2many_tags" domain="[('product_ids.product_tmpl_id', '=', parent.product_tmpl_id)]" groups="product.group_product_variant"/>
|
||||
<field name="attribute_value_ids" widget="many2many_tags" domain="[('product_ids.product_tmpl_id', '=', parent.product_tmpl_id)]" options="{'no_create':True}" groups="product.group_product_variant"/>
|
||||
<field name="operation_id" groups="mrp.group_mrp_routings" domain="[('routing_id', '=', parent.routing_id)]" options="{'no_quick_create':True,'no_create_edit':True}"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -39,8 +39,8 @@ class AccountPayment(models.Model):
|
||||
|
||||
def _do_payment(self):
|
||||
if self.payment_token_id.acquirer_id.auto_confirm == 'authorize':
|
||||
raise ValidationError('This feature is not available for payment acquirers set to the "Authorize" mode.\n'
|
||||
'Please use a token from another provider than %s.' % self.payment_token_id.acquirer_id.name)
|
||||
raise ValidationError(_('This feature is not available for payment acquirers set to the "Authorize" mode.\n'
|
||||
'Please use a token from another provider than %s.') % self.payment_token_id.acquirer_id.name)
|
||||
reference = "P-%s-%s" % (self.id, datetime.datetime.now().strftime('%y%m%d_%H%M%S'))
|
||||
tx = self.env['payment.transaction'].create({
|
||||
'amount': self.amount,
|
||||
|
||||
@@ -162,7 +162,7 @@ class PaymentAcquirer(models.Model):
|
||||
def _check_authorization_support(self):
|
||||
for acquirer in self:
|
||||
if acquirer.auto_confirm == 'authorize' and acquirer.provider not in self._get_feature_support()['authorize']:
|
||||
raise ValidationError('You cannot capture payments manually with this payment method. Please choose another Order Confirmation mode (in Configuration tab).')
|
||||
raise ValidationError(_('You cannot capture payments manually with this payment method. Please choose another Order Confirmation mode (in Configuration tab).'))
|
||||
return True
|
||||
|
||||
_constraints = [
|
||||
@@ -664,14 +664,14 @@ class PaymentTransaction(models.Model):
|
||||
@api.multi
|
||||
def action_capture(self):
|
||||
if any(self.mapped(lambda tx: tx.state != 'authorized')):
|
||||
raise ValidationError('Only transactions in the Authorized status can be captured.')
|
||||
raise ValidationError(_('Only transactions in the Authorized status can be captured.'))
|
||||
for tx in self:
|
||||
tx.s2s_capture_transaction()
|
||||
|
||||
@api.multi
|
||||
def action_void(self):
|
||||
if any(self.mapped(lambda tx: tx.state != 'authorized')):
|
||||
raise ValidationError('Only transactions in the Authorized status can be voided.')
|
||||
raise ValidationError(_('Only transactions in the Authorized status can be voided.'))
|
||||
for tx in self:
|
||||
tx.s2s_void_transaction()
|
||||
|
||||
|
||||
@@ -25,11 +25,24 @@ msgstr ""
|
||||
msgid "API Transaction Key"
|
||||
msgstr ""
|
||||
|
||||
#. module: payment_authorize
|
||||
#: code:addons/payment_authorize/models/authorize_request.py:66
|
||||
#, python-format
|
||||
msgid "Authorize.net Error Message(s):\n"
|
||||
" %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: payment_authorize
|
||||
#: model:ir.model.fields,field_description:payment_authorize.field_payment_token_authorize_profile
|
||||
msgid "Authorize.net Profile ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: payment_authorize
|
||||
#: code:addons/payment_authorize/models/payment.py:167
|
||||
#, python-format
|
||||
msgid "Authorize: received data with missing reference (%s) or trans_id (%s) or fingerprint (%s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: payment_authorize
|
||||
#: model:ir.ui.view,arch_db:payment_authorize.authorize_s2s_form
|
||||
msgid "CVC"
|
||||
@@ -75,6 +88,12 @@ msgstr ""
|
||||
msgid "Payment Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: payment_authorize
|
||||
#: code:addons/payment_authorize/models/payment.py:347
|
||||
#, python-format
|
||||
msgid "The Customer Profile creation in Authorize.NET failed."
|
||||
msgstr ""
|
||||
|
||||
#. module: payment_authorize
|
||||
#: model:ir.model.fields,help:payment_authorize.field_payment_token_authorize_profile
|
||||
msgid "This contains the unique reference for this partner/payment token combination in the Authorize.net backend"
|
||||
|
||||
@@ -62,7 +62,7 @@ class AuthorizeAPI():
|
||||
response = strip_ns(r.content, XMLNS)
|
||||
if response.find('messages/resultCode').text == 'Error':
|
||||
messages = [m.text for m in response.findall('messages/message/text')]
|
||||
raise ValidationError('Authorize.net Error Message(s):\n %s' % '\n'.join(messages))
|
||||
raise ValidationError(_('Authorize.net Error Message(s):\n %s') % '\n'.join(messages))
|
||||
return response
|
||||
|
||||
def _base_tree(self, requestType):
|
||||
|
||||
@@ -164,7 +164,7 @@ class TxAuthorize(models.Model):
|
||||
transaction record. """
|
||||
reference, trans_id, fingerprint = data.get('x_invoice_num'), data.get('x_trans_id'), data.get('x_MD5_Hash')
|
||||
if not reference or not trans_id or not fingerprint:
|
||||
error_msg = 'Authorize: received data with missing reference (%s) or trans_id (%s) or fingerprint (%s)' % (reference, trans_id, fingerprint)
|
||||
error_msg = _('Authorize: received data with missing reference (%s) or trans_id (%s) or fingerprint (%s)') % (reference, trans_id, fingerprint)
|
||||
_logger.info(error_msg)
|
||||
raise ValidationError(error_msg)
|
||||
tx = self.search([('reference', '=', reference)])
|
||||
@@ -343,6 +343,6 @@ class PaymentToken(models.Model):
|
||||
'acquirer_ref': res.get('payment_profile_id'),
|
||||
}
|
||||
else:
|
||||
raise ValidationError('The Customer Profile creation in Authorize.NET failed.')
|
||||
raise ValidationError(_('The Customer Profile creation in Authorize.NET failed.'))
|
||||
else:
|
||||
return values
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
<input type="hidden" name="first_name" t-att-value="first_name"/>
|
||||
<input type="hidden" name="last_name" t-att-value="last_name"/>
|
||||
<input type="hidden" name="zip" t-att-value="zip_code"/>
|
||||
<input t-if='state' type='hidden' name="state"
|
||||
t-att-value='state'/>
|
||||
<!-- after payment parameters -->
|
||||
<input t-if='custom' type='hidden' name="custom"
|
||||
t-att-value='custom'/>
|
||||
|
||||
@@ -1,22 +1,8 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright Eezee-It
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
# Copyright 2015 Eezee-It
|
||||
|
||||
{
|
||||
'name': 'Worldline SIPS',
|
||||
'version': '1.0',
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2015 Eezee-It
|
||||
|
||||
import json
|
||||
import logging
|
||||
import werkzeug
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# coding: utf-8
|
||||
|
||||
# Copyright 2015 Eezee-It
|
||||
|
||||
import json
|
||||
import logging
|
||||
from hashlib import sha256
|
||||
|
||||
@@ -3512,6 +3512,12 @@ msgid "You have to select a pricelist in the sale form !\n"
|
||||
"Please set one before choosing a product."
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: code:addons/point_of_sale/models/pos_session.py:24
|
||||
#, python-format
|
||||
msgid "You have to set a Sale Journal for the POS:%s"
|
||||
msgstr ""
|
||||
|
||||
#. module: point_of_sale
|
||||
#: model:ir.actions.act_window,help:point_of_sale.product_product_action
|
||||
msgid "You must define a product for everything you sell through\n"
|
||||
|
||||
@@ -294,7 +294,8 @@ class PosOrder(models.Model):
|
||||
taxes = line.tax_ids_after_fiscal_position.filtered(lambda t: t.company_id.id == current_company.id)
|
||||
if not taxes:
|
||||
continue
|
||||
for tax in taxes.compute_all(line.price_unit * (100.0 - line.discount) / 100.0, cur, line.qty)['taxes']:
|
||||
price = line.price_unit * (1 - (line.discount or 0.0) / 100.0)
|
||||
for tax in taxes.compute_all(price, cur, line.qty)['taxes']:
|
||||
insert_data('tax', {
|
||||
'name': _('Tax') + ' ' + tax['name'],
|
||||
'product_id': line.product_id.id,
|
||||
|
||||
@@ -22,6 +22,8 @@ class PosSession(models.Model):
|
||||
orders = session.order_ids.filtered(lambda order: order.state == 'paid')
|
||||
journal_id = self.env['ir.config_parameter'].sudo().get_param(
|
||||
'pos.closing.journal_id_%s' % company_id, default=session.config_id.journal_id.id)
|
||||
if not journal_id:
|
||||
raise UserError(_("You have to set a Sale Journal for the POS:%s") % (session.config_id.name,))
|
||||
|
||||
move = self.env['pos.order'].with_context(force_company=company_id)._create_account_move(session.start_at, session.name, int(journal_id), company_id)
|
||||
orders.with_context(force_company=company_id)._create_account_move_line(session, move)
|
||||
@@ -125,7 +127,7 @@ class PosSession(models.Model):
|
||||
action['domain'] = [('id', 'in', pickings.ids)]
|
||||
return action
|
||||
|
||||
@api.depends('config_id.cash_control')
|
||||
@api.depends('config_id', 'statement_ids')
|
||||
def _compute_cash_all(self):
|
||||
for session in self:
|
||||
session.cash_journal_id = session.cash_register_id = session.cash_control = False
|
||||
@@ -135,7 +137,7 @@ class PosSession(models.Model):
|
||||
session.cash_control = True
|
||||
session.cash_journal_id = statement.journal_id.id
|
||||
session.cash_register_id = statement.id
|
||||
if not session.cash_control:
|
||||
if not session.cash_control and session.state != 'closed':
|
||||
raise UserError(_("Cash control can only be applied to cash journals."))
|
||||
|
||||
@api.constrains('user_id', 'state')
|
||||
|
||||
@@ -1459,6 +1459,7 @@ var ReceiptScreenWidget = ScreenWidget.extend({
|
||||
print_xml: function() {
|
||||
var env = {
|
||||
widget: this,
|
||||
pos: this.pos,
|
||||
order: this.pos.get_order(),
|
||||
receipt: this.pos.get_order().export_for_printing(),
|
||||
paymentlines: this.pos.get_order().get_paymentlines()
|
||||
|
||||
@@ -753,7 +753,7 @@
|
||||
<t t-if='simple'>
|
||||
<line>
|
||||
<left><t t-esc='line.product_name_wrapped[0]' /></left>
|
||||
<right><value t-att-value-decimals='pos.currency.decimals'>><t t-esc='line.price_display' /></value></right>
|
||||
<right><value t-att-value-decimals='pos.currency.decimals'><t t-esc='line.price_display' /></value></right>
|
||||
</line>
|
||||
<t t-call="XmlReceiptWrappedProductNameLines"/>
|
||||
</t>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<form string="Pay Order">
|
||||
<group>
|
||||
<field name="session_id" invisible="True"/>
|
||||
<field name="journal_id" />
|
||||
<field name="journal_id" domain="[('journal_user', '=', True)]"/>
|
||||
<field name="amount" />
|
||||
<field name="payment_name"/>
|
||||
</group>
|
||||
|
||||
@@ -90,6 +90,12 @@ msgstr ""
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/portal_wizard.py:130
|
||||
#, python-format
|
||||
msgid "Group %s is not a portal"
|
||||
msgstr ""
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model.fields,field_description:portal.field_portal_wizard_id
|
||||
#: model:ir.model.fields,field_description:portal.field_portal_wizard_user_id
|
||||
|
||||
@@ -139,6 +139,13 @@ msgstr ""
|
||||
msgid "Could Not Encrypt Response- Call Provider"
|
||||
msgstr ""
|
||||
|
||||
#. module: pos_mercury
|
||||
#. openerp-web
|
||||
#: code:addons/pos_mercury/static/src/js/pos_mercury.js:357
|
||||
#, python-format
|
||||
msgid "Could not read card"
|
||||
msgstr ""
|
||||
|
||||
#. module: pos_mercury
|
||||
#: model:ir.model.fields,field_description:pos_mercury.field_pos_mercury_configuration_create_uid
|
||||
#: model:ir.model.fields,field_description:pos_mercury.field_pos_mercury_mercury_transaction_create_uid
|
||||
@@ -191,6 +198,13 @@ msgstr ""
|
||||
msgid "Empty Command String"
|
||||
msgstr ""
|
||||
|
||||
#. module: pos_mercury
|
||||
#. openerp-web
|
||||
#: code:addons/pos_mercury/static/src/js/pos_mercury.js:638
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: pos_mercury
|
||||
#. openerp-web
|
||||
#: code:addons/pos_mercury/static/src/js/pos_mercury.js:198
|
||||
@@ -594,6 +608,18 @@ msgstr ""
|
||||
msgid "Name of this Mercury configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: pos_mercury
|
||||
#: code:addons/pos_mercury/models/pos_mercury_transaction.py:35
|
||||
#, python-format
|
||||
msgid "No Mercury configuration associated with the journal."
|
||||
msgstr ""
|
||||
|
||||
#. module: pos_mercury
|
||||
#: code:addons/pos_mercury/models/pos_mercury_transaction.py:23
|
||||
#, python-format
|
||||
msgid "No opened point of sale session for user %s found"
|
||||
msgstr ""
|
||||
|
||||
#. module: pos_mercury
|
||||
#. openerp-web
|
||||
#: code:addons/pos_mercury/static/src/js/pos_mercury.js:334
|
||||
|
||||
@@ -7,6 +7,7 @@ import requests
|
||||
import werkzeug
|
||||
|
||||
from odoo import models, api, service
|
||||
from odoo.tools.translate import _
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT, misc
|
||||
|
||||
@@ -17,7 +18,7 @@ class MercuryTransaction(models.Model):
|
||||
def _get_pos_session(self):
|
||||
pos_session = self.env['pos.session'].search([('state', '=', 'opened'), ('user_id', '=', self.env.uid)], limit=1)
|
||||
if not pos_session:
|
||||
raise UserError("No POS session")
|
||||
raise UserError(_("No opened point of sale session for user %s found") % self.env.user.name)
|
||||
|
||||
pos_session.login()
|
||||
|
||||
@@ -29,7 +30,7 @@ class MercuryTransaction(models.Model):
|
||||
if journal and journal.pos_mercury_config_id:
|
||||
return journal.pos_mercury_config_id
|
||||
else:
|
||||
raise UserError("No Mercury configuration associated with the journal.")
|
||||
raise UserError(_("No Mercury configuration associated with the journal."))
|
||||
|
||||
def _setup_request(self, data):
|
||||
# todo: in master make the client include the pos.session id and use that
|
||||
|
||||
@@ -348,7 +348,7 @@ PaymentScreenWidget.include({
|
||||
|
||||
if (! decodedMagtek) {
|
||||
this.gui.show_popup('error',{
|
||||
'title': 'Could not read card',
|
||||
'title': _t('Could not read card'),
|
||||
'body': _t('This can be caused by a badly executed swipe or by not having your keyboard layout set to US QWERTY (not US International).'),
|
||||
});
|
||||
return;
|
||||
@@ -638,7 +638,7 @@ PaymentScreenWidget.include({
|
||||
|
||||
if (already_swipe_pending) {
|
||||
this.gui.show_popup('error',{
|
||||
'title': 'Error',
|
||||
'title': _t('Error'),
|
||||
'body': _t('One credit card swipe already pending.'),
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -76,7 +76,7 @@ class ProductAttributevalue(models.Model):
|
||||
|
||||
@api.multi
|
||||
def _variant_name(self, variable_attributes):
|
||||
return ", ".join([v.name for v in self.sorted(key=lambda r: r.name) if v.attribute_id in variable_attributes])
|
||||
return ", ".join([v.name for v in self.sorted(key=lambda r: r.attribute_id.name) if v.attribute_id in variable_attributes])
|
||||
|
||||
|
||||
class ProductAttributePrice(models.Model):
|
||||
|
||||
@@ -90,6 +90,8 @@ class ProductUoM(models.Model):
|
||||
|
||||
@api.multi
|
||||
def _compute_quantity(self, qty, to_unit, round=True, rounding_method='UP'):
|
||||
if not self:
|
||||
return qty
|
||||
self.ensure_one()
|
||||
if self.category_id.id != to_unit.category_id.id:
|
||||
if self._context.get('raise-exception', True):
|
||||
|
||||
@@ -217,10 +217,10 @@
|
||||
<field name="currency_id" invisible='1'/>
|
||||
</group>
|
||||
<group name="weight">
|
||||
<group name="weight" string="Weights">
|
||||
<group name="weight" string="Weights" attrs="{'invisible':[('type', 'not in', ['product', 'consu'])]}">
|
||||
<label for="volume"/>
|
||||
<div class="o_row">
|
||||
<field digits="[14, 3]" name="volume"/>
|
||||
<field name="volume"/>
|
||||
<span>m³</span>
|
||||
</div>
|
||||
<label for="weight"/>
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Product Margins" type="bar">
|
||||
<field name="product_tmpl_id"/>
|
||||
<field name="turnover" operator="+"/>
|
||||
<field name="total_cost" operator="+"/>
|
||||
<field name="total_margin" type="measure" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
@@ -73,7 +72,7 @@
|
||||
<field name="sales_gap" sum="Sales Gap"/>
|
||||
<field name="total_cost" sum="Total Cost"/>
|
||||
<field name="purchase_num_invoiced" string="# Purchased"/>
|
||||
<field name="total_margin"/>
|
||||
<field name="total_margin" sum="Total Margin"/>
|
||||
<field name="expected_margin"/>
|
||||
<field name="total_margin_rate" widget="progressbar"/>
|
||||
<field name="expected_margin_rate" widget="progressbar"/>
|
||||
|
||||
@@ -350,7 +350,7 @@ action = model.activate_sample_project()
|
||||
<field name="res_model">project.project</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">[]</field>
|
||||
<field name="view_mode">list,kanban,form</field>
|
||||
<field name="view_mode">tree,kanban,form</field>
|
||||
<field name="search_view_id" ref="view_project_project_filter"/>
|
||||
<field name="context">{}</field>
|
||||
<field name="help" type="html">
|
||||
|
||||
@@ -75,6 +75,8 @@ class AccountInvoice(models.Model):
|
||||
new_lines += new_line
|
||||
|
||||
self.invoice_line_ids += new_lines
|
||||
self.payment_term_id = self.purchase_id.payment_term_id
|
||||
self.env.context = dict(self.env.context, from_purchase_order_change=True)
|
||||
self.purchase_id = False
|
||||
return {}
|
||||
|
||||
@@ -92,7 +94,10 @@ class AccountInvoice(models.Model):
|
||||
|
||||
@api.onchange('partner_id', 'company_id')
|
||||
def _onchange_partner_id(self):
|
||||
payment_term_id = self.env.context.get('from_purchase_order_change') and self.payment_term_id or False
|
||||
res = super(AccountInvoice, self)._onchange_partner_id()
|
||||
if payment_term_id:
|
||||
self.payment_term_id = payment_term_id
|
||||
if not self.env.context.get('default_journal_id') and self.partner_id and self.currency_id and\
|
||||
self.type in ['in_invoice', 'in_refund'] and\
|
||||
self.currency_id != self.partner_id.property_purchase_currency_id:
|
||||
@@ -144,6 +149,7 @@ class AccountInvoice(models.Model):
|
||||
valuation_price_unit = i_line.product_id.uom_id._compute_price(i_line.product_id.standard_price, i_line.uom_id)
|
||||
if i_line.product_id.cost_method != 'standard' and i_line.purchase_line_id:
|
||||
#for average/fifo/lifo costing method, fetch real cost price from incomming moves
|
||||
valuation_price_unit = i_line.purchase_line_id.product_uom._compute_price(i_line.purchase_line_id.price_unit, i_line.uom_id)
|
||||
stock_move_obj = self.env['stock.move']
|
||||
valuation_stock_move = stock_move_obj.search([('purchase_line_id', '=', i_line.purchase_line_id.id), ('state', '=', 'done')])
|
||||
if valuation_stock_move:
|
||||
@@ -155,7 +161,7 @@ class AccountInvoice(models.Model):
|
||||
valuation_price_unit = valuation_price_unit_total / valuation_total_qty
|
||||
valuation_price_unit = i_line.product_id.uom_id._compute_price(valuation_price_unit, i_line.uom_id)
|
||||
if inv.currency_id.id != company_currency.id:
|
||||
valuation_price_unit = company_currency.with_context(date=inv.date_invoice).compute(valuation_price_unit, inv.currency_id)
|
||||
valuation_price_unit = company_currency.with_context(date=inv.date_invoice).compute(valuation_price_unit, inv.currency_id, round=False)
|
||||
if valuation_price_unit != i_line.price_unit and line['price_unit'] == i_line.price_unit and acc:
|
||||
# price with discount and without tax included
|
||||
price_unit = i_line.price_unit * (1 - (i_line.discount or 0.0) / 100.0)
|
||||
|
||||
@@ -579,6 +579,11 @@ class PurchaseOrderLine(models.Model):
|
||||
msg += _("Billed Quantity") + ": %s <br/></li>" % (line.qty_invoiced,)
|
||||
msg += "</ul>"
|
||||
order.message_post(body=msg)
|
||||
# Update expected date of corresponding moves
|
||||
if 'date_planned' in values:
|
||||
self.env['stock.move'].search([
|
||||
('purchase_line_id', 'in', self.ids), ('state', '!=', 'done')
|
||||
]).write({'date_expected': values['date_planned']})
|
||||
result = super(PurchaseOrderLine, self).write(values)
|
||||
if orders:
|
||||
orders._create_picking()
|
||||
@@ -987,6 +992,21 @@ class ProcurementOrder(models.Model):
|
||||
"""
|
||||
return suppliers[0]
|
||||
|
||||
def _make_po_get_domain(self, partner):
|
||||
gpo = self.rule_id.group_propagation_option
|
||||
group = (gpo == 'fixed' and self.rule_id.group_id) or \
|
||||
(gpo == 'propagate' and self.group_id) or False
|
||||
|
||||
domain = (
|
||||
('partner_id', '=', partner.id),
|
||||
('state', '=', 'draft'),
|
||||
('picking_type_id', '=', self.rule_id.picking_type_id.id),
|
||||
('company_id', '=', self.company_id.id),
|
||||
('dest_address_id', '=', self.partner_dest_id.id))
|
||||
if group:
|
||||
domain += (('group_id', '=', group.id),)
|
||||
return domain
|
||||
|
||||
@api.multi
|
||||
def make_po(self):
|
||||
cache = {}
|
||||
@@ -1000,18 +1020,7 @@ class ProcurementOrder(models.Model):
|
||||
supplier = procurement._make_po_select_supplier(suppliers)
|
||||
partner = supplier.name
|
||||
|
||||
gpo = procurement.rule_id.group_propagation_option
|
||||
group = (gpo == 'fixed' and procurement.rule_id.group_id) or \
|
||||
(gpo == 'propagate' and procurement.group_id) or False
|
||||
|
||||
domain = (
|
||||
('partner_id', '=', partner.id),
|
||||
('state', '=', 'draft'),
|
||||
('picking_type_id', '=', procurement.rule_id.picking_type_id.id),
|
||||
('company_id', '=', procurement.company_id.id),
|
||||
('dest_address_id', '=', procurement.partner_dest_id.id))
|
||||
if group:
|
||||
domain += (('group_id', '=', group.id),)
|
||||
domain = procurement._make_po_get_domain(partner)
|
||||
|
||||
if domain in cache:
|
||||
po = cache[domain]
|
||||
|
||||
@@ -321,7 +321,7 @@
|
||||
<separator/>
|
||||
<filter name="not_invoiced" string="Waiting Bills" domain="[('invoice_status','=', 'to invoice')]" help="Purchase orders that include lines not invoiced."/>
|
||||
<filter name="invoiced" string="Bills Received" domain="[('invoice_status','=', 'invoiced')]" help="Purchase orders that have been invoiced."/>
|
||||
<filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
|
||||
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
|
||||
<separator/>
|
||||
<filter string="My Activities" name="activities_my"
|
||||
domain="[('activity_ids.user_id', '=', uid)]"/>
|
||||
|
||||
@@ -205,7 +205,7 @@ class PurchaseOrder(models.Model):
|
||||
|
||||
# Compute taxes
|
||||
if fpos:
|
||||
taxes_ids = fpos.map_tax(line.product_id.supplier_taxes_id.filtered(lambda tax: tax.company_id == requisition.company_id))
|
||||
taxes_ids = fpos.map_tax(line.product_id.supplier_taxes_id.filtered(lambda tax: tax.company_id == requisition.company_id)).ids
|
||||
else:
|
||||
taxes_ids = line.product_id.supplier_taxes_id.filtered(lambda tax: tax.company_id == requisition.company_id).ids
|
||||
|
||||
|
||||
@@ -90,6 +90,9 @@ class AccountInvoice(models.Model):
|
||||
self.ensure_one()
|
||||
return self.partner_shipping_id.id or super(AccountInvoice, self).get_delivery_partner_id()
|
||||
|
||||
def _get_refund_common_fields(self):
|
||||
return super(AccountInvoice, self)._get_refund_common_fields() + ['team_id', 'partner_shipping_id']
|
||||
|
||||
class AccountInvoiceLine(models.Model):
|
||||
_inherit = 'account.invoice.line'
|
||||
_order = 'invoice_id, layout_category_id, sequence, id'
|
||||
|
||||
@@ -53,7 +53,7 @@ class SaleOrder(models.Model):
|
||||
# Search for invoices which have been 'cancelled' (filter_refund = 'modify' in
|
||||
# 'account.invoice.refund')
|
||||
# use like as origin may contains multiple references (e.g. 'SO01, SO02')
|
||||
refunds = invoice_ids.search([('origin', 'like', order.name)])
|
||||
refunds = invoice_ids.search([('origin', 'like', order.name)]).filtered(lambda r: r.type in ['out_invoice', 'out_refund'])
|
||||
invoice_ids |= refunds.filtered(lambda r: order.name in [origin.strip() for origin in r.origin.split(',')])
|
||||
# Search for refunds as well
|
||||
refund_ids = self.env['account.invoice'].browse()
|
||||
|
||||
@@ -134,4 +134,4 @@ class TestSaleOrder(TestSale):
|
||||
inv.action_invoice_open()
|
||||
sol = so.order_line.filtered(lambda l: l.product_id == serv_cost)
|
||||
self.assertTrue(sol, 'Sale: cost invoicing does not add lines when confirming vendor invoice')
|
||||
self.assertTrue(sol.price_unit == 160 and sol.qty_delivered == 2 and sol.product_uom_qty == sol.qty_invoiced == 0, 'Sale: line is wrong after confirming vendor invoice')
|
||||
self.assertEquals((sol.price_unit, sol.qty_delivered, sol.product_uom_qty, sol.qty_invoiced), (160, 2, 0, 0), 'Sale: line is wrong after confirming vendor invoice')
|
||||
|
||||
@@ -29,7 +29,7 @@ class StockMove(models.Model):
|
||||
for move in self:
|
||||
if move.picking_id and move.picking_id.group_id:
|
||||
picking = move.picking_id
|
||||
order = self.env['sale.order'].search([('procurement_group_id', '=', picking.group_id.id)])
|
||||
order = self.env['sale.order'].sudo().search([('procurement_group_id', '=', picking.group_id.id)])
|
||||
picking.message_post_with_view(
|
||||
'mail.message_origin_link',
|
||||
values={'self': picking, 'origin': order},
|
||||
|
||||
@@ -20,21 +20,21 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<th rowspan="4">
|
||||
<a type="action" t-att-domain="json.dumps(domain)" context="{'pivot_row_group_by': ['date:month'],'pivot_column_group_by': ['timesheet_invoice_type'], 'measures': ['unit_amount']}">Hours</a>
|
||||
<a type="action" t-att-domain="json.dumps(domain)" context="{'pivot_row_groupby': ['date:month'],'pivot_column_groupby': ['timesheet_invoice_type'], 'pivot_measures': ['unit_amount']}">Hours</a>
|
||||
</th>
|
||||
<td class="o_timesheet_plan_dashboard_cell">
|
||||
<t t-esc="dashboard['hours']['billable_time']"/> h
|
||||
</td>
|
||||
<td>Time and material</td>
|
||||
<th rowspan="4">
|
||||
<a type="action" t-att-domain="json.dumps(domain)" context="{'pivot_row_group_by': ['date:month', 'employee_id'], 'pivot_column_group_by': ['timesheet_invoice_type'],'pivot_measures': ['unit_amount']}">Rates</a>
|
||||
<a type="action" t-att-domain="json.dumps(domain)" context="{'pivot_row_groupby': ['date:month', 'employee_id'], 'pivot_column_groupby': ['timesheet_invoice_type'],'pivot_measures': ['unit_amount']}">Rates</a>
|
||||
</th>
|
||||
<td class="o_timesheet_plan_dashboard_cell">
|
||||
<t t-esc="dashboard['rates']['billable_time']"/> %
|
||||
</td>
|
||||
<td>Time and material</td>
|
||||
<th rowspan="4">
|
||||
<a type="action" t-att-domain="json.dumps(domain)" context="{'pivot_row_group_by': ['timesheet_invoice_id'], 'pivot_column_group_by': ['date:month'],'pivot_measures': ['amount', 'timesheet_revenue']}">Profitability</a>
|
||||
<a type="action" t-att-domain="json.dumps(domain)" context="{'pivot_row_groupby': ['timesheet_invoice_id'], 'pivot_column_groupby': ['date:month'],'pivot_measures': ['amount', 'timesheet_revenue']}">Profitability</a>
|
||||
</th>
|
||||
<td class="o_timesheet_plan_dashboard_cell">
|
||||
<t t-if="currency.position == 'before'" t-esc="currency.symbol"/>
|
||||
|
||||
@@ -17,7 +17,9 @@
|
||||
<menuitem id="menu_config_address_book" parent="menu_sale_config" name="Contacts" sequence="4" groups="base.group_system"/>
|
||||
<menuitem action="base.action_partner_category_form" id="menu_partner_category_form" name="Contact Tags" sequence="1" parent="menu_config_address_book" groups="base.group_no_one"/>
|
||||
<menuitem action="base.action_partner_title_contact" id="menu_partner_title_contact" name="Contact Titles" parent="menu_config_address_book" sequence="3" groups="base.group_no_one"/>
|
||||
<menuitem id="res_partner_industry_menu" name="Sectors of Activity" action="base.res_partner_industry_action" parent="sales_team.menu_config_address_book" sequence="4" groups="base.group_no_one"/>
|
||||
<menuitem id="menu_localisation" name="Localization" parent="menu_config_address_book" sequence="5" groups="base.group_no_one"/>
|
||||
|
||||
<menuitem action="base.action_country" id="menu_country_partner" parent="menu_localisation" sequence="1" groups="base.group_no_one"/>
|
||||
<menuitem action="base.action_country_group" id="menu_country_group" name="Country Group" parent="menu_localisation" sequence="3" groups="base.group_no_one"/>
|
||||
<menuitem action="base.action_country_state" id="menu_country_state_partner" parent="menu_localisation" sequence="2" groups="base.group_no_one"/>
|
||||
|
||||
@@ -317,6 +317,8 @@ class ProcurementOrder(models.Model):
|
||||
substract_quantity = location_orderpoints.subtract_procurements_from_orderpoints()
|
||||
|
||||
for group in location_data['groups']:
|
||||
if group.get('from_date'):
|
||||
product_context['from_date'] = group['from_date'].strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
if group['to_date']:
|
||||
product_context['to_date'] = group['to_date'].strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
product_quantity = location_data['products'].with_context(product_context)._product_available()
|
||||
|
||||
@@ -255,11 +255,11 @@ class Product(models.Model):
|
||||
# TDE FIXME: should probably clean the search methods
|
||||
# to prevent sql injections
|
||||
if field not in ('qty_available', 'virtual_available', 'incoming_qty', 'outgoing_qty'):
|
||||
raise UserError('Invalid domain left operand')
|
||||
raise UserError(_('Invalid domain left operand %s') % field)
|
||||
if operator not in ('<', '>', '=', '!=', '<=', '>='):
|
||||
raise UserError('Invalid domain operator')
|
||||
raise UserError(_('Invalid domain operator %s') % operator)
|
||||
if not isinstance(value, (float, int)):
|
||||
raise UserError('Invalid domain right operand')
|
||||
raise UserError(_('Invalid domain right operand %s') % value)
|
||||
|
||||
# TODO: Still optimization possible when searching virtual quantities
|
||||
ids = []
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user