Skip to Content
Menu
You need to be registered to interact with the community.
This question has been flagged
2 Odgovori
4011 Prikazi

I want to add a new field as a new discount under the total field and I want to update. Thus, the amount due should be the total - new_discount. How can I add this? Can I have a full explanation or implementation for it please. Thanks

Avatar
Opusti
Best Answer

Hello Moe, 

Please find code in comment. 

Thanks & Regards,
Email: odoo@aktivsoftware.com
Skype: kalpeshmaheshwari

Avatar
Opusti

Please find below code it may help you to resolve this issue,

from odoo import fields, models, api

class AccountMove(models.Model):
_inherit = 'account.move'

discount_amount = fields.Float('Discount Amount')

@api.depends('amount_total', 'discount_amount')
def _compute_amount(self):
for move in self:
move.amount_due = move.amount_total - move.discount_amount

xml:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="inherit_view_move_form" model="ir.ui.view">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.view_move_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='amount_total']" position="after">
<field name="discount_amount"/>
</xpath>
</field>
</record>
</odoo>

Best Answer

Hi,

Try like below code.

python:

from odoo import fields, models, api

class AccountInvoice(models.Model):
_inherit = 'account.move'

discount_amount = fields.Float('Discount Amount', digits='Product Price')
amount_due = fields.Float(compute='_compute_amount_due', digits='Product Price', store=True)

@api.depends('amount_total', 'discount_amount')
def _compute_amount_due(self):
for record in self:
record.amount_due = record.amount_total - record.discount_amount

xml:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
        <!-- Add the discount_amount field to the invoice form view -->
        <record id="account_invoice_form" model="ir.ui.view">
            <field name="name">account.invoice.form</field>
            <field name="model">account.invoice</field>
            <field name="inherit_id" ref="account.view_invoice_form"/>
            <field name="arch" type="xml">
                <xpath expr="//field[@name='amount_total']" position="after">
                    <field name="discount_amount"/>
                </xpath>
            </field>
        </record>
</odoo>


Regards

Avatar
Opusti
Avtor

Does this code update old invoices? If no, can you provide me with the code that helps updates them please? Thank you so much

Related Posts Odgovori Prikazi Aktivnost
1
mar. 23
2529
1
jan. 25
1704
4
feb. 24
4586
1
feb. 24
1415
0
dec. 23
1063