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

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

الأعراض

افترض أن لديك أمر توريد بسعر ضريبة شاملة ممكنة في إصدار Microsoft Dynamics NAV 2009 الهندية. بعد تشغيل الدالة حساب قيم البنية أو مبلغ الخصم للاستثمارو الحصرية سعر وحدة ضريبة القيمة المضافة وقيم الحصرية "مبلغ البند" ضريبة القيمة المضافة غير صحيحة.
تحدث هذه المشكلة في المنتجات التالية:

  • إصدار Microsoft Dynamics NAV 2009 R2 الهندية

  • إصدار Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) الهندية

الحل

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

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

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



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

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

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

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

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

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

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



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

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

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

  1. تغيير التعليمات البرمجية في المشغل % خصم البند-OnValidate في الجدول "بند المبيعات" (37) كما يلي:
    التعليمات البرمجية الموجودة

    ..."Line Discount %" := 100;

    // Delete the following line.
    IF NOT "Price Inclusive of Tax" THEN

    "Line Discount Amount" :=
    ROUND(ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") * "Line Discount %" / 100,
    Currency."Amount Rounding Precision")

    // Delete the following lines.
    ELSE
    "Line Discount Amount" := ROUND(ROUND(Quantity * "Unit Price Incl. of Tax",Currency."Amount Rounding Precision") *
    "Line Discount %" / 100,Currency."Amount Rounding Precision");
    // End of the lines.
    ...

    استبدال التعليمات البرمجية

    ...
    "Line Discount %" := 100;

    "Line Discount Amount" :=
    ROUND(ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") * "Line Discount %" / 100,
    Currency."Amount Rounding Precision");
    ...
  2. تغيير التعليمات البرمجية في المشغل مبلغ وضع خط الخصم-OnValidate في الجدول "بند المبيعات" (37) كما يلي:
    التعليمات البرمجية الموجودة

    ...TESTFIELD(Quantity);

    // Delete the following line.
    IF NOT "Price Inclusive of Tax" THEN

    IF ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") <> 0 THEN
    "Line Discount %" :=
    ROUND(
    "Line Discount Amount" / ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") * 100,
    0.00001)
    ELSE
    "Line Discount %" := 0

    // Delete the following lines.
    ELSE
    IF ROUND(Quantity * "Unit Price Incl. of Tax",Currency."Amount Rounding Precision") <> 0 THEN
    "Line Discount %" :=
    ROUND(
    "Line Discount Amount" / ROUND(Quantity * "Unit Price Incl. of Tax",Currency."Amount Rounding Precision") * 100,
    0.00001)
    ELSE
    "Line Discount %" := 0;
    // End of the lines.

    "Inv. Discount Amount" := 0;
    ...

    استبدال التعليمات البرمجية

    ...TESTFIELD(Quantity);
    IF ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") <> 0 THEN
    "Line Discount %" :=
    ROUND(
    "Line Discount Amount" / ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") * 100,
    0.00001)
    ELSE
    "Line Discount %" := 0;
    "Inv. Discount Amount" := 0;
    ...
  3. تغيير التعليمات البرمجية في وظيفة جيتساليسبريسيكسكلوسيفيالضرائب في الجدول "بند المبيعات" (37) كما يلي:
    التعليمات البرمجية الموجودة

    ...IF StrOrderDetails."Include Base" THEN
    BaseAmountVariable := BaseAmountVariable + Quantity;

    // Delete the following lines.
    IF StrOrderDetails."Include Line Discount" THEN
    BaseAmountFixed := BaseAmountFixed - "Line Discount Amount";
    IF StrOrderDetails."Include Invoice Discount" THEN BEGIN
    BaseAmountFixed := BaseAmountFixed + "Inv Discount Fixed";
    BaseAmountVariable := BaseAmountVariable - "Inv Discount Variable";
    END;
    // End of the lines.

    IF SalesHeader."Currency Factor" <> 0 THEN
    ...

    استبدال التعليمات البرمجية

    ...IF StrOrderDetails."Include Base" THEN
    BaseAmountVariable := BaseAmountVariable + Quantity;

    IF SalesHeader."Currency Factor" <> 0 THEN
    ...
  4. تغيير التعليمات البرمجية في وظيفة كالكولاتيستروكتوريسبيت في الجدول "بند المبيعات" (37) كما يلي:
    التعليمات البرمجية الموجودة

    ...SalesLine.MODIFY;

    // Delete the following lines.
    IF i < 3 THEN BEGIN
    FixedAmt := 0;
    VariableAmt := 0;
    AdjustedAmt := 0;
    DiffAdjustmentAmt := 0;
    FixedAmt := SalesLine."Unit Price Incl. of Tax" * SalesLine.Quantity;
    VariableAmt := SalesLine.Quantity;
    StrOrderLineDetails.RESET;
    StrOrderLineDetails.SETCURRENTKEY(Type,"Document Type","Document No.","Structure Code","Item No.","Line No.");
    StrOrderLineDetails.SETRANGE(Type,StrOrderLineDetails.Type::Sale);
    StrOrderLineDetails.SETRANGE("Document Type",SalesLine."Document Type");
    StrOrderLineDetails.SETRANGE("Document No.",SalesLine."Document No.");
    StrOrderLineDetails.SETRANGE("Structure Code",SalesLine."PIT Structure");
    StrOrderLineDetails.SETRANGE("Item No.",SalesLine."No.");
    StrOrderLineDetails.SETRANGE("Line No.",SalesLine."Line No.");
    StrOrderLineDetails.SETRANGE("Include PIT Calculation",TRUE);
    IF StrOrderLineDetails.FIND('-') THEN
    REPEAT
    FixedAmt -= StrOrderLineDetails.Amount;
    AdjustedAmt := AdjustedAmt + StrOrderLineDetails.Amount;
    UNTIL StrOrderLineDetails.NEXT = 0;

    SalesLine."Unit Price" := 0;
    IF VariableAmt <> 0 THEN BEGIN
    SalesLine."Unit Price" := ROUND((FixedAmt / VariableAmt),GetRoundingPrecisionUnitPrice);
    IF SalesLine."Unit Price" < 0 THEN
    SalesLine.FIELDERROR("Unit Price");
    IF (i = 2) AND (FixedAmt <> 0) AND (SalesLine.Quantity <> 0) THEN BEGIN
    AdjustedAmt := AdjustedAmt + (SalesLine."Unit Price" * SalesLine.Quantity);
    FixedAmt := SalesLine."Unit Price Incl. of Tax" * SalesLine.Quantity;
    DiffAdjustmentAmt := ((FixedAmt - AdjustedAmt)/SalesLine.Quantity) *
    (SalesLine."Unit Price" * SalesLine.Quantity) / (FixedAmt );
    SalesLine."Unit Price" := ROUND(SalesLine."Unit Price" - DiffAdjustmentAmt,GetRoundingPrecisionUnitPrice);
    IF SalesLine."Unit Price" < 0 THEN
    SalesLine.FIELDERROR("Unit Price");
    END;
    SalesLine.ValidateUnitPrice;
    SalesLine.ChkQtyUpdatioAfterDDPLA;
    SalesLine.MODIFY;
    IF SalesHeader."Calc. Inv. Discount (%)" THEN
    CalcInvDis.CalculateWithSalesHeader(SalesHeader,SalesLine);
    SalesLine.GET(SalesLine."Document Type",SalesLine."Document No.",SalesLine."Line No.");
    END;
    END;
    // End of the lines.
    ...

    استبدال التعليمات البرمجية

    ...SalesLine.MODIFY;
    ...
  5. تغيير التعليمات البرمجية في وظيفة أوبداتيساليسلينيسبيت في الجدول "بند المبيعات" (37) كما يلي:
    التعليمات البرمجية الموجودة

    ..."Service Tax Amount" + "Service Tax eCess Amount" + "Service Tax SHE Cess Amount";
    MODIFY;
    ...

    استبدال التعليمات البرمجية

    ...
    "Service Tax Amount" + "Service Tax eCess Amount" + "Service Tax SHE Cess Amount";

    // Add the following lines.
    "Amount To Customer UPIT" :=
    "Line Amount" - "Inv. Discount Amount" + "Excise Amount" + "Tax Amount" + "Charges To Customer";
    // End of the lines.

    MODIFY;
    ...
  6. تغيير التعليمات البرمجية في وظيفة فاليداتيونيتبريسي في الجدول "بند المبيعات" (37) كما يلي:
    التعليمات البرمجية الموجودة

    ..."Line Discount %" := 100;

    // Delete the following line.
    IF NOT "Price Inclusive of Tax" THEN

    "Line Discount Amount" := ROUND(ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") * "Line Discount %" / 100,
    Currency."Amount Rounding Precision")

    // Delete the following lines.
    ELSE
    "Line Discount Amount" := ROUND(ROUND(Quantity * "Unit Price Incl. of Tax",Currency."Amount Rounding Precision") *
    "Line Discount %" / 100,Currency."Amount Rounding Precision");
    // End of the lines.

    "Inv. Discount Amount" := 0;
    ...

    استبدال التعليمات البرمجية

    ...
    "Line Discount %" := 100;
    "Line Discount Amount" := ROUND(ROUND(Quantity * "Unit Price",Currency."Amount Rounding Precision") * "Line Discount %" / 100,
    Currency."Amount Rounding Precision");
    "Inv. Discount Amount" := 0;
    ...
  7. تغيير التعليمات البرمجية في وظيفة ديفيديماونت في المبيعات-بعد كوديونيت (80) كما يلي:
    التعليمات البرمجية الموجودة 1

    ...IF SalesLineQty <> Quantity THEN

    // Delete the following lines.
    IF "Price Inclusive of Tax" THEN
    "Line Discount Amount" :=
    ROUND((SalesLineQty * "Unit Price Incl. of Tax") * "Line Discount %" / 100,Currency."Amount Rounding Precision")
    ELSE
    // End of the lines.

    "Line Discount Amount" :=
    ROUND("Line Amount" * "Line Discount %" / 100,Currency."Amount Rounding Precision");
    "Line Amount" := "Line Amount" - "Line Discount Amount";
    ...

    استبدال رمز 1

    ...IF SalesLineQty <> Quantity THEN
    "Line Discount Amount" :=
    ROUND("Line Amount" * "Line Discount %" / 100,Currency."Amount Rounding Precision");
    "Line Amount" := "Line Amount" - "Line Discount Amount";
    ...

    التعليمات البرمجية الموجودة 2

    ..."Bal. TDS/TCS Including SHECESS",Currency."Amount Rounding Precision");

    // Delete the following lines.
    IF "Price Inclusive of Tax" THEN BEGIN
    "Amount To Customer UPIT" := SalesLineQty * "Unit Price";
    GLSetup.GET;
    StrOrdLineDetails2.RESET;
    StrOrdLineDetails2.SETRANGE(Type,StrOrdLineDetails2.Type::Sale);
    StrOrdLineDetails2.SETRANGE("Document Type","Document Type");
    StrOrdLineDetails2.SETRANGE("Document No.","Document No.");
    StrOrdLineDetails2.SETRANGE("Line No.","Line No.");
    StrOrdLineDetails2.SETRANGE("Include PIT Calculation",TRUE);
    IF StrOrdLineDetails2.FINDSET THEN
    REPEAT
    SalesLine2.GET("Document Type","Document No.","Line No.");
    IF StrOrdLineDetails2."Tax/Charge Type" = StrOrdLineDetails2."Tax/Charge Type"::Excise THEN
    "Amount To Customer UPIT" += "Excise Amount";
    IF StrOrdLineDetails2."Tax/Charge Type" = StrOrdLineDetails2."Tax/Charge Type"::"Sales Tax" THEN
    "Amount To Customer UPIT" += "Tax Amount";
    IF StrOrdLineDetails2."Tax/Charge Type" = StrOrdLineDetails2."Tax/Charge Type"::Charges THEN BEGIN
    IF QuantityType = QuantityType::General THEN
    "Amount To Customer UPIT" += ROUND(StrOrdLineDetails2.Amount * SalesLineQty / Quantity,
    Currency."Amount Rounding Precision");
    IF QuantityType = QuantityType::Invoicing THEN
    "Amount To Customer UPIT" += ROUND(StrOrdLineDetails2.Amount * SalesLine2."Qty. to Invoice" / SalesLine2.Quantity,
    Currency."Amount Rounding Precision");
    IF QuantityType = QuantityType::Shipping THEN
    "Amount To Customer UPIT" += ROUND(StrOrdLineDetails2.Amount * SalesLine2."Qty. to Ship" / SalesLine2.Quantity,
    Currency."Amount Rounding Precision");
    END;
    UNTIL StrOrdLineDetails2.NEXT = 0;
    "Total UPIT Amount" := ROUND("Total UPIT Amount" * SalesLineQty / Quantity,Currency."Amount Rounding Precision");
    END;
    // End of the lines.

    END;
    END;
    ...

    استبدال رمز 2

    ..."Bal. TDS/TCS Including SHECESS",Currency."Amount Rounding Precision");

    // Add the following lines.
    IF "Price Inclusive of Tax" THEN
    "Amount To Customer UPIT" :=
    ROUND("Line Amount" - "Inv. Discount Amount" + "Excise Amount" + "Tax Amount" +
    "Charges To Customer", Currency."Amount Rounding Precision");
    // End of the lines.

    END;
    END;
    ...
  8. تغيير التعليمات البرمجية في وظيفة رونداماونت في المبيعات-بعد كوديونيت (80) كما يلي:
    التعليمات البرمجية الموجودة

    ...TotalSalesLineLCY."Amount To Customer";
    "Charges To Customer" :=
    ...

    استبدال التعليمات البرمجية

    ...TotalSalesLineLCY."Amount To Customer";

    // Add the following lines.
    "Amount To Customer UPIT" :=
    ROUND(
    CurrExchRate.ExchangeAmtFCYToLCY(
    UseDate,SalesHeader."Currency Code",
    TotalSalesLine."Amount To Customer UPIT",SalesHeader."Currency Factor")) -
    TotalSalesLineLCY."Amount To Customer UPIT";
    "Total UPIT Amount" :=
    ROUND(
    CurrExchRate.ExchangeAmtFCYToLCY(
    UseDate,SalesHeader."Currency Code",
    TotalSalesLine."Total UPIT Amount",SalesHeader."Currency Factor")) -
    TotalSalesLineLCY."Total UPIT Amount";
    // End of the lines.

    "Charges To Customer" :=
    ...
  9. تغيير التعليمات البرمجية في وظيفة ريفيرسيماونت في المبيعات-بعد كوديونيت (80) كما يلي:
    التعليمات البرمجية الموجودة

    ..."Amount To Customer" := -"Amount To Customer";
    "Charges To Customer" := -"Charges To Customer";
    ...

    استبدال التعليمات البرمجية

    ..."Amount To Customer" := -"Amount To Customer";

    // Add the following lines.
    Amount To Customer UPIT" := -"Amount To Customer UPIT";
    Total UPIT Amount" := -"Total UPIT Amount";
    // End of the lines.

    "Charges To Customer" := -"Charges To Customer";
    ...
  10. تغيير التعليمات البرمجية في وظيفة إينفويسيوبيتروندينج في المبيعات-بعد كوديونيت (80) كما يلي:
    التعليمات البرمجية الموجودة 1

    ...EXIT;

    // Delete the following line.
    UPITRoundingAmount := TotalSalesLine."Total UPIT Amount" - ROUND(TotalSalesLine."Amount To Customer UPIT");

    IF UPITRoundingAmount <> 0 THEN BEGIN
    ...

    استبدال رمز 1

    ...EXIT;

    // Add the following line.
    UPITRoundingAmount := TotalSalesLine."Amount To Customer UPIT" - ROUND(TotalSalesLine."Amount To Customer UPIT");

    IF UPITRoundingAmount <> 0 THEN BEGIN
    ...

    التعليمات البرمجية الموجودة 2

    ..."UPIT Rounding Inserted" := TRUE;

    // Delete the following line.
    IF SalesHeader."Prices Including VAT" THEN

    VALIDATE("Unit Price",UPITRoundingAmount)
    ...

    استبدال رمز 2

    ..."UPIT Rounding Inserted" := TRUE;

    // Add the following line.
    IF SalesHeader."Price Inclusive of Taxes" THEN

    VALIDATE("Unit Price",UPITRoundingAmount)
    ...

المتطلبات الأساسية

يجب أن يكون لديك أحد المنتجات التالية مثبتة لتطبيق هذا الإصلاح العاجل:

  • إصدار Microsoft Dynamics NAV 2009 R2 الهندية

  • إصدار Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) الهندية

معلومات الإزالة

لا يمكنك إزالة هذا الإصلاح العاجل.

الحالة

أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".

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

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

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

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

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

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

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

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

×