在意大利语版本的 Microsoft Dynamics 导航 2009年的贷方通知单对应用销售发票时正确过帐增值税

模板︰ CPR-Navision 代码修补程序模板

错误 #: 204166 (内容维护)

本文描述的问题,当您应用包含未实现的增值税和负向 Microsoft Dynamics 导航 2009年意大利版中的新的贷方通知单行的销售发票。实施 KB 2882952修正后仍然出现此问题。

按照在代码更改部分,若要解决此问题的步骤。下列产品中发生此问题︰

  • 意大利语版 Microsoft Dynamics 导航 2009 R2

  • 意大利语版 Microsoft Dynamics 导航 2009 Service Pack 1 (SP1)

解决方案

修补程序信息

受支持的修补程序现已从 Microsoft 推出。然而,它仅用于纠正本文中描述的问题。它仅应用于正经历此特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待下一个 Microsoft Dynamics 导航 2009 服务包 或包含此修复程序的下一步的 Microsoft Dynamics 导航版本。

注意: 在特殊情况下,可免收的支持电话,可免收如果技术支持专业人员对 Microsoft Dynamics 和相关的产品的费用确定某个特定的更新能够解决您的问题。照常收取支持费用将应用于其他支持问题和对于特定更新无法解决的问题。

如果此修补程序未放在网上供公共下载 (指本文中未提供此修复程序的公共 URL),分发需要技术组长、 问题上报小组成员或经理的批准并且以下信息适用︰

  • 要收到此修复程序,客户必须遇到"症状"一节中提到的错误。

  • 您必须跟踪客户向其发送此和可用 (如果发布服务包) 时提供他们的下一个 service pack。

此修补程序不计划将包含在 Microsoft Dynamics 导航服务包。

安装信息

Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保。这包括但不限于适销性或特定用途适用性的暗示担保。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能。但是,他们不会修改这些示例以提供额外的功能或构建过程以满足您的特定要求。

注意:安装此修复程序之前,请验证所有 Microsoft Dynamics 导航客户端用户都注销系统。这包括 Microsoft Dynamics 导航应用程序服务器 (NAS) 服务。要实现此修补程序时,在登录的唯一客户端用户。

若要实现此修补程序,必须使用开发人员许可证。

我们建议在 Windows 登录窗口或数据库登录窗口中的用户帐户将分配该"超级"角色 id。如果不能将用户帐户分配成"超级"角色 ID,则必须验证用户帐户具有下列权限:

  • 您将更改该对象的修改权限。

  • 为系统对象 ID™ 5210对象和系统对象 ID 9015执行权限

    对象。

注意:您不需要具有对数据存储区的权限,除非您需要执行数据修复。

代码更改

注意:始终测试代码修复在受控环境中应用之前与您的生产计算机的修补程序。

若要解决此问题,请执行以下步骤:

  1. 更改密钥中增值税条目表 (254) 中的代码,如下所示︰
    现有代码

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

    替换代码

    ...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. 更改增值税条目表 (254) 中的GetUnRealizedVATPart函数中的代码,如下所示︰
    现有代码 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
    ...

    替换代码 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
    ...

    现有代码 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
    ...

    替换代码 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. 更改增值税条目表 (254) 中的 SalesInvInclPrepmt 函数中的代码,如下所示︰
    现有代码

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

    BEGIN
    END.
    }
    }
    ...

    替换代码

    ...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. 更改代码中的CustUnrealizedVAT函数中 Gen.Jnl。-开机自检线路 Codeunit (12),如下所示︰
    现有代码 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.");
    ...

    替换代码 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.");
    ...

    现有代码 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",
    ...

    替换代码 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",
    ...

    现有代码 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;
    ...

    替换代码 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. 更改代码中的VendUnrealizedVAT函数中 Gen.Jnl。-开机自检线路 Codeunit (12),如下所示︰
    现有代码 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.");
    ...

    替换代码 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.");
    ...

    现有代码 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
    ...

    替换代码 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
    ...

    现有代码 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;
    ...

    替换代码 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;
    ...


系统必备组件

您必须具有要应用此修补程序的安装以下产品之一︰

  • Microsoft Dynamics 导航 2009 R2 的意大利本地化

  • Microsoft Dynamics 导航 2009 SP1 的意大利本地化

删除信息

您不能删除此修补程序。

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

参考资料

VSFT DynamicsNAVSE: 352333

注意:这是直接从创建 Microsoft 支持部门内的"快速发布"的文章。此处包含的信息是作为为了响应新出现的问题而提供的。由于以使其可用的速度,而材料可能包含印刷错误,恕不另行通知,随时可能进行修订。其他考虑因素,请参阅使用条款

作者︰ avannini
Writer: v-six
技术审阅︰ avannini
Editor:

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×