توفر مقالات النشر السريع معلومات مباشرة من داخل مؤسسة دعم MICROSOFT. يتم إنشاء المعلومات الواردة هنا استجابة للمواضيع الناشئة أو الفريدة، أو تهدف إلى استكمال معلومات قاعدة المعارف الأخرى.
تنطبق هذه المقالة على Microsoft Dynamics NAV لجميع البلدان وجميع اللغات المحلية.
الأعراض
برجاء مراعاة السيناريو التالي. هناك رمز لفترة الدفع للعميل في Microsoft Dynamics NAV 2009. يمكنك إنشاء أمر مبيعات من بطاقة العميل. في هذا السيناريو، يكون الحقل "خصم الدفع ٪" في رأس أمر المبيعات صفرا. بالإضافة إلى ذلك، إذا قمت بنشر أمر المبيعات لاحقا، فلن يتم حساب أي خصم على الدفع.
الدقة
معلومات الإصلاح العاجل
يتوفر الآن إصلاح عاجل مدعوم من Microsoft. ومع ذلك، فإنه يهدف فقط إلى تصحيح المشكلة الموضحة في هذه المقالة. قم بتطبيقه فقط على الأنظمة التي تواجه هذه المشكلة المحددة. قد يتلقى الإصلاح العاجل هذا اختبارا إضافيا. لذلك، إذا لم تتأثر بشدة بهذه المشكلة، نوصي بالانتظار حتى حزمة خدمة Microsoft Dynamics NAV 2009 التالية أو إصدار Microsoft Dynamics NAV التالي الذي يحتوي على هذا الإصلاح العاجل.
ملاحظة في حالات خاصة، قد يتم إلغاء الرسوم التي يتم تكبدها عادة لمكالمات الدعم إذا حدد محترف الدعم التقني ل Microsoft Dynamics والمنتجات ذات الصلة أن تحديثا معينا سيحل مشكلتك. سيتم تطبيق تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشكلات غير المؤهلة للتحديث المحدد المعني.
معلومات التثبيت
توفر Microsoft أمثلة برمجة للتوضيح فقط، دون ضمان سواء تم التعبير عنه أو تضمينه. وهذا يشمل، على سبيل المثال لا الحصر، الضمانات الضمنية للقابلية التجارية أو اللياقة البدنية لغرض معين. تفترض هذه المقالة أنك على دراية بلغة البرمجة التي يتم توضيحها ومع الأدوات المستخدمة لإنشاء إجراءات وتصحيح الأخطاء. يمكن لمهندسي دعم Microsoft المساعدة في شرح وظائف إجراء معين، لكنهم لن يعدلوا هذه الأمثلة لتوفير وظائف إضافية أو إجراءات بناء لتلبية متطلباتك المحددة.
ملاحظة قبل تثبيت هذا الإصلاح العاجل، تحقق من تسجيل خروج جميع مستخدمي عميل Microsoft Navision من النظام. يتضمن ذلك مستخدمي عميل Microsoft Navision Application Services (NAS). يجب أن تكون المستخدم العميل الوحيد الذي قام بتسجيل الدخول عند تنفيذ هذا الإصلاح العاجل.
لتنفيذ هذا الإصلاح العاجل، يجب أن يكون لديك ترخيص مطور.
نوصي بتعيين معرف دور "SUPER" لحساب المستخدم في نافذة تسجيلات الدخول إلى Windows أو في نافذة تسجيلات دخول قاعدة البيانات. إذا تعذر تعيين معرف دور "SUPER" لحساب المستخدم، فيجب عليك التحقق من أن حساب المستخدم لديه الأذونات التالية:
- إذن تعديل للكائن الذي ستقوم بتغييره.
- إذن Execute للكائن System Object ID 5210 ولعنصر System Object ID 9015.
ملاحظة ليس لديك حقوق في مخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.
تغييرات التعليمات البرمجية
ملاحظة اختبر دائما إصلاحات التعليمات البرمجية في بيئة خاضعة للرقابة قبل تطبيق الإصلاحات على أجهزة الكمبيوتر الإنتاجية.
لتثبيت رمز التعليمات البرمجية هذا، قم بتغيير التعليمات البرمجية في جدول Sales Header (36) وفي جدول Purchase Header (38) كما يلي.
ملاحظة تشير الخطوات التالية إلى التغييرات التي يجب عليك إجراؤها لجدول Sales Header (36). يجب إجراء نفس التغييرات لجدول رأس الشراء (38).
إضافة متغير عمومي جديد:
الاسم: UpdateDocumentDate
نوع البيانات: منطقيفي "رقم الفاتورة إلى العميل. - الدالة OnValidate()"، قم بتغيير التعليمات البرمجية كما يلي.
التعليمات البرمجية الموجودة 1
… IF NOT SkipBillToContact THEN "Bill-to Contact" := Cust.Contact; "Payment Terms Code" := Cust."Payment Terms Code"; IF "Document Type" = "Document Type"::"Credit Memo" THEN BEGIN …رمز الاستبدال 1
… IF NOT SkipBillToContact THEN "Bill-to Contact" := Cust.Contact; "Payment Terms Code" := Cust."Payment Terms Code"; "Prepmt. Payment Terms Code" := Cust."Payment Terms Code"; IF "Document Type" = "Document Type"::"Credit Memo" THEN BEGIN …التعليمات البرمجية الموجودة 2
… DATABASE::"Customer Template","Bill-to Customer Template Code"); VALIDATE("Payment Terms Code"); VALIDATE("Payment Method Code"); VALIDATE("Currency Code"); IF (xRec."Sell-to Customer No." = "Sell-to Customer No.") AND …رمز الاستبدال 2
… DATABASE::"Customer Template","Bill-to Customer Template Code"); VALIDATE("Payment Terms Code"); VALIDATE("Prepmt. Payment Terms Code"); VALIDATE("Payment Method Code"); VALIDATE("Currency Code"); IF (xRec."Sell-to Customer No." = "Sell-to Customer No.") AND …في الدالة "رمز شروط الدفع - OnValidate()"، قم بتغيير التعليمات البرمجية كما يلي.
التعليمات البرمجية الموجودة
IF ("Payment Terms Code" <> '') AND ("Document Date" <> 0D) THEN BEGIN PaymentTerms.GET("Payment Terms Code"); IF (("Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"]) AND NOT PaymentTerms."Calc. Pmt. Disc. on Cr. Memos") THEN BEGIN VALIDATE("Due Date","Document Date"); VALIDATE("Pmt. Discount Date",0D); VALIDATE("Payment Discount %",0); END ELSE BEGIN "Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date"); "Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date"); IF xRec."Document Date"="Document Date" THEN VALIDATE("Payment Discount %",PaymentTerms."Discount %") END; END ELSE BEGIN VALIDATE("Due Date","Document Date"); IF xRec."Document Date"="Document Date" THEN BEGIN VALIDATE("Pmt. Discount Date",0D); VALIDATE("Payment Discount %",0); END; …رمز الاستبدال
IF ("Payment Terms Code" <> '') AND ("Document Date" <> 0D) THEN BEGIN PaymentTerms.GET("Payment Terms Code"); IF (("Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"]) AND NOT PaymentTerms."Calc. Pmt. Disc. on Cr. Memos") THEN BEGIN VALIDATE("Due Date","Document Date"); VALIDATE("Pmt. Discount Date",0D); VALIDATE("Payment Discount %",0); END ELSE BEGIN "Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date"); "Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date"); IF NOT UpdateDocumentDate THEN VALIDATE("Payment Discount %",PaymentTerms."Discount %") END; END ELSE BEGIN VALIDATE("Due Date","Document Date"); IF NOT UpdateDocumentDate THEN BEGIN VALIDATE("Pmt. Discount Date",0D); VALIDATE("Payment Discount %",0); END; …في الدالة "تاريخ المستند - OnValidate()"، قم بتغيير التعليمات البرمجية كما يلي.
التعليمات البرمجية الموجودة
VALIDATE("Payment Terms Code"); VALIDATE("Prepmt. Payment Terms Code");رمز الاستبدال
IF xRec."Document Date" <> "Document Date" THEN UpdateDocumentDate := TRUE; VALIDATE("Payment Terms Code"); VALIDATE("Prepmt. Payment Terms Code");في "Prepmt. رمز شروط الدفع - OnValidate()" قم بتغيير التعليمات البرمجية كما يلي.
التعليمات البرمجية الموجودة
… END ELSE BEGIN "Prepayment Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date"); "Prepmt. Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date"); VALIDATE("Prepmt. Payment Discount %",PaymentTerms."Discount %") END; END ELSE BEGIN VALIDATE("Prepayment Due Date","Document Date"); VALIDATE("Prepmt. Pmt. Discount Date",0D); VALIDATE("Prepmt. Payment Discount %",0); END;رمز الاستبدال
… END ELSE BEGIN "Prepayment Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date"); "Prepmt. Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date"); IF NOT UpdateDocumentDate THEN VALIDATE("Prepmt. Payment Discount %",PaymentTerms."Discount %") END; END ELSE BEGIN VALIDATE("Prepayment Due Date","Document Date"); IF NOT UpdateDocumentDate THEN BEGIN VALIDATE("Prepmt. Pmt. Discount Date",0D); VALIDATE("Prepmt. Payment Discount %",0); END; END;
المتطلبات الأساسية
لتثبيت هذه التعليمة البرمجية، يجب أن يكون لديك أحد المنتجات التالية مثبتا:
- Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
- Microsoft Dynamics NAV 2009
- Microsoft Dynamics NAV SP1
معلومات إعادة التشغيل
لا يتعين عليك إعادة تشغيل الكمبيوتر بعد تطبيق هذه التعليمة البرمجية.
الحالة
لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".
المزيد من المعلومات
لا تقدم MICROSOFT و/أو مورديها أي إقرارات أو ضمانات حول ملاءمة المعلومات الواردة في المستندات والرسومات ذات الصلة المنشورة على هذا الموقع ("المواد") أو موثوقيتها أو دقتها لأي غرض.
قد تتضمن المواد عدم الدقة التقنية أو الأخطاء المطبعية ويمكن مراجعتها في أي وقت دون إشعار. إلى الحد الأقصى الذي يسمح به القانون المعمول به، تتنازل MICROSOFT و/أو مورديها عن جميع التمثيلات والضمانات والشروط وتستبعدها سواء كانت صريحة أو ضمنية أو قانونية، بما في ذلك على سبيل المثال لا الحصر التمثيلات أو الضمانات أو شروط الملكية أو عدم التعدي أو الشرط المرضي أو الجودة والتاجر واللياقة لغرض معين، فيما يتعلق بالمواد.