Cannot submit Purchase Invoice; set_missing_ref_details() unexpected... ref_exchange_rate

I have Debian 12; ERPNext: v15.19.2 (version-15); Frappe Framework: v15.20.0 (version-15) which I just updated earlier today (frappe/ERPNext and O/S all to latest).

All worked perfectly until after the update.
The 1 part that has suddenly started giving an error, is submitting a purchase invoice, which throws out this

### App Versions

{
	"erpnext": "15.19.2",
	"frappe": "15.20.0",
	"hrms": "16.0.0-dev"
}

### Route

Form/Purchase Invoice/PINV-106921

### Traceback

Traceback (most recent call last):
  File "apps/frappe/frappe/app.py", line 110, in application
    response = frappe.api.handle(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/api/__init__.py", line 49, in handle
    data = endpoint(**arguments)
           ^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/api/v1.py", line 36, in handle_rpc_call
    return frappe.handler.handle()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 49, in handle
    data = execute_cmd(cmd)
           ^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 85, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/__init__.py", line 1718, in call
    return fn(*args, **newargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/utils/typing_validations.py", line 31, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/desk/form/save.py", line 37, in savedocs
    doc.submit()
  File "apps/frappe/frappe/utils/typing_validations.py", line 31, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1048, in submit
    return self._submit()
           ^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1031, in _submit
    return self.save()
           ^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 337, in save
    return self._save(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 390, in _save
    self.run_post_save_methods()
  File "apps/frappe/frappe/model/document.py", line 1131, in run_post_save_methods
    self.run_method("on_submit")
  File "apps/frappe/frappe/model/document.py", line 962, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1322, in composer
    return composed(self, method, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1304, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 959, in fn
    return method_object(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py", line 698, in on_submit
    self.update_against_document_in_jv()
  File "apps/erpnext/erpnext/controllers/accounts_controller.py", line 1535, in update_against_document_in_jv
    reconcile_against_document(lst, active_dimensions=active_dimensions)
  File "apps/erpnext/erpnext/accounts/utils.py", line 515, in reconcile_against_document
    referenced_row, update_advance_paid = update_reference_in_payment_entry(
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/erpnext/erpnext/accounts/utils.py", line 726, in update_reference_in_payment_entry
    payment_entry.set_missing_ref_details(ref_exchange_rate=d.exchange_rate or None)
TypeError: EmployeePaymentEntry.set_missing_ref_details() got an unexpected keyword argument 'ref_exchange_rate'


### Request Data

{
	"type": "POST",
	"args": {
OBFUSCATED_DATA
	},
	"btn": {
		"jQuery370080640613015930151": {
			"events": {
				"click": [
					{
						"type": "click",
						"origType": "click",
						"guid": 5349,
						"namespace": ""
					}
				]
			}
		}
	},
	"freeze": true,
	"headers": {},
	"error_handlers": {},
	"url": "/api/method/frappe.desk.form.save.savedocs",
	"request_id": null
}

### Response Data

{
	"exception": "TypeError: EmployeePaymentEntry.set_missing_ref_details() got an unexpected keyword argument 'ref_exchange_rate'",
	"exc_type": "TypeError",
	"_exc_source": "erpnext (app)"
}

Hi @trentmu,

Please check it.

1 Like

Magnifique! worked perfectly
Thank you very much!