Acest articol descrie o problemă când aplicați o factură vânzări, care conține TVA nerealizată și negativă linie o notă de credit în versiunea italiană a Microsoft Dynamics NAV 2009. Această problemă survine în continuare după implementarea corectarea KB 2882952.
Urmați pașii din secțiunea modificări de cod pentru a rezolva această problemă. Această problemă se produce în următoarele produse:
-
Versiunea italiană a Microsoft Dynamics NAV 2009 R2
-
Versiunea italiană a Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
Rezolvare
Informații despre remedierea rapidă
Un hotfix acceptat este acum disponibil de la Microsoft. Cu toate acestea, acesta este destinat numai corectării problemei descrise în acest articol. Aplicați-o numai pe sistemele care întâmpină această problemă anume. Această remediere rapidă poate să necesite testare suplimentară. De aceea, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următorul pachet service pack Microsoft Dynamics NAV 2009 sau versiunea Microsoft Dynamics NAV următoare, care conține această remediere rapidă.
Notă În cazuri speciale, costurile implicate de obicei pentru asistență apeluri pot fi anulate dacă un specialist în asistență tehnică pentru Microsoft Dynamics și produse asociate stabilește că o anumită actualizare va rezolva problema. Se vor aplica costurile uzuale de asistenţă pentru întrebări suplimentare de asistenţă şi pentru probleme ce nu fac obiectul actualizării în cauză.
Informaţii despre instalare
Microsoft furnizează exemple de programare scop ilustrativ, fără nicio garanţie explicită sau implicită. Aceasta include, dar nu se limitează la, garanţiile implicite de vandabilitate sau de potrivire pentru un anumit scop. Acest articol presupune că sunteţi familiarizat cu limbajul de programare care este prezentat şi cu instrumentele utilizate pentru a crea şi a depana proceduri. Specialiștii în asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri. Cu toate acestea, nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară construi proceduri pentru a răspunde cerințelor dvs. specifice.
Notă Înainte de a instala această remediere rapidă, verificați dacă toți utilizatorii de client Microsoft Dynamics NAV sunt log off sistemul. Aceasta include servicii Microsoft Dynamics NAV Application Server (NAS). Ar trebui să fie singurul client utilizatorului care este conectat când implementați această remediere rapidă.
Pentru a implementa această remediere rapidă, trebuie să aveți o licență de dezvoltare.
Vă recomandăm că contul de utilizator în fereastra Conectări Windows sau în fereastra Conectări bază de date se atribuie "SUPER" rolul ID-ul. În cazul în care contul de utilizator nu poate fi atribuit ID-ul "SUPER" rolul, trebuie să verificați că contul de utilizator are următoarele permisiuni:
-
Modify permisiunea pentru obiectul care se va schimba.
-
Permisiunea de executare pentru obiectul sistem obiect ID 5210 și sistem obiect ID 9015
obiect.
Notă Nu trebuie să aveți drepturi de la magazine de date decât dacă trebuie să efectuați o reparare de date.
Modificări de cod
Notă Întotdeauna test cod remediază într-un mediu controlat înainte de a aplica remedieri pentru computerele de producție.
Pentru a rezolva această problemă, urmați acești pași:
-
Modificați codul din cheile din tabelul Intrare TVA (254) după cum urmează:
Cod existent...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;
...Cod de înlocuire
...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;
... -
Modificați codul din funcția GetUnRealizedVATPart în tabelul de intrare TVA (254) după cum urmează:
Cod existent 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
...Înlocuirea cod 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
...Cod existent 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
...Înlocuirea cod 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
... -
Modificați codul din funcția SalesInvInclPrepmt în tabelul de intrare TVA (254) după cum urmează:
Cod existent...EXIT(RemainingAmount - SettledAmount);
EXIT(RemainingAmount - (SettledAmount / CurrencyFactor));
END;
BEGIN
END.
}
}
...Cod de înlocuire
...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.
}
}
... -
Modificați codul din funcția CustUnrealizedVAT în gen jurnal.-Post linie Codeunit (12) după cum urmează:
Cod existent 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.");
...Înlocuirea cod 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.");
...Cod existent 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",
...Înlocuirea cod 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",
...Cod existent 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;
...Înlocuirea cod 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;
... -
Modificați codul din funcția VendUnrealizedVAT în gen jurnal.-Post linie Codeunit (12) după cum urmează:
Cod existent 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.");
...Înlocuirea cod 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.");
...Cod existent 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
...Înlocuirea cod 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
...Cod existent 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;
...Înlocuirea cod 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;
...
Cerințe preliminare
Trebuie să aveți unul dintre următoarele produse instalate pentru a aplica această remediere rapidă:
-
Localizarea italiană Microsoft Dynamics NAV 2009 R2
-
Localizare italiană Microsoft Dynamics NAV 2009 SP1
Eliminare informaţii
Nu se poate elimina această remediere rapidă.
Stare
Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".
Notă Acesta este un articol "rapid publicat" creat direct în cadrul organizației de asistență Microsoft. Informațiile conținute în acest document sunt furnizate ca răspuns la problemele care apar. Ca rezultat al vitezei în a-l face disponibil, materialele pot include erori tipografice și pot fi revizuite în orice moment, fără notificare. Consultați Termenii de utilizarepentru alte considerații.