Quellensteuer falsch berechnet verwenden Sie Basis Mehrwertsteuer in der italienischen Version von Microsoft Dynamics NAV 5.0 Service Pack 1 ausgeschlossen


Dieser Artikel bezieht sich auf Microsoft Dynamics NAV für das Gebietsschema Italienisch (it).

Problembeschreibung


Haben Sie eine Basis ausgeschlossenen Mehrwertsteuer Geldbetrag in der italienischen Version von Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) Quellensteuern falsch berechnet.

Problemlösung


Hotfix-Informationen

Ein unterstützter Hotfix ist inzwischen von Microsoft erhältlich. Allerdings ist es lediglich zur Behebung dieses Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise noch getestet. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, dass Sie warten auf das nächste Servicepack für Microsoft Dynamics NAV oder die nächste Microsoft Dynamics NAV-Version, die diesen Hotfix enthält.

Hinweis In besonderen Fällen bestimmt Gebühren fallen normalerweise Support aufrufen Wenn Experte Support für Microsoft Dynamics und zugehörige Produkte storniert werden können, dass ein bestimmtes Update Ihr Problem behebt. Die normalen Supportkosten gilt für zusätzliche Supportfragen und Probleme, die nicht für das betreffende Update qualifizieren.


Informationen zur Installation

Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen.

Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Navision-Clientbenutzer vom System abgemeldet werden. Dies gilt auch für Clientbenutzer der Microsoft Navision Application Services (NAS). Sie sollte nur-Client-Benutzers, der angemeldet ist, wenn Sie diesen Hotfix installieren.

Muss eine Entwicklerlizenz verfügen, um diesen Hotfix installieren können.

Es wird empfohlen, das Benutzerkonto im Fenster Windows-Benutzernamen oder im Fenster Datenbank-Anmeldenamen "SUPER" Rollen-ID zugewiesen werden Wenn das Benutzerkonto die Rollen-ID "SUPER" nicht zugeordnet werden kann, müssen Sie sicherstellen, dass das Benutzerkonto die folgenden Berechtigungen verfügt:
  • Änderungsberechtigung für das Objekt, das Sie ändern.
  • Ausführungsberechtigung für System Object ID 5210 und System Object ID 9015 -Objekt.


Hinweis Sie müssen keine Rechte für die Datenspeicher haben, es sei denn, Sie müssen eine Datenreparatur durchführen.

Ändern von Code

Hinweis Testen Sie Programmcodeverbesserungen generell erst in einem Testsytem, bevor Sie sie im Produktionssystem verwenden.
Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:
  1. Ändern Sie den Code in der Funktion CreateTmpWithhSocSec in der Quellensteuer-Beitrag Codeunit (12101) wie folgt:
    Vorhandener 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
    ...
    Neuer 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
    ...
    Vorhandener 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
    ...
    Neuer 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. Erstellen Sie eine neue FindApplyingDocument -Funktion. Gehen Sie hierzu folgendermaßen vor:
    1. Fügen Sie einen neuen lokalen Parameter, und geben Sie den Parameter wie folgt:
      • Var: Ja
      • Name: Type
      • Datentyp: Datensatz
      • Untertyp: Kreditorenposten
    2. Fügen Sie einen neuen lokalen Parameter, und geben Sie den Parameter wie folgt:
      • Var: No
      • Name: ComputedWithholdingTax
      • Datentyp: Datensatz
      • Untertyp: Quellensteuer berechnet
    3. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt:
      • Name: DtldVendLedgEntry
      • Datentyp: Datensatz
      • Untertyp: Detaillierte Kreditorenposten. Eintrag
    4. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt:
      • Name: TempDtldVendLedgEntry
      • Datentyp: temporärer Datensatz
      • Untertyp: Detaillierte Kreditorenposten. Eintrag
    5. Fügen Sie den folgenden Code in der Funktion 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. Erstellen Sie eine neue GetBaseExcludedAmount -Funktion. Gehen Sie hierzu folgendermaßen vor:
    1. Fügen Sie einen neuen lokalen Parameter, und geben Sie den Parameter wie folgt:
      • Var: No
      • Name: ComputedWithholdingTax
      • Datentyp: Datensatz
      • Untertyp: Quellensteuer berechnet
    2. Geben Sie eine Rückgabevariable folgendermaßen an:
      • Rückgabetyp: Decimal
    3. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt:
      • Name: Type
      • Datentyp: Datensatz
      • Untertyp: Kreditorenposten
    4. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt:
      • Name: BaseExcludedAmount
      • Datentyp: Dezimalzahl
    5. Fügen Sie den folgenden Code in der Funktion 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. Erstellen Sie eine neue GetNonTaxableAmount -Funktion. Gehen Sie hierzu folgendermaßen vor:
    1. Fügen Sie einen neuen lokalen Parameter, und geben Sie den Parameter wie folgt:
      • Var: No
      • Name: ComputedWithholdingTax
      • Datentyp: Datensatz
      • Untertyp: Quellensteuer berechnet
    2. Geben Sie eine Rückgabevariable folgendermaßen an:
      • Rückgabetyp: Decimal
    3. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt:
      • Name: Type
      • Datentyp: Datensatz
      • Untertyp: Kreditorenposten
    4. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt:
      • Name: NonTaxableAmount
      • Datentyp: Dezimalzahl
    5. Fügen Sie den folgenden Code in der Funktion 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);

Voraussetzungen

Sie müssen die italienische Version von Microsoft Dynamics NAV 5.0 Service Pack 1 installiert, um diesen Hotfix anwenden.

Informationen zur Deinstallation

Dieser Hotfix kann nicht entfernt werden.

Weitere Informationen


Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
974684 aufgrund die italienische Version von Microsoft Dynamics NAV falsch Quellensteuerbetrag beim Verarbeiten einer Zahlungsausgangs einer Rechnung

Status


Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.
Hinweis Dies ist ein im Schnellverfahren veröffentlichter Artikel, der direkt in der Microsoft Support-Organisation erstellt wurde. Die hierin enthaltenen Informationen werden ohne Mängelgewähr in Reaktion auf neue Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung kann das Material möglicherweise typografische Fehler enthalten und jederzeit ohne vorherige Ankündigung geändert werden. Weitere Hinweise finden Sie unter Geschäftsbedingungen .