Este artigo descreve um problema ao aplicar uma fatura de venda contendo o IVA não realizado e linha negativa para um memorando de crédito na versão italiana do Microsoft Dynamics NAV 2009. Esse problema ainda ocorre depois de implementar a correção do KB 2882952.
Siga as etapas na seção alterações de código para resolver o problema. Esse problema ocorre nos seguintes produtos:
-
A versão em italiano do Microsoft Dynamics NAV 2009 R2
-
A versão em italiano do Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
Resolução
Informações sobre o hotfix
Um hotfix suportado está disponível agora na Microsoft. No entanto, apenas destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correção poderá ser submetida a testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde o próximo service pack do Microsoft Dynamics NAV 2009 ou a próxima versão do Microsoft Dynamics NAV que contém esse hotfix.
Observação: Em alguns casos, as taxas cobradas para suporte a chamadas podem ser canceladas se um profissional de suporte técnico do Microsoft Dynamics e produtos relacionados determina que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados para questões de suporte adicionais e problemas que não se qualificam à atualização específica em questão.
Informações sobre a instalação
A Microsoft fornece exemplos de programação somente para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um propósito específico. Este artigo presume que você esteja familiarizado com a linguagem de programação que está sendo demonstrada e com as ferramentas usadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.
Observação: Antes de instalar esse hotfix, verifique se todos os usuários do cliente do Microsoft Dynamics NAV estiver desconectados do sistema. Isso inclui os serviços do Microsoft Dynamics NAV Application Server (NAS). Você deve ser o único usuário do cliente conectado ao implementar esse hotfix.
Para implementar esse hotfix, você deve ter uma licença de desenvolvedor.
É recomendável que a conta de usuário na janela de Logins do Windows ou na janela banco de dados seja atribuída a ID de função "SUPER". Se a conta de usuário não pode ser atribuída a ID de função "SUPER", você deverá verificar se a conta de usuário tem as seguintes permissões:
-
A permissão Modificar para o objeto que será alterado.
-
A permissão de execução para o objeto 5210 de identificação de objeto de sistema e o sistema 9015 de identificação de objeto
objeto.
Observação: Você não precisa ter direitos para os armazenamentos de dados, a menos que você precise executar o reparo de dados.
Alterações de código
Observação: Sempre teste código correções em um ambiente controlado antes de aplicar as correções para os computadores de produção.
Para resolver esse problema, execute as seguintes etapas:
-
Altere o código nas chaves na tabela entrada de IVA (254) da seguinte forma:
Código existente...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;
...Código de substituição
...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;
... -
Altere o código na função GetUnRealizedVATPart na tabela entrada de IVA (254) da seguinte forma:
1 de código existente...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 código de substituição
...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 de código existente
...(("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
...Código de substituição 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
... -
Altere o código na função SalesInvInclPrepmt na tabela entrada de IVA (254) da seguinte forma:
Código existente...EXIT(RemainingAmount - SettledAmount);
EXIT(RemainingAmount - (SettledAmount / CurrencyFactor));
END;
BEGIN
END.
}
}
...Código de substituição
...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.
}
}
... -
Alterar o código de função CustUnrealizedVAT em geral Jnl.-lançar linha Codeunit (12) da seguinte maneira:
1 de código existente...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 código de substituição
...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 de código existente
...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",
...Código de substituição 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 de código existente
...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;
...Código de substituição 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;
... -
Alterar o código de função VendUnrealizedVAT em geral Jnl.-lançar linha Codeunit (12) da seguinte maneira:
1 de código existente...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 código de substituição
...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 de código existente
...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
...Código de substituição 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 de código existente
...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;
...Código de substituição 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;
...
Pré-requisitos:
Você deve ter um dos seguintes produtos instalados para aplicar esse hotfix:
-
A localização de italiana do Microsoft Dynamics NAV 2009 R2
-
A localização do Microsoft Dynamics NAV 2009 SP1 italiana
Informações sobre remoção
Você não pode remover esse hotfix.
Status
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".
Observação: Este é um artigo de "PUBLICAÇÃO RÁPIDA" criado diretamente de dentro da organização de suporte da Microsoft. As informações contidas neste documento são fornecidas desta maneira, em resposta a problemas emergentes. Como um dos resultados da velocidade da publicação, os materiais podem incluir erros tipográficos e podem ser revisados a qualquer momento sem aviso prévio. Consulte os Termos de usopara outras considerações.