To implement this hotfix, you must have a developer license.
You do not have to have rights to the data stores unless you have to perform data repair.
...
IF PurchLine."Currency Code" = '' THEN BEGIN
// Delete the following line.
JobJnlLine."Direct Unit Cost (LCY)" := ROUND((PurchLine.Amount + NondeductibleVATAmount) / JobJnlLine.Quantity);
JobJnlLine."Total Cost (LCY)" := ROUND((PurchLine.Amount + NondeductibleVATAmount));
END ELSE BEGIN
// Delete the following line.
JobJnlLine."Direct Unit Cost (LCY)" := CurrencyExchRate.ExchangeAmtFCYToLCY(
PurchHeader."Posting Date",
PurchLine."Currency Code",
(PurchLine.Amount + NondeductibleVATAmount) / JobJnlLine.Quantity,
// Delete the following line.
PurchHeader."Currency Factor");
JobJnlLine."Total Cost (LCY)" := CurrencyExchRate.ExchangeAmtFCYToLCY(
PurchHeader."Posting Date",
PurchLine."Currency Code",
(PurchLine.Amount + NondeductibleVATAmount),
PurchHeader."Currency Factor");
END;
// Delete the following line.
JobJnlLine."Unit Cost (LCY)" := JobJnlLine."Direct Unit Cost (LCY)";
...
...
IF PurchLine."Currency Code" = '' THEN BEGIN
// Add the following line.
JobJnlLine."Direct Unit Cost (LCY)" := ABS(ROUND((PurchLine.Amount + NondeductibleVATAmount) / JobJnlLine.Quantity)); //new line
JobJnlLine."Total Cost (LCY)" := ROUND((PurchLine.Amount + NondeductibleVATAmount));
END ELSE BEGIN
// Add the following line.
JobJnlLine."Direct Unit Cost (LCY)" := ABS(CurrencyExchRate.ExchangeAmtFCYToLCY(
PurchHeader."Posting Date",
PurchLine."Currency Code",
(PurchLine.Amount + NondeductibleVATAmount) / JobJnlLine.Quantity,
// Add the following line.
PurchHeader."Currency Factor"));
JobJnlLine."Total Cost (LCY)" := CurrencyExchRate.ExchangeAmtFCYToLCY(
PurchHeader."Posting Date",
PurchLine."Currency Code",
(PurchLine.Amount + NondeductibleVATAmount),
PurchHeader."Currency Factor");
END;
// Add the following line.
JobJnlLine.VALIDATE("Unit Cost (LCY)",JobJnlLine."Direct Unit Cost (LCY)");
...