Bronbelasting wordt onjuist berekend als u dat een basis van uitgesloten belasting toegevoegde waarde in de Italiaanse versie van Microsoft Dynamics NAV 5.0 Service Pack 1


Dit artikel is van toepassing op Microsoft Dynamics NAV voor de taalinstelling Italiaans (it).

Symptomen


Als u een basis uitgesloten btw-bedrag dat is opgegeven in de Italiaanse versie van Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) hebt, bronbelasting verkeerd berekend.

Oplossing


Informatie over de hotfix

Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter alleen bedoeld om het probleem dat wordt beschreven in dit artikel. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige problemen ondervindt, is het daarom raadzaam te wachten op het volgende servicepack voor Microsoft Dynamics NAV of de volgende Microsoft Dynamics NAV versie waarin deze hotfix is opgenomen.

Opmerking In speciale gevallen kunnen kosten die verbonden zijn aan ondersteuningsoproepen ondersteuning worden geannuleerd als een medewerker van Technical Support voor Microsoft Dynamics en verwante producten bepaalt dat een specifieke update de oplossing van uw probleem. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.


Informatie over de installatie

Microsoft verstrekt programmeervoorbeelden uitsluitend ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend met de programmeertaal die wordt aangetoond en met de hulpprogramma's die worden gebruikt bent voor het maken van en naar procedures voor foutopsporing. Ondersteuningstechnici van Microsoft kunnen voor uitleg over de functionaliteit van een bepaalde procedure, maar zij zullen deze voorbeelden bieden extra functionaliteit of desgewenst uw specifieke vereisten niet wijzigen.

Opmerking Voordat u deze hotfix hebt geïnstalleerd, controleert u of dat alle gebruikers van Microsoft Navision-clients zijn afgemeld bij het systeem. Dit geldt ook voor gebruikers van Microsoft Navision Application Services (NAS)-clients. U moet de alleen clientgebruiker die is aangemeld wanneer u deze hotfix gaat implementeren.

Als u deze hotfix gaat implementeren, hebt u een ontwikkelaarslicentie voor.

Is raadzaam dat de gebruikersaccount in het venster Windows-aanmeldingen of Databaseaanmeldingen de rol-id 'SUPER'. Als de gebruikersaccount kan worden toegewezen als de ID 'SUPER' rol, moet u controleren of de gebruikersaccount de volgende machtigingen heeft:
  • De machtiging wijzigen voor het object dat u wijzigt.
  • De machtiging uitvoeren voor het object System Object ID 5210 en voor het object System Object ID 9015 .


Opmerking Er geen rechten voor de opgeslagen gegevens hebben, tenzij u gegevens herstellen.

Codewijzigingen

Opmerking Altijd test code worden opgelost in een testomgeving voordat u de correcties in de productieomgeving.
U kunt dit probleem oplossen door de volgende stappen uit te voeren:
  1. De code in de functie CreateTmpWithhSocSec in de bronbelasting – bijdrage codeunit (12101) als volgt wijzigen:
    Bestaande code 1
    ...TmpWithholdingSocSec."Total Amount" := GetRemainingWithhTaxAmount(ComputedWithholdingTax);
    // IT0001.end

    // Delete the following lines.
    TmpWithholdingSocSec."Base - Excluded Amount" := ComputedWithholdingTax."Remaining - Excluded Amount";
    TmpWithholdingSocSec.VALIDATE("Non Taxable Amount By Treaty",ComputedWithholdingTax."Non Taxable Remaining Amount");
    // End of the lines.

    IF ComputedSocSec.FIND('-') THEN BEGIN
    ...
    Nieuwe code 1
    ...TmpWithholdingSocSec."Total Amount" := GetRemainingWithhTaxAmount(ComputedWithholdingTax);
    // IT0001.end

    // Add the following lines.
    TmpWithholdingSocSec."Base - Excluded Amount" := GetBaseExcludedAmount(ComputedWithholdingTax);
    TmpWithholdingSocSec.VALIDATE("Non Taxable Amount By Treaty",GetNonTaxableAmount(ComputedWithholdingTax));
    // End of the lines.

    IF ComputedSocSec.FIND('-') THEN BEGIN
    ...
    Bestaande code 2
    ...TmpWithholdingSocSec."Base - Excluded Amount" := CurrencyExchRate.ExchangeAmtFCYToFCY(
    "Document Date",
    ComputedWithholdingTax."Currency Code",
    "Currency Code",

    // Delete the following line.
    ComputedWithholdingTax."Remaining - Excluded Amount");

    TmpWithholdingSocSec.VALIDATE("Non Taxable Amount By Treaty",CurrencyExchRate.ExchangeAmtFCYToFCY(

    "Document Date",
    ComputedWithholdingTax."Currency Code",
    "Currency Code",

    // Delete the following line.
    ComputedWithholdingTax."Non Taxable Remaining Amount"))

    ;

    IF ComputedSocSec.FIND('-') THEN BEGIN
    ...
    Vervangende code 2
    ...TmpWithholdingSocSec."Base - Excluded Amount" := CurrencyExchRate.ExchangeAmtFCYToFCY(
    "Document Date",
    ComputedWithholdingTax."Currency Code",
    "Currency Code",

    // Add the following line.
    GetBaseExcludedAmount(ComputedWithholdingTax));

    TmpWithholdingSocSec.VALIDATE("Non Taxable Amount By Treaty",CurrencyExchRate.ExchangeAmtFCYToFCY(

    "Document Date",
    ComputedWithholdingTax."Currency Code",
    "Currency Code",

    // Add the following line.
    GetNonTaxableAmount(ComputedWithholdingTax)))

    ;

    IF ComputedSocSec.FIND('-') THEN BEGIN
    ...
  2. Maak een nieuwe FindApplyingDocument functie. Ga hiervoor als volgt te werk:
    1. Voeg een nieuwe lokale parameter en geeft u de parameter als volgt:
      • Var: Ja
      • Naam: VendLedgEntry
      • Gegevenstype: Record
      • Subtype: Leverancierspost
    2. Voeg een nieuwe lokale parameter en geeft u de parameter als volgt:
      • Var: No
      • Naam: ComputedWithholdingTax
      • Gegevenstype: Record
      • Subtype: bronbelasting wordt berekend
    3. Voeg een nieuwe lokale variabele en geef vervolgens de variabele:
      • Naam: DtldVendLedgEntry
      • Gegevenstype: Record
      • Subtype: Gedetail. Post
    4. Voeg een nieuwe lokale variabele en geef vervolgens de variabele:
      • Naam: TempDtldVendLedgEntry
      • Gegevenstype: tijdelijke Record
      • Subtype: Gedetail. Post
    5. Voeg de volgende code in de functie GetRemainingWithhTaxAmount :
      WITH VendLedgEntry DO BEGINRESET;
      SETRANGE("Document No.",ComputedWithholdingTax."Document No.");
      IF VendLedgEntry.FINDFIRST THEN BEGIN
      SETRANGE("Document No.");
      DtldVendLedgEntry.SETRANGE(Unapplied,FALSE);
      DtldVendLedgEntry.SETRANGE("Entry Type",DtldVendLedgEntry."Entry Type"::Application);
      DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.","Entry No.");
      IF DtldVendLedgEntry.FINDSET THEN
      REPEAT
      TempDtldVendLedgEntry := DtldVendLedgEntry;
      TempDtldVendLedgEntry.INSERT;
      UNTIL DtldVendLedgEntry.NEXT = 0;

      DtldVendLedgEntry.SETFILTER("Vendor Ledger Entry No.",'<>%1',"Entry No.");
      TempDtldVendLedgEntry.SETCURRENTKEY("Transaction No.","Vendor No.","Entry Type");
      IF TempDtldVendLedgEntry.FINDSET THEN
      REPEAT
      DtldVendLedgEntry.SETRANGE("Transaction No.",TempDtldVendLedgEntry."Transaction No.");
      IF DtldVendLedgEntry.FINDSET THEN
      REPEAT
      GET(DtldVendLedgEntry."Vendor Ledger Entry No.");
      IF NOT MARK THEN
      MARK(TRUE);
      UNTIL DtldVendLedgEntry.NEXT = 0;
      UNTIL TempDtldVendLedgEntry.NEXT = 0;
      END;
      END;
  3. Maak een nieuwe GetBaseExcludedAmount functie. Ga hiervoor als volgt te werk:
    1. Voeg een nieuwe lokale parameter en geeft u de parameter als volgt:
      • Var: No
      • Naam: ComputedWithholdingTax
      • Gegevenstype: Record
      • Subtype: bronbelasting wordt berekend
    2. Geef een resultaatwaarde als volgt:
      • Retourtype: decimale
    3. Voeg een nieuwe lokale variabele en geef vervolgens de variabele:
      • Naam: VendLedgEntry
      • Gegevenstype: Record
      • Subtype: Leverancierspost
    4. Voeg een nieuwe lokale variabele en geef vervolgens de variabele:
      • Naam: BaseExcludedAmount
      • Gegevenstype: decimaal
    5. Voeg de volgende code in de functie GetBaseExcludedAmount :
      FindApplyingDocument(VendLedgEntry,ComputedWithholdingTax);BaseExcludedAmount := ComputedWithholdingTax."Base - Excluded Amount";
      VendLedgEntry.MARKEDONLY(TRUE);
      IF VendLedgEntry.FINDSET THEN
      REPEAT
      ComputedWithholdingTax.SETRANGE("Document No.",VendLedgEntry."Document No.");
      IF ComputedWithholdingTax.FINDFIRST THEN
      BaseExcludedAmount -= ComputedWithholdingTax."Base - Excluded Amount";
      UNTIL VendLedgEntry.NEXT = 0;
      EXIT(BaseExcludedAmount);
  4. Maak een nieuwe GetNonTaxableAmount functie. Ga hiervoor als volgt te werk:
    1. Voeg een nieuwe lokale parameter en geeft u de parameter als volgt:
      • Var: No
      • Naam: ComputedWithholdingTax
      • Gegevenstype: Record
      • Subtype: bronbelasting wordt berekend
    2. Geef een resultaatwaarde als volgt:
      • Retourtype: decimale
    3. Voeg een nieuwe lokale variabele en geef vervolgens de variabele:
      • Naam: VendLedgEntry
      • Gegevenstype: Record
      • Subtype: Leverancierspost
    4. Voeg een nieuwe lokale variabele en geef vervolgens de variabele:
      • Naam: NonTaxableAmount
      • Gegevenstype: decimaal
    5. Voeg de volgende code in de functie GetNonTaxableAmount :
      FindApplyingDocument(VendLedgEntry,ComputedWithholdingTax);NonTaxableAmount := ComputedWithholdingTax."Non Taxable Amount By Treaty";
      VendLedgEntry.MARKEDONLY(TRUE);
      IF VendLedgEntry.FINDSET THEN
      REPEAT
      ComputedWithholdingTax.SETRANGE("Document No.",VendLedgEntry."Document No.");
      IF ComputedWithholdingTax.FINDFIRST THEN
      NonTaxableAmount -= ComputedWithholdingTax."Non Taxable Amount By Treaty";
      UNTIL VendLedgEntry.NEXT = 0;
      EXIT(NonTaxableAmount);

Vereisten

U moet de Italiaanse versie van Microsoft Dynamics NAV 5.0 Service Pack 1 is geïnstalleerd om deze hotfix te kunnen hebben.

Informatie over verwijderen

U kunt deze hotfix niet verwijderen.

Meer informatie


Voor meer informatie klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
974684 voor de Italiaanse versie van Microsoft Dynamics NAV trekt een bedrag onjuist bronbelasting wanneer u een betaling van een inkoopfactuur verwerken

Status


Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Opmerking Dit is een 'Snel publiceren' artikel dat rechtstreeks door het ondersteuningsteam van Microsoft is gemaakt. De informatie wordt geleverd zoals het is in reactie op de opkomende problemen. Omdat het artikel snel beschikbaar moest zijn, kunnen de materialen typografische fouten bevatten en op elk gewenst moment zonder voorafgaande kennisgeving worden gewijzigd. Zie de Gebruiksvoorwaarden voor andere overwegingen.