Mục VAT được tạo ra không chính xác khi bạn đăng một đơn đặt hàng bằng cách sử dụng "Bán để/Mua-từ Không." làm giá trị "Bill-to/Sell-to VAT Calc." giá trị trong hộp thoại Thiết lập Sổ cái Chung trong phiên bản Vương quốc Anh của Microsoft Dynamics NAV

Áp dụng cho
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009

Bài viết này áp dụng cho Microsoft Dynamics NAV dành cho ngôn ngữ tiếng Anh (Anh) (en-gb).

Triệu chứng

Giả sử bạn bấm vào Bán /Mua-từ Không. trong danh sách Tính hóa đơn đến/Bán cho VAT trong hộp thoại Thiết lập Sổ cái Chung trong phiên bản Vương quốc Anh của Microsoft Dynamics NAV. Khi bạn đăng một đơn đặt hàng trong đó bán cho khách hàng là từ Liên minh Châu Âu (EU) và khách hàng Hóa đơn cho khách hàng là một khách hàng QUỐC GIA, các thông tin về giá trị gia tăng thuế (VAT) mục liên quan đến báo cáo VAT, đặc biệt là báo cáo VAT Vies, không được điền một cách nhất quán. Thông tin về trường Mã quốc gia VAT và các thông tin về trường đăng ký VAT số luôn được từ các hóa đơn đến khách hàng.
Sự cố này xảy ra trong các sản phẩm sau:

  • Phiên bản Microsoft Dynamics NAV 2009 Gói Dịch vụ 1 (SP1) của Vương quốc Anh
  • Phiên bản Microsoft Dynamics NAV 2009 của Vương quốc Anh

Giải pháp

Thông tin cập nhật nóng

Hotfix được hỗ trợ hiện có sẵn từ Microsoft. Tuy nhiên, nó chỉ là nhằm sửa chữa vấn đề được mô tả trong bài viết này. Áp dụng nó chỉ cho hệ thống đang gặp này cụ thể vấn đề. Hotfix này có thể nhận được thử nghiệm bổ sung. Do đó, nếu bạn không bị ảnh hưởng nghiêm trọng bởi sự cố này, chúng tôi khuyên bạn nên đợi gói dịch vụ Microsoft Dynamics NAV 2009 tiếp theo hoặc phiên bản Microsoft Dynamics NAV tiếp theo có chứa hotfix này.

Lưu ý Trong trường hợp đặc biệt, các khoản phí thường phát sinh đối với các cuộc gọi hỗ trợ có thể bị hủy nếu Chuyên gia Hỗ trợ Kỹ thuật dành cho Microsoft Dynamics và các sản phẩm liên quan xác định rằng một bản cập nhật cụ thể sẽ giải quyết sự cố của bạn. Chi phí hỗ trợ thông thường sẽ áp dụng cho các câu hỏi và sự cố hỗ trợ bổ sung không đủ điều kiện cho bản cập nhật cụ thể được đề cập.

            
          

Thông tin cài đặt

Microsoft chỉ cung cấp các ví dụ lập trình để minh họa mà không cần bảo hành dù là rõ ràng hay ngụ ý. Điều này bao gồm, nhưng không giới hạn ở, bảo hành ngụ ý về khả năng bán được hoặc sự thích hợp cho một mục đích cụ thể. Bài viết này giả định rằng bạn đã quen thuộc với ngôn ngữ lập trình đang được chứng minh và với các công cụ được sử dụng để tạo và gỡ lỗi thủ tục. Các kỹ sư hỗ trợ của Microsoft có thể giúp giải thích chức năng của một quy trình cụ thể, nhưng họ sẽ không sửa đổi các ví dụ này để cung cấp chức năng bổ sung hoặc quy trình xây dựng để đáp ứng các yêu cầu cụ thể của bạn.

Lưu ý Trước khi bạn cài đặt hotfix này, hãy xác minh rằng tất cả người dùng máy khách Microsoft Navision đã được đăng xuất khỏi hệ thống. Điều này bao gồm người dùng máy khách Dịch vụ Ứng dụng Microsoft Navision (NAS). Bạn nên là người dùng khách duy nhất đăng nhập khi bạn thực hiện hotfix này.

Để thực hiện hotfix này, bạn phải có giấy phép nhà phát triển.

Chúng tôi khuyên bạn nên gán tài khoản người dùng trong cửa sổ Đăng nhập Windows hoặc trong cửa sổ Đăng nhập Cơ sở dữ liệu. Nếu tài khoản người dùng không thể được gán ID vai trò "SIÊU", bạn phải xác minh rằng tài khoản người dùng có các quyền sau đây:

  • Quyền Sửa đổi đối với đối tượng mà bạn sẽ thay đổi.
  • Quyền Thực thi đối với đối tượng ID Đối tượng Hệ thống 5210 và đối với đối tượng ID Đối tượng Hệ thống 9015.

                
Lưu ý Bạn không phải có quyền đối với các kho dữ liệu trừ khi bạn phải thực hiện sửa chữa dữ liệu.

Thay đổi mã

Lưu ý Luôn kiểm tra các bản sửa lỗi mã trong môi trường được kiểm soát trước khi bạn áp dụng các bản sửa lỗi cho máy tính sản xuất của bạn.
Để giải quyết vấn đề này, hãy làm theo các bước sau:

  1. Thay đổi mã trong bán cho khách hàng không. - Kích hoạt OnValidate trong bảng Tiêu đề Doanh số (36) như sau:
    Mã hiện có

    ...
     "Sell-to Post Code" := Cust."Post Code";
    "Sell-to County" := Cust.County;
    "Sell-to Country/Region Code" := Cust."Country/Region Code";
    IF NOT SkipSellToContact THEN
      "Sell-to Contact" := Cust.Contact;
    "Gen. Bus. Posting Group" := Cust."Gen. Bus. Posting Group"; 
    ...
    

    Mã thay thế

    ...
     "Sell-to Post Code" := Cust."Post Code";
    "Sell-to County" := Cust.County;
    "Sell-to Country/Region Code" := Cust."Country/Region Code";
    "VAT Country/Region Code" := Cust."Country/Region Code";
    IF NOT SkipSellToContact THEN
      "Sell-to Contact" := Cust.Contact;
    "Gen. Bus. Posting Group" := Cust."Gen. Bus. Posting Group"; 
    ...
    
  2. Thay đổi mã trong Bill-to Customer No. - Kích hoạt OnValidate trong bảng Tiêu đề Doanh số (36) như sau:
    Mã hiện có 1

    ...
     "Bill-to Post Code" := Cust."Post Code";
    "Bill-to County" := Cust.County;
    "Bill-to Country/Region Code" := Cust."Country/Region Code";
    "VAT Country/Region Code" := Cust."Country/Region Code";
    IF NOT SkipBillToContact THEN
      "Bill-to Contact" := Cust.Contact;
    "Payment Terms Code" := Cust."Payment Terms Code"; 
    ...
    

    Mã thay thế 1

    ...
     "Bill-to Post Code" := Cust."Post Code";
    "Bill-to County" := Cust.County;
    "Bill-to Country/Region Code" := Cust."Country/Region Code";
    IF NOT SkipBillToContact THEN
      "Bill-to Contact" := Cust.Contact;
    "Payment Terms Code" := Cust."Payment Terms Code"; 
    ...
    

    Mã hiện có 2

    ...
     END ELSE
      "Payment Method Code" := Cust."Payment Method Code";
    
    "Gen. Bus. Posting Group" := Cust."Gen. Bus. Posting Group";
    GLSetup.GET;
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN
      "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
    "Customer Posting Group" := Cust."Customer Posting Group";
    "Currency Code" := Cust."Currency Code";
    "Customer Price Group" := Cust."Customer Price Group"; 
    ...
    

    Mã thay thế 2

    ...
      END ELSE
      "Payment Method Code" := Cust."Payment Method Code";
    GLSetup.GET;
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN BEGIN
      "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
      "Gen. Bus. Posting Group" := Cust."Gen. Bus. Posting Group";
      "VAT Country/Region Code" := Cust."Country/Region Code";
      "VAT Registration No." := Cust."VAT Registration No.";
    END;
    "Customer Posting Group" := Cust."Customer Posting Group";
    "Currency Code" := Cust."Currency Code";
    "Customer Price Group" := Cust."Customer Price Group";
    ...
    

    Mã hiện có 3

    ...
      "Salesperson Code" := Cust."Salesperson Code";
    "Combine Shipments" := Cust."Combine Shipments";
    Reserve := Cust.Reserve;
    "VAT Registration No." := Cust."VAT Registration No.";
    IF "Document Type" = "Document Type"::Order THEN
      "Prepayment %" := Cust."Prepayment %";
    ...
    

    Mã thay thế 3

    ...
      "Salesperson Code" := Cust."Salesperson Code";
    "Combine Shipments" := Cust."Combine Shipments";
    Reserve := Cust.Reserve;
    IF "Document Type" = "Document Type"::Order THEN
      "Prepayment %" := Cust."Prepayment %";
    ...
    
  3. Thay đổi mã trong Mua từ Nhà cung cấp Không. - Kích hoạt OnValidate trong bảng Mua tiêu đề (38) như sau:
    Mã hiện có

    ...
    "Buy-from Post Code" := Vend."Post Code";
    "Buy-from County" := Vend.County;
    "Buy-from Country/Region Code" := Vend."Country/Region Code";
    IF NOT SkipBuyFromContact THEN
      "Buy-from Contact" := Vend.Contact;
    "Gen. Bus. Posting Group" := Vend."Gen. Bus. Posting Group";  
    ...
    

    Mã thay thế

    ...
     "Buy-from Post Code" := Vend."Post Code";
    "Buy-from County" := Vend.County;
    "Buy-from Country/Region Code" := Vend."Country/Region Code";
    "VAT Country/Region Code" := Vend."Country/Region Code";
    IF NOT SkipBuyFromContact THEN
      "Buy-from Contact" := Vend.Contact;
    "Gen. Bus. Posting Group" := Vend."Gen. Bus. Posting Group"; 
    ...
    
  4. Thay đổi mã trong Pay-to Vendor No. - Kích hoạt OnValidate trong bảng Mua tiêu đề (38) như sau:
    Mã hiện có 1

    ...
      "Pay-to Post Code" := Vend."Post Code";
    "Pay-to County" := Vend.County;
    "Pay-to Country/Region Code" := Vend."Country/Region Code";
    "VAT Country/Region Code" := Vend."Country/Region Code";
    IF NOT SkipPayToContact THEN
      "Pay-to Contact" := Vend.Contact;
    "Payment Terms Code" := Vend."Payment Terms Code";
    ...
    

    Mã thay thế 1

    ...
     "Pay-to Post Code" := Vend."Post Code";
    "Pay-to County" := Vend.County;
    "Pay-to Country/Region Code" := Vend."Country/Region Code";
    IF NOT SkipPayToContact THEN
      "Pay-to Contact" := Vend.Contact;
    "Payment Terms Code" := Vend."Payment Terms Code"; 
    ...
    

    Mã hiện có 2

    ...
     "Shipment Method Code" := Vend."Shipment Method Code";
    "Vendor Posting Group" := Vend."Vendor Posting Group";
    "Gen. Bus. Posting Group" := Vend."Gen. Bus. Posting Group";
    GLSetup.GET;
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN
      "VAT Bus. Posting Group" := Vend."VAT Bus. Posting Group";
    "Prices Including VAT" := Vend."Prices Including VAT";
    "Currency Code" := Vend."Currency Code";
    "Invoice Disc. Code" := Vend."Invoice Disc. Code";
    ...
    

    Mã thay thế 2

    ...
    "Shipment Method Code" := Vend."Shipment Method Code";
    "Vendor Posting Group" := Vend."Vendor Posting Group";
    GLSetup.GET;
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN BEGIN
      "VAT Bus. Posting Group" := Vend."VAT Bus. Posting Group";
      "Gen. Bus. Posting Group" := Vend."Gen. Bus. Posting Group";
      "VAT Country/Region Code" := Vend."Country/Region Code";
      "VAT Registration No." := Vend."VAT Registration No.";
    END;
    "Prices Including VAT" := Vend."Prices Including VAT";
    "Currency Code" := Vend."Currency Code";
    "Invoice Disc. Code" := Vend."Invoice Disc. Code";
    ...
    

    Mã hiện có 3

    ...
    VALIDATE("Payment Terms Code");
    VALIDATE("Payment Method Code");
    VALIDATE("Currency Code");
    "VAT Registration No." := Vend."VAT Registration No.";
    IF "Document Type" = "Document Type"::Order THEN
      "Prepayment %" := Vend."Prepayment %"; 
    ...
    

    Mã thay thế 3

    ...
    VALIDATE("Payment Terms Code");
    VALIDATE("Payment Method Code");
    VALIDATE("Currency Code");
    IF "Document Type" = "Document Type"::Order THEN
      "Prepayment %" := Vend."Prepayment %";
    ...
    
  5. Thay đổi mã trong hàm InsertVAT trong Gen. Jnl.-Post Dòng codeunit (12) như sau:
    Mã hiện có

    ...
            VATEntry.Type::Purchase:
            BEGIN
              IF Vend."No." <> "Bill-to/Pay-to No." THEN
                Vend.GET("Bill-to/Pay-to No.");
              VATEntry."Country/Region Code" := Vend."Country/Region Code";
              VATEntry."VAT Registration No." := Vend."VAT Registration No."
            END;
          VATEntry.Type::Sale:
            BEGI
              IF Cust."No." <>"Bill-to/Pay-to No." THEN
                Cust.GET("Bill-to/Pay-to No.");
              VATEntry."Country/Region Code" := Cust."Country/Region Code";
              VATEntry."VAT Registration No." := Cust."VAT Registration No.";
            END;
        END;
    ...
    

    Mã thay thế

    ...
          VATEntry.Type::Purchase:
            BEGIN
              IF Vend."No." <>"Bill-to/Pay-to No." THEN
                IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN
                  Vend.GET("Bill-to/Pay-to No.")
                ELSE
                  Vend.GET("Sell-to/Buy-from No.");
              VATEntry."Country/Region Code" := Vend."Country/Region Code";
              VATEntry."VAT Registration No." := Vend."VAT Registration No."
            END;
          VATEntry.Type::Sale:
            BEGIN
              IF Cust."No." <>"Bill-to/Pay-to No." THEN
                IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN
                  Cust.GET("Bill-to/Pay-to No.")
                ELSE
                  Cust.GET("Sell-to/Buy-from No.");
              VATEntry."Country/Region Code" := Cust."Country/Region Code";
              VATEntry."VAT Registration No." := Cust."VAT Registration No.";
            END;
        END;
    ...
    

          

Điều kiện tiên quyết

Bạn phải cài đặt một trong các sản phẩm sau để áp dụng bản cập nhật nóng này:

  • Phiên bản Microsoft Dynamics NAV 2009 Gói Dịch vụ 1 (SP1) của Vương quốc Anh
  • Phiên bản Microsoft Dynamics NAV 2009 của Vương quốc Anh

                
              

Loại bỏ thông tin

Bạn không thể loại bỏ hotfix này.

Tham khảo

VSTF DynamicsNAVSE: 237315

Trạng thái

Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".

Lưu ý Đây là bài viết "PHÁT HÀNH NHANH" được tạo trực tiếp từ trong tổ chức hỗ trợ của Microsoft. Thông tin có trong tài liệu này được cung cấp tương tự để đáp ứng các vấn đề mới xuất hiện. Do tốc độ làm cho nó có sẵn, các tài liệu có thể bao gồm lỗi đánh máy và có thể được sửa đổi bất cứ lúc nào mà không cần thông báo. Hãy xem Điều khoản Sử dụng để biết những điều cần cân nhắc khác.