Impacted versions:
10.0

Steps to reproduce:

Take a Vendor Bill created based on a purchase order.
Change a price
Change the invoice date

Current behavior:

The price is reset to the purchase order line value.

Expected behavior:

The price should stay at the value set by the user.

**Please note that the taxes are also reset.**

Video/Screenshot link (optional):
https://youtu.be/B6FastTxSWc
domain = super(AccountInvoice, self)._onchange_product_id()
        if self.purchase_id:
            
            self.uom_id = self.product_id.uom_po_id
        return domain
    
    @api.onchange('purchase_id')
    def purchase_order_change(self):
        if not self.purchase_id:
            return {}
        if not self.partner_id:
            self.partner_id = self.purchase_id.partner_id.id
        new_lines = self.env['account.invoice.line']
        for line in self.purchase_id.order_line - self.invoice_line_ids.mapped('purchase_line_id'):
            data = self._prepare_invoice_line_from_po_line(line)
            new_line = new_lines.new(data)
            new_line._set_additional_fields(self)
            new_lines += new_line
        self.invoice_line_ids += new_lines
        self.purchase_id = False
        return {}
    @api.onchange('currency_id', 'date_invoice')
    def _onchange_currency_id(self):
        if self.currency_id:
            for line in self.invoice_line_ids.filtered(lambda r: r.purchase_line_id):
                line.price_unit = line.purchase_id.currency_id.with_context(date=self.date_invoice).compute(line.purchase_line_id.price_unit, self.currency_id, round=False)
    @api.onchange('invoice_line_ids')
    def _onchange_origin(self):