Symptom
Det totala beloppet i en påminnelse är fel om kontot påminnelse avgift med moms (VAT) i Microsoft Dynamics NAV 2009. Detta händer även om påminnelse avgift inte är registrerad och kunden är en EU-kund. Följ instruktionerna i avsnittet kod ändras för att lösa problemet. Det här problemet uppstår i följande produkter:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 SP1
Lösning
Information om snabbkorrigeringen
En snabbkorrigering är nu tillgänglig från Microsoft. Den är endast avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på Nästa service pack-versionen för Microsoft Dynamics NAV 2009 eller nästa Microsoft Dynamics NAV-version som innehåller den här snabbkorrigeringen.
Obs! I särskilda fall, de avgifter som är normalt för support vara avgiftsfri om en supporttekniker för Microsoft Dynamics och relaterade produkter som bestämmer att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.
Installationsinformation
Microsoft tillhandahåller programmeringsexempel endast utan garanti varken uttryckliga eller underförstådda. Detta inkluderar men är inte begränsat till, underförstådda garantier om säljbarhet eller lämplighet för ett särskilt ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till att förklara funktionen hos en viss procedur. De kommer inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov.
Obs! Innan du installerar den här snabbkorrigeringen måste du kontrollera att alla användare i Microsoft Dynamics NAV-klienten har loggat ut. Detta omfattar tjänster för Microsoft Dynamics NAV Application Server (NAS). Du ska endast klientanvändare som är inloggad när du implementerar den här snabbkorrigeringen.
Om du vill genomföra den här snabbkorrigeringen måste du ha en utvecklarlicens.
Vi rekommenderar att tilldelas användarkontot i fönstret Windows-inloggningar eller i fönstret databasinloggningar "SUPER" roll-ID. Om användarkontot inte kan tilldelas "SUPER" roll-ID måste du kontrollera att användarkontot har följande behörigheter:
-
Ändra behörighet för objektet ändras.
-
Körbehörighet för systemet objektet ID 5210 objekt och System objektet ID 9015
objektet.
Obs! Du har inte behörighet för datalager inte data reparation.
Kod ändras
Obs! Alltid åtgärdas testa koden i en kontrollerad miljö innan du installerar korrigeringar för produktionsdatorer.
Lös problemet så här:
-
Ändra koden i egenskaper i formuläret Statistik påminnelse (437) enligt följande:
Befintlig kod... CALCFIELDS("Interest Amount","VAT Amount");
ReminderTotal := "Remaining Amount" + "Additional Fee" + "Interest Amount" + "VAT Amount";
CustPostingGr.GET("Customer Posting Group");
VATInterest := 0;
IF ReminderLevel.GET("Reminder Terms Code","Reminder Level") THEN
// Delete the following lines.
IF ReminderLevel."Calculate Interest" THEN BEGIN
GLAcc.GET(CustPostingGr."Interest Account");
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
VATInterest := VATPostingSetup."VAT %";
END;
IF GLAcc.GET(CustPostingGr."Additional Fee Account") THEN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
Interest := (ReminderTotal - "Remaining Amount" - "Additional Fee" * (VATPostingSetup."VAT %"/100 + 1))/
(VATInterest/100 + 1);
VatAmount := Interest * VATInterest/100 +
"Additional Fee" * VATPostingSetup."VAT %"/100;
// End of the deleted lines.
IF Cust.GET("Customer No.") THEN
Cust.CALCFIELDS("Balance (LCY)")
ELSE
CLEAR(Cust);
IF Cust."Credit Limit (LCY)" = 0 THEN
...Ersättningskod
... CALCFIELDS("Interest Amount","VAT Amount");
ReminderTotal := "Remaining Amount" + "Additional Fee" + "Interest Amount" + "VAT Amount";
CustPostingGr.GET("Customer Posting Group");
VATInterest := 0;
IF ReminderLevel.GET("Reminder Terms Code","Reminder Level") THEN
// Add the following lines.
IF ReminderLevel."Calculate Interest" AND ("VAT Amount" <> 0) THEN BEGIN
GLAcc.GET(CustPostingGr."Interest Account");
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
VATInterest := VATPostingSetup."VAT %";
IF GLAcc.GET(CustPostingGr."Additional Fee Account") THEN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
Interest :=
(ReminderTotal -
"Remaining Amount" - "Additional Fee" * (VATPostingSetup."VAT %"/ 100 + 1)) /(VATInterest / 100 + 1);
VatAmount := Interest * VATInterest / 100 + "Additional Fee" * VATPostingSetup."VAT %" / 100;
END ELSE
Interest := "Interest Amount";
// End of the added lines.
IF Cust.GET("Customer No.") THEN
Cust.CALCFIELDS("Balance (LCY)")
ELSE
CLEAR(Cust);
IF Cust."Credit Limit (LCY)" = 0 THEN
... -
Ändra koden i egenskaper i formuläret Statistik påminnelse (441) enligt följande:
Befintlig kod...BEGIN
SETRANGE("No.");
CALCFIELDS("Interest Amount","VAT Amount");
ReminderTotal := "Remaining Amount" + "Additional Fee" + "Interest Amount" + "VAT Amount";
CustPostingGr.GET("Customer Posting Group");
// Delete the following lines.
ReminderLevel.GET("Reminder Terms Code","Reminder Level");
IF ReminderLevel."Calculate Interest" THEN BEGIN
GLAcc.GET(CustPostingGr."Interest Account");
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
VATInterest := VATPostingSetup."VAT %";
END ELSE
VATInterest := 0;
IF GLAcc.GET(CustPostingGr."Additional Fee Account") THEN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
Interest := (ReminderTotal - "Remaining Amount" - "Additional Fee" * (VATPostingSetup."VAT %"/100 + 1))/
(VATInterest/100 + 1);
VatAmount := Interest * VATInterest/100 +
"Additional Fee" * VATPostingSetup."VAT %"/100;
// End of the deleted lines.
IF Cust.GET("Customer No.") THEN
Cust.CALCFIELDS("Balance (LCY)")
ELSE
CLEAR(Cust);
IF Cust."Credit Limit (LCY)" = 0 THEN
...Ersättningskod
...BEGIN
SETRANGE("No.");
CALCFIELDS("Interest Amount","VAT Amount");
ReminderTotal := "Remaining Amount" + "Additional Fee" + "Interest Amount" + "VAT Amount";
CustPostingGr.GET("Customer Posting Group");
// Add the following lines.
IF ReminderLevel.GET("Reminder Terms Code","Reminder Level") THEN
IF ReminderLevel."Calculate Interest" AND ("VAT Amount" <> 0) THEN BEGIN
GLAcc.GET(CustPostingGr."Interest Account");
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
VATInterest := VATPostingSetup."VAT %";
IF GLAcc.GET(CustPostingGr."Additional Fee Account") THEN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
Interest :=
(ReminderTotal -
"Remaining Amount" - "Additional Fee" * (VATPostingSetup."VAT %"/ 100 + 1)) /(VATInterest / 100 + 1);
VatAmount := Interest * VATInterest / 100 + "Additional Fee" * VATPostingSetup."VAT %" / 100;
END ELSE
Interest := "Interest Amount";
// End of the added lines.
IF Cust.GET("Customer No.") THEN
Cust.CALCFIELDS("Balance (LCY)")
ELSE
CLEAR(Cust);
IF Cust."Credit Limit (LCY)" = 0 THEN
... -
Ändra koden i Data objekt nummer 1 i rapporten Betalningspåminnelse statistik (117) på följande sätt:
Befintlig kod...IF GLAcc.GET(CustPostingGroup."Additional Fee Account") THEN BEGIN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
AddFeeInclVAT := "Additional Fee" * (1 + VATPostingSetup."VAT %"/100);
END ELSE
AddFeeInclVAT := "Additional Fee";
// Delete the following lines.
CALCFIELDS("Interest Amount");
IF "Interest Amount" <> 0 THEN BEGIN
GLAcc.GET(CustPostingGroup."Interest Account");
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
VATInterest := VATPostingSetup."VAT %";
END ELSE
VATInterest := 0;
// End of the deleted lines.
IF ISSERVICETIER THEN BEGIN
NNC_InterestAmountTotal := 0;
NNC_RemainingAmountTotal := 0;
NNC_VATAmountTotal := 0;
...Ersättningskod
... IF GLAcc.GET(CustPostingGroup."Additional Fee Account") THEN BEGIN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
AddFeeInclVAT := "Additional Fee" * (1 + VATPostingSetup."VAT %"/100);
END ELSE
AddFeeInclVAT := "Additional Fee";
// Add the following lines.
CALCFIELDS("Interest Amount","VAT Amount");
IF ("Interest Amount" <> 0) AND ("VAT Amount" <> 0) THEN BEGIN
GLAcc.GET(CustPostingGroup."Interest Account");
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
VATInterest := VATPostingSetup."VAT %";
Interest:=
(ReminderInterestAmount +
"VAT Amount" +"Issued Reminder Header"."Additional Fee" - AddFeeInclVAT) / (VATInterest / 100 + 1);
END ELSE BEGIN
Interest:= "Interest Amount";
VATInterest := 0;
END;
// End of the added lines.
IF ISSERVICETIER THEN BEGIN
NNC_InterestAmountTotal := 0;
NNC_RemainingAmountTotal := 0;
NNC_VATAmountTotal := 0;
... -
Ändra koden i Data objekt nummer 4 avsnitt i rapporten Betalningspåminnelse statistik (117) på följande sätt:
Befintlig kod 1...}
CONTROLS
{
{ 45 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9;
CaptionML=ENU=Interest Amount;
// Delete the following line.
SourceExpr=(ReminderInterestAmount + "VAT Amount" +"Issued Reminder Header"."Additional Fee" - AddFeeInclVAT)/(VATInterest/100 +1);
// End of the deleted line.
AutoFormatType=1;
AutoFormatExpr="Issued Reminder Line".GetCurrencyCodeFromHeader;
DataSetFieldName=ReminderInterestAmount____VAT_Amount____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100__1_ }
{ 47 ;Label ;6090 ;0 ;4200 ;423 ;ParentControl=45;
FontSize=9;
...Ersättningskod 1
...}
CONTROLS
{
{ 45 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9;
CaptionML=ENU=Interest Amount;
// Add the following line.
SourceExpr=Interest;
// End of the added line.
AutoFormatType=1;
AutoFormatExpr="Issued Reminder Line".GetCurrencyCodeFromHeader;
DataSetFieldName=ReminderInterestAmount____VAT_Amount____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100__1_ }
{ 47 ;Label ;6090 ;0 ;4200 ;423 ;ParentControl=45;
FontSize=9;
...Befintlig kod 2
...CONTROLS
{
{ 44 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9;
FontBold=Yes;
CaptionML=ENU=Total;
// Delete the following line.
SourceExpr="Remaining Amount" + ReminderInterestAmount + "VAT Amount"-(ReminderInterestAmount + "VAT Amount" +"Issued Reminder Header"."Additional Fee" - AddFeeInclVAT)/(VATInterest/100+1)*VATInterest/100 + "Issued Reminder Header"."Additional Fee" - AddFeeInclVAT;
// End of the deleted line.
AutoFormatType=1;
AutoFormatExpr="Issued Reminder Line".GetCurrencyCodeFromHeader;
DataSetFieldName=Remaining_Amount____ReminderInterestAmount____VAT_Amount___ReminderInterestAmount____VAT_Amount____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100_1__VATInterest_100____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT }
{ 56 ;TextBox ;6090 ;0 ;4200 ;423 ;FontSize=9;
FontBold=Yes;
...Ersättningskod 2
... CONTROLS
{
{ 44 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9;
FontBold=Yes;
CaptionML=ENU=Total;
// Add the following line.
SourceExpr="Remaining Amount" + ReminderInterestAmount;
// End of the added line.
AutoFormatType=1;
AutoFormatExpr="Issued Reminder Line".GetCurrencyCodeFromHeader;
DataSetFieldName=Remaining_Amount____ReminderInterestAmount____VAT_Amount___ReminderInterestAmount____VAT_Amount____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100_1__VATInterest_100____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT }
{ 56 ;TextBox ;6090 ;0 ;4200 ;423 ;FontSize=9;
FontBold=Yes;
... -
Ändra koden i Data objekt nummer 1 i rapporten Betalningspåminnelse statistik (122) enligt följande:
Befintlig kod...IF GLAcc.GET(CustPostingGroup."Additional Fee Account") THEN BEGIN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
AddFeeInclVAT := "Additional Fee" * (1 + VATPostingSetup."VAT %"/100);
END ELSE
AddFeeInclVAT := "Additional Fee";
// Delete the following lines.
CALCFIELDS("Interest Amount");
IF "Interest Amount" <> 0 THEN BEGIN
GLAcc.GET(CustPostingGroup."Interest Account");
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
VATInterest := VATPostingSetup."VAT %";
END ELSE
VATInterest := 0;
// End of the deleted lines.
IF ISSERVICETIER THEN BEGIN
NNC_Interest := 0;
NNC_TotalLCY := 0;
NNC_VATAmount := 0;
NNC_TotalLCYVATAmount := 0;
...Ersättningskod
...IF GLAcc.GET(CustPostingGroup."Additional Fee Account") THEN BEGIN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
AddFeeInclVAT := "Additional Fee" * (1 + VATPostingSetup."VAT %"/100);
END ELSE
AddFeeInclVAT := "Additional Fee";
// Add the following lines.
CALCFIELDS("Interest Amount","VAT Amount");
IF ("Interest Amount" <> 0) AND ("VAT Amount" <> 0) THEN BEGIN
GLAcc.GET(CustPostingGroup."Interest Account");
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group");
VATInterest := VATPostingSetup."VAT %";
Interest:=
(ReminderInterestAmount +
"VAT Amount" +"Reminder Header"."Additional Fee" - AddFeeInclVAT) / (VATInterest / 100 + 1);
END ELSE BEGIN
Interest:= "Interest Amount";
VATInterest := 0;
END;
IF VATInterest <> 0 THEN
// End of the added lines.
IF ISSERVICETIER THEN BEGIN
NNC_Interest := 0;
NNC_TotalLCY := 0;
NNC_VATAmount := 0;
NNC_TotalLCYVATAmount := 0;
... -
Ändra koden i Data objekt nummer 2 i rapporten Betalningspåminnelse statistik (122) enligt följande:
Befintlig kod... }
{ PROPERTIES
{
DataItemIndent=1;
DataItemTable=Table2000000026;
// Delete the following line.
DataItemTableView=SORTING(Number) WHERE(Number=CONST(1));
// End of the deleted line.
DataItemVarName=PageCounter;
}
SECTIONS
{
{ PROPERTIES
...Ersättningskod
...}
{ PROPERTIES
{
DataItemIndent=1;
DataItemTable=Table2000000026;
// Add the following lines.
DataItemTableView=SORTING(Number)
WHERE(Number=CONST(1));
// End of the added lines.
DataItemVarName=PageCounter;
}
SECTIONS
{
{ PROPERTIES
... -
Ändra koden i Data objekt nummer 3 i rapporten Betalningspåminnelse statistik (122) enligt följande:
Befintlig kod...}
{ PROPERTIES
{
DataItemIndent=2;
DataItemTable=Table2000000026;
// Delete the following line.
DataItemTableView=SORTING(Number) WHERE(Number=FILTER(1..));
// End of the deleted line.
DataItemVarName=DimensionLoop;
OnPreDataItem=BEGIN
IF NOT ShowDim THEN
CurrReport.BREAK;
DocDim.SETRANGE("Table ID",DATABASE::"Reminder Header");
...Ersättningskod
...}
{ PROPERTIES
{
DataItemIndent=2;
DataItemTable=Table2000000026;
// Add the following lines.
DataItemTableView=SORTING(Number)
WHERE(Number=FILTER(1..));
// End of the added lines.
DataItemVarName=DimensionLoop;
OnPreDataItem=BEGIN
IF NOT ShowDim THEN
CurrReport.BREAK;
DocDim.SETRANGE("Table ID",DATABASE::"Reminder Header");
... -
Ändra koden i Data objekt nummer 5 i rapporten Betalningspåminnelse statistik (122) enligt följande:
Befintlig kod... }
{ PROPERTIES
{
DataItemIndent=2;
DataItemTable=Table296;
// Delete the following line.
DataItemTableView=SORTING(Reminder No.,Line No.) WHERE(Line Type=FILTER(<>Not Due));
// End of the deleted line.
OnPreDataItem=BEGIN
IF ISSERVICETIER THEN
TotalVATAmount := 0;
IF FIND('+') THEN BEGIN
...Ersättningskod
...}
{ PROPERTIES
{
DataItemIndent=2;
DataItemTable=Table296;
// Add the following lines.
DataItemTableView=SORTING(Reminder No.,Line No.)
WHERE(Line Type=FILTER(<>Not Due));
// End of the added lines.
OnPreDataItem=BEGIN
IF ISSERVICETIER THEN
TotalVATAmount := 0;
IF FIND('+') THEN BEGIN
... -
Ändra koden i Data objekt nummer 5 avsnitt i rapporten Betalningspåminnelse statistik (122) enligt följande:
Befintlig kod 1... }
CONTROLS
{
{ 17 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9;
CaptionML=ENU=Interest Amount;
// Delete the following line.
SourceExpr=(ReminderInterestAmount + "VAT Amount" +"Reminder Header"."Additional Fee" - AddFeeInclVAT)/(VATInterest/100 +1);
// End of the deleted line.
AutoFormatType=1;
AutoFormatExpr="Reminder Line".GetCurrencyCodeFromHeader;
DataSetFieldName=ReminderInterestAmount____VAT_Amount____Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100__1_ }
{ 20 ;Label ;6090 ;0 ;4200 ;423 ;ParentControl=17;
FontSize=9;
...Ersättningskod 1
... }
CONTROLS
{
{ 17 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9;
CaptionML=ENU=Interest Amount;
// Add the following line.
SourceExpr=Interest;
// End of the added line.
AutoFormatType=1;
AutoFormatExpr="Reminder Line".GetCurrencyCodeFromHeader;
DataSetFieldName=ReminderInterestAmount____VAT_Amount____Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100__1_ }
{ 20 ;Label ;6090 ;0 ;4200 ;423 ;ParentControl=17;
FontSize=9;
...Befintlig kod 2
...}
CONTROLS
{
{ 29 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9;
FontBold=Yes;
// Delete the following line.
SourceExpr="Remaining Amount" + ReminderInterestAmount + "VAT Amount"-(ReminderInterestAmount + "VAT Amount" +"Reminder Header"."Additional Fee" - AddFeeInclVAT)/(VATInterest/100+1)*VATInterest/100 + "Reminder Header"."Additional Fee" - AddFeeInclVAT;
// End of the deleted line.
AutoFormatType=1;
AutoFormatExpr="Reminder Line".GetCurrencyCodeFromHeader;
DataSetFieldName=Remaining_Amount____ReminderInterestAmount____VAT_Amount___ReminderInterestAmount____VAT_Amount____Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100_1__VATInterest_100____Reminder_Header___Additional_Fee____AddFeeInclVAT }
{ 43 ;TextBox ;6090 ;0 ;4200 ;423 ;FontSize=9;
FontBold=Yes;
...Ersättningskod 2
...}
CONTROLS
{
{ 29 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9;
FontBold=Yes;
// Add the following line.
SourceExpr="Remaining Amount" + ReminderInterestAmount;
// End of the added line.
AutoFormatType=1;
AutoFormatExpr="Reminder Line".GetCurrencyCodeFromHeader;
DataSetFieldName=Remaining_Amount____ReminderInterestAmount____VAT_Amount___ReminderInterestAmount____VAT_Amount____Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100_1__VATInterest_100____Reminder_Header___Additional_Fee____AddFeeInclVAT }
{ 43 ;TextBox ;6090 ;0 ;4200 ;423 ;FontSize=9;
FontBold=Yes;
...
Förutsättningar
Du måste ha någon av följande produkter som har installerat den här snabbkorrigeringen:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 SP1
Information om borttagning
Du kan inte ta bort den här snabbkorrigeringen.
Status
Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".
Obs! Detta är en "SNABBPUBLICERING"-artikel skapad direkt från Microsoft support-organisationen. Informationen häri tillhandahålls i befintligt skick som svar på nya problem. Till följd av hastigheten för att göra det tillgängligt kan materialet innehålla typografiska fel och kan ändras när som helst utan föregående meddelande. Se Villkoren för användningför andra överväganden.