تخطي إلى المحتوى الرئيسي
الدعم
تسجيل الدخول باستخدام حساب Microsoft
تسجيل الدخول أو إنشاء حساب.
مرحباً،
تحديد استخدام حساب مختلف!
لديك حسابات متعددة
اختر الحساب الذي تريد تسجيل الدخول باستخدامه.

تنطبق هذه المقالة على Microsoft Dynamics التنقل للهندي الإعدادات المحلية للغة (في).

الأعراض

في إصدار Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) الهندية، القيمة المعروضة "% ضريبة" غير صحيح في بند أمر توريد وبند فاتورة المبيعات التي تم ترحيلها. تتوقع القيمة "% ضريبة" لتكون متسقة مع قيمة "ضريبة أدناه الحد الأدنى" في إعداد "تفاصيل ضريبة". نفس المشكلة كما يحدث لمستندات الشراء.

الحل

معلومات الإصلاح العاجل

الآن يتوفر إصلاح عاجل معتمد من Microsoft. ومع ذلك، هو فقط لتصحيح المشكلة الموضحة في هذه المقالة. تطبيقها فقط على الأنظمة التي تواجه هذه المشكلة بالتحديد. قد يتم إجراء اختبارات إضافية على هذا الإصلاح العاجل. ولذلك، إذا لم يكن تأثير المشكلة كبيرا، نوصي بالانتظار حتى الإصدار التالي من حزمة الخدمة Microsoft Dynamics NAV 2009 أو الإصدار Microsoft Dynamics التنقل التالي الذي يحتوي على هذا الإصلاح العاجل.

ملاحظة: في بعض الحالات، يحدد المصروفات التي تحتسب عادة لدعم قد يتم إلغاء المكالمات إذا "أخصائي الدعم التقني" ل Microsoft Dynamics والمنتجات ذات الصلة أن تحديثًا معيناً سوف يعمل على حل المشكلة. سيتم اضافة تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشاكل التي لا يأهل على حلها للتحديث المطلوب.



معلومات التثبيت

تقدم Microsoft أمثلة برمجية للتوضيح فقط، دون أي ضمان صريح أو ضمني. هذا يتضمن، على سبيل المثال لا الحصر، الضمانات الضمنية الخاصة بالتسويق أو الملاءمة لغرض معين. تفترض هذه المقالة أنك معتاد على لغة البرمجة التي يتم شرحها والأدوات المستخدمة لإنشاء الإجراءات وتصحيحها. يساعد مهندسو الدعم لدى Microsoft في شرح وظيفة إجراء محدد، لكنهم لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.

ملاحظة: قبل تثبيت هذا الإصلاح العاجل، تأكد من تسجيل خروج النظام كافة المستخدمين عميل Microsoft Navision. ويشمل ذلك المستخدمين عميل Microsoft خدمات التطبيق Navision (NAS). يجب أن يكون عميل فقط المستخدم الذي تم تسجيل دخوله عند تطبيق هذا الإصلاح العاجل.

لتطبيق هذا الإصلاح العاجل، يجب أن يكون لديك ترخيص مطور.

نوصي بأن تعيين حساب المستخدم في إطار عمليات تسجيل دخول Windows أو في إطار "قاعدة بيانات تسجيل الدخول" بمعرف دور "رئيسي". إذا كان حساب المستخدم لا يمكن تعيين معرف دور "سوبر"، يجب التحقق من أن حساب المستخدم يملك الأذونات التالية:

  • إذن "تعديل" للكائن الذي سيتم تغيير.

  • إذن Execute للكائن 5210 معرف كائن النظام والكائن 9015 معرف كائن النظام .



ملاحظة: ليس لديك حق لمخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.

تغييرات التعليمات البرمجية

ملاحظة: دوماً التعليمات البرمجية للاختبار إصلاح في بيئة تسيطر عليها قبل تطبيق إصلاحات لأجهزة الكمبيوتر الإنتاج.
لحل هذه المشكلة، اتبع الخطوات التالية.

  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. تغيير التعليمات البرمجية في وظيفة أوبداتيتاكسامونتس في الجدول بند المبيعات (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);
    END
    END;
    "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);
    END
    END;
    "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. تغيير التعليمات البرمجية في وظيفة أوبداتيتاكسامونتس في الجدول بند الشراء (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. تغيير التعليمات البرمجية في الدالة في جدول يومية فتح ضريبة القيمة المضافة أوبداتيتاكساماونت (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 المسردة في قسم "ينطبق على".

المراجع

ديناميكسناف فستف SE: 252133

ملاحظة: وهذا المقال "النشر السريع" التي تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة في هذه الوثيقة كاستجابه للمسائل الناشئة. نتيجة للسرعة في توفيره، قد تتضمن الأخطاء المطبعية المواد ويمكن مراجعة في أي وقت دون سابق إنذار. راجع شروط الاستخدام لاعتبارات أخرى.

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.

هل كانت المعلومات مفيدة؟

ما مدى رضاك عن جودة اللغة؟
ما الذي أثّر في تجربتك؟
بالضغط على "إرسال"، سيتم استخدام ملاحظاتك لتحسين منتجات Microsoft وخدماتها. سيتمكن مسؤول تكنولوجيا المعلومات لديك من جمع هذه البيانات. بيان الخصوصية.

نشكرك على ملاحظاتك!

×