123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- # -*- 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.")
- ## forma de calculo de interes
- # si va calcular atomantico cunado entre en cliente
- # partner_calculate_automatic = fields.Boolean('partner interest calculate',default=True, help = "Calcular interés de forma automática cuando entra el apartado del cliente")
- # si va calcular atomantico cunado entre en Factura
- invoice_calculate_automatic = fields.Boolean('invoice interest calculate',default=True, help = "Calcular interés de forma automática cuando entra el apartado de la Factura")
- # def _get_journal_invoice_sale():
- @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)
|