Applies ToDynamics NAV 2009

บทความนี้ใช้ได้กับ Microsoft สำหรับประเทศดังต่อไปนี้และตำแหน่งที่ตั้งภาษานั้น

  • อังกฤษ (แคนาดา) (สั้น-ca)

  • ภาษาอังกฤษ (สหรัฐอเมริกา) (สั้น-เรา)

  • ภาษาสเปน (เม็กซิโก) (es-mx)

  • ภาษาฝรั่งเศส (แคนาดา) (fr-ca)

อาการ

สมมติว่า คุณตั้งค่า CAD เป็นค่าสกุลเงินการรายงานเพิ่มเติมในการตั้งค่าบัญชีแยกประเภททั่วไปกล่องโต้ตอบใน Microsoft Dynamics NAV 2009 รุ่นอเมริกาเหนือ เมื่อคุณลงรายการบัญชีอินวอยซ์การซื้อที่ประกอบด้วยภาษี คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

ธุรกรรมไม่สามารถเสร็จสมบูรณ์ได้เนื่องจากจะทำให้ไม่สอดคล้องกันในตารางรายการ G/L ตรวจสอบสถานที่ และลักษณะให้ใช้ฟังก์ชันสอดคล้องกันในธุรกรรมเพื่อค้นหาสาเหตุของข้อผิดพลาด

ปัญหานี้เกิดขึ้นในผลิตภัณฑ์ต่อไปนี้:

  • Microsoft Dynamics NAV 2009 R2 รุ่นสหรัฐอเมริกาเหนือ

  • รุ่นของ Microsoft Dynamics NAV 2009 Service Pack 1 อเมริกาเหนือ

การแก้ปัญหา

ข้อมูลโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนจะพร้อมใช้งานได้ในขณะนี้จาก Microsoft อย่างไรก็ตาม มีเป้าหมายเพียงเพื่อการแก้ไขปัญหาที่อธิบายไว้ในบทความนี้ นำวิธีนี้ไปใช้กับระบบที่ประสบกับปัญหาที่เฉพาะเจาะจงเท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณจะไม่รุนแรงได้รับผลกระทบจากปัญหานี้ เราขอแนะนำให้ คุณรอ service pack ถัดไปของ Microsoft Dynamics NAV 2009 หรือเวอร์ชันถัดไป Microsoft Dynamics NAV ที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้หมายเหตุ ในกรณีพิเศษ ค่าธรรมเนียมค่าใช้จ่ายสำหรับการสนับสนุนโทรศัพท์อาจถูกยกเลิกถ้า Technical Support Professional สำหรับ Microsoft Dynamics และผลิตภัณฑ์ที่เกี่ยวข้องตรวจพบว่าการปรับปรุงเฉพาะจะแก้ปัญหาของคุณ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง

ข้อมูลการติดตั้ง

Microsoft ให้ตัวอย่างการเขียนโปรแกรมไว้สำหรับประกอบการอธิบายเท่านั้นโดยไม่มีการรับประกันไม่ว่าจะโดยชัดแจ้งหรือโดยนัย กรณีนี้รวมถึงแต่มิได้จำกัดเพียงแค่การการรับประกันโดยนัยเกี่ยวกับการจำหน่ายเป็นสินค้าหรือความเหมาะสำหรับวัตถุประสงค์เฉพาะ บทความนี้ตั้งสมมติฐานว่าคุณมีความคุ้นเคยกับภาษาการเขียนโปรแกรมที่กำลังแสดงและคุ้นเคยกับเครื่องมือที่ใช้ใน การสร้างและแก้จุดบกพร่องของขั้นตอนการดำเนินการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทำงานของกระบวนการเฉพาะได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้ฟังก์ชันการทำงานเพิ่มเติมหรือสร้างกระบวนงานเพื่อตอบสนองความต้องการเฉพาะของคุณหมายเหตุ ก่อนที่คุณติดตั้งโปรแกรมแก้ไขด่วนนี้ โปรดตรวจสอบว่า ผู้ใช้ไคลเอนต์ของ Microsoft Navision ทั้งหมดเข้าสู่ระบบออกจากระบบ ข้อมูลนี้รวมถึงผู้ใช้ไคลเอ็นต์บริการแอพลิเคชัน Navision Microsoft (NAS) คุณควรไคลเอ็นต์เฉพาะผู้ใช้ที่เข้าสู่ระบบเมื่อคุณใช้โปรแกรมแก้ไขด่วนนี้เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมีสิทธิ์การใช้งานสำหรับนักพัฒนาเราขอแนะนำว่า บัญชีผู้ใช้ ในหน้าต่างล็อกอินของ Windows หรือ ในหน้าต่างล็อกอินฐานข้อมูลสามารถกำหนดรหัสการเข้าถึงข้อมูล "ขั้นสูง" ถ้าบัญชีผู้ใช้ไม่สามารถกำหนดรหัสการบทบาท "SUPER" คุณต้องตรวจสอบว่า บัญชีผู้ใช้มีสิทธิ์ต่อไปนี้:

  • สิทธิ์การปรับเปลี่ยนสำหรับออปเจ็กต์ที่คุณจะสามารถเปลี่ยน

  • สิทธิ์ Execute สำหรับออบเจ็กต์5210 รหัสวัตถุของระบบและ สำหรับออบเจ็กต์ระบบ 9015 ID ของวัตถุ

หมายเหตุ คุณไม่จำเป็นต้องมีสิทธิ์ไปยังร้านค้าข้อมูลยกเว้นว่าคุณจำเป็นต้องซ่อมแซมข้อมูล

การเปลี่ยนแปลงรหัส

หมายเหตุ เสมอทดสอบรหัสแก้ไขในสภาพแวดล้อมการควบคุมก่อนที่คุณนำไปใช้แก้ไขปัญหากับคอมพิวเตอร์ของคุณผลิตเมื่อต้องการแก้ไขปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้:

  1. เปลี่ยนแปลงรหัสนี้ในฟิลด์ในตารางบรรทัดยอดเงินภาษีขาย (10011) เป็นดังนี้:รหัสที่มีอยู่

    ...ESM=Es Informe jurisdicci¢n;                                                                FRC=Est une juridiction fiscale;                                                                ENC=Is Report-to Jurisdiction];                                                     Editable=No }    }    KEYS    {      {    ;Tax Area Code for Key,Tax Jurisdiction Code,Tax %,Tax Group Code,Expense/Capitalize,Tax Type,Use Tax;...

    รหัสแทน

    ...ESM=Es Informe jurisdicci¢n;                                                                FRC=Est une juridiction fiscale;                                                                ENC=Is Report-to Jurisdiction];                                                     Editable=No }// Add the following line.{ 10044;  ;Tax Base Amount FCY ;Decimal        }// End of the added line.    }    KEYS    {      {    ;Tax Area Code for Key,Tax Jurisdiction Code,Tax %,Tax Group Code,Expense/Capitalize,Tax Type,Use Tax;...
  2. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันPostSalesTaxToGLในโค้ดยูนิตลงรายการบัญชีการขาย (80) เป็นดังนี้:รหัสที่มีอยู่

    ...END;              GenJnlLine."Tax Jurisdiction Code" := TempSalesTaxAmtLine."Tax Jurisdiction Code";              IF TempSalesTaxAmtLine."Tax Amount" <> 0 THEN BEGIN                RemSalesTaxSrcAmt := RemSalesTaxSrcAmt +// Delete the following lines.                  CurrExchRate.ExchangeAmtLCYToFCY(                    UseDate,SalesHeader."Currency Code",TempSalesTaxAmtLine."Tax Amount",SalesHeader."Currency Factor");// End of the deleted lines.                GenJnlLine."Source Curr. VAT Amount" :=                  SalesTaxCalculate.ArithmeticRound(RemSalesTaxSrcAmt,Currency."Amount Rounding Precision");                RemSalesTaxSrcAmt := RemSalesTaxSrcAmt - GenJnlLine."Source Curr. VAT Amount";                RemSalesTaxAmt := RemSalesTaxAmt + TempSalesTaxAmtLine."Tax Amount";...

    รหัสแทน

    ...END;              GenJnlLine."Tax Jurisdiction Code" := TempSalesTaxAmtLine."Tax Jurisdiction Code";              IF TempSalesTaxAmtLine."Tax Amount" <> 0 THEN BEGIN                RemSalesTaxSrcAmt := RemSalesTaxSrcAmt +// Add the following lines.                  TempSalesTaxAmtLine."Tax Base Amount FCY" * TempSalesTaxAmtLine."Tax %" / 100;// End of the added lines.                GenJnlLine."Source Curr. VAT Amount" :=                  SalesTaxCalculate.ArithmeticRound(RemSalesTaxSrcAmt,Currency."Amount Rounding Precision");                RemSalesTaxSrcAmt := RemSalesTaxSrcAmt - GenJnlLine."Source Curr. VAT Amount";                RemSalesTaxAmt := RemSalesTaxAmt + TempSalesTaxAmtLine."Tax Amount";...
  3. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันPostSalesTaxToGLในการซื้อ-ลงรายการบัญชีโค้ดยูนิต (90) ดัง:รหัสที่มีอยู่

    ...END;              GenJnlLine."Tax Jurisdiction Code" := TempSalesTaxAmtLine."Tax Jurisdiction Code";              IF TempSalesTaxAmtLine."Tax Amount" <> 0 THEN BEGIN                RemSalesTaxSrcAmt := RemSalesTaxSrcAmt +// Delete the following lines.                  CurrExchRate.ExchangeAmtLCYToFCY(                    Usedate,PurchHeader."Currency Code",TempSalesTaxAmtLine."Tax Amount",PurchHeader."Currency Factor");// End of the deleted lines.                GenJnlLine."Source Curr. VAT Amount" :=                  SalesTaxCalculate.ArithmeticRound(RemSalesTaxSrcAmt,Currency."Amount Rounding Precision");                RemSalesTaxSrcAmt := RemSalesTaxSrcAmt - GenJnlLine."Source Curr. VAT Amount";                RemSalesTaxAmt := RemSalesTaxAmt + TempSalesTaxAmtLine."Tax Amount";...

    รหัสแทน

    ...END;              GenJnlLine."Tax Jurisdiction Code" := TempSalesTaxAmtLine."Tax Jurisdiction Code";              IF TempSalesTaxAmtLine."Tax Amount" <> 0 THEN BEGIN                RemSalesTaxSrcAmt := RemSalesTaxSrcAmt +// Add the following line.                  TempSalesTaxAmtLine."Tax Base Amount FCY" * TempSalesTaxAmtLine."Tax %" / 100;// End of the added line.                GenJnlLine."Source Curr. VAT Amount" :=                  SalesTaxCalculate.ArithmeticRound(RemSalesTaxSrcAmt,Currency."Amount Rounding Precision");                RemSalesTaxSrcAmt := RemSalesTaxSrcAmt - GenJnlLine."Source Curr. VAT Amount";                RemSalesTaxAmt := RemSalesTaxAmt + TempSalesTaxAmtLine."Tax Amount";...
  4. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันPostProvincialSalesTaxToGLในการซื้อ-ลงรายการบัญชีโค้ดยูนิต (90) ดัง:รหัสที่มีอยู่

    ...TaxJurisdiction.TESTFIELD("Tax Account (Purchases)");                  GenJnlLine."Account No." := TaxJurisdiction."Tax Account (Purchases)";                END;                GenJnlLine.Amount := GenJnlLine."VAT Amount";// Delete the following lines.                GenJnlLine."Source Curr. VAT Base Amount" := 0;                GenJnlLine."VAT Base Amount (LCY)" := 0;                GenJnlLine."VAT Base Amount" := 0;                GenJnlLine."Source Curr. VAT Amount" := 0;// End of the deleted lines.                GenJnlLine."VAT Amount (LCY)" := 0;                GenJnlLine."VAT Amount" := 0;                GenJnlLine.Quantity := 0;                GenJnlLine."VAT Difference" := 0;...

    รหัสแทน

    ...TaxJurisdiction.TESTFIELD("Tax Account (Purchases)");                  GenJnlLine."Account No." := TaxJurisdiction."Tax Account (Purchases)";                END;                GenJnlLine.Amount := GenJnlLine."VAT Amount";// Add the following lines.                GenJnlLine."Source Currency Amount" := GenJnlLine."Source Curr. VAT Amount";                GenJnlLine."Source Curr. VAT Base Amount" := 0;                GenJnlLine."VAT Base Amount (LCY)" := 0;                GenJnlLine."VAT Base Amount" := 0;// End of the added lines.                GenJnlLine."VAT Amount (LCY)" := 0;                GenJnlLine."VAT Amount" := 0;                GenJnlLine.Quantity := 0;                GenJnlLine."VAT Difference" := 0;...
  5. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddSalesLineในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Round Tax" := TaxArea."Round Tax";                TaxJurisdiction.GET("Tax Jurisdiction Code");                "Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");              END;// Delete the following line.              "Tax Base Amount" := (SalesLine."Line Amount" - SalesLine."Inv. Discount Amount") / ExchangeFactor;// End of the deleted line.              "Line Amount" := SalesLine."Line Amount" / ExchangeFactor;              "Tax Liable" := SalesLine."Tax Liable";              Quantity := SalesLine."Quantity (Base)";              "Invoice Discount Amount" := SalesLine."Inv. Discount Amount";...

    รหัสแทนที่ 1

    ..."Round Tax" := TaxArea."Round Tax";                TaxJurisdiction.GET("Tax Jurisdiction Code");                "Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");              END;// Add the following line.              SetTaxBaseAmount(TempSalesTaxLine,SalesLine."Line Amount" - SalesLine."Inv. Discount Amount",ExchangeFactor,FALSE);// End of the added line.              "Line Amount" := SalesLine."Line Amount" / ExchangeFactor;              "Tax Liable" := SalesLine."Tax Liable";              Quantity := SalesLine."Quantity (Base)";              "Invoice Discount Amount" := SalesLine."Inv. Discount Amount";...

    รหัสที่มีอยู่ 2

    ...END ELSE BEGIN              "Line Amount" := "Line Amount" + (SalesLine."Line Amount" / ExchangeFactor);              IF SalesLine."Tax Liable" THEN                "Tax Liable" := SalesLine."Tax Liable";// Delete the following line.              "Tax Base Amount" := "Tax Base Amount" + ((SalesLine."Line Amount" - SalesLine."Inv. Discount Amount") / ExchangeFactor);// End of the deleted line.              "Tax Amount" := 0;              Quantity := Quantity + SalesLine."Quantity (Base)";              "Invoice Discount Amount" := "Invoice Discount Amount" + SalesLine."Inv. Discount Amount";              MODIFY;...

    รหัสแทนที่ 2

    ...END ELSE BEGIN              "Line Amount" := "Line Amount" + (SalesLine."Line Amount" / ExchangeFactor);              IF SalesLine."Tax Liable" THEN                "Tax Liable" := SalesLine."Tax Liable";// Add the following line.              SetTaxBaseAmount(TempSalesTaxLine,SalesLine."Line Amount" - SalesLine."Inv. Discount Amount",ExchangeFactor,TRUE);// End of the added line.              "Tax Amount" := 0;              Quantity := Quantity + SalesLine."Quantity (Base)";              "Invoice Discount Amount" := "Invoice Discount Amount" + SalesLine."Inv. Discount Amount";              MODIFY;...
  6. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddSalesInvoiceLinesในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := SalesInvoiceLine."Line Amount" / ExchangeFactor;// Delete the following line.                     "Tax Base Amount" := SalesInvoiceLine."VAT Base Amount" / ExchangeFactor;// End of the deleted line.                     Quantity := SalesInvoiceLine.Quantity;                     "Tax Liable" := SalesInvoiceLine."Tax Liable";                     "Calculation Order" :=  TaxAreaLine."Calculation Order";                     InsertRec := TRUE;...

    รหัสแทนที่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := SalesInvoiceLine."Line Amount" / ExchangeFactor;// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,SalesInvoiceLine."VAT Base Amount",ExchangeFactor,FALSE);// End of the added line.                     Quantity := SalesInvoiceLine.Quantity;                     "Tax Liable" := SalesInvoiceLine."Tax Liable";                     "Calculation Order" :=  TaxAreaLine."Calculation Order";                     InsertRec := TRUE;...

    รหัสที่มีอยู่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (SalesInvoiceLine."Line Amount" / ExchangeFactor);// Delete the following line.                     "Tax Base Amount" := "Tax Base Amount" + (SalesInvoiceLine."VAT Base Amount" / ExchangeFactor);// End of the deleted line.                     Quantity := Quantity + SalesInvoiceLine.Quantity;                     IF SalesInvoiceLine."Tax Liable" THEN                       "Tax Liable" := SalesInvoiceLine."Tax Liable";                     InsertRec := FALSE;...

    รหัสแทนที่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (SalesInvoiceLine."Line Amount" / ExchangeFactor);// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,SalesInvoiceLine."VAT Base Amount",ExchangeFactor,TRUE);// End of the added line.                     Quantity := Quantity + SalesInvoiceLine.Quantity;                     IF SalesInvoiceLine."Tax Liable" THEN                       "Tax Liable" := SalesInvoiceLine."Tax Liable";                     InsertRec := FALSE;...
  7. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddSalesCrMemoLinesในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := SalesCrMemoLine."Line Amount" / ExchangeFactor;// Delete the following line.                     "Tax Base Amount" := SalesCrMemoLine."VAT Base Amount" / ExchangeFactor;// End of the deleted line.                     Quantity := SalesCrMemoLine.Quantity;                     "Tax Liable" := SalesCrMemoLine."Tax Liable";                     "Calculation Order" :=  TaxAreaLine."Calculation Order";                     InsertRec := TRUE;...

    รหัสแทนที่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := SalesCrMemoLine."Line Amount" / ExchangeFactor;// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,SalesCrMemoLine."VAT Base Amount",ExchangeFactor,FALSE);// End of the added line.                     Quantity := SalesCrMemoLine.Quantity;                     "Tax Liable" := SalesCrMemoLine."Tax Liable";                     "Calculation Order" :=  TaxAreaLine."Calculation Order";                     InsertRec := TRUE;...

    รหัสที่มีอยู่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (SalesCrMemoLine."Line Amount" / ExchangeFactor);// Delete the following line.                     "Tax Base Amount" := "Tax Base Amount" + (SalesCrMemoLine."VAT Base Amount" / ExchangeFactor);// End of the deleted line.                     Quantity := Quantity + SalesCrMemoLine.Quantity;                     IF SalesCrMemoLine."Tax Liable" THEN                       "Tax Liable" := SalesCrMemoLine."Tax Liable";                     InsertRec := FALSE;...

    รหัสแทนที่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (SalesCrMemoLine."Line Amount" / ExchangeFactor);// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,SalesCrMemoLine."VAT Base Amount",ExchangeFactor,TRUE);// End of the added line.                     Quantity := Quantity + SalesCrMemoLine.Quantity;                     IF SalesCrMemoLine."Tax Liable" THEN                       "Tax Liable" := SalesCrMemoLine."Tax Liable";                     InsertRec := FALSE;...
  8. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddPurchLineในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Round Tax" := TaxArea."Round Tax";                TaxJurisdiction.GET("Tax Jurisdiction Code");                "Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");              END;// Delete the following line.              "Tax Base Amount" := (PurchLine."Line Amount" - PurchLine."Inv. Discount Amount") / ExchangeFactor;// End of the deleted line.              "Line Amount" := PurchLine."Line Amount" / ExchangeFactor;              "Tax Liable" := PurchLine."Tax Liable";              "Use Tax" := PurchLine."Use Tax";...

    รหัสแทนที่ 1

    ..."Round Tax" := TaxArea."Round Tax";                TaxJurisdiction.GET("Tax Jurisdiction Code");                "Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");              END;// Add the following line.              SetTaxBaseAmount(TempSalesTaxLine,PurchLine."Line Amount" - PurchLine."Inv. Discount Amount",ExchangeFactor,FALSE);// End of the added line.          "Line Amount" := PurchLine."Line Amount" / ExchangeFactor;              "Tax Liable" := PurchLine."Tax Liable";              "Use Tax" := PurchLine."Use Tax";...

    รหัสที่มีอยู่ 2

    ...END ELSE BEGIN              "Line Amount" := "Line Amount" + (PurchLine."Line Amount" / ExchangeFactor);              IF PurchLine."Tax Liable" THEN                "Tax Liable" := PurchLine."Tax Liable";// Delete the following line.              "Tax Base Amount" := "Tax Base Amount" + ((PurchLine."Line Amount" - PurchLine."Inv. Discount Amount") / ExchangeFactor);// End of the deleted line.              "Tax Amount" := 0;              Quantity := Quantity + PurchLine."Quantity (Base)";              "Invoice Discount Amount" := "Invoice Discount Amount" + PurchLine."Inv. Discount Amount";              MODIFY;...

    รหัสแทนที่ 2

    ...END ELSE BEGIN              "Line Amount" := "Line Amount" + (PurchLine."Line Amount" / ExchangeFactor);              IF PurchLine."Tax Liable" THEN                "Tax Liable" := PurchLine."Tax Liable";// Add the following line.              SetTaxBaseAmount(TempSalesTaxLine,PurchLine."Line Amount" - PurchLine."Inv. Discount Amount",ExchangeFactor,TRUE);// End of the added line.              "Tax Amount" := 0;              Quantity := Quantity + PurchLine."Quantity (Base)";              "Invoice Discount Amount" := "Invoice Discount Amount" + PurchLine."Inv. Discount Amount";              MODIFY;...
  9. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddPurchInvoiceLinesในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := PurchInvLine."Line Amount" / ExchangeFactor;// Delete the following line.                     "Tax Base Amount" := PurchInvLine."VAT Base Amount" / ExchangeFactor;// End of the deleted line.                     Quantity := PurchInvLine.Quantity;                     "Tax Liable" := PurchInvLine."Tax Liable";                     "Use Tax" := PurchInvLine."Use Tax";...

    รหัสแทนที่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := PurchInvLine."Line Amount" / ExchangeFactor;// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,PurchInvLine."VAT Base Amount",ExchangeFactor,FALSE);// End of the added line.                     Quantity := PurchInvLine.Quantity;                     "Tax Liable" := PurchInvLine."Tax Liable";                     "Use Tax" := PurchInvLine."Use Tax";...

    รหัสที่มีอยู่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (PurchInvLine."Line Amount" / ExchangeFactor);// Delete the following line.                     "Tax Base Amount" := "Tax Base Amount" + (PurchInvLine."VAT Base Amount" / ExchangeFactor);// End of the deleted line.                     Quantity := Quantity + PurchInvLine.Quantity;                     IF PurchInvLine."Tax Liable" THEN                       "Tax Liable" := PurchInvLine."Tax Liable";                     InsertRec := FALSE;...

    รหัสแทนที่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (PurchInvLine."Line Amount" / ExchangeFactor);// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,PurchInvLine."VAT Base Amount",ExchangeFactor,TRUE);// End of the added line.                     Quantity := Quantity + PurchInvLine.Quantity;                     IF PurchInvLine."Tax Liable" THEN                       "Tax Liable" := PurchInvLine."Tax Liable";                     InsertRec := FALSE;...
  10. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddPurchCrMemoLinesในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := PurchCrMemoLine."Line Amount" / ExchangeFactor;// Delete the following line.                     "Tax Base Amount" := PurchCrMemoLine."VAT Base Amount" / ExchangeFactor;// End of the deleted line.                     Quantity := PurchCrMemoLine.Quantity;                     "Tax Liable" := PurchCrMemoLine."Tax Liable";                     "Use Tax" := PurchCrMemoLine."Use Tax";...

    รหัสแทนที่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := PurchCrMemoLine."Line Amount" / ExchangeFactor;// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,PurchCrMemoLine."VAT Base Amount",ExchangeFactor,FALSE);// End of the added line.                     Quantity := PurchCrMemoLine.Quantity;                     "Tax Liable" := PurchCrMemoLine."Tax Liable";                     "Use Tax" := PurchCrMemoLine."Use Tax";...

    รหัสที่มีอยู่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (PurchCrMemoLine."Line Amount" / ExchangeFactor);// Delete the following line.                     "Tax Base Amount" := "Tax Base Amount" + (PurchCrMemoLine."VAT Base Amount" / ExchangeFactor);// End of the deleted line.                     Quantity := Quantity + PurchCrMemoLine.Quantity;                     IF PurchCrMemoLine."Tax Liable" THEN                       "Tax Liable" := PurchCrMemoLine."Tax Liable";                     InsertRec := FALSE;...

    รหัสแทนที่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (PurchCrMemoLine."Line Amount" / ExchangeFactor);// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,PurchCrMemoLine."VAT Base Amount",ExchangeFactor,TRUE);// End of the added line.                     Quantity := Quantity + PurchCrMemoLine.Quantity;                     IF PurchCrMemoLine."Tax Liable" THEN                       "Tax Liable" := PurchCrMemoLine."Tax Liable";                     InsertRec := FALSE;...
  11. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddServiceLineในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Round Tax" := TaxArea."Round Tax";                TaxJurisdiction.GET("Tax Jurisdiction Code");                "Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");              END;// Delete the following line.              "Tax Base Amount" := (ServiceLine."Line Amount" - ServiceLine."Inv. Discount Amount") / ExchangeFactor;// End of the deleted line.              "Line Amount" := ServiceLine."Line Amount" / ExchangeFactor;              "Tax Liable" := ServiceLine."Tax Liable";              Quantity := ServiceLine."Quantity (Base)";              "Invoice Discount Amount" := ServiceLine."Inv. Discount Amount";...

    รหัสแทนที่ 1

    ..."Round Tax" := TaxArea."Round Tax";                TaxJurisdiction.GET("Tax Jurisdiction Code");                "Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");              END;// Add the following line.              SetTaxBaseAmount(TempSalesTaxLine,ServiceLine."Line Amount" - ServiceLine."Inv. Discount Amount",ExchangeFactor,FALSE);// End of the added line.              "Line Amount" := ServiceLine."Line Amount" / ExchangeFactor;              "Tax Liable" := ServiceLine."Tax Liable";              Quantity := ServiceLine."Quantity (Base)";              "Invoice Discount Amount" := ServiceLine."Inv. Discount Amount";...

    รหัสที่มีอยู่ 2

    ...END ELSE BEGIN              "Line Amount" := "Line Amount" + (ServiceLine."Line Amount" / ExchangeFactor);              IF ServiceLine."Tax Liable" THEN                "Tax Liable" := ServiceLine."Tax Liable";// Delete the following line.              "Tax Base Amount" :=                "Tax Base Amount" + ((ServiceLine."Line Amount" - ServiceLine."Inv. Discount Amount") / ExchangeFactor);// End of the deleted line.          "Tax Amount" := 0;              Quantity := Quantity + ServiceLine."Quantity (Base)";              "Invoice Discount Amount" := "Invoice Discount Amount" + ServiceLine."Inv. Discount Amount";              MODIFY;...

    รหัสแทนที่ 2

    ...END ELSE BEGIN              "Line Amount" := "Line Amount" + (ServiceLine."Line Amount" / ExchangeFactor);              IF ServiceLine."Tax Liable" THEN                "Tax Liable" := ServiceLine."Tax Liable";// Add the following line.              SetTaxBaseAmount(TempSalesTaxLine,ServiceLine."Line Amount" - ServiceLine."Inv. Discount Amount",ExchangeFactor,TRUE);// End of the added line.              "Tax Amount" := 0;              Quantity := Quantity + ServiceLine."Quantity (Base)";              "Invoice Discount Amount" := "Invoice Discount Amount" + ServiceLine."Inv. Discount Amount";              MODIFY;...
  12. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddServInvoiceLinesในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := ServInvLine."Line Amount" / ExchangeFactor;// Delete the following lines.                     "Tax Base Amount" := ServInvLine."VAT Base Amount" / ExchangeFactor;                     Quantity := ServInvLine.Quantity;                     "Tax Liable" := ServInvLine."Tax Liable";// End of the deleted line.                     "Calculation Order" :=  TaxAreaLine."Calculation Order";                     InsertRec := TRUE;                     INSERT;...

    รหัสแทนที่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := ServInvLine."Line Amount" / ExchangeFactor;// Add the following lines.                     SetTaxBaseAmount(TempSalesTaxLine,ServInvLine."VAT Base Amount",ExchangeFactor,FALSE);                     Quantity := ServInvLine.Quantity;                     "Tax Liable" := ServInvLine."Tax Liable";// End of the added lines.                     "Calculation Order" :=  TaxAreaLine."Calculation Order";                     InsertRec := TRUE;                     INSERT;...

    รหัสที่มีอยู่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (ServInvLine."Line Amount" / ExchangeFactor);// Delete the following line.                     "Tax Base Amount" := "Tax Base Amount" + (ServInvLine."VAT Base Amount" / ExchangeFactor);// End of the deleted line.                     Quantity := Quantity + ServInvLine.Quantity;                     IF ServInvLine."Tax Liable" THEN                       "Tax Liable" := ServInvLine."Tax Liable";                     InsertRec := FALSE;...

    รหัสแทนที่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (ServInvLine."Line Amount" / ExchangeFactor);// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,ServInvLine."VAT Base Amount",ExchangeFactor,TRUE);// End of the added line.                     Quantity := Quantity + ServInvLine.Quantity;                     IF ServInvLine."Tax Liable" THEN                       "Tax Liable" := ServInvLine."Tax Liable";                     InsertRec := FALSE;...
  13. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันAddServCrMemoLinesในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:รหัสที่อยู่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := ServCrMemoLine."Line Amount" / ExchangeFactor;// Delete the following line.                     "Tax Base Amount" := ServCrMemoLine."VAT Base Amount" / ExchangeFactor;// End of the deleted line.                     Quantity := ServCrMemoLine.Quantity;                     "Tax Liable" := ServCrMemoLine."Tax Liable";                     "Calculation Order" :=  TaxAreaLine."Calculation Order";...

    รหัสแทนที่ 1

    ..."Is Report-to Jurisdiction" :=                         ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");                     END;                     "Line Amount" := ServCrMemoLine."Line Amount" / ExchangeFactor;// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,ServCrMemoLine."VAT Base Amount",ExchangeFactor,FALSE);// End of the added line.                     Quantity := ServCrMemoLine.Quantity;                     "Tax Liable" := ServCrMemoLine."Tax Liable";                     "Calculation Order" :=  TaxAreaLine."Calculation Order";...

    รหัสที่มีอยู่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (ServCrMemoLine."Line Amount" / ExchangeFactor);// Delete the following line.                     "Tax Base Amount" := "Tax Base Amount" + (ServCrMemoLine."VAT Base Amount" / ExchangeFactor);// End of the deleted line.                     Quantity := Quantity + ServCrMemoLine.Quantity;                     IF ServCrMemoLine."Tax Liable" THEN                       "Tax Liable" := ServCrMemoLine."Tax Liable";                     InsertRec := FALSE;...

    รหัสแทนที่ 2

    ...InsertRec := TRUE;                     INSERT;                   END ELSE BEGIN                     "Line Amount" := "Line Amount" + (ServCrMemoLine."Line Amount" / ExchangeFactor);// Add the following line.                     SetTaxBaseAmount(TempSalesTaxLine,ServCrMemoLine."VAT Base Amount",ExchangeFactor,TRUE);// End of the added line.                     Quantity := Quantity + ServCrMemoLine.Quantity;                     IF ServCrMemoLine."Tax Liable" THEN                       "Tax Liable" := ServCrMemoLine."Tax Liable";                     InsertRec := FALSE;...
  14. เพิ่มฟังก์ชัน SetTaxBaseAmount ในโค้ดยูนิตคำนวณภาษีขาย (398) เป็นดังนี้:

    LOCAL PROCEDURE SetTaxBaseAmount@1020031(VAR SalesTaxAmountLine@1020001 : Record 10011;Value@1020000 : Decimal;ExchangeFactor@1020002 : Decimal;Increment@1020003 : Boolean);      BEGIN        WITH SalesTaxAmountLine DO BEGIN          IF Increment THEN            "Tax Base Amount FCY" += Value          ELSE            "Tax Base Amount FCY" := Value;          "Tax Base Amount" := "Tax Base Amount FCY" / ExchangeFactor;        END;      END;

ข้อกำหนดเบื้องต้น

คุณต้องมีหนึ่งผลิตภัณฑ์ต่อไปนี้ติดตั้งอยู่เพื่อใช้โปรแกรมแก้ไขด่วนนี้:

  • Microsoft Dynamics NAV 2009 R2 รุ่นสหรัฐอเมริกาเหนือ

  • รุ่นของ Microsoft Dynamics NAV 2009 Service Pack 1 อเมริกาเหนือ

ข้อมูลการเอาออก

คุณไม่สามารถเอาโปรแกรมแก้ไขด่วนนี้

สถานะ

Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"

หมายเหตุ นี่คือบทความ "เผยแพร่เร็ว" ที่สร้างขึ้นโดยตรงจากภายใน Microsoft สนับสนุนองค์กร ข้อมูลในที่นี้ให้ไว้ตามสภาพ เพื่อตอบสนองกับปัญหาที่เกิดขึ้นใหม่ เป็นผลมาจากความเร็วในการทำให้พร้อมใช้งาน วัสดุอาจรวมถึงข้อผิดพลาดการพิมพ์ผิด และอาจแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ดูข้อตกลงการใช้สำหรับข้อควรพิจารณาอื่น ๆ

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย