You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.8 KiB
61 lines
1.8 KiB
from odoo import api, fields, models
|
|
|
|
class AccountMove(models.Model):
|
|
_inherit = 'account.move'
|
|
|
|
booking_date = fields.Date(
|
|
string='Booking Date',
|
|
tracking=False,
|
|
)
|
|
|
|
developer_commission = fields.Float(
|
|
string='Broker Commission',
|
|
tracking=True,
|
|
)
|
|
|
|
buyer = fields.Many2one(
|
|
'res.partner',
|
|
string='Buyer Name',
|
|
tracking=True,
|
|
)
|
|
|
|
deal_id = fields.Integer(
|
|
string='Deal ID',
|
|
tracking=True,
|
|
)
|
|
|
|
project = fields.Many2one(
|
|
'product.template',
|
|
string='Project Name',
|
|
tracking=True,
|
|
)
|
|
|
|
sale_value = fields.Monetary(
|
|
string='Sale Value',
|
|
tracking=True,
|
|
)
|
|
|
|
unit = fields.Many2one(
|
|
'product.product',
|
|
string='Unit',
|
|
tracking=True,
|
|
)
|
|
|
|
@api.model
|
|
def create(self, vals):
|
|
# Check if invoice is created from sale order
|
|
if vals.get('move_type') in ['out_invoice', 'out_refund'] and vals.get('invoice_origin'):
|
|
sale_order = self.env['sale.order'].search([
|
|
('name', '=', vals.get('invoice_origin'))
|
|
], limit=1)
|
|
if sale_order:
|
|
vals.update({
|
|
'booking_date': sale_order.booking_date,
|
|
'developer_commission': sale_order.developer_commission,
|
|
'buyer': sale_order.buyer.id if sale_order.buyer else False,
|
|
'deal_id': sale_order.deal_id,
|
|
'project': sale_order.project.id if sale_order.project else False,
|
|
'sale_value': sale_order.sale_value,
|
|
'unit': sale_order.unit.id if sale_order.unit else False,
|
|
})
|
|
return super(AccountMove, self).create(vals)
|