콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
4431 화면

Can we use openerp out from the box to generate interest for late payment? for example using tax feature etc...

아바타
취소
작성자 베스트 답변

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[invoice.id] = 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[invoice.id] = { 
           'amount_untaxed': 0.0, 
           'amount_tax': 0.0, 
           'amount_total': 0.0 
    }

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

Edit the amount_all field :


'amount_total': fields.function(_amount_all, digits_compute=dp.get_precision('Account'), string='Total', 
store={ 
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20), 
'account.invoice.tax': (_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), 
}, 
 

Add calc_increment to your view with invisible attribute... 

Good Luck
 

 

 

아바타
취소
관련 게시물 답글 화면 활동
3
1월 25
4842
2
6월 25
2316
2
6월 25
6300
0
11월 23
1627
0
3월 23
1747