1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- # -*- coding: utf-8 -*-
- from openerp import models, fields, tools, api
- import openerp.addons.decimal_precision as dp
- class accountInterestConfig(models.Model):
- _name = 'account.interest.config'
- name = fields.Char('Name', required=True, readonly=True)
- ''' Interest '''
- interest_rate_year = fields.Float('Tasa de interés anual(%)', digits=(3,6), digits_compute=dp.get_precision('Interest'), required=True, help="Tasa de interés anual(%)")
- interest_rate = fields.Float('Tasa de interés calculado(%)', digits=(3,6), digits_compute=dp.get_precision('Interest'), required=True, help="Tasa de interés diario(%)")
- comment = fields.Text('Comment', help="Información adicional")
- active = fields.Boolean('active',default=True)
- ''' Invoice '''
- invoice_journal_id = fields.Many2one('account.journal', string='Journal', required=True, domain="[('type', '=', 'sale')]", help="Diario que utilizara para la facturación de interés.")
- invoice_account_id = fields.Many2one('account.account', string='Account', required=True, domain="[('type', '=', 'receivable')]")
- ''' Line '''
- line_account_id = fields.Many2one('account.account', string='Account', required=True, domain=[('type', '=', 'other')])
- line_tax_id = fields.Many2one('account.tax', string='Tax', domain=[('type_tax_use', '=', 'sale')])
- ''' Bloquear pagos '''
- lock_move_line = fields.Boolean('Bloquear la factura',default=True, help="Bloquear la factura cuando existan interés a pagar.")
- @api.model
- def create_default_interest_config(self):
- decimal_precision = self.env['decimal.precision'].precision_get('Interest')
- interest = {
- 'name': 'INTERÉS POR MORA',
- 'interest_rate_year': round(48.66, decimal_precision),
- 'interest_rate': round((48.66 / 365), decimal_precision),
- 'comment': 'Configuración de interés por mora \n'
- 'Calculo:\n'
- ' Tasa de interés por día = (Tasa de interés anual(%) / 365(cantidad de días del año))',
- 'invoice_journal_id': 1,
- 'invoice_account_id': 16,
- 'line_account_id': 113,
- 'line_tax_id': 1
- }
- interesConfig = self.env['account.interest.config'].search([('name', '=', interest['name'])])
- if (not interesConfig):
- interesConfig.create(interest)
- @api.one
- @api.onchange('interest_rate_year','interest_rate')
- def calculate_interest(self):
- decimal_precision = self.env['decimal.precision'].precision_get('Interest')
- self.interest_rate = round((self.interest_rate_year / 365), decimal_precision)
|