ينشئ النظام تسجيلا غير صحيح لضريبة المبيعات عند نشر دفعة جزئية في دفتر يومية إيصال نقدي على فاتورة مبيعات تحتوي على مبلغ ضريبة مبيعات في إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009

ينطبق على
Microsoft Dynamics NAV 2009 R2 Dynamics NAV 2009 Service Pack 1

تنطبق هذه المقالة على Microsoft Dynamics NAV للبلدان واللغات المحلية التالية.

  • الإنجليزية (كندا) (en-ca)
  • الإنجليزية (الولايات المتحدة) (en-us)
  • الأسبانية (المكسيك) (es-mx)
  • الفرنسية (كندا) (fr-ca)

الأعراض

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

  لمزيد من المعلومات، انقر فوق أرقام المقالات التالية لعرض المقالات في قاعدة معارف Microsoft:

978857 يتم إنشاء إدخالات ضريبة القيمة المضافة غير الصحيحة عند نشر مذكرة ائتمان لتطبيق فاتورة تحتوي على ضريبة القيمة المضافة غير المتحقق منها في Microsoft Dynamics NAV

2585384 يتم ائتمان نصف مبلغ الضريبة فقط بشكل غير متوقع عند تطبيق مذكرة رصيد مبيعات منشورة على فاتورة مبيعات منشورة يدويا في Microsoft Dynamics NAV
تحدث هذه المشكلة في المنتجات التالية:

  • إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 R2
  • إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

      

الدقة

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

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

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

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

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

ملاحظة قبل تثبيت هذا الإصلاح العاجل، تحقق من تسجيل خروج جميع مستخدمي عميل Microsoft Dynamics NAV من النظام. يتضمن ذلك خدمات Microsoft Dynamics NAV Application Server (NAS). يجب أن تكون المستخدم العميل الوحيد الذي قام بتسجيل الدخول عند تنفيذ هذا الإصلاح العاجل.

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

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

  • إذن تعديل للكائن الذي ستقوم بتغييره.
  • إذن Execute للكائن System Object ID 5210 ولعنصر System Object ID 9015.

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

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

ملاحظة اختبر دائما إصلاحات التعليمات البرمجية في بيئة خاضعة للرقابة قبل تطبيق الإصلاحات على أجهزة الكمبيوتر الإنتاجية.

لحل هذه المشكلة، اتبع الخطوات التالية:

  1. تغيير التعليمات البرمجية في الدالة CustUnrealizedVAT في Gen. Jnl.-Post Line codeunit (12) كما يلي:
    التعليمات البرمجية الموجودة

    ...
    VATPostingSetup.GET(VATEntry2."VAT Bus. Posting Group",VATEntry2."VAT Prod. Posting Group");
    
    // Delete the following lines.
    IF VATPostingSetup."Unrealized VAT Type" IN
    [VATPostingSetup."Unrealized VAT Type"::Last,VATPostingSetup."Unrealized VAT Type"::"Last (Fully Paid)"] THEN
    TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount";
    IF VATPostingSetup."Unrealized VAT Type" IN
    [VATPostingSetup."Unrealized VAT Type"::First,VATPostingSetup."Unrealized VAT Type"::"First (Fully Paid)"] THEN
    TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount";
    // End of the deleted lines.
    
    UNTIL VATEntry2.NEXT = 0;
    ...
    

    رمز الاستبدال

    ...
    VATPostingSetup.GET(VATEntry2."VAT Bus. Posting Group",VATEntry2."VAT Prod. Posting Group");
    
    // Add the following lines.
    IF VATEntry2."VAT Calculation Type" = VATEntry2."VAT Calculation Type" :: "Sales Tax" THEN BEGIN
    TaxJurisdiction.GET(VATEntry2."Tax Jurisdiction Code");
    IF TaxJurisdiction."Unrealized VAT Type" IN
    [TaxJurisdiction."Unrealized VAT Type"::Last,TaxJurisdiction."Unrealized VAT Type"::"Last (Fully Paid)"] THEN
    TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount";
    IF TaxJurisdiction."Unrealized VAT Type" IN
    [TaxJurisdiction."Unrealized VAT Type"::First,TaxJurisdiction."Unrealized VAT Type"::"First (Fully Paid)"] THEN
    TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount";
    END ELSE BEGIN
    IF VATPostingSetup."Unrealized VAT Type" IN
    [VATPostingSetup."Unrealized VAT Type"::Last,VATPostingSetup."Unrealized VAT Type"::"Last (Fully Paid)"] THEN
    TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount";
    IF VATPostingSetup."Unrealized VAT Type" IN
    [VATPostingSetup."Unrealized VAT Type"::First,VATPostingSetup."Unrealized VAT Type"::"First (Fully Paid)"] THEN
    TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount";
    END;
    // End of the added lines.
    
    UNTIL VATEntry2.NEXT = 0;
    ...
    
  2. تغيير التعليمات البرمجية في الدالة VendUnrealizedVAT في Gen. Jnl.-Post Line codeunit (12) كما يلي:
    التعليمات البرمجية الموجودة

    ...
    VATPostingSetup.GET(VATEntry2."VAT Bus. Posting Group",VATEntry2."VAT Prod. Posting Group");
    
    // Delete the following lines.
    IF VATPostingSetup."Unrealized VAT Type" IN
    [VATPostingSetup."Unrealized VAT Type"::Last,VATPostingSetup."Unrealized VAT Type"::"Last (Fully Paid)"] THEN
    TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount";
    IF VATPostingSetup."Unrealized VAT Type" IN
    [VATPostingSetup."Unrealized VAT Type"::First,VATPostingSetup."Unrealized VAT Type"::"First (Fully Paid)"] THEN
    TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount";
    // End of the deleted lines.
    
    UNTIL VATEntry2.NEXT = 0;
    ...
    

    رمز الاستبدال

    ...
    VATPostingSetup.GET(VATEntry2."VAT Bus. Posting Group",VATEntry2."VAT Prod. Posting Group");
    
    // Add the following lines.
    IF VATEntry2."VAT Calculation Type" = VATEntry2."VAT Calculation Type" :: "Sales Tax" THEN BEGIN
    TaxJurisdiction.GET(VATEntry2."Tax Jurisdiction Code");
    IF TaxJurisdiction."Unrealized VAT Type" IN
    [TaxJurisdiction."Unrealized VAT Type"::Last,TaxJurisdiction."Unrealized VAT Type"::"Last (Fully Paid)"] THEN
    TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount";
    IF TaxJurisdiction."Unrealized VAT Type" IN
    [TaxJurisdiction."Unrealized VAT Type"::First,TaxJurisdiction."Unrealized VAT Type"::"First (Fully Paid)"] THEN
    TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount";
    END ELSE BEGIN
    IF VATPostingSetup."Unrealized VAT Type" IN
    [VATPostingSetup."Unrealized VAT Type"::Last,VATPostingSetup."Unrealized VAT Type"::"Last (Fully Paid)"] THEN
    TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount";
    IF VATPostingSetup."Unrealized VAT Type" IN
    [VATPostingSetup."Unrealized VAT Type"::First,VATPostingSetup."Unrealized VAT Type"::"First (Fully Paid)"] THEN
    TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount";
    END;
    // End of the added lines.
    
    UNTIL VATEntry2.NEXT = 0;
    ...
    

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

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

  • إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 R2
  • إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 Service Pack 1

بالإضافة إلى ذلك، يجب أن يكون لديك 978857 الإصلاح العاجل 2585384 تثبيت الإصلاح العاجل لتطبيق هذا الإصلاح العاجل.

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

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

الحالة

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

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