Community mailing list archives


- 03/04/2015 05:53:08

To acheive this we need to create a module or change account_invoice:

Add three fields to account_invoice

'calc_increment': fields.function(_calc_increment, string = "Increment"), 
'incremented': fields.boolean('Incremented'), 
'amount_incr': fields.float('Amount Incremented'), 

Add a function called _calc_increment: 

def _calc_increment(self, cr, uid, ids, name, args, context = None): 
    res = {} 
    for invoice in self.browse(cr, uid, ids, context = context): 
        date = invoice.date_due 
        if date and date < time.strftime('%Y-%m-%d') and not invoice.incremented: 
            mount =invoice.amount_total * .10 # the interest rate ar 10% 
            self.write(cr, uid, ids, {'amount_incr': mount, 'incremented':True}, context = context) 
            res[] = 0.0 
    return res 

Edit the_amount_all function 

def _amount_all(self, cr, uid, ids, name, args, context=None): 
    res = {} 
    for invoice in self.browse(cr, uid, ids, context=context): 

    incr = invoice.amount_incr 

    res[] = { 
           'amount_untaxed': 0.0, 
           'amount_tax': 0.0, 
           'amount_total': 0.0 

    for line in invoice.invoice_line: 
        res[]['amount_untaxed'] += line.price_subtotal 
    for line in invoice.tax_line: 
        res[]['amount_tax'] += line.amount 
        res[]['amount_total'] = res[]['amount_tax'] + res[]['amount_untaxed'] + incr 
    return res 

Edit the amount_all field :

'amount_total': fields.function(_amount_all, digits_compute=dp.get_precision('Account'), string='Total', 
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), 
'': (_get_invoice_tax, None, 20), 
'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount','invoice_id'], 20), 
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['amount_incr'],21), 

On Mon, Mar 2, 2015 at 12:22 PM, abhishek jaiswal <> wrote:
Hi Community,

Can anyone please tell me how to add interest on invoice if paid after due date or after on certain period,

plus to to post the journal entries


With Warm Regards
Abhishek Jaiswal,
Website, Blog