123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- # -*- coding: utf-8 -*-
- from openerp import models, fields, tools, api, _
- import openerp.addons.decimal_precision as dp
- from openerp.exceptions import Warning, except_orm, AccessError
- class ConstructionExpensesMoveLine(models.Model):
- _name = 'construction.expenses.move.line'
- name = fields.Char('name')
- ''' Move Line '''
- code = fields.Char('Code', size=32)
- move_line_id = fields.Many2one('construction.move.line', string='Move Line', ondelete='restrict', index=True)
- invoice_id = fields.Many2one('account.invoice', string='Invoice', ondelete='restrict', index=True)
- quantity = fields.Float('Price Unit', default=0.0)
- price_unit = fields.Float('Price Unit', digits_compute=dp.get_precision('Account'), default=0.0)
- amount_total = fields.Float('Amount Total', digits_compute=dp.get_precision('Account'), default=0.0)
- comment = fields.Text('Comment', help='information')
- invoice_line_id = fields.Many2one('account.invoice.line', string='Invoice Line', ondelete='restrict', index=True)
- ''' Invoice Line '''
- ''' onchange select invoice line '''
- @api.onchange('invoice_line_id')
- def cheak_line_invoice(self):
- line = self.invoice_line_id
- self.quantity = line.quantity
- self.price_unit = line.price_unit
- self.amount_total = self.quantity * self.price_unit
- ''' onchange Amount and quantity '''
- @api.onchange('quantity', 'price_unit')
- def onchange_amount_expenses(self):
- self.amount_total = self.quantity * self.price_unit
- @api.multi
- def write(self, vals):
- newVals = sorted(vals)
- qty = vals['quantity'] if('quantity' in newVals) else self.quantity
- priceUnit = vals['price_unit'] if('price_unit' in newVals) else self.price_unit
- vals['amount_total'] = qty * priceUnit
- expensesMove = super(ConstructionExpensesMoveLine, self).write(vals)
- moveLine = self.env['construction.move.line'].browse(self.move_line_id.id)
- if (moveLine):
- amount = 0
- for expense in moveLine.expenses_ids:
- amount += expense.amount_total
- moveLine.amount_expenses = amount
- moveLine.residual = moveLine.amount_total - amount
- # import web_pdb; web_pdb.set_trace()
- moveLine.recalculate_paid_expense()
- class ConstructionMoveLineExpenses(models.Model):
- _inherit = 'construction.move.line'
- expenses_ids = fields.One2many('construction.expenses.move.line', 'move_line_id', string='Expenses')
- class AccountInvoiceMoveLineExpenses(models.Model):
- _inherit = 'account.invoice'
- expenses_ids = fields.One2many('construction.expenses.move.line', 'invoice_id', string='Expenses')
|