Deklarasi 349 memperlihatkan hasil yang salah jika Anda menggunakan dua grup posting prod PPN dalam versi Bahasa Spanyol Microsoft Dynamics NAV 5.0 Service Pack 1

Artikel ini berlaku untuk Microsoft Dynamics NAV untuk bahasa lokal Spanyol (es).

Jika Anda menggunakan dua grup posting prod PPN dalam versi Bahasa Spanyol Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1), deklarasi 349 memperlihatkan hasil yang salah. Masalah ini terjadi apakah Anda menggunakan layanan Uni Eropa dalam penyiapan postingan PPN atau tidak.

Gejala

Informasi hotfix

Hotfix yang didukung kini tersedia dari Microsoft. Namun, hanya dimaksudkan untuk memperbaiki masalah yang dijelaskan dalam artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Hotfix ini mungkin menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terpengaruh oleh masalah ini, kami menyarankan agar Anda menunggu paket layanan Microsoft Dynamics NAV 5.0 berikutnya atau versi Microsoft Dynamics NAV berikutnya yang berisi hotfix ini.

Catatan Dalam kasus khusus, biaya yang biasanya ditimbulkan untuk panggilan dukungan mungkin dibatalkan jika Profesional Dukungan Teknis untuk Microsoft Dynamics dan produk terkait menentukan bahwa pembaruan tertentu akan mengatasi masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah dukungan tambahan yang tidak memenuhi syarat untuk pembaruan tertentu yang dimaksud.

Resolusi

Informasi penginstalan

Microsoft menyediakan contoh pemrograman untuk ilustrasi saja, tanpa jaminan baik tersurat maupun tersirat. Ini termasuk, tetapi tidak terbatas pada, jaminan tersirat dari kelayakan jual atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa Anda sudah terbiasa dengan bahasa pemrograman yang ditunjukkan dan dengan alat yang digunakan untuk membuat dan men-debug prosedur. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, tetapi mereka tidak akan mengubah contoh ini untuk menyediakan fungsionalitas tambahan atau prosedur konstruksi untuk memenuhi persyaratan tertentu Anda.

Catatan Sebelum Anda menginstal hotfix ini, verifikasi bahwa semua pengguna klien Microsoft Navision telah keluar dari sistem. Ini termasuk pengguna klien Microsoft Navision Application Services (NAS). Anda harus menjadi satu-satunya pengguna klien yang masuk ketika Anda menerapkan hotfix ini.

Untuk menerapkan hotfix ini, Anda harus memiliki lisensi pengembang.

Kami menyarankan agar akun pengguna di jendela Windows Logins atau di jendela Login Database diberi ID peran "SUPER". Jika akun pengguna tidak dapat ditetapkan sebagai ID peran "SUPER", Anda harus memverifikasi bahwa akun pengguna memiliki izin berikut:

  • Izin Ubah untuk objek yang akan Anda ubah.
  • Izin Jalankan untuk objek System Object ID 5210 dan untuk objek System Object ID 9015.

            
Catatan Anda tidak harus memiliki hak untuk penyimpanan data kecuali Anda harus melakukan perbaikan data.

Perubahan kode

Catatan Selalu uji perbaikan kode di lingkungan terkontrol sebelum Anda menerapkan perbaikan pada komputer produksi Anda.
Untuk mengatasi masalah ini, ikuti langkah-langkah ini:

  1. Ubah kode dalam Item Data Nomor 5 Bagian dalam laporan Buat Deklarasi 349 (88)) sebagai berikut:
    Kode yang sudah ada 1

    ...
                  SectionType=GroupFooter;
                  SectionWidth=15600;
                  SectionHeight=423;
    
                  // Delete the following line.
                  OnPostSection=BEGIN
    
                                  CustVendCountry.GET("Country/Region Code");
                                  CustVendVatRegNo := COPYSTR("VAT Registration No.",1,CustVendCountry."VAT Registration No. digits");
                                  OpTriang := ' ';
    ...
    
    

    Kode pengganti 1

    ...
                  SectionType=GroupFooter;
                  SectionWidth=15600;
                  SectionHeight=423;
    
                  // Add the following lines.
                  OnPostSection=VAR
                                  SalesInvLine@1100300 : Record 113;
                                  SalesInvHeader@1100301 : Record 112;
                                BEGIN
                  // End of the lines.
    
                                  CustVendCountry.GET("Country/Region Code");
                                  CustVendVatRegNo := COPYSTR("VAT Registration No.",1,CustVendCountry."VAT Registration No. digits");
                                  OpTriang := ' ';
    ...
    
    

    Kode yang sudah ada 2

    ...
                                  AccumOrigDeclAmountEUService := 0;
                                  AccumPrevDeclAmountTri := 0;
                                  AccumOrigDeclAmountTri := 0;
    
                                  Customer2.RESET;
                                  Customer2.SETRANGE(Customer2."VAT Registration No.","VAT Registration No.");
    ...
    
    

    Kode pengganti 2

    ...
                                  AccumOrigDeclAmountEUService := 0;
                                  AccumPrevDeclAmountTri := 0;
                                  AccumOrigDeclAmountTri := 0;
    
                                  Customer2.RESET;
                                  Customer2.SETRANGE(Customer2."VAT Registration No.","VAT Registration No.");
    ...
    
    

    Kode yang sudah ada 3

    ...
                                  AccumOrigDeclAmountEUService := 0;
                                  AccumPrevDeclAmountTri := 0;
                                  AccumOrigDeclAmountTri := 0;
    
                                  Customer2.RESET;
                                  Customer2.SETRANGE(Customer2."VAT Registration No.","VAT Registration No.");
    ...
    
    

    Kode pengganti 3

    ...
                                  AccumOrigDeclAmountEUService := 0;
                                  AccumPrevDeclAmountTri := 0;
                                  AccumOrigDeclAmountTri := 0;
    
                                 // Add the following lines.
                                  NoTaxableNormalAmount := 0;
                                  NoTaxableAmountOpTri := 0;
                                  NoTaxableAmountEUService := 0;
                                 // End of the lines.
    
                                  Customer2.RESET;
                                  Customer2.SETRANGE(Customer2."VAT Registration No.","VAT Registration No.");
    ...
    
    

    Kode yang sudah ada 4

    ...
                                              RectPeriod := '0';
                                        UNTIL CustVendWarning349.NEXT = 0;
                                      //END;
                                    UNTIL Customer2.NEXT = 0;
    
                                    IF "VAT Registration No." <> '' THEN BEGIN
    ...
    
    

    Kode pengganti 4

    ...
                                              RectPeriod := '0';
                                        UNTIL CustVendWarning349.NEXT = 0;
                                      //END;
    
                                     // Add the following lines.
                                      SalesInvLine.RESET;
                                      SalesInvLine.SETRANGE("Bill-to Customer No.",Customer2."No.");
                                      SalesInvLine.SETRANGE("Posting Date",FromDate,ToDate);
                                      SalesInvLine.SETRANGE("VAT Calculation Type",SalesInvLine."VAT Calculation Type"::"No Taxable VAT");
                                      SalesInvLine.SETFILTER("Gen. Prod. Posting Group", FilterString);
                                      IF SalesInvLine.FINDSET THEN
                                        REPEAT
                                          IF VATPostingSetup.GET(SalesInvLine."VAT Bus. Posting Group",SalesInvLine."VAT Prod. Posting Group") THEN
                                            IF VATPostingSetup."EU Service" THEN
                                              NoTaxableAmountEUService := NoTaxableAmountEUService + SalesInvLine."Line Amount"
                                            ELSE
                                              IF SalesInvHeader.GET(SalesInvLine."Document No.") THEN
                                                IF SalesInvHeader."EU 3-Party Trade" THEN
                                                  NoTaxableAmountOpTri := NoTaxableAmountOpTri + SalesInvLine."Line Amount"
                                                ELSE
                                                  NoTaxableNormalAmount := NoTaxableNormalAmount + SalesInvLine."Line Amount"
                                        UNTIL SalesInvLine.NEXT = 0;
                                     // End of the lines.
    
                                    UNTIL Customer2.NEXT = 0;
    
                                    IF "VAT Registration No." <> '' THEN BEGIN
    ...
    
    

    Kode yang sudah ada 5

    ...
                                    IF "VAT Registration No." <> '' THEN BEGIN
                                      IF NormalAmount < 0 THEN
                                        NormalAmount := -NormalAmount;
                                      IF CorrIncludedForNormalAmount OR (NormalAmount <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(NormalAmount),3,13);
                                        Txt :=
    ...
    
    

    Kode pengganti 5

    ...
                                    IF "VAT Registration No." <> '' THEN BEGIN
                                      IF NormalAmount < 0 THEN
                                        NormalAmount := -NormalAmount;
    
                                      // Add the following line.
                                      NormalAmount := NormalAmount + NoTaxableNormalAmount;
    
                                      IF CorrIncludedForNormalAmount OR (NormalAmount <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(NormalAmount),3,13);
                                        Txt :=
    ...
    
    

    Kode yang sudah ada 6

    ...
                                      END;
                                      IF AmountOpTri < 0 THEN
                                        AmountOpTri := -AmountOpTri;
                                      IF CorrIncludedForOpTriAmount OR (AmountOpTri <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(AmountOpTri),3,13);
                                        Txt :=
    ...
    
    

    Kode pengganti 6

    ...
                                      END;
                                      IF AmountOpTri < 0 THEN
                                        AmountOpTri := -AmountOpTri;
    
                                      // Add the following line.
                                      AmountOpTri := AmountOpTri + NoTaxableAmountOpTri;
    
                                      IF CorrIncludedForOpTriAmount OR (AmountOpTri <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(AmountOpTri),3,13);
                                        Txt :=
    ...
    
    

    Kode yang sudah ada 7

    ...
                                      END;
                                      IF AmountEUService < 0 THEN
                                        AmountEUService := -AmountEUService;
                                      IF CorrIncludedForEUServiceAmount OR (AmountEUService <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(AmountEUService),3,13);
                                        CustVendCountry.GET(Customer2."Country/Region Code");
    ...
    
    

    Kode pengganti 7

    ...
                                      END;
                                      IF AmountEUService < 0 THEN
                                        AmountEUService := -AmountEUService;
    
                                      // Add the following line.
                                      AmountEUService := AmountEUService + NoTaxableAmountEUService;
    
                                      IF CorrIncludedForEUServiceAmount OR (AmountEUService <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(AmountEUService),3,13);
                                        CustVendCountry.GET(Customer2."Country/Region Code");
    ...
    
    
  2. Ubah kode dalam Bagian Nomor Item Data 6 dalam laporan Buat Deklarasi 349 (88) sebagai berikut:
    Kode yang sudah ada 1

    ...
                  SectionType=GroupFooter;
                  SectionWidth=15600;
                  SectionHeight=423;
    
                  // Delete the following line.
                  OnPostSection=BEGIN
    
                                  CustVendCountry.GET("Country/Region Code");
                                  CustVendVatRegNo := COPYSTR("VAT Registration No.",1,CustVendCountry."VAT Registration No. digits");
                                  OpTriang := ' ';
    ...
    
    

    Kode pengganti 1

    ...
                  SectionType=GroupFooter;
                  SectionWidth=15600;
                  SectionHeight=423;
    
                  // Add the following lines.
                  OnPostSection=VAR
                                  PurchInvLine@1100302 : Record 123;
                                BEGIN
                  // End of the lines.
    
                                  CustVendCountry.GET("Country/Region Code");
                                  CustVendVatRegNo := COPYSTR("VAT Registration No.",1,CustVendCountry."VAT Registration No. digits");
                                  OpTriang := ' ';
    ...
    
    

    Kode yang sudah ada 2

    ...
                                  AccumOrigDeclAmountEUService := 0;
                                  AccumPrevDeclAmountTri := 0;
                                  AccumOrigDeclAmountTri := 0;
    
                                  Vendor2.RESET;
                                  Vendor2.SETRANGE(Vendor2."VAT Registration No.","VAT Registration No.");
    ...
    
    

    Kode pengganti 2

    ...
                                  AccumOrigDeclAmountEUService := 0;
                                  AccumPrevDeclAmountTri := 0;
                                  AccumOrigDeclAmountTri := 0;
    
                                  // Add the following lines.
                                  NoTaxableNormalAmount := 0;
                                  NoTaxableAmountEUService := 0;
                                  // End of the lines.
    
                                  Vendor2.RESET;
                                  Vendor2.SETRANGE(Vendor2."VAT Registration No.","VAT Registration No.");
    ...
    
    

    Kode yang sudah ada 3

    ...
                                              RectPeriod := '0';
                                        UNTIL CustVendWarning349.NEXT = 0;
                                      END;
                                    UNTIL Vendor2.NEXT = 0;
    
                                    IF "VAT Registration No." <> '' THEN BEGIN
    ...
    
    

    Kode pengganti 3

    ...
                                              RectPeriod := '0';
                                        UNTIL CustVendWarning349.NEXT = 0;
                                      END;
    
                                      // Add the following lines.
                                      PurchInvLine.RESET;
                                      PurchInvLine.SETRANGE("Pay-to Vendor No.",Vendor2."No.");
                                      PurchInvLine.SETRANGE("Posting Date",FromDate,ToDate);
                                      PurchInvLine.SETRANGE("VAT Calculation Type",PurchInvLine."VAT Calculation Type"::"No Taxable VAT");
                                      PurchInvLine.SETFILTER("Gen. Prod. Posting Group", FilterString);
                                      IF PurchInvLine.FINDSET THEN
                                        REPEAT
                                          IF VATPostingSetup.GET(PurchInvLine."VAT Bus. Posting Group",PurchInvLine."VAT Prod. Posting Group") THEN
                                            IF VATPostingSetup."EU Service" THEN
                                              NoTaxableAmountEUService := NoTaxableAmountEUService + PurchInvLine."Line Amount"
                                            ELSE
                                              NoTaxableNormalAmount := NoTaxableNormalAmount + PurchInvLine."Line Amount"
                                        UNTIL PurchInvLine.NEXT = 0;
                                      // End of the lines.
    
                                    UNTIL Vendor2.NEXT = 0;
    
                                    IF "VAT Registration No." <> '' THEN BEGIN
    ...
    
    

    Kode yang sudah ada 4

    ...
                                    IF "VAT Registration No." <> '' THEN BEGIN
                                      IF NormalAmount < 0 THEN
                                        NormalAmount := -NormalAmount;
                                      IF CorrIncludedForNormalAmount OR (NormalAmount <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(NormalAmount),3,13);
                                        Txt :=
    ...
    
    

    Kode pengganti 4

    ...
                                    IF "VAT Registration No." <> '' THEN BEGIN
                                      IF NormalAmount < 0 THEN
                                        NormalAmount := -NormalAmount;
    
                                     // Add the following line.
                                      NormalAmount := NormalAmount + NoTaxableNormalAmount;
    
                                      IF CorrIncludedForNormalAmount OR (NormalAmount <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(NormalAmount),3,13);
                                        Txt :=
    ...
    
    

    Kode yang sudah ada 5

    ...
                                      END;
                                      IF AmountEUService < 0 THEN
                                        AmountEUService := -AmountEUService;
                                      IF CorrIncludedForEUServiceAmount OR (AmountEUService <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(AmountEUService),3,13);
                                        CustVendCountry.GET(Customer2."Country/Region Code");
    ...
    
    

    Kode pengganti 5

    ...
                                      END;
                                      IF AmountEUService < 0 THEN
                                        AmountEUService := -AmountEUService;
    
                                     // Add the following line.
                                      AmountEUService := AmountEUService + NoTaxableAmountEUService;
    
                                      IF CorrIncludedForEUServiceAmount OR (AmountEUService <> 0) THEN BEGIN
                                        TextAmount := COPYSTR(FormatTextAmt(AmountEUService),3,13);
                                        CustVendCountry.GET(Customer2."Country/Region Code");
    ...
    
    
  3. Ubah kode dalam Variabel Global dalam laporan Buat Deklarasi 349 (88) sebagai berikut:
    Kode yang sudah ada

    ...
            CorrIncludedForNormalAmount@1100063 : Boolean;
            CorrIncludedForOpTriAmount@1100070 : Boolean;
            CorrIncludedForEUServiceAmount@1100071 : Boolean;
    
          PROCEDURE FormatTextAmt@1100101(Amount@1100100 : Decimal) : Text[15];
          VAR
    ...
    
    

    Kode pengganti

    ...
            CorrIncludedForNormalAmount@1100063 : Boolean;
            CorrIncludedForOpTriAmount@1100070 : Boolean;
            CorrIncludedForEUServiceAmount@1100071 : Boolean;
    
           // Add the following lines.
            NoTaxableNormalAmount@1100304 : Decimal;
            NoTaxableAmountOpTri@1100305 : Decimal;
            NoTaxableAmountEUService@1100306 : Decimal;
            VATPostingSetup@1100307 : Record 325;
            // End of the lines.
    
          PROCEDURE FormatTextAmt@1100101(Amount@1100100 : Decimal) : Text[15];
          VAR
    ...
    
    

          

Prasyarat

Anda harus menginstal Microsoft Dynamics NAV 5.0 Service Pack 1 versi Spanyol untuk menerapkan hotfix ini.

Informasi penghapusan

Anda tidak dapat menghapus hotfix ini.

Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

Status

Catatan Ini adalah artikel "FAST PUBLISH" yang dibuat langsung dari dalam organisasi dukungan Microsoft. Informasi yang dimuat di sini disediakan sebagaimana adanya sebagai respons terhadap masalah yang muncul. Sebagai akibat dari kecepatan dalam membuatnya tersedia, materi mungkin menyertakan kesalahan pengetikan dan dapat direvisi kapan saja tanpa pemberitahuan. Lihat Ketentuan Penggunaan untuk pertimbangan lain.