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.
...
// IT0001.begin
//IF Type = Type::Item THEN BEGIN
// Item.GET("No.");
// IF Item."Costing Method" = Item."Costing Method"::Standard THEN
// JobJnlLine.VALIDATE("Unit Cost (LCY)",Item."Standard Cost")
// ELSE
// JobJnlLine.VALIDATE("Unit Cost (LCY)","Unit Cost (LCY)")
//END ELSE
// JobJnlLine.VALIDATE("Unit Cost (LCY)","Unit Cost (LCY)");
// IT0001.end
// IT0001.begin
//IF PurchLine."Currency Code" = '' THEN
// JobJnlLine."Direct Unit Cost (LCY)" := "Direct Unit Cost"
//ELSE
// JobJnlLine."Direct Unit Cost (LCY)" :=
// CurrencyExchRate.ExchangeAmtFCYToLCY(
// PurchHeader."Posting Date",
// PurchLine."Currency Code",
// "Direct Unit Cost",
// PurchHeader."Currency Factor");
// IT0001.end
// IT0001.begin
NondeductibleVATAmount := 0;
NondeductibleBaseAmount := 0;
VATAmount := PurchLine."Amount Including VAT" - PurchLine.Amount;
BaseAmount := PurchLine.Amount;
GenJnlPostLine.ChangeVATAmounts(VATAmount,BaseAmount,NondeductibleVATAmount,NondeductibleBaseAmount,
PurchLine."Deductible %", GLSetup."Amount Rounding Precision");
// Delete the following line.
IF PurchLine."Currency Code" = '' THEN BEGIN
JobJnlLine."Direct Unit Cost (LCY)" := ROUND((PurchLine.Amount + NondeductibleVATAmount) / JobJnlLine.Quantity);
JobJnlLine."Total Cost (LCY)" := ROUND((PurchLine.Amount + NondeductibleVATAmount));
END ELSE BEGIN
JobJnlLine."Direct Unit Cost (LCY)" := CurrencyExchRate.ExchangeAmtFCYToLCY(
PurchHeader."Posting Date",
PurchLine."Currency Code",
(PurchLine.Amount + NondeductibleVATAmount) / JobJnlLine.Quantity,
PurchHeader."Currency Factor");
JobJnlLine."Total Cost (LCY)" := CurrencyExchRate.ExchangeAmtFCYToLCY(
PurchHeader."Posting Date",
PurchLine."Currency Code",
(PurchLine.Amount + NondeductibleVATAmount),
PurchHeader."Currency Factor");
END;
JobJnlLine."Unit Cost (LCY)" := JobJnlLine."Direct Unit Cost (LCY)";
// IT0001.end
...
...
// Add the following lines.
IF Type = Type::Item THEN BEGIN
Item.GET("No.");
IF Item."Costing Method" = Item."Costing Method"::Standard THEN
JobJnlLine.VALIDATE("Unit Cost (LCY)",Item."Standard Cost")
ELSE
JobJnlLine.VALIDATE("Unit Cost (LCY)","Unit Cost (LCY)")
END ELSE
JobJnlLine.VALIDATE("Unit Cost (LCY)","Unit Cost (LCY)");
// End of the lines.
// IT0001.begin
//IF PurchLine."Currency Code" = '' THEN
// JobJnlLine."Direct Unit Cost (LCY)" := "Direct Unit Cost"
//ELSE
// JobJnlLine."Direct Unit Cost (LCY)" :=
// CurrencyExchRate.ExchangeAmtFCYToLCY(
// PurchHeader."Posting Date",
// PurchLine."Currency Code",
// "Direct Unit Cost",
// PurchHeader."Currency Factor");
// IT0001.end
// IT0001.begin
NondeductibleVATAmount := 0;
NondeductibleBaseAmount := 0;
VATAmount := PurchLine."Amount Including VAT" - PurchLine.Amount;
BaseAmount := PurchLine.Amount;
GenJnlPostLine.ChangeVATAmounts(VATAmount,BaseAmount,NondeductibleVATAmount,NondeductibleBaseAmount,
PurchLine."Deductible %", GLSetup."Amount Rounding Precision");
// Add the following line.
IF (PurchLine."Currency Code" = '') OR (Type = Type::Item) THEN BEGIN
JobJnlLine."Direct Unit Cost (LCY)" := ROUND((PurchLine.Amount + NondeductibleVATAmount) / JobJnlLine.Quantity);
JobJnlLine."Total Cost (LCY)" := ROUND((PurchLine.Amount + NondeductibleVATAmount));
END ELSE BEGIN
JobJnlLine."Direct Unit Cost (LCY)" := CurrencyExchRate.ExchangeAmtFCYToLCY(
PurchHeader."Posting Date",
PurchLine."Currency Code",
(PurchLine.Amount + NondeductibleVATAmount) / JobJnlLine.Quantity,
PurchHeader."Currency Factor");
JobJnlLine."Total Cost (LCY)" := CurrencyExchRate.ExchangeAmtFCYToLCY(
PurchHeader."Posting Date",
PurchLine."Currency Code",
(PurchLine.Amount + NondeductibleVATAmount),
PurchHeader."Currency Factor");
END;
JobJnlLine."Unit Cost (LCY)" := JobJnlLine."Direct Unit Cost (LCY)";
// IT0001.end
...