توضح هذه المقالة مشكلة عندما تقوم بتطبيق فاتورة مبيعات الذي يحتوي على ضريبة القيمة المضافة غير المحققة وخط السلبية لإشعار دائن في إصدار Microsoft Dynamics NAV 2009 الإيطالية. استمرار حدوث هذه المشكلة بعد تطبيق التصحيح KB 2882952.
اتبع الخطوات الموجودة في المقطع تغييرات التعليمات البرمجية لحل هذه المشكلة. تحدث هذه المشكلة في المنتجات التالية:
-
إصدار Microsoft Dynamics NAV 2009 R2 الإيطالية
-
إصدار Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) الإيطالية
الحل
معلومات الإصلاح العاجل
الآن يتوفر إصلاح عاجل معتمد من Microsoft. ومع ذلك، هو فقط لتصحيح المشكلة الموضحة في هذه المقالة. تطبيقها فقط على الأنظمة التي تواجه هذه المشكلة بالتحديد. قد يتم إجراء اختبارات إضافية على هذا الإصلاح العاجل. ولذلك، إذا لم يكن تأثير المشكلة كبيرا، نوصي بالانتظار حتى الإصدار التالي من حزمة الخدمة Microsoft Dynamics NAV 2009 أو الإصدار Microsoft Dynamics التنقل التالي الذي يحتوي على هذا الإصلاح العاجل.
ملاحظة: في بعض الحالات، يحدد المصروفات التي تحتسب عادة لدعم قد يتم إلغاء المكالمات إذا "أخصائي الدعم التقني" ل Microsoft Dynamics والمنتجات ذات الصلة أن تحديثًا معيناً سوف يعمل على حل المشكلة. سيتم اضافة تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشاكل التي لا يأهل على حلها للتحديث المطلوب.
معلومات التثبيت
تقدم Microsoft أمثلة برمجية للتوضيح فقط، دون أي ضمان صريح أو ضمني. هذا يتضمن، على سبيل المثال لا الحصر، الضمانات الضمنية الخاصة بالتسويق أو الملاءمة لغرض معين. تفترض هذه المقالة أنك معتاد على لغة البرمجة التي يتم شرحها والأدوات المستخدمة لإنشاء الإجراءات وتصحيحها. يساعد مهندسو الدعم لدى Microsoft شرح وظيفة إجراء محدد. ومع ذلك، لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.
ملاحظة: قبل تثبيت هذا الإصلاح العاجل، تأكد من تسجيل خروج النظام كافة المستخدمين عميل Microsoft Dynamics التنقل. ويشمل ذلك خدمات Microsoft Dynamics NAV تطبيق الملقم (NAS). يجب أن يكون عميل فقط المستخدم الذي تم تسجيل دخوله عند تطبيق هذا الإصلاح العاجل.
لتطبيق هذا الإصلاح العاجل، يجب أن يكون لديك ترخيص مطور.
نوصي بأن تعيين حساب المستخدم في إطار عمليات تسجيل دخول Windows أو في إطار "قاعدة بيانات تسجيل الدخول" بمعرف دور "رئيسي". إذا كان حساب المستخدم لا يمكن تعيين معرف دور "سوبر"، يجب التحقق من أن حساب المستخدم يملك الأذونات التالية:
-
إذن "تعديل" للكائن الذي سيتم تغيير.
-
إذن Execute للكائن 5210 معرف كائن النظام و نظام 9015 معرف الكائن
الكائن.
ملاحظة: ليس لديك حق لمخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.
تغييرات التعليمات البرمجية
ملاحظة: دوماً التعليمات البرمجية للاختبار إصلاح في بيئة تسيطر عليها قبل تطبيق إصلاحات لأجهزة الكمبيوتر الإنتاج.
لحل هذه المشكلة، اتبع الخطوات التالية.
-
تغيير التعليمات البرمجية الموجودة في مفاتيح في جدول إدخال ضريبة القيمة المضافة (254) كما يلي:
التعليمات البرمجية الموجودة...KeyGroups=SalesTax }
{ ;Type,Country/Region Code,VAT Registration No.,VAT Bus. Posting Group,VAT Prod. Posting Group,Posting Date;
SumIndexFields=Base,Additional-Currency Base;
KeyGroups=VIES_EC }
// Delete the following line.
{ ;Document No.,Posting Date }
// End of the deleted line.
{ ;Transaction No. }
{ ;Tax Jurisdiction Code,Tax Group Used,Tax Type,Use Tax,Posting Date;
KeyGroups=SalesTax }
{ ;Type,Closed,VAT Bus. Posting Group,VAT Prod. Posting Group,Tax Jurisdiction Code,Use Tax,Tax Liable,VAT Period,Operation Occurred Date,Activity Code;
...استبدال التعليمات البرمجية
...KeyGroups=SalesTax }
{ ;Type,Country/Region Code,VAT Registration No.,VAT Bus. Posting Group,VAT Prod. Posting Group,Posting Date;
SumIndexFields=Base,Additional-Currency Base;
KeyGroups=VIES_EC }
// Add the following line.
{ ;Document No.,Posting Date ;SumIndexFields=Remaining Unrealized Base,Remaining Unrealized Amount }
// End of the added line.
{ ;Transaction No. }
{ ;Tax Jurisdiction Code,Tax Group Used,Tax Type,Use Tax,Posting Date;
KeyGroups=SalesTax }
{ ;Type,Closed,VAT Bus. Posting Group,VAT Prod. Posting Group,Tax Jurisdiction Code,Use Tax,Tax Liable,VAT Period,Operation Occurred Date,Activity Code;
... -
تغيير التعليمات البرمجية في وظيفة جيتونريليزيدفاتبارت في جدول إدخال ضريبة القيمة المضافة (254) كما يلي:
التعليمات البرمجية الموجودة 1...END;
EXIT(GLSetup."Additional Reporting Currency");
END;
// Delete the following line.
PROCEDURE GetUnRealizedVATPart@2(SettledAmount@1003 : Decimal;Paid@1005 : Decimal;Full@1001 : Decimal;TotalUnrealVATAmountFirst@1006 : Decimal;TotalUnrealVATAmountLast@1007 : Decimal;Type2@1130000 : 'Sale,Purchase';DocType@1130001 : ' ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund,,,,Dishonored';LedgEntryOpen@1130002 : Boolean;LedgEntryAmount@1130003 : Decimal;LedgEntryRemAmt@1130004 : Decimal;TotalPayments@1130005 : Decimal) : Decimal;
// End of the deleted line.
VAR
UnrealizedVatType@1000 : ' ,Percentage,First,Last,First (Fully Paid),Last (Fully Paid)';
BEGIN
IF (Type <> 0) AND
...استبدال رمز 1
...END;
EXIT(GLSetup."Additional Reporting Currency");
END;
// Add the following line.
PROCEDURE GetUnRealizedVATPart@2(SettledAmount@1003 : Decimal;Paid@1005 : Decimal;Full@1001 : Decimal;TotalUnrealVATAmountFirst@1006 : Decimal;TotalUnrealVATAmountLast@1007 : Decimal;Type2@1130000 : 'Sale,Purchase';DocType@1130001 : ' ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund,,,,Dishonored';LedgEntryOpen@1130002 : Boolean;LedgEntryAmount@1130003 : Decimal;LedgEntryRemAmt@1130004 : Decimal;TotalPayments@1130005 : Decimal;VATPart@1130006 : Decimal;VAR TransactionInclPrepmt@1130007 : Boolean) : Decimal;
// End of the added line.
VAR
UnrealizedVatType@1000 : ' ,Percentage,First,Last,First (Fully Paid),Last (Fully Paid)';
BEGIN
IF (Type <> 0) AND
...التعليمات البرمجية الموجودة 2
...(("Remaining Unrealized Amount" = 0) AND
("Remaining Unrealized Base" = 0))
THEN
EXIT(0);
// Delete the following lines.
//IF ABS(Paid) = ABS(Full) THEN
// EXIT(1);
CASE UnrealizedVatType OF
UnrealizedVatType::Percentage:
BEGIN
IF Type2 = Type2::Purchase THEN BEGIN
IF (DocType = DocType::"Credit Memo") THEN BEGIN
IF (TotalPayments - ("Remaining Unrealized Amount" + "Remaining Unrealized Base")) <= 0 THEN
EXIT(1)
END ELSE BEGIN
IF (TotalPayments - ("Remaining Unrealized Amount" + "Remaining Unrealized Base")) < 0 THEN
EXIT(CalcVatPart(GetCurrencyCode(), 1.0, TotalPayments,
("Remaining Unrealized Amount" + "Remaining Unrealized Base")))
ELSE
EXIT(1)
END;
END
ELSE BEGIN
IF (DocType = DocType::"Credit Memo") THEN BEGIN
IF (-TotalPayments + ("Remaining Unrealized Amount" + "Remaining Unrealized Base")) <= 0 THEN
EXIT(1)
END ELSE BEGIN
IF (-TotalPayments + ("Remaining Unrealized Amount" + "Remaining Unrealized Base")) < 0 THEN
EXIT(CalcVatPart(GetCurrencyCode(), 1.0, TotalPayments,
("Remaining Unrealized Amount" + "Remaining Unrealized Base")))
ELSE
EXIT(1)
END;
END;
// End of the deleted lines.
END;
UnrealizedVatType::First,UnrealizedVatType::"First (Fully Paid)":
BEGIN
IF NOT LedgEntryOpen OR ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT") THEN
...استبدال رمز 2
...(("Remaining Unrealized Amount" = 0) AND
("Remaining Unrealized Base" = 0))
THEN
EXIT(0);
// Add the following lines.
IF (ABS(GetRemainingUnrealizedAmount("Document No.","Posting Date")) = ABS(Paid)) AND
NOT IsPrepaymentIncluded(Type2,DocType,"Document No.")
THEN BEGIN
VATPart := 1;
EXIT(VATPart);
END;
CASE UnrealizedVatType OF
UnrealizedVatType::Percentage:
IF Type2 = Type2::Purchase THEN BEGIN
TransactionInclPrepmt := FALSE;
IF DocType = DocType::"Credit Memo" THEN BEGIN
IF PurchCrMemoInclPrepmt("Document No.") THEN BEGIN
TransactionInclPrepmt := TRUE;
IF VATPart = 0 THEN BEGIN
IF (ABS(TotalPayments) >= ABS(GetTransactionRemainingAmount("Transaction No."))) OR
(ABS(Paid) = ABS(Full))
THEN
VATPart := 1
ELSE
VATPart :=
CalcVatPart(
GetCurrencyCode,1.0,TotalPayments,
GetTransactionRemainingAmount("Transaction No."));
END;
EXIT(VATPart);
END ELSE
IF (TotalPayments - ("Remaining Unrealized Amount" + "Remaining Unrealized Base")) <= 0 THEN
EXIT(1)
END ELSE BEGIN
IF PurchInvInclPrepmt("Document No.") THEN BEGIN
TransactionInclPrepmt := TRUE;
IF VATPart = 0 THEN BEGIN
IF (ABS(TotalPayments) >= ABS(GetTransactionRemainingAmount("Transaction No."))) OR
(ABS(Paid) = ABS(Full))
THEN
VATPart := 1
ELSE
VATPart :=
CalcVatPart(
GetCurrencyCode,1.0,TotalPayments,
GetTransactionRemainingAmount("Transaction No."));
END;
EXIT(VATPart);
END ELSE
IF (TotalPayments - ("Remaining Unrealized Amount" + "Remaining Unrealized Base")) < 0 THEN
EXIT(
CalcVatPart(
GetCurrencyCode,1.0,TotalPayments,
("Remaining Unrealized Amount" + "Remaining Unrealized Base")));
EXIT(1);
END;
END ELSE BEGIN
TransactionInclPrepmt := FALSE;
IF DocType = DocType::"Credit Memo" THEN BEGIN
IF SalesInvInclPrepmt("Document No.") THEN BEGIN
TransactionInclPrepmt := TRUE;
IF VATPart = 0 THEN BEGIN
IF (ABS(TotalPayments) >= ABS(GetTransactionRemainingAmount("Transaction No."))) OR
(ABS(Paid) = ABS(Full))
THEN
VATPart := 1
ELSE
VATPart :=
CalcVatPart(
GetCurrencyCode,1.0,TotalPayments,
GetTransactionRemainingAmount("Transaction No."));
END;
EXIT(VATPart);
END;
IF (-TotalPayments + ("Remaining Unrealized Amount" + "Remaining Unrealized Base")) <= 0 THEN
EXIT(1);
EXIT(TotalPayments / ("Remaining Unrealized Amount" + "Remaining Unrealized Base"));
END;
IF SalesInvInclPrepmt("Document No.") THEN BEGIN
TransactionInclPrepmt := TRUE;
IF VATPart = 0 THEN BEGIN
IF (ABS(TotalPayments) >= ABS(GetTransactionRemainingAmount("Transaction No."))) OR
(ABS(Paid) = ABS(Full))
THEN
VATPart := 1
ELSE
VATPart :=
CalcVatPart(
GetCurrencyCode,1.0,TotalPayments,
GetTransactionRemainingAmount("Transaction No."));
END;
EXIT(VATPart);
END ELSE
IF (-TotalPayments + ("Remaining Unrealized Amount" + "Remaining Unrealized Base")) < 0 THEN
EXIT(
CalcVatPart(
GetCurrencyCode,1.0,TotalPayments,
("Remaining Unrealized Amount" + "Remaining Unrealized Base")));
EXIT(1);
// End of the added lines.
END;
UnrealizedVatType::First,UnrealizedVatType::"First (Fully Paid)":
BEGIN
IF NOT LedgEntryOpen OR ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT") THEN
... -
تغيير التعليمات البرمجية في وظيفة ساليسينفينكلبريبمت في جدول إدخال ضريبة القيمة المضافة (254) كما يلي:
التعليمات البرمجية الموجودة...EXIT(RemainingAmount - SettledAmount);
EXIT(RemainingAmount - (SettledAmount / CurrencyFactor));
END;
BEGIN
END.
}
}
...استبدال التعليمات البرمجية
...EXIT(RemainingAmount - SettledAmount);
EXIT(RemainingAmount - (SettledAmount / CurrencyFactor));
END;
// Add the following lines.
LOCAL PROCEDURE SalesInvInclPrepmt@1130019(DocNo@1130000 : Code[20]) : Boolean;
VAR
SalesInvLine@1130001 : Record 113;
BEGIN
SalesInvLine.SETRANGE("Document No.",DocNo);
SalesInvLine.SETRANGE("Prepayment Line",TRUE);
EXIT(NOT SalesInvLine.ISEMPTY);
END;
LOCAL PROCEDURE SalesCrMemoInclPrepmt@1130101(DocNo@1130000 : Code[20]) : Boolean;
VAR
SalesCrMemoLine@1130001 : Record 115;
BEGIN
SalesCrMemoLine.SETRANGE("Document No.",DocNo);
SalesCrMemoLine.SETRANGE("Prepayment Line",TRUE);
EXIT(NOT SalesCrMemoLine.ISEMPTY);
END;
LOCAL PROCEDURE PurchInvInclPrepmt@1130021(DocNo@1130000 : Code[20]) : Boolean;
VAR
PurchInvLine@1130001 : Record 123;
BEGIN
PurchInvLine.SETRANGE("Document No.",DocNo);
PurchInvLine.SETRANGE("Prepayment Line",TRUE);
EXIT(NOT PurchInvLine.ISEMPTY);
END;
LOCAL PROCEDURE PurchCrMemoInclPrepmt@1130020(DocNo@1130000 : Code[20]) : Boolean;
VAR
PurchCrMemoLine@1130001 : Record 125;
BEGIN
PurchCrMemoLine.SETRANGE("Document No.",DocNo);
PurchCrMemoLine.SETRANGE("Prepayment Line",TRUE);
EXIT(NOT PurchCrMemoLine.ISEMPTY);
END;
LOCAL PROCEDURE GetTransactionRemainingAmount@1130016(TransactionNo@1130000 : Integer) TransactionAmount : Decimal;
VAR
VATEntry@1130001 : Record 254;
BEGIN
WITH VATEntry DO BEGIN
SETRANGE("Transaction No.",TransactionNo);
IF FINDSET THEN
REPEAT
TransactionAmount += "Remaining Unrealized Base" + "Remaining Unrealized Amount";
UNTIL NEXT = 0;
END;
END;
LOCAL PROCEDURE GetRemainingUnrealizedAmount@1130017(DocumentNo@1130000 : Code[20];PostingDate@1130001 : Date) : Decimal;
VAR
VATEntry@1130002 : Record 254;
BEGIN
VATEntry.SETCURRENTKEY("Document No.","Posting Date");
VATEntry.SETRANGE("Document No.",DocumentNo);
VATEntry.SETRANGE("Posting Date",PostingDate);
VATEntry.CALCSUMS("Remaining Unrealized Base","Remaining Unrealized Amount");
EXIT(VATEntry."Remaining Unrealized Base" + VATEntry."Remaining Unrealized Amount");
END;
LOCAL PROCEDURE IsPrepaymentIncluded@1130023(VATType@1130002 : 'Sale,Purchase';DocumentType@1130000 : ' ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund,,,,Dishonored';DocumentNo@1130001 : Code[20]) : Boolean;
BEGIN
CASE VATType OF
VATType::Purchase:
IF DocumentType = DocumentType::"Credit Memo" THEN
EXIT(PurchCrMemoInclPrepmt(DocumentNo))
ELSE
EXIT(PurchInvInclPrepmt(DocumentNo));
VATType::Sale:
IF DocumentType = DocumentType::"Credit Memo" THEN
EXIT(SalesInvInclPrepmt(DocumentNo))
ELSE
EXIT(SalesCrMemoInclPrepmt(DocumentNo));
END;
END;
// End of the added lines.
BEGIN
END.
}
}
... -
تغيير التعليمات البرمجية في وظيفة كوستونريليزيدفات في جنل جنرال.-"كوديونيت خط وظيفة" (12) كما يلي:
التعليمات البرمجية الموجودة 1...SalesVATUnrealAccount@1010 : Code[20];
LastConnectionNo@1011 : Integer;
TotalPayments@1130000 : Decimal;
Type2@1130001 : 'Sale,Purchase';
BEGIN
PaidAmount := CustLedgEntry2."Amount (LCY)" - CustLedgEntry2."Remaining Amt. (LCY)";
VATEntry2.RESET;
VATEntry2.SETCURRENTKEY("Transaction No.");
...استبدال رمز 1
...SalesVATUnrealAccount@1010 : Code[20];
LastConnectionNo@1011 : Integer;
TotalPayments@1130000 : Decimal;
Type2@1130001 : 'Sale,Purchase';
// Add the following line.
TransactionInclPrepmt@1130002 : Boolean;
// End of the added line.
BEGIN
PaidAmount := CustLedgEntry2."Amount (LCY)" - CustLedgEntry2."Remaining Amt. (LCY)";
VATEntry2.RESET;
VATEntry2.SETCURRENTKEY("Transaction No.");
...التعليمات البرمجية الموجودة 2
...InsertSummarizedVAT;
LastConnectionNo := VATEntry2."Sales Tax Connection No.";
END;
// Delete the following lines.
VATPart := VATEntry2.GetUnRealizedVATPart(
ROUND(SettledAmount / CustLedgEntry2.GetOriginalCurrencyFactor),
PaidAmount,
CustLedgEntry2."Original Amt. (LCY)",
TotalUnrealVATAmountFirst,
TotalUnrealVATAmountLast,
Type2::Sale,
CustLedgEntry2."Document Type",
CustLedgEntry2.Open,
CustLedgEntry2.Amount,
CustLedgEntry2."Remaining Amount",
TotalPayments);
// End of the deleted lines.
IF VATPart > 0 THEN BEGIN
CASE VATEntry2."VAT Calculation Type" OF
VATEntry2."VAT Calculation Type"::"Normal VAT",
...استبدال رمز 2
...InsertSummarizedVAT;
LastConnectionNo := VATEntry2."Sales Tax Connection No.";
END;
// Add the following lines.
VATPart :=
VATEntry2.GetUnRealizedVATPart(
ROUND(SettledAmount / CustLedgEntry2.GetOriginalCurrencyFactor),
PaidAmount,
CustLedgEntry2."Original Amt. (LCY)",
TotalUnrealVATAmountFirst,
TotalUnrealVATAmountLast,
Type2::Sale,
CustLedgEntry2."Document Type",
CustLedgEntry2.Open,
CustLedgEntry2.Amount,
CustLedgEntry2."Remaining Amount",
TotalPayments,
VATPart,
TransactionInclPrepmt);
// End of the added lines.
IF VATPart > 0 THEN BEGIN
CASE VATEntry2."VAT Calculation Type" OF
VATEntry2."VAT Calculation Type"::"Normal VAT",
...التعليمات البرمجية الموجودة 3
...VATEntry2."Add.-Curr. Rem. Unreal. Base" * VATPart,
AddCurrency."Amount Rounding Precision");
END;
// Delete the following line.
TotalPayments := TotalPayments - (VATEntry2."Remaining Unrealized Amount" + VATEntry2."Remaining Unrealized Base");
// End of the deleted line.
IF VATAmount <> 0 THEN BEGIN
InitGLEntry(SalesVATUnrealAccount,-VATAmount,0,FALSE,TRUE);
GLEntry."Additional-Currency Amount" := -VATAmountAddCurr;
...استبدال رمز 3
...VATEntry2."Add.-Curr. Rem. Unreal. Base" * VATPart,
AddCurrency."Amount Rounding Precision");
END;
// Add the following lines.
IF TransactionInclPrepmt THEN
TotalPayments := TotalPayments - ROUND(TotalPayments * VATPart)
ELSE
TotalPayments :=
TotalPayments - (VATEntry2."Remaining Unrealized Amount" + VATEntry2."Remaining Unrealized Base");
// End of the added lines.
IF VATAmount <> 0 THEN BEGIN
InitGLEntry(SalesVATUnrealAccount,-VATAmount,0,FALSE,TRUE);
GLEntry."Additional-Currency Amount" := -VATAmountAddCurr;
... -
تغيير التعليمات البرمجية في وظيفة فيندونريليزيدفات في جنل جنرال.-"كوديونيت خط وظيفة" (12) كما يلي:
التعليمات البرمجية الموجودة 1...PurchReverseUnrealAccount@1012 : Code[20];
LastConnectionNo@1013 : Integer;
Type2@1130000 : 'Sale,Purchase';
TotalPayments@1130001 : Decimal;
BEGIN
VATEntry2.RESET;
VATEntry2.SETCURRENTKEY("Transaction No.");
VATEntry2.SETRANGE("Transaction No.",VendLedgEntry2."Transaction No.");
...استبدال رمز 1
...PurchReverseUnrealAccount@1012 : Code[20];
LastConnectionNo@1013 : Integer;
Type2@1130000 : 'Sale,Purchase';
TotalPayments@1130001 : Decimal;
// Add the following line.
TransactionInclPrepmt@1130002 : Boolean;
// End of the added line.
BEGIN
VATEntry2.RESET;
VATEntry2.SETCURRENTKEY("Transaction No.");
VATEntry2.SETRANGE("Transaction No.",VendLedgEntry2."Transaction No.");
...التعليمات البرمجية الموجودة 2
...IF LastConnectionNo <> VATEntry2."Sales Tax Connection No." THEN BEGIN
InsertSummarizedVAT;
LastConnectionNo := VATEntry2."Sales Tax Connection No.";
END;
// Delete the following lines.
IF (TotalPayments <= 0) AND (VendLedgEntry2."Document Type" = VendLedgEntry2."Document Type"::Invoice) THEN
EXIT;
VATPart := VATEntry2.GetUnRealizedVATPart(
ROUND(SettledAmount / VendLedgEntry2.GetOriginalCurrencyFactor),
PaidAmount,
VendLedgEntry2."Original Amt. (LCY)",
TotalUnrealVATAmountFirst,
TotalUnrealVATAmountLast,
Type2::Purchase,
VendLedgEntry2."Document Type",
VendLedgEntry2.Open,
VendLedgEntry2.Amount,
VendLedgEntry2."Remaining Amount",
TotalPayments);
// End of the deleted lines.
IF VATPart >= 0 THEN BEGIN
IF VATPart <> 0 THEN BEGIN
CASE VATEntry2."VAT Calculation Type" OF
...استبدال رمز 2
...IF LastConnectionNo <> VATEntry2."Sales Tax Connection No." THEN BEGIN
InsertSummarizedVAT;
LastConnectionNo := VATEntry2."Sales Tax Connection No.";
END;
// Add the following lines.
IF ((TotalPayments <= 0) AND (NOT TransactionInclPrepmt)) AND
(VendLedgEntry2."Document Type" = VendLedgEntry2."Document Type"::Invoice)
THEN
EXIT;
VATPart :=
VATEntry2.GetUnRealizedVATPart(
ROUND(SettledAmount / VendLedgEntry2.GetOriginalCurrencyFactor),
PaidAmount,
VendLedgEntry2."Original Amt. (LCY)",
TotalUnrealVATAmountFirst,
TotalUnrealVATAmountLast,
Type2::Purchase,
VendLedgEntry2."Document Type",
VendLedgEntry2.Open,
VendLedgEntry2.Amount,
VendLedgEntry2."Remaining Amount",
TotalPayments,
VATPart,
TransactionInclPrepmt);
// End of the added lines.
IF VATPart >= 0 THEN BEGIN
IF VATPart <> 0 THEN BEGIN
CASE VATEntry2."VAT Calculation Type" OF
...التعليمات البرمجية الموجودة 3
...PurchVATUnrealAccount := TaxJurisdiction."Unreal. Tax Acc. (Purchases)";
END;
END;
// Delete the following lines.
VATAmount := ROUND((VATEntry2."Remaining Unrealized Amount" * VATPart),GLSetup."Amount Rounding Precision");
VATBase := ROUND((VATEntry2."Remaining Unrealized Base"* VATPart),GLSetup."Amount Rounding Precision");
TotalPayments := TotalPayments - (VATEntry2."Remaining Unrealized Amount" + VATEntry2."Remaining Unrealized Base");
// End of the deleted lines.
IF VATAmount <> 0 THEN BEGIN
InitGLEntry(PurchVATUnrealAccount,-VATAmount,0,FALSE,TRUE);
GLEntry."Additional-Currency Amount" := -VATAmountAddCurr;
...استبدال رمز 3
...PurchVATUnrealAccount := TaxJurisdiction."Unreal. Tax Acc. (Purchases)";
END;
END;
// Add the following lines.
VATAmount := ROUND(VATEntry2."Remaining Unrealized Amount" * VATPart,GLSetup."Amount Rounding Precision");
VATBase := ROUND(VATEntry2."Remaining Unrealized Base" * VATPart,GLSetup."Amount Rounding Precision");
IF TransactionInclPrepmt THEN
TotalPayments := TotalPayments - ROUND(TotalPayments * VATPart)
ELSE
TotalPayments :=
TotalPayments - (VATEntry2."Remaining Unrealized Amount" + VATEntry2."Remaining Unrealized Base");
// End of the added lines.
IF VATAmount <> 0 THEN BEGIN
InitGLEntry(PurchVATUnrealAccount,-VATAmount,0,FALSE,TRUE);
GLEntry."Additional-Currency Amount" := -VATAmountAddCurr;
...
المتطلبات الأساسية
يجب أن يكون لديك أحد المنتجات التالية مثبتة لتطبيق هذا الإصلاح العاجل:
-
ترجمة الإيطالية Microsoft Dynamics NAV 2009 R2
-
الترجمة الإيطالية من Microsoft Dynamics NAV 2009 SP1
معلومات الإزالة
لا يمكنك إزالة هذا الإصلاح العاجل.
الحالة
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".
ملاحظة: وهذا المقال "النشر السريع" التي تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة في هذه الوثيقة كاستجابه للمسائل الناشئة. نتيجة للسرعة في توفيره، قد تتضمن الأخطاء المطبعية المواد ويمكن مراجعة في أي وقت دون سابق إنذار. راجع شروط الاستخداملاعتبارات أخرى.