本文適用於 Microsoft 動態航行點 (它) 義大利文語言地區設定。
狀況
在 Microsoft 動態航行點 2009 年義大利文版本中,系統不會計算"支付金額 」 值,而且扣繳稅金額如預期般運作。下列產品中,就會發生這個問題︰
-
義大利文版本的 Microsoft 動態航行點 2009 R2
-
義大利文版本的 Microsoft 動態航行點 2009 Service Pack 1
解決方案
Hotfix 資訊
已經可以從 Microsoft 取得支援的 hotfix。不過,它只被用來修正本文所述的問題。它只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題不會嚴重影響,我們建議您等候下一步的 Microsoft 動態航行點 2009 service pack 或包含此 hotfix 的下一個 Microsoft 動態航行點版本。
注意 在特殊的情況下,通常會支援呼叫可能已被取消如果技術支援專業人員的 Microsoft 動態及相關的產品所產生的費用會決定某特定更新程式可以解決您的問題。收取支援費用會套用,如果有其他支援問題是,不能限定的特定更新程式。
安裝資訊
Microsoft 會提供程式設計範例僅供說明,而不做任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已相當熟悉使用的我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能。不過,它們不會修改這些範例以提供附加功能或建構程序來滿足您特定需求。
注意套用此 hotfix 之前,請確認所有的 Microsoft Navision 用戶端使用者會登出系統。這包括 Microsoft Navision 應用程式服務 (NAS) 用戶端的使用者。您應該是唯一的用戶端使用者已登入,當您實作此 hotfix。 若要實作此 hotfix,您必須有開發人員授權。 我們建議您在 Windows 登入] 視窗中的色彩,或資料庫登入] 視窗中的使用者帳戶被指派 「 進階 」 的角色識別碼。如果使用者帳戶不能指派為 「 超級 」 的角色識別碼,您必須確認使用者帳戶具有下列權限︰-
您將會變更物件的 [修改] 權限。
-
執行權限的系統物件 ID 5210物件和系統物件 ID 9015物件。
注意您沒有擁有資料存放區的權限,除非您需要執行資料修復。
程式碼變更
注意永遠測試程式碼修正在受控制的環境中才能套用到實際執行電腦的修正程式。
若要解決這個問題,請依照下列步驟執行:-
變更廠商物料單行資料表 (12182) 中的CreateVendBillWithhTax函式中的程式碼如下所示︰
現有的程式碼... VendBillWithhTax."Currency Code" := VendorBillHeader."Currency Code";
VendBillWithhTax."External Document No." := "External Document No."; VendBillWithhTax."Related Date" := VendorBillHeader."Posting Date"; VendBillWithhTax."Withholding Tax Code" := WithholdCode; VendBillWithhTax."Social Security Code" := SocialSecurityCode; // Delete the following line. VendBillWithhTax.VALIDATE("Total Amount","Remaining Amount"); VendBillWithhTax."Old Withholding Amount" := VendBillWithhTax."Withholding Tax Amount"; VendBillWithhTax."Old Free-Lance Amount" := VendBillWithhTax."Free-Lance Amount"; END; // IT0007.begin IF VendBillWithhTax."Withholding Tax Code" <> '' THEN ...取代程式碼
... VendBillWithhTax."Currency Code" := VendorBillHeader."Currency Code";
VendBillWithhTax."External Document No." := "External Document No."; VendBillWithhTax."Related Date" := VendorBillHeader."Posting Date"; VendBillWithhTax."Withholding Tax Code" := WithholdCode; VendBillWithhTax."Social Security Code" := SocialSecurityCode; // Add the following line. VendBillWithhTax.VALIDATE("Total Amount","Amount to Pay"); VendBillWithhTax."Old Withholding Amount" := VendBillWithhTax."Withholding Tax Amount"; VendBillWithhTax."Old Free-Lance Amount" := VendBillWithhTax."Free-Lance Amount"; END; // IT0007.begin IF VendBillWithhTax."Withholding Tax Code" <> '' THEN ... -
變更手動廠商付款行形式 (12188) 中的控制項中的程式碼如下所示︰
現有的程式碼 1... InPage=0;
CaptionML=ENU=Withholding Tax Code; SourceExpr=WithholdingTaxCode; TableRelation="Withhold Code" } { 1130006;Label ;440 ;2090 ;3300 ;440 ;ParentControl=1130005 } // Delete the following line. { 1130007;TextBox ;13090;3190 ;1700 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Vendor Bank Account; SourceExpr=VendorBankAccount; TableRelation="Vendor Bank Account"; OnLookup=VAR ...取代程式碼 1
... InPage=0;
CaptionML=ENU=Withholding Tax Code; SourceExpr=WithholdingTaxCode; TableRelation="Withhold Code" } { 1130006;Label ;440 ;2090 ;3300 ;440 ;ParentControl=1130005 } // Add the following line. { 1130007;TextBox ;13090;3740 ;1700 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Vendor Bank Account; SourceExpr=VendorBankAccount; TableRelation="Vendor Bank Account"; OnLookup=VAR ...現有的程式碼 2
... IF FORM.RUNMODAL(FORM::"Vendor Bank Account List",VendBankAcc,VendBankAcc.Code) = ACTION::LookupOK THEN
VendorBankAccount := VendBankAcc.Code; // IT0001.end END; } // Delete the following line. { 1130008;Label ;9680 ;3190 ;3300 ;440 ;ParentControl=1130007 } { 1130009;TextBox ;3850 ;3190 ;5500 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Description; SourceExpr=Desc } { 1130010;Label ;440 ;3190 ;3300 ;440 ;ParentControl=1130009 } ...取代程式碼 2
... IF FORM.RUNMODAL(FORM::"Vendor Bank Account List",VendBankAcc,VendBankAcc.Code) = ACTION::LookupOK THEN
VendorBankAccount := VendBankAcc.Code; // IT0001.end END; } // Add the following line. { 1130008;Label ;9680 ;3740 ;3300 ;440 ;ParentControl=1130007 } { 1130009;TextBox ;3850 ;3190 ;5500 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Description; SourceExpr=Desc } { 1130010;Label ;440 ;3190 ;3300 ;440 ;ParentControl=1130009 } ...現有的程式碼 3
... { 1130013;TextBox ;13090;990 ;1700 ;440 ;ParentControl=1130000;
InPage=0; CaptionML=ENU=Total Amount; SourceExpr=TotalAmount } { 1130014;Label ;9680 ;990 ;3300 ;440 ;ParentControl=1130013 } // Delete the following line. { 1130015;TextBox ;13090;1540 ;2200 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Document Type; OptionCaptionML=ENU=" ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund"; OptionString=[ ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund]; SourceExpr=DocumentType } ...取代程式碼 3
... { 1130013;TextBox ;13090;990 ;1700 ;440 ;ParentControl=1130000;
InPage=0; CaptionML=ENU=Total Amount; SourceExpr=TotalAmount } { 1130014;Label ;9680 ;990 ;3300 ;440 ;ParentControl=1130013 } // Add the following line. { 1130015;TextBox ;13090;2090 ;2200 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Document Type; OptionCaptionML=ENU=" ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund"; OptionString=[ ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund]; SourceExpr=DocumentType } ...現有的程式碼 4
... InPage=0;
CaptionML=ENU=Document Type; OptionCaptionML=ENU=" ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund"; OptionString=[ ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund]; SourceExpr=DocumentType } // Delete the following lines. { 1130016;Label ;9680 ;1540 ;3300 ;440 ;ParentControl=1130015 } { 1130017;TextBox ;13090;2090 ;1700 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Document No.; SourceExpr=DocumentNo } { 1130018;Label ;9680 ;2090 ;3300 ;440 ;ParentControl=1130017 } { 1130019;TextBox ;13090;2640 ;1700 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Document Date; SourceExpr=DocumentDate } { 1130020;Label ;9680 ;2640 ;3300 ;440 ;ParentControl=1130019 } // End of the lines. { 1130024;TextBox ;3850 ;2640 ;2750 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Social Security Code; SourceExpr=SocialSecurityCode; TableRelation="Contribution Code" } ...取代程式碼 4
... InPage=0;
CaptionML=ENU=Document Type; OptionCaptionML=ENU=" ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund"; OptionString=[ ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund]; SourceExpr=DocumentType } // Add the following lines. { 1130016;Label ;9680 ;2090 ;3300 ;440 ;ParentControl=1130015 } { 1130017;TextBox ;13090;2640 ;1700 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Document No.; SourceExpr=DocumentNo } { 1130018;Label ;9680 ;2640 ;3300 ;440 ;ParentControl=1130017 } { 1130019;TextBox ;13090;3190 ;1700 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Document Date; SourceExpr=DocumentDate } { 1130020;Label ;9680 ;3190 ;3300 ;440 ;ParentControl=1130019 } // End of the lines. { 1130024;TextBox ;3850 ;2640 ;2750 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Social Security Code; SourceExpr=SocialSecurityCode; TableRelation="Contribution Code" } ...現有的程式碼 5
... InPage=0;
CaptionML=ENU=Social Security Code; SourceExpr=SocialSecurityCode; TableRelation="Contribution Code" } { 1130025;Label ;440 ;2640 ;3300 ;440 ;ParentControl=1130024 } { 1130021;CommandButton;14410;5720;2200;550 ;HorzGlue=Right; VertGlue=Bottom; PushAction=FormHelp } { 1130022;CommandButton;11990;5720;2200;550 ;HorzGlue=Right; VertGlue=Bottom; ...取代程式碼 5
... InPage=0;
CaptionML=ENU=Social Security Code; SourceExpr=SocialSecurityCode; TableRelation="Contribution Code" } { 1130025;Label ;440 ;2640 ;3300 ;440 ;ParentControl=1130024 } // Add the following lines. { 1130026;TextBox ;13090;1540 ;1700 ;440 ;ParentControl=1130000; InPage=0; CaptionML=ENU=Tax Base Amount; SourceExpr=TaxBaseAmount } { 1130027;Label ;9680 ;1540 ;3300 ;440 ;ParentControl=1130026 } // End of the lines. { 1130021;CommandButton;14410;5720;2200;550 ;HorzGlue=Right; VertGlue=Bottom; PushAction=FormHelp } { 1130022;CommandButton;11990;5720;2200;550 ;HorzGlue=Right; VertGlue=Bottom; ...現有的程式碼 6
... "Due Date" := PostingDate;
"External Document No." := ExternalDocNo; "Instalment Amount" := TotalAmount; "Remaining Amount" := TotalAmount; "Gross Amount to Pay" := TotalAmount; // Delete the following line. "Amount to Pay" := TotalAmount; "Manual Line" := TRUE; "Cumulative Transfers" := TRUE; SetWithholdCode(WithholdingTaxCode); SetSocialSecurityCode(SocialSecurityCode); INSERT(TRUE) ...取代程式碼 6
... "Due Date" := PostingDate;
"External Document No." := ExternalDocNo; "Instalment Amount" := TotalAmount; "Remaining Amount" := TotalAmount; "Gross Amount to Pay" := TotalAmount; // Add the following line. "Amount to Pay" := TaxBaseAmount; "Manual Line" := TRUE; "Cumulative Transfers" := TRUE; SetWithholdCode(WithholdingTaxCode); SetSocialSecurityCode(SocialSecurityCode); INSERT(TRUE) ... -
在手動廠商付款行形式 (12188) 中加入下列的全域變數︰
TaxBaseAmount@1130000 : Decimal;
-
變更扣繳-比重 codeunit (12101) 的CalculateWithholdingTax函式中的程式碼如下所示︰
現有的程式碼 1... PROCEDURE CalculateWithholdingTax@1130001(VAR PurchHeader@1130000 : Record 38;Recalculate@1130001 : Boolean);
VAR PurchWithSoc@1130002 : Record 12137; PurchLine@1130003 : Record 39; // Delete the following line. TotalAmount@1130004 : Decimal; BEGIN PurchLine.RESET; PurchLine.SETRANGE("Document Type",PurchHeader."Document Type"); PurchLine.SETRANGE("Document No.",PurchHeader."No."); PurchLine.SETRANGE(Type,PurchLine.Type::"G/L Account"); ...取代程式碼 1
... PROCEDURE CalculateWithholdingTax@1130001(VAR PurchHeader@1130000 : Record 38;Recalculate@1130001 : Boolean);
VAR PurchWithSoc@1130002 : Record 12137; PurchLine@1130003 : Record 39; // Add the following lines. TempPurchLine@1130005 : TEMPORARY Record 39; TotalAmount@1130004 : Decimal; VATAmount@1130006 : Decimal; // End of the lines. BEGIN PurchLine.RESET; PurchLine.SETRANGE("Document Type",PurchHeader."Document Type"); PurchLine.SETRANGE("Document No.",PurchHeader."No."); PurchLine.SETRANGE(Type,PurchLine.Type::"G/L Account"); ...現有的程式碼 2
... PurchLine.SETRANGE(Type,PurchLine.Type::"G/L Account");
TotalAmount := 0; IF PurchLine.FIND('-') THEN REPEAT // Delete the following lines. TotalAmount := TotalAmount + PurchLine."Line Amount"; UNTIL PurchLine.NEXT = 0; // End of the lines. IF PurchWithSoc.GET(PurchHeader."Document Type", PurchHeader."No.") THEN IF (PurchWithSoc."Total Amount" = 0) OR Recalculate THEN BEGIN PurchWithSoc."Currency Code" := PurchHeader."Currency Code"; ...取代程式碼 2
... PurchLine.SETRANGE(Type,PurchLine.Type::"G/L Account");
TotalAmount := 0; IF PurchLine.FIND('-') THEN REPEAT // Add the following lines. IF PurchHeader."Prices Including VAT" THEN BEGIN TempPurchLine := PurchLine; TempPurchLine.VALIDATE("Amount Including VAT",PurchLine."Line Amount"); TotalAmount += TempPurchLine."VAT Base Amount" END ELSE TotalAmount += PurchLine."Line Amount"; UNTIL PurchLine.NEXT = 0; // End of the lines. IF PurchWithSoc.GET(PurchHeader."Document Type", PurchHeader."No.") THEN IF (PurchWithSoc."Total Amount" = 0) OR Recalculate THEN BEGIN PurchWithSoc."Currency Code" := PurchHeader."Currency Code"; ...
先決條件
您必須具備套用此 hotfix 之後安裝下列產品的其中一個︰
-
義大利文版本的 Microsoft 動態航行點 2009 R2
-
義大利文版本的 Microsoft 動態航行點 2009 Service Pack 1
移除資訊
您無法移除此 hotfix。
狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
注意這是直接從 Microsoft 支援組織內建立的「快速發行」文件。本文件所包含的現狀資訊是針對新興問題的回應。為縮短使其可用的時程,資料可能會包含印刷錯誤,且可能會隨時進行修改而不另行通知。如其他考量,請參閱 「使用規定」。