Withholding tax beregnes feil hvis du bruker en base ekskludert merverdiavgift i den italienske versjonen av Microsoft Dynamics NAV 5.0 Service Pack 1


Denne artikkelen gjelder for Microsoft Dynamics NAV for italiensk (den)-språk.

Symptomer


Hvis du har en grunnleggende ekskludert merverdiavgift-beløpet som er angitt i den italienske versjonen av Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1), beregnes withholding tax feil.

Oppløsning


Informasjon om hurtigreparasjon

En støttet hurtigreparasjon er nå tilgjengelig fra Microsoft. Det er imidlertid bare ment å løse problemet som er beskrevet i denne artikkelen. Bruk den bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan gjennomgå ytterligere testing. Hvis du ikke er alvorlig påvirket av dette problemet, anbefaler vi derfor at du venter på neste oppdateringspakke for Microsoft Dynamics NAV eller den neste versjonen av Microsoft Dynamics NAV som inneholder denne hurtigreparasjonen.

Obs! I spesielle tilfeller avgifter som vanligvis påløper for støtte samtaler kan avbrytes hvis en kundestøttemedarbeider for Microsoft Dynamics og beslektede produkter avgjør at en bestemt oppdatering løser problemet. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av den gjeldende oppdateringen.


Installasjonsinformasjon

Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre, men de endrer ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov.

Obs! Før du installerer denne hurtigreparasjonen, må du kontrollere at alle brukere av Microsoft Navision-klienten er logget av systemet. Dette inkluderer Microsoft Navision Application tjenester (NAS) client-brukere. Du skal bare klient-brukeren som er logget på når du implementerer denne hurtigreparasjonen.

Hvis du vil implementere denne hurtigreparasjonen, må du ha en utviklerlisens.

Vi anbefaler at kontoen i vinduet Windows-pålogging eller i vinduet Database-pålogging være tildelt "SUPER" rolle-ID. Hvis brukerkontoen ikke kan tilordnes "SUPER" rolle-IDen, må du kontrollere at brukerkontoen har følgende tillatelser:
  • Endre-tillatelse for objektet du vil endre.
  • Tilgangsnivået for systemet objekt-IDen til 5210 objektet og systemet objekt-ID-9015 -objekt.


Obs! Du har ikke tilgangsrettigheter til datalagre med mindre du har til å utføre data reparasjon.

Kodeendringer

Obs! Alltid løser teste koden i et kontrollert miljø før du installerer hurtigreparasjoner til produksjonsdatamaskiner for.
Hvis du vil løse dette problemet, gjør du følgende:
  1. Endre koden i CreateTmpWithhSocSec -funksjonen i Withholding – bidrag kodeenhet (12101) som følger:
    Eksisterende kode 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
    ...
    Ny kode 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
    ...
    Eksisterende kode 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
    ...
    Ny kode 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. Opprette en ny funksjon i FindApplyingDocument . Følg disse trinnene:
    1. Legge til en ny lokal parameter, og angi parameteren på følgende måte:
      • Varians: Ja
      • Navn: VendLedgEntry
      • DataType: post
      • Undertype: Leverandørpost
    2. Legge til en ny lokal parameter, og angi parameteren på følgende måte:
      • Var: No
      • Navn: ComputedWithholdingTax
      • DataType: - post
      • Undertype: beregnet Withholding Tax
    3. Legge til en ny lokal variabel, og deretter angi variabelen som følger:
      • Navn: DtldVendLedgEntry
      • DataType: - post
      • Undertype: Detaljert leverandørpost. Oppføringen
    4. Legge til en ny lokal variabel, og deretter angi variabelen som følger:
      • Navn: TempDtldVendLedgEntry
      • DataType: midlertidig post
      • Undertype: Detaljert leverandørpost. Oppføringen
    5. Legg til følgende kode i GetRemainingWithhTaxAmount -funksjonen:
      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. Opprette en ny funksjon i GetBaseExcludedAmount . Følg disse trinnene:
    1. Legge til en ny lokal parameter, og angi parameteren på følgende måte:
      • Var: No
      • Navn: ComputedWithholdingTax
      • DataType: post
      • Undertype: beregnet Withholding Tax
    2. Angi en returvariabelen som følger:
      • Returtype: Desimal
    3. Legge til en ny lokal variabel, og deretter angi variabelen som følger:
      • Navn: VendLedgEntry
      • DataType: post
      • Undertype: Leverandørpost
    4. Legge til en ny lokal variabel, og deretter angi variabelen som følger:
      • Navn: BaseExcludedAmount
      • DataType: desimaltall
    5. Legg til følgende kode i GetBaseExcludedAmount -funksjonen:
      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. Opprette en ny funksjon i GetNonTaxableAmount . Følg disse trinnene:
    1. Legge til en ny lokal parameter, og angi parameteren på følgende måte:
      • Var: No
      • Navn: ComputedWithholdingTax
      • DataType: post
      • Undertype: beregnet Withholding Tax
    2. Angi en returvariabelen som følger:
      • Returtype: Desimal
    3. Legge til en ny lokal variabel, og deretter angi variabelen som følger:
      • Navn: VendLedgEntry
      • DataType: post
      • Undertype: Leverandørpost
    4. Legge til en ny lokal variabel, og deretter angi variabelen som følger:
      • Navn: NonTaxableAmount
      • DataType: desimaltall
    5. Legg til følgende kode i GetNonTaxableAmount -funksjonen:
      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);

Forutsetninger

Du må ha den italienske versjonen av Microsoft Dynamics NAV 5.0 Service Pack 1 installert for å bruke denne hurtigreparasjonen.

Informasjon om fjerning

Du kan ikke fjerne denne hurtigreparasjonen.

Hvis du vil ha mer informasjon


Hvis du vil ha mer informasjon, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
974684 den italienske versjonen av Microsoft Dynamics NAV trekker en feil withholding tax-beløpet når du utfører en betaling på en kjøpsfaktura

Status


Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Obs! Dette er en "RASKT PUBLISERE" artikkel opprettet direkte fra innenfor organisasjonen Microsoft Kundestøtte. Informasjonen i dette dokumentet tilbys som-er som svar på nye problemer. Som et resultat av hastigheten i å gjøre den tilgjengelig materialene kan inkludere typografiske feil, og den kunne bli revidert når som helst uten varsel. Se Vilkårene for Bruk for andre hensyn.