Mva på feil måte når du bruker en faktura på en kreditnota i den italienske versjonen av Microsoft Dynamics NAV 2009

Mal: CPR - Navision kode reparasjon mal

Feil #: 204166 (Innholdsvedlikehold)

Denne artikkelen beskriver et problem når du utligner en faktura som inneholder urealisert mva., og negative linjen til en kreditnota i den italienske versjonen av Microsoft Dynamics NAV 2009. Dette problemet oppstår fortsatt etter implementering av rettelsen av KB 2882952.

Følg trinnene i delen kodeendringer for å løse dette problemet. Dette problemet oppstår i følgende produkter:

  • Den italienske versjonen av Microsoft Dynamics NAV 2009 R2

  • Den italienske versjonen av Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

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 2009 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.

Hvis denne hurtigreparasjonen ikke er allment tilgjengelig for nedlasting (det vil si at det ikke er oppgitt en offentlig URL-adresse for hurtigreparasjonen i denne artikkelen), krever distribusjon godkjenning fra leder, ansvarlig gruppemedlem eller teknisk leder, og følgende informasjon gjelder:

  • Kunder må ha opplevd feilen som er nevnt i delen "Symptomer", for å få hurtigreparasjonen.

  • Du må holde rede på kundene du sender hurtigreparasjonen til, og skaffe dem neste oppdateringspakke når den blir tilgjengelig (Hvis en oppdateringspakke gis ut).

Denne hurtigreparasjonen er ikke planlagt å bli inkludert i en oppdateringspakke for Microsoft Dynamics NAV.

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. De endrer imidlertid 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 brukerne i Microsoft Dynamics NAV-klienten er logget av systemet. Dette inkluderer tjenester for Microsoft Dynamics NAV Application Server (NAS). 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

    -objektet.

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 nøklene i tabellen Mva-post (254) som følger:
    Eksisterende kode

    ...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;
    ...

    Ny kode

    ...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;
    ...
  2. Endre koden i funksjonen GetUnRealizedVATPart i tabellen Mva-post (254) som følger:
    Eksisterende kode 1

    ...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
    ...

    Ny kode 1

    ...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
    ...

    Eksisterende kode 2

    ...(("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
    ...

    Ny kode 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
    ...
  3. Endre koden i funksjonen SalesInvInclPrepmt i tabellen Mva-post (254) som følger:
    Eksisterende kode

    ...EXIT(RemainingAmount - SettledAmount);
    EXIT(RemainingAmount - (SettledAmount / CurrencyFactor));
    END;

    BEGIN
    END.
    }
    }
    ...

    Ny kode

    ...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.
    }
    }
    ...
  4. Endre koden i CustUnrealizedVAT -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:
    Eksisterende kode 1

    ...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.");
    ...

    Ny kode 1

    ...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.");
    ...

    Eksisterende kode 2

    ...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",
    ...

    Ny kode 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",
    ...

    Eksisterende kode 3

    ...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;
    ...

    Ny kode 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;
    ...
  5. Endre koden i VendUnrealizedVAT -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:
    Eksisterende kode 1

    ...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.");
    ...

    Ny kode 1

    ...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.");
    ...

    Eksisterende kode 2

    ...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
    ...

    Ny kode 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
    ...

    Eksisterende kode 3

    ...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;
    ...

    Ny kode 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;
    ...


Forutsetninger

Du må ha én av de følgende programmene installert for å bruke denne hurtigreparasjonen:

  • Italiensk lokalisering av Microsoft Dynamics NAV 2009 R2

  • Italiensk lokalisering av Microsoft Dynamics NAV 2009 SP1

Informasjon om fjerning

Du kan ikke fjerne denne hurtigreparasjonen.

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Referanser

VSFT DynamicsNAVSE: 352333

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 Brukfor andre hensyn.

Forfatter: avannini
Writer: v-six
Teknisk redaktør: avannini
Editor:

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×