บทความนี้ใช้ได้กับ 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 ของวัตถุ
หมายเหตุ คุณไม่จำเป็นต้องมีสิทธิ์ไปยังร้านค้าข้อมูลยกเว้นว่าคุณจำเป็นต้องซ่อมแซมข้อมูล
การเปลี่ยนแปลงรหัส
หมายเหตุ เสมอทดสอบรหัสแก้ไขในสภาพแวดล้อมการควบคุมก่อนที่คุณนำไปใช้แก้ไขปัญหากับคอมพิวเตอร์ของคุณผลิต
เมื่อต้องการแก้ไขปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้:-
เปลี่ยนแปลงรหัสนี้ในฟิลด์ในตารางบรรทัดยอดเงินภาษีขาย (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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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"; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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"; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชัน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; ... -
เพิ่มฟังก์ชัน 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 สนับสนุนองค์กร ข้อมูลในที่นี้ให้ไว้ตามสภาพ เพื่อตอบสนองกับปัญหาที่เกิดขึ้นใหม่ เป็นผลมาจากความเร็วในการทำให้พร้อมใช้งาน วัสดุอาจรวมถึงข้อผิดพลาดการพิมพ์ผิด และอาจแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ดูข้อตกลงการใช้สำหรับข้อควรพิจารณาอื่น ๆ