นำไปใช้กับ
Dynamics NAV 2009

บทความนี้นำไปใช้กับ Microsoft Dynamics NAV สำหรับการอินเดียน(ระบบภาษา in)

อาการ

ในอินเดียรุ่น Microsoft Dynamics NAV 2009 Service Pack 1 (SP1), แสดง "%ภาษี" ค่าไม่ถูกต้อง ในบรรทัดใบสั่งขาย และบรรทัดใบแจ้งหนี้การขายที่ลงรายการบัญชีแล้ว คุณคาดหวังค่า "%ภาษี" เพื่อให้สอดคล้องกับค่าภาษีต่ำกว่าค่าต่ำสุดในการตั้งค่ารายละเอียดภาษี ปัญหาแบบเดียวกันนี้เกิดขึ้นกับเอกสารการซื้อ

การแก้ปัญหา

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

โปรแกรมแก้ไขด่วนจะพร้อมใช้งานได้ในขณะนี้จาก 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. เปลี่ยนแปลงรหัสนี้ในทริกเกอร์OnValidateในยอดเงินรวมภาษีในตารางบรรทัดการขาย (37) เป็นดังนี้:รหัสที่มีอยู่

    ...                                                                      ELSE                                                                    "Amount To Customer" :=                                                                      ROUND("Line Amount" - "Inv. Discount Amount" + "Excise Amount" + "Charges To Customer" -                                                                        "Bal. TDS/TCS Including SHECESS"  + "Service Tax Amount" +"Service Tax eCess Amount" +                                                                         "Service Tax SHE Cess Amount",Currency."Amount Rounding Precision");                                                                END;// Delete the following lines.                                                                //IF "Tax Base Amount" <> 0 THEN                                                                 //  "Tax %" := ROUND(100 * ("Amount Including Tax" - "Tax Base Amount") / "Tax Base Amount",Currency."Amount Rounding Precision")                                                                 //ELSE                                                                 //  "Tax %" := 0; // End of the deleted lines.                                                                InitOutstandingAmount;                                                              END;    ...

    รหัสแทน

    ...                                                                     ELSE                                                                    "Amount To Customer" :=                                                                      ROUND("Line Amount" - "Inv. Discount Amount" + "Excise Amount" + "Charges To Customer" -                                                                        "Bal. TDS/TCS Including SHECESS"  + "Service Tax Amount" +"Service Tax eCess Amount" +                                                                         "Service Tax SHE Cess Amount",Currency."Amount Rounding Precision");                                                                END;// Add the following lines.                                                                 IF "Tax Base Amount" = 0 THEN                                                                   "Tax %" := 0; // End of the added lines.                                                                InitOutstandingAmount;                                                              END;  ...
  2. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันUpdateTaxAmountsในตารางบรรทัดการขาย (37) เป็นดังนี้:รหัสที่อยู่ 1

    ...     "Bal. TDS/TCS Including SHECESS" + "Service Tax Amount"  + "Service Tax eCess Amount" +      "Service Tax SHE Cess Amount",Currency."Amount Rounding Precision")END;IndianSalesTaxCalculate.SetCurrency("Currency Code" <>'');// Delete the following lines.//LineTaxAmount := IndianSalesTaxCalculate.CalculateTax( //  "Tax Area Code","Tax Group Code","Tax Liable",SalesHeader."Posting Date", //  "Tax Base Amount",Quantity,SalesHeader."Currency Factor","Form Code");// End of the deleted lines.TotalTaxAmount := 0;TotalStdDeductionAmt := 0;...

    รหัสแทนที่ 1

    ...     "Bal. TDS/TCS Including SHECESS" + "Service Tax Amount"  + "Service Tax eCess Amount" +      "Service Tax SHE Cess Amount",Currency."Amount Rounding Precision")END;IndianSalesTaxCalculate.SetCurrency("Currency Code" <>'');// Add the following lines.LineTaxAmount := IndianSalesTaxCalculate.CalculateTax(   "Tax Area Code","Tax Group Code","Tax Liable",SalesHeader."Posting Date",  "Tax Base Amount",Quantity,SalesHeader."Currency Factor","Form Code","Tax %"); // End of the added lines.TotalTaxAmount := 0;TotalStdDeductionAmt := 0;...

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

    ...      END ELSE      IndianSalesTaxCalculate.GetStandardDeductionAmt(Rec,StandardDeductionAmount,LineTaxAmount);  ENDEND;"Amount Including Tax" := ROUND("Tax Base Amount" + LineTaxAmount,Currency."Amount Rounding Precision");// Delete the following lines.//IF "Tax Base Amount" <> 0 THEN //  "Tax %" := //     ROUND(100 * ("Amount Including Tax" - "Tax Base Amount") / "Tax Base Amount",Currency."Amount Rounding Precision") //ELSE //  "Tax %" := 0; // End of the deleted lines.IF "Standard Deduction %" <>0 THEN  "Standard Deduction Amount" := ("Tax Base Amount" * "Standard Deduction %" / 100)   ...

    รหัสแทนที่ 2

    ...    END ELSE      IndianSalesTaxCalculate.GetStandardDeductionAmt(Rec,StandardDeductionAmount,LineTaxAmount);  ENDEND;"Amount Including Tax" := ROUND("Tax Base Amount" + LineTaxAmount,Currency."Amount Rounding Precision");// Add the following lines.IF "Tax Base Amount" = 0 THEN   "Tax %" := 0; // End of the added lines.IF "Standard Deduction %" <>0 THEN  "Standard Deduction Amount" := ("Tax Base Amount" * "Standard Deduction %" / 100)   ...
  3. เปลี่ยนแปลงรหัสนี้ในทริกเกอร์OnValidateในยอดเงินรวมภาษีในตารางบรรทัดการซื้อ (39) เป็นดังนี้:รหัสที่มีอยู่

    ...       "Amount To Vendor" := ROUND("Line Amount" -"Inv. Discount Amount" + "Excise Amount" + "Tax Amount" -      "Bal. TDS Including SHE CESS"  + "Charges To Vendor" + "Service Tax Amount" +      "Service Tax eCess Amount" + "Service Tax SHE Cess Amount");END;// Delete the following lines.//IF "Tax Base Amount" <> 0 THEN //  "Tax %" := ROUND(100 * ("Amount Including Tax" - "Tax Base Amount") / "Tax Base Amount", //     Currency."Amount Rounding Precision") //ELSE // Delete//  "Tax %" := 0; // End of the deleted lines.InitOutstandingAmount;  ...

    รหัสแทน

    ...       "Amount To Vendor" := ROUND("Line Amount" -"Inv. Discount Amount" + "Excise Amount" + "Tax Amount" -      "Bal. TDS Including SHE CESS"  + "Charges To Vendor" + "Service Tax Amount" +      "Service Tax eCess Amount" + "Service Tax SHE Cess Amount");END;// Add the following lines.IF "Tax Base Amount" = 0 THEN // Add// End of the added lines.InitOutstandingAmount;  ...
  4. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันUpdateTaxAmountsในตารางบรรทัดการซื้อ (39) เป็นดังนี้:รหัสที่อยู่ 1

    ...     "Bal. TDS Including SHECESS" + "Service Tax Amount"  + "Service Tax eCess Amount" +      "Service Tax SHE Cess Amount",Currency."Amount Rounding Precision")END;IndianSalesTaxCalculate.SetCurrency("Currency Code" <>'');// Delete the following lines.//LineTaxAmount := ROUND(IndianSalesTaxCalculate.CalculateTax( //    "Tax Area Code","Tax Group Code","Tax Liable",PurchHeader."Posting Date", //    "Tax Base Amount",Quantity,PurchHeader."Currency Factor","Form Code"),Currency."Amount Rounding Precision"); // End of the deleted lines.AmountonInventory := 0;InputTaxCreditAmount := 0;...

    รหัสแทนที่ 1

    ...     "Bal. TDS Including SHECESS" + "Service Tax Amount"  + "Service Tax eCess Amount" +      "Service Tax SHE Cess Amount",Currency."Amount Rounding Precision")END;IndianSalesTaxCalculate.SetCurrency("Currency Code" <>'');// Add the following lines.     LineTaxAmount := ROUND(IndianSalesTaxCalculate.CalculateTax(     "Tax Area Code","Tax Group Code","Tax Liable",PurchHeader."Posting Date",     "Tax Base Amount",Quantity,PurchHeader."Currency Factor","Form Code","Tax %"),Currency."Amount Rounding Precision");// End of the added lines.AmountonInventory := 0;InputTaxCreditAmount := 0;...

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

    ...  "Tax Amount" := ROUND(TaxAmount,Currency."Amount Rounding Precision");"Amount Including Tax" := ("Tax Base Amount" + "Tax Amount");// Delete the following lines.//IF "Tax Base Amount" <> 0 THEN//  "Tax %" := ROUND(100 * ("Amount Including Tax" - "Tax Base Amount") / "Tax Base Amount", //    Currency."Amount Rounding Precision") //ELSE //  "Tax %" := 0; // End of the deleted lines.ServiceTaxSetup.RESET;...

    รหัสแทนที่ 2

    ...   "Tax Amount" := ROUND(TaxAmount,Currency."Amount Rounding Precision");"Amount Including Tax" := ("Tax Base Amount" + "Tax Amount");// Add the following lines.IF "Tax Base Amount" = 0 THEN   "Tax %" := 0;// End of the added lines.ServiceTaxSetup.RESET;...
  5. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันในตารางสมุดรายวันเปิด VAT UpdateTaxAmount (16569) เป็นดังนี้:รหัสที่มีอยู่

    ...  IF "Transaction Type" = "Transaction Type"::Purchase THEN BEGIN// Delete the following lines.  //LineTaxAmount := IndianSalesTaxCalculate.CalculateTax(  //  "Tax Area Code","Tax Group Code",TRUE,"Posting Date",   //  "Tax Base Amount",Quantity,0,''); // End of the deleted lines.  IF LineTaxAmount <> 0 THEN    IndianSalesTaxCalculate.GetVATOpeningInputTaxCredit(Rec,"Amount Loaded on Item",      "Input Credit/Output Tax Amount",TRUE,TaxAmount);  "Tax Amount" := TaxAmount;  IF GLSetup."VAT Rounding Precision" <> 0 THEN    "Tax Amount" := ROUND("Tax Amount",GLSetup."VAT Rounding Precision",Direction);// Delete the following lines.  //IF "Tax Base Amount" <> 0 THEN   //  "Tax %" := 100 * (("Tax Base Amount" + "Tax Amount") - "Tax Base Amount") / "Tax Base Amount"   //ELSE   //  "Tax %" := 0; // End of the deleted lines.END ELSE IF "Transaction Type" = "Transaction Type"::Sale THEN BEGIN  IF ("Export or Deemed Export") THEN    EXIT;// Delete the following lines.  //LineTaxAmount := IndianSalesTaxCalculate.CalculateTax(   //   "Tax Area Code","Tax Group Code",TRUE,"Posting Date",   //   "Tax Base Amount",Quantity,0,''); // End of the deleted lines.  IF LineTaxAmount <> 0 THEN    IndianSalesTaxCalculate.GetVATOpeningSTD(Rec,StandardDeductionAmount,TaxAmount);  "Tax Amount" := TaxAmount - StandardDeductionAmount;// Delete the following lines.  //IF "Tax Base Amount" <> 0 THEN   //  "Tax %" := 100 * (("Tax Base Amount" + "Tax Amount") - "Tax Base Amount") / "Tax Base Amount"   //ELSE   //  "Tax %" := 0; // End of the deleted lines.  "Input Credit/Output Tax Amount" := "Tax Amount";  "Amount Loaded on Item" := 0;END;...

    รหัสแทน

    ...  IF "Transaction Type" = "Transaction Type"::Purchase THEN BEGIN// Add the following lines.  LineTaxAmount := IndianSalesTaxCalculate.CalculateTax(     "Tax Area Code","Tax Group Code",TRUE,"Posting Date",     "Tax Base Amount",Quantity,0,'',"Tax %"); // End of the added lines.  IF LineTaxAmount <> 0 THEN    IndianSalesTaxCalculate.GetVATOpeningInputTaxCredit(Rec,"Amount Loaded on Item",      "Input Credit/Output Tax Amount",TRUE,TaxAmount);  "Tax Amount" := TaxAmount;  IF GLSetup."VAT Rounding Precision" <> 0 THEN    "Tax Amount" := ROUND("Tax Amount",GLSetup."VAT Rounding Precision",Direction);// Add the following lines.  IF "Tax Base Amount" = 0 THEN     "Tax %" := 0; // End of the added lines.END ELSE IF "Transaction Type" = "Transaction Type"::Sale THEN BEGIN  IF ("Export or Deemed Export") THEN    EXIT; // Add the following lines.  LineTaxAmount := IndianSalesTaxCalculate.CalculateTax(      "Tax Area Code","Tax Group Code",TRUE,"Posting Date",      "Tax Base Amount",Quantity,0,'',"Tax %"); // End of the added lines.  IF LineTaxAmount <> 0 THEN    IndianSalesTaxCalculate.GetVATOpeningSTD(Rec,StandardDeductionAmount,TaxAmount);  "Tax Amount" := TaxAmount - StandardDeductionAmount; // Add the following lines.  IF "Tax Base Amount" = 0 THEN // Add    "Tax %" := 0; // Add// End of the added lines.  "Input Credit/Output Tax Amount" := "Tax Amount";  "Amount Loaded on Item" := 0;END;...
  6. เปลี่ยนรหัสในโค้ดยูนิตคำนวณภาษีขายอินเดียน(13704) เป็นดังนี้:รหัสที่มีอยู่

    ...        Taxamount := TaxBaseAmount * TaxDetail."Tax Below Maximum" / 100;      IF (TaxJurisdiction."Tax Type" = TaxJurisdiction."Tax Type"::VAT) OR         (TaxJurisdiction."Tax Type" = TaxJurisdiction."Tax Type"::CST)              ...

    รหัสแทน

    ...         Taxamount := TaxBaseAmount * TaxDetail."Tax Below Maximum" / 100;// Add the following line.      TaxPercent :=  TaxDetail."Tax Below Maximum";// End of the added line.      IF (TaxJurisdiction."Tax Type" = TaxJurisdiction."Tax Type"::VAT) OR         (TaxJurisdiction."Tax Type" = TaxJurisdiction."Tax Type"::CST)...7. Codeunit 13704 Indian Sales Tax Calculate Function CalculateTax Add the below Parameter VAR TaxPercent Type Decimal

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

คุณต้องมีรุ่นอินเดียของ Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) ติดตั้งไว้เพื่อใช้โปรแกรมแก้ไขด่วนนี้

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

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

สถานะ

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

ข้อมูลอ้างอิง

VSTF DynamicsNAV SE: 252133

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

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

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

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