Gejala
Saat membuat faktur perbaikan jika kolom harga inc. VAT diubah, nilai harga unit tidak benar dalam versi bahasa Hongaria Microsoft Dynamics NAV 2009 R2. Ikuti langkah-langkah di bagian perubahan kode untuk memecahkan masalah ini. Masalah ini terjadi di dalam produk berikut ini:
-
Bahasa Hongaria versi Microsoft Dynamics NAV 2009 R2
Pemecahan masalah
Informasi Hotfix
Sekarang tersedia hotfix yang didukung dari Microsoft. Namun, hanya ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Perbaikan terbaru ini dapat menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terlalu dipengaruhi oleh masalah ini, kami sarankan Anda menunggu paket layanan Microsoft Dynamics NAV 2009 atau versi Microsoft Dynamics NAV berikutnya yang berisi perbaikan terbaru ini.
Catatan Dalam kasus tertentu, biaya yang biasanya diadakan untuk panggilan mungkin dibatalkan apabila profesional dukungan teknis untuk Microsoft Dynamics dan produk-produk terkait dukungan menentukan bahwa pembaruan khusus akan memecahkan masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah yang tidak termasuk pada pembaruan tertentu yang dimaksud dukungan tambahan.
Informasi penginstalan
Microsoft menyediakan contoh pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat maupun tersirat. Ini mencakup, namun tidak terbatas pada, garansi yang tersirat dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini menganggap bahwa Anda sudah terbiasa dengan bahasa pemrograman yang ditunjukkan dan terbiasa dengan alat-alat yang digunakan untuk membuat dan prosedur debug. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu. Namun, mereka tidak akan mengubah contoh tersebut untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda.
Catatan Sebelum Anda menginstal perbaikan terbaru ini, verifikasi bahwa semua pengguna klien Microsoft Dynamics NAV log off sistem. Ini termasuk layanan Microsoft Dynamics NAV aplikasi Server (NAS). Anda harus klien hanya pengguna yang masuk saat Anda menerapkan perbaikan terbaru ini.
Untuk menerapkan hotfix ini, Anda harus memiliki lisensi pengembang.
Kami menyarankan bahwa akun pengguna di jendela login Windows atau jendela login Database ditetapkan id peran "SUPER" Jika account pengguna tidak dapat menetapkan ID peran "SUPER", Anda harus memverifikasi bahwa account pengguna yang memiliki izin berikut ini:
-
Ubah izin untuk objek yang Anda akan berubah.
-
Izin eksekusi untuk objek sistem objek ID 5210 dan sistem objek ID 9015
objek.
Catatan Anda tidak harus memiliki hak untuk penyimpanan data kecuali jika Anda harus melakukan perbaikan data.
Perubahan kode
Catatan Selalu menguji kode perbaikan di lingkungan yang dikontrol sebelum menerapkan perbaikan untuk komputer produksi.
Untuk mengatasi masalah ini, ikuti langkah-langkah berikut:
-
Ubah kode di UpdateVATAmounts fungsi tabel penjualan koreksi baris (14536) sebagai berikut:
Kode yang ada...Amount * (1 - SalesHeader."VAT Base Discount %" / 100),
Currency."Amount Rounding Precision");
"Amount Including VAT" :=
ROUND(
Amount * (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100,
Currency."Amount Rounding Precision",Currency.VATRoundingDirection);
END;
"VAT Calculation Type"::"Full VAT":
BEGIN
...Penggantian kode
...Amount * (1 - SalesHeader."VAT Base Discount %" / 100),
Currency."Amount Rounding Precision");
"Amount Including VAT" :=
// Add the following line.
Amount +
// End of the added line.
ROUND(
Amount * (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100,
Currency."Amount Rounding Precision",Currency.VATRoundingDirection);
END;
"VAT Calculation Type"::"Full VAT":
BEGIN
... -
Ubah kode di CheckLineAmount fungsi tabel penjualan koreksi baris (14536) sebagai berikut:
Kode yang ada 1..."Unit Price Incl. Discount" := "Unit Price" - "Unit Price" * "Line Discount %" / 100;
END;
// Delete the following line.
PROCEDURE CheckLineAmount@1360000();
// End of the deleted line.
BEGIN
// PS16433.begin
IF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN
...Penggantian kode 1
..."Unit Price Incl. Discount" := "Unit Price" - "Unit Price" * "Line Discount %" / 100;
END;
// Add the following lines.
PROCEDURE CheckLineAmount@1170219();
VAR
SalesinvHeader@1170001 : Record 112;
// End of the added lines.
BEGIN
// PS16433.begin
IF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN
...Kode yang ada 2
...// PS16433.begin
IF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN
SalesCorrLine.GET("Document Type","Document No.","Correction Line No.","Before/ After correction"::Before);
GetCorrType;
IF (SalesCorrLine."Line Amount" > "Line Amount") AND
("Document Type" = "Document Type"::Invoice) AND
(SalesCorrectionType."Correction Type" = SalesCorrectionType."Correction Type"::"Quantity and Value")
THEN
...Penggantian kode 2
... // PS16433.begin
IF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN
SalesCorrLine.GET("Document Type","Document No.","Correction Line No.","Before/ After correction"::Before);
// Add the following line.
SalesinvHeader.GET(SalesHeader."Corr. Document No.");
// End of the added line.
GetCorrType;
IF (SalesCorrLine."Line Amount" > "Line Amount") AND
// Add the following line.
(SalesHeader."Prices Including VAT" = SalesinvHeader."Prices Including VAT") AND
// End of the added line.
("Document Type" = "Document Type"::Invoice) AND
(SalesCorrectionType."Correction Type" = SalesCorrectionType."Correction Type"::"Quantity and Value")
THEN
... -
Ubah kode di Data Item nomor 5 penjualan - laporan faktur (HU) (14516) sebagai berikut:
Kode yang ada...DataItemTable=Table14537;
DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)
WHERE(Before/ After correction=FILTER(Before),
Document Type=CONST(Posted Invoice));
DataItemVarName=PostedSalesCorrLineBefore;
DataItemLinkReference=Sales Invoice Header;
DataItemLink=Document No.=FIELD(No.);
}
SECTIONS
{
...Penggantian kode
...DataItemTable=Table14537;
DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)
WHERE(Before/ After correction=FILTER(Before),
Document Type=CONST(Posted Invoice));
DataItemVarName=PostedSalesCorrLineBefore;
// Add the following lines.
OnAfterGetRecord=BEGIN
IF SalesInvHeader.GET("Sales Invoice Header"."Corr. Document No.") THEN
IF SalesInvHeader."Prices Including VAT" <> "Sales Invoice Header"."Prices Including VAT" THEN
"Unit Price Incl. Discount" := "VAT Base Amount" / Quantity;
END;
// End of the added lines.
DataItemLinkReference=Sales Invoice Header;
DataItemLink=Document No.=FIELD(No.);
}
SECTIONS
{
... -
Ubah kode di Data Item nomor 6 penjualan - laporan faktur (HU) (14516) sebagai berikut:
Kode yang ada...DataItemTable=Table14537;
DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)
WHERE(Before/ After correction=FILTER(After),
Document Type=CONST(Posted Invoice));
DataItemVarName=PostedSalesCorrLineAfter;
DataItemLinkReference=PostedSalesCorrLineBefore;
DataItemLink=Document No.=FIELD(Document No.),
Correction Line No.=FIELD(Correction Line No.);
}
SECTIONS
...Penggantian kode
...DataItemTable=Table14537;
DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)
WHERE(Before/ After correction=FILTER(After),
Document Type=CONST(Posted Invoice));
DataItemVarName=PostedSalesCorrLineAfter;
// Add the following lines.
OnAfterGetRecord=BEGIN
IF SalesInvHeader."Prices Including VAT" <> "Sales Invoice Header"."Prices Including VAT" THEN
"Unit Price Incl. Discount" := "VAT Base Amount" / Quantity;
END;
// End of the added lines.
DataItemLinkReference=PostedSalesCorrLineBefore;
DataItemLink=Document No.=FIELD(Document No.),
Correction Line No.=FIELD(Correction Line No.);
}
SECTIONS
... -
Ubah kode di variabel Global penjualan - laporan faktur (HU) (14516) sebagai berikut:
Kode yang ada...VALExchRate@1360016 : Text[50];
Text14530@1360017 : TextConst 'ENU=%1/%2;HUN=%1/%2';
GroupVATText@13600018 : Text[30];
CorrInvText@1360018 : TextConst 'ENU=C O R R E C T I V E I N V O I C E;HUN=H E L Y E S B Ö T Š S Z µ M L A';
LogInteractionEnable@19003940 : Boolean INDATASET;
PROCEDURE InitLogInteraction@1360000();
BEGIN
LogInteraction := SegManagement.FindInteractTmplCode(4) <> '';
END;
...Penggantian kode
...VALExchRate@1360016 : Text[50];
Text14530@1360017 : TextConst 'ENU=%1/%2;HUN=%1/%2';
GroupVATText@13600018 : Text[30];
CorrInvText@1360018 : TextConst 'ENU=C O R R E C T I V E I N V O I C E;HUN=H E L Y E S B Ö T Š S Z µ M L A';
LogInteractionEnable@19003940 : Boolean INDATASET;
// Add the following line.
SalesInvHeader@13600019 : Record 112;
// End of the added line.
PROCEDURE InitLogInteraction@1360000();
BEGIN
LogInteraction := SegManagement.FindInteractTmplCode(4) <> '';
END;
... -
Ubah kode di InitSalesLineOnCharge fungsi codeunit VATCorrectionManagement (14535) sebagai berikut:
Kode yang ada 1...SalesLine.INSERT;
CopyDim(SalesLine,SalesCorrLine);
END;
PROCEDURE InitSalesLineOnCharge@1360001(VAR SalesLine@1360000 : Record 37;SalesCorrLine@1360001 : Record 14536;QtyOnSalesLine@1360002 : Decimal);
BEGIN
InitSalesLine(SalesCorrLine,SalesLine);
SalesLine.Type := SalesLine.Type::"Charge (Item)";
SalesLine."No." := SalesCorrType."Item Charge Code";
SalesLine.VALIDATE("Unit of Measure Code",'');
...Penggantian kode 1
...SalesLine.INSERT;
CopyDim(SalesLine,SalesCorrLine);
END;
PROCEDURE InitSalesLineOnCharge@1360001(VAR SalesLine@1360000 : Record 37;SalesCorrLine@1360001 : Record 14536;QtyOnSalesLine@1360002 : Decimal);
// Add the following lines.
VAR
SalesInvHeader@1360003 : Record 112;
// End of the added lines.
BEGIN
InitSalesLine(SalesCorrLine,SalesLine);
SalesLine.Type := SalesLine.Type::"Charge (Item)";
SalesLine."No." := SalesCorrType."Item Charge Code";
SalesLine.VALIDATE("Unit of Measure Code",'');
...Kode yang ada 2
...InitSalesLine(SalesCorrLine,SalesLine);
SalesLine.Type := SalesLine.Type::"Charge (Item)";
SalesLine."No." := SalesCorrType."Item Charge Code";
SalesLine.VALIDATE("Unit of Measure Code",'');
SalesLine.VALIDATE(Quantity,QtyOnSalesLine);
SalesLine.VALIDATE("Unit Price",SalesCorrLine."Unit Price");
IF SalesLine.Quantity <> 0 THEN
SalesLine.VALIDATE("Line Discount %",SalesCorrLine."Line Discount %");
SalesLine.UpdateAmounts;
SalesLine.VALIDATE("Unit Cost (LCY)",0);
...Penggantian kode 2
...InitSalesLine(SalesCorrLine,SalesLine);
SalesLine.Type := SalesLine.Type::"Charge (Item)";
SalesLine."No." := SalesCorrType."Item Charge Code";
SalesLine.VALIDATE("Unit of Measure Code",'');
SalesLine.VALIDATE(Quantity,QtyOnSalesLine);
// Add the following lines.
IF (SalesCorrLine."Before/ After correction" = SalesCorrLine."Before/ After correction"::Before) AND
(SalesInvHeader.GET(SalesCorrLine."Source Document No.")) AND
(SalesHeader."Prices Including VAT" <> SalesInvHeader."Prices Including VAT")
THEN BEGIN
IF SalesHeader."Prices Including VAT" THEN
SalesLine.VALIDATE("Unit Price",SalesCorrLine."Amount Including VAT" / SalesCorrLine.Quantity)
ELSE
SalesLine.VALIDATE("Unit Price",SalesCorrLine."VAT Base Amount" / SalesCorrLine.Quantity);
END ELSE
// End of the added lines.
SalesLine.VALIDATE("Unit Price",SalesCorrLine."Unit Price");
IF SalesLine.Quantity <> 0 THEN
SalesLine.VALIDATE("Line Discount %",SalesCorrLine."Line Discount %");
SalesLine.UpdateAmounts;
SalesLine.VALIDATE("Unit Cost (LCY)",0);
...
Prasyarat
Anda harus memiliki salah satu produk berikut ini diinstal untuk menerapkan perbaikan terbaru ini:
-
Bahasa Hongaria versi Microsoft Dynamics NAV 2009 R2
Informasi penghapusan
Anda tidak dapat menghapus hotfix ini.
Status
Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Catatan Ini adalah artikel "Penerbitan cepat" dibuat langsung dari dalam organisasi dukungan Microsoft. Informasi yang terkandung di dalamnya disediakan sebagai tanggapan masalah yang muncul. Sebagai akibat dari kecepatan untuk menjadikannya tersedia, materi dapat mengandung kesalahan ketik dan dapat direvisi setiap saat tanpa pemberitahuan. Lihat Ketentuanuntuk pertimbangan lainnya.