この資料は、以下の国と言語のロケールのマイクロソフトに適用されます。
-
英語 (カナダ) (en ca)
-
英語 (米国) (en-ご)
-
スペイン語 (メキシコ) (es-mx)
-
フランス語 (カナダ) (fr-ca)
現象
設定すること CAD その他のレポートの通貨の値として総勘定元帳の設定] ダイアログ ボックスで Microsoft Dynamics NAV 2009 年の北米バージョンを想定しています。税が含まれている仕入請求書を転記すると、次のエラー メッセージが表示されます。
G/L の入力] テーブル内の矛盾を引き起こすので、トランザクションを完了できません。 エラーの原因を検索するのにはトランザクションで一貫性のある関数を使用場所と方法を確認してください。
この問題は、次の製品で発生します。
-
北米バージョンの Microsoft Dynamics NAV 2009 の R2
-
北米バージョンの Microsoft Dynamics NAV 2009 サービス パック 1
解決策
修正プログラムの情報
サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV 2009 サービス パックまたは修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。
注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。
インストール情報
マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、機能の追加またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。
注: この修正プログラムをインストールする前に、Microsoft Navision のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Navision アプリケーション サービス (NAS) クライアントのユーザーが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。
この修正プログラムを実装するには、開発者用のライセンスが必要です。
ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。
-
変更するオブジェクトの変更のアクセス許可。
-
システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015オブジェクトの実行が許可されます。
注:
データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。
コードの変更
注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。
-
フィールドで売上税金額の明細行のテーブル (10011) のコードをとおり変更します。
既存のコード...ESM=Es Informe jurisdicci¢n;
FRC=Est une juridiction fiscale;
ENC=Is Report-to Jurisdiction];
Editable=No }
}
KEYS
{
{ ;Tax Area Code for Key,Tax Jurisdiction Code,Tax %,Tax Group Code,Expense/Capitalize,Tax Type,Use Tax;
...置換用コード
...
ESM=Es Informe jurisdicci¢n;
FRC=Est une juridiction fiscale;
ENC=Is Report-to Jurisdiction];
Editable=No }
// Add the following line.
{ 10044; ;Tax Base Amount FCY ;Decimal }
// End of the added line.
}
KEYS
{
{ ;Tax Area Code for Key,Tax Jurisdiction Code,Tax %,Tax Group Code,Expense/Capitalize,Tax Type,Use Tax;
... -
販売後の Codeunit (80) 内のPostSalesTaxToGL関数内のコードを次のように変更します。
既存のコード...END;
GenJnlLine."Tax Jurisdiction Code" := TempSalesTaxAmtLine."Tax Jurisdiction Code";
IF TempSalesTaxAmtLine."Tax Amount" <> 0 THEN BEGIN
RemSalesTaxSrcAmt := RemSalesTaxSrcAmt +
// Delete the following lines.
CurrExchRate.ExchangeAmtLCYToFCY(
UseDate,SalesHeader."Currency Code",TempSalesTaxAmtLine."Tax Amount",SalesHeader."Currency Factor");
// End of the deleted lines.
GenJnlLine."Source Curr. VAT Amount" :=
SalesTaxCalculate.ArithmeticRound(RemSalesTaxSrcAmt,Currency."Amount Rounding Precision");
RemSalesTaxSrcAmt := RemSalesTaxSrcAmt - GenJnlLine."Source Curr. VAT Amount";
RemSalesTaxAmt := RemSalesTaxAmt + TempSalesTaxAmtLine."Tax Amount";
...置換用コード
...END;
GenJnlLine."Tax Jurisdiction Code" := TempSalesTaxAmtLine."Tax Jurisdiction Code";
IF TempSalesTaxAmtLine."Tax Amount" <> 0 THEN BEGIN
RemSalesTaxSrcAmt := RemSalesTaxSrcAmt +
// Add the following lines.
TempSalesTaxAmtLine."Tax Base Amount FCY" * TempSalesTaxAmtLine."Tax %" / 100;
// End of the added lines.
GenJnlLine."Source Curr. VAT Amount" :=
SalesTaxCalculate.ArithmeticRound(RemSalesTaxSrcAmt,Currency."Amount Rounding Precision");
RemSalesTaxSrcAmt := RemSalesTaxSrcAmt - GenJnlLine."Source Curr. VAT Amount";
RemSalesTaxAmt := RemSalesTaxAmt + TempSalesTaxAmtLine."Tax Amount";
... -
購買のPostSalesTaxToGL関数内のコードを変更する-次のように Post Codeunit (90)。
既存のコード...END;
GenJnlLine."Tax Jurisdiction Code" := TempSalesTaxAmtLine."Tax Jurisdiction Code";
IF TempSalesTaxAmtLine."Tax Amount" <> 0 THEN BEGIN
RemSalesTaxSrcAmt := RemSalesTaxSrcAmt +
// Delete the following lines.
CurrExchRate.ExchangeAmtLCYToFCY(
Usedate,PurchHeader."Currency Code",TempSalesTaxAmtLine."Tax Amount",PurchHeader."Currency Factor");
// End of the deleted lines.
GenJnlLine."Source Curr. VAT Amount" :=
SalesTaxCalculate.ArithmeticRound(RemSalesTaxSrcAmt,Currency."Amount Rounding Precision");
RemSalesTaxSrcAmt := RemSalesTaxSrcAmt - GenJnlLine."Source Curr. VAT Amount";
RemSalesTaxAmt := RemSalesTaxAmt + TempSalesTaxAmtLine."Tax Amount";
...置換用コード
...END;
GenJnlLine."Tax Jurisdiction Code" := TempSalesTaxAmtLine."Tax Jurisdiction Code";
IF TempSalesTaxAmtLine."Tax Amount" <> 0 THEN BEGIN
RemSalesTaxSrcAmt := RemSalesTaxSrcAmt +
// Add the following line.
TempSalesTaxAmtLine."Tax Base Amount FCY" * TempSalesTaxAmtLine."Tax %" / 100;
// End of the added line.
GenJnlLine."Source Curr. VAT Amount" :=
SalesTaxCalculate.ArithmeticRound(RemSalesTaxSrcAmt,Currency."Amount Rounding Precision");
RemSalesTaxSrcAmt := RemSalesTaxSrcAmt - GenJnlLine."Source Curr. VAT Amount";
RemSalesTaxAmt := RemSalesTaxAmt + TempSalesTaxAmtLine."Tax Amount";
... -
購買のPostProvincialSalesTaxToGL関数内のコードを変更する-次のように Post Codeunit (90)。
既存のコード...TaxJurisdiction.TESTFIELD("Tax Account (Purchases)");
GenJnlLine."Account No." := TaxJurisdiction."Tax Account (Purchases)";
END;
GenJnlLine.Amount := GenJnlLine."VAT Amount";
// Delete the following lines.
GenJnlLine."Source Curr. VAT Base Amount" := 0;
GenJnlLine."VAT Base Amount (LCY)" := 0;
GenJnlLine."VAT Base Amount" := 0;
GenJnlLine."Source Curr. VAT Amount" := 0;
// End of the deleted lines.
GenJnlLine."VAT Amount (LCY)" := 0;
GenJnlLine."VAT Amount" := 0;
GenJnlLine.Quantity := 0;
GenJnlLine."VAT Difference" := 0;
...置換用コード
...TaxJurisdiction.TESTFIELD("Tax Account (Purchases)");
GenJnlLine."Account No." := TaxJurisdiction."Tax Account (Purchases)";
END;
GenJnlLine.Amount := GenJnlLine."VAT Amount";
// Add the following lines.
GenJnlLine."Source Currency Amount" := GenJnlLine."Source Curr. VAT Amount";
GenJnlLine."Source Curr. VAT Base Amount" := 0;
GenJnlLine."VAT Base Amount (LCY)" := 0;
GenJnlLine."VAT Base Amount" := 0;
// End of the added lines.
GenJnlLine."VAT Amount (LCY)" := 0;
GenJnlLine."VAT Amount" := 0;
GenJnlLine.Quantity := 0;
GenJnlLine."VAT Difference" := 0;
... -
売上税計算 Codeunit (398) 内のAddSalesLine関数内のコードを次のように変更します。
既存のコード 1..."Round Tax" := TaxArea."Round Tax";
TaxJurisdiction.GET("Tax Jurisdiction Code");
"Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
// Delete the following line.
"Tax Base Amount" := (SalesLine."Line Amount" - SalesLine."Inv. Discount Amount") / ExchangeFactor;
// End of the deleted line.
"Line Amount" := SalesLine."Line Amount" / ExchangeFactor;
"Tax Liable" := SalesLine."Tax Liable";
Quantity := SalesLine."Quantity (Base)";
"Invoice Discount Amount" := SalesLine."Inv. Discount Amount";
...置換用コード 1
..."Round Tax" := TaxArea."Round Tax";
TaxJurisdiction.GET("Tax Jurisdiction Code");
"Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,SalesLine."Line Amount" - SalesLine."Inv. Discount Amount",ExchangeFactor,FALSE);
// End of the added line.
"Line Amount" := SalesLine."Line Amount" / ExchangeFactor;
"Tax Liable" := SalesLine."Tax Liable";
Quantity := SalesLine."Quantity (Base)";
"Invoice Discount Amount" := SalesLine."Inv. Discount Amount";
...既存のコード 2
...END ELSE BEGIN
"Line Amount" := "Line Amount" + (SalesLine."Line Amount" / ExchangeFactor);
IF SalesLine."Tax Liable" THEN
"Tax Liable" := SalesLine."Tax Liable";
// Delete the following line.
"Tax Base Amount" := "Tax Base Amount" + ((SalesLine."Line Amount" - SalesLine."Inv. Discount Amount") / ExchangeFactor);
// End of the deleted line.
"Tax Amount" := 0;
Quantity := Quantity + SalesLine."Quantity (Base)";
"Invoice Discount Amount" := "Invoice Discount Amount" + SalesLine."Inv. Discount Amount";
MODIFY;
...置換用コード 2
...END ELSE BEGIN
"Line Amount" := "Line Amount" + (SalesLine."Line Amount" / ExchangeFactor);
IF SalesLine."Tax Liable" THEN
"Tax Liable" := SalesLine."Tax Liable";
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,SalesLine."Line Amount" - SalesLine."Inv. Discount Amount",ExchangeFactor,TRUE);
// End of the added line.
"Tax Amount" := 0;
Quantity := Quantity + SalesLine."Quantity (Base)";
"Invoice Discount Amount" := "Invoice Discount Amount" + SalesLine."Inv. Discount Amount";
MODIFY;
... -
売上税計算 Codeunit (398) 内のAddSalesInvoiceLines関数内のコードを次のように変更します。
既存のコード 1..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := SalesInvoiceLine."Line Amount" / ExchangeFactor;
// Delete the following line.
"Tax Base Amount" := SalesInvoiceLine."VAT Base Amount" / ExchangeFactor;
// End of the deleted line.
Quantity := SalesInvoiceLine.Quantity;
"Tax Liable" := SalesInvoiceLine."Tax Liable";
"Calculation Order" := TaxAreaLine."Calculation Order";
InsertRec := TRUE;
...置換用コード 1
..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := SalesInvoiceLine."Line Amount" / ExchangeFactor;
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,SalesInvoiceLine."VAT Base Amount",ExchangeFactor,FALSE);
// End of the added line.
Quantity := SalesInvoiceLine.Quantity;
"Tax Liable" := SalesInvoiceLine."Tax Liable";
"Calculation Order" := TaxAreaLine."Calculation Order";
InsertRec := TRUE;
...既存のコード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (SalesInvoiceLine."Line Amount" / ExchangeFactor);
// Delete the following line.
"Tax Base Amount" := "Tax Base Amount" + (SalesInvoiceLine."VAT Base Amount" / ExchangeFactor);
// End of the deleted line.
Quantity := Quantity + SalesInvoiceLine.Quantity;
IF SalesInvoiceLine."Tax Liable" THEN
"Tax Liable" := SalesInvoiceLine."Tax Liable";
InsertRec := FALSE;
...置換用コード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (SalesInvoiceLine."Line Amount" / ExchangeFactor);
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,SalesInvoiceLine."VAT Base Amount",ExchangeFactor,TRUE);
// End of the added line.
Quantity := Quantity + SalesInvoiceLine.Quantity;
IF SalesInvoiceLine."Tax Liable" THEN
"Tax Liable" := SalesInvoiceLine."Tax Liable";
InsertRec := FALSE;
... -
売上税計算 Codeunit (398) 内のAddSalesCrMemoLines関数内のコードを次のように変更します。
既存のコード 1..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := SalesCrMemoLine."Line Amount" / ExchangeFactor;
// Delete the following line.
"Tax Base Amount" := SalesCrMemoLine."VAT Base Amount" / ExchangeFactor;
// End of the deleted line.
Quantity := SalesCrMemoLine.Quantity;
"Tax Liable" := SalesCrMemoLine."Tax Liable";
"Calculation Order" := TaxAreaLine."Calculation Order";
InsertRec := TRUE;
...置換用コード 1
..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := SalesCrMemoLine."Line Amount" / ExchangeFactor;
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,SalesCrMemoLine."VAT Base Amount",ExchangeFactor,FALSE);
// End of the added line.
Quantity := SalesCrMemoLine.Quantity;
"Tax Liable" := SalesCrMemoLine."Tax Liable";
"Calculation Order" := TaxAreaLine."Calculation Order";
InsertRec := TRUE;
...既存のコード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (SalesCrMemoLine."Line Amount" / ExchangeFactor);
// Delete the following line.
"Tax Base Amount" := "Tax Base Amount" + (SalesCrMemoLine."VAT Base Amount" / ExchangeFactor);
// End of the deleted line.
Quantity := Quantity + SalesCrMemoLine.Quantity;
IF SalesCrMemoLine."Tax Liable" THEN
"Tax Liable" := SalesCrMemoLine."Tax Liable";
InsertRec := FALSE;
...置換用コード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (SalesCrMemoLine."Line Amount" / ExchangeFactor);
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,SalesCrMemoLine."VAT Base Amount",ExchangeFactor,TRUE);
// End of the added line.
Quantity := Quantity + SalesCrMemoLine.Quantity;
IF SalesCrMemoLine."Tax Liable" THEN
"Tax Liable" := SalesCrMemoLine."Tax Liable";
InsertRec := FALSE;
... -
売上税計算 Codeunit (398) 内のAddPurchLine関数内のコードを次のように変更します。
既存のコード 1..."Round Tax" := TaxArea."Round Tax";
TaxJurisdiction.GET("Tax Jurisdiction Code");
"Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
// Delete the following line.
"Tax Base Amount" := (PurchLine."Line Amount" - PurchLine."Inv. Discount Amount") / ExchangeFactor;
// End of the deleted line.
"Line Amount" := PurchLine."Line Amount" / ExchangeFactor;
"Tax Liable" := PurchLine."Tax Liable";
"Use Tax" := PurchLine."Use Tax";
...置換用コード 1
..."Round Tax" := TaxArea."Round Tax";
TaxJurisdiction.GET("Tax Jurisdiction Code");
"Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,PurchLine."Line Amount" - PurchLine."Inv. Discount Amount",ExchangeFactor,FALSE);
// End of the added line.
"Line Amount" := PurchLine."Line Amount" / ExchangeFactor;
"Tax Liable" := PurchLine."Tax Liable";
"Use Tax" := PurchLine."Use Tax";
...既存のコード 2
...END ELSE BEGIN
"Line Amount" := "Line Amount" + (PurchLine."Line Amount" / ExchangeFactor);
IF PurchLine."Tax Liable" THEN
"Tax Liable" := PurchLine."Tax Liable";
// Delete the following line.
"Tax Base Amount" := "Tax Base Amount" + ((PurchLine."Line Amount" - PurchLine."Inv. Discount Amount") / ExchangeFactor);
// End of the deleted line.
"Tax Amount" := 0;
Quantity := Quantity + PurchLine."Quantity (Base)";
"Invoice Discount Amount" := "Invoice Discount Amount" + PurchLine."Inv. Discount Amount";
MODIFY;
...置換用コード 2
...END ELSE BEGIN
"Line Amount" := "Line Amount" + (PurchLine."Line Amount" / ExchangeFactor);
IF PurchLine."Tax Liable" THEN
"Tax Liable" := PurchLine."Tax Liable";
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,PurchLine."Line Amount" - PurchLine."Inv. Discount Amount",ExchangeFactor,TRUE);
// End of the added line.
"Tax Amount" := 0;
Quantity := Quantity + PurchLine."Quantity (Base)";
"Invoice Discount Amount" := "Invoice Discount Amount" + PurchLine."Inv. Discount Amount";
MODIFY;
... -
売上税計算 Codeunit (398) 内のAddPurchInvoiceLines関数内のコードを次のように変更します。
既存のコード 1..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := PurchInvLine."Line Amount" / ExchangeFactor;
// Delete the following line.
"Tax Base Amount" := PurchInvLine."VAT Base Amount" / ExchangeFactor;
// End of the deleted line.
Quantity := PurchInvLine.Quantity;
"Tax Liable" := PurchInvLine."Tax Liable";
"Use Tax" := PurchInvLine."Use Tax";
...置換用コード 1
..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := PurchInvLine."Line Amount" / ExchangeFactor;
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,PurchInvLine."VAT Base Amount",ExchangeFactor,FALSE);
// End of the added line.
Quantity := PurchInvLine.Quantity;
"Tax Liable" := PurchInvLine."Tax Liable";
"Use Tax" := PurchInvLine."Use Tax";
...既存のコード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (PurchInvLine."Line Amount" / ExchangeFactor);
// Delete the following line.
"Tax Base Amount" := "Tax Base Amount" + (PurchInvLine."VAT Base Amount" / ExchangeFactor);
// End of the deleted line.
Quantity := Quantity + PurchInvLine.Quantity;
IF PurchInvLine."Tax Liable" THEN
"Tax Liable" := PurchInvLine."Tax Liable";
InsertRec := FALSE;
...置換用コード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (PurchInvLine."Line Amount" / ExchangeFactor);
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,PurchInvLine."VAT Base Amount",ExchangeFactor,TRUE);
// End of the added line.
Quantity := Quantity + PurchInvLine.Quantity;
IF PurchInvLine."Tax Liable" THEN
"Tax Liable" := PurchInvLine."Tax Liable";
InsertRec := FALSE;
... -
売上税計算 Codeunit (398) 内のAddPurchCrMemoLines関数内のコードを次のように変更します。
既存のコード 1..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := PurchCrMemoLine."Line Amount" / ExchangeFactor;
// Delete the following line.
"Tax Base Amount" := PurchCrMemoLine."VAT Base Amount" / ExchangeFactor;
// End of the deleted line.
Quantity := PurchCrMemoLine.Quantity;
"Tax Liable" := PurchCrMemoLine."Tax Liable";
"Use Tax" := PurchCrMemoLine."Use Tax";
...置換用コード 1
..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := PurchCrMemoLine."Line Amount" / ExchangeFactor;
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,PurchCrMemoLine."VAT Base Amount",ExchangeFactor,FALSE);
// End of the added line.
Quantity := PurchCrMemoLine.Quantity;
"Tax Liable" := PurchCrMemoLine."Tax Liable";
"Use Tax" := PurchCrMemoLine."Use Tax";
...既存のコード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (PurchCrMemoLine."Line Amount" / ExchangeFactor);
// Delete the following line.
"Tax Base Amount" := "Tax Base Amount" + (PurchCrMemoLine."VAT Base Amount" / ExchangeFactor);
// End of the deleted line.
Quantity := Quantity + PurchCrMemoLine.Quantity;
IF PurchCrMemoLine."Tax Liable" THEN
"Tax Liable" := PurchCrMemoLine."Tax Liable";
InsertRec := FALSE;
...置換用コード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (PurchCrMemoLine."Line Amount" / ExchangeFactor);
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,PurchCrMemoLine."VAT Base Amount",ExchangeFactor,TRUE);
// End of the added line.
Quantity := Quantity + PurchCrMemoLine.Quantity;
IF PurchCrMemoLine."Tax Liable" THEN
"Tax Liable" := PurchCrMemoLine."Tax Liable";
InsertRec := FALSE;
... -
売上税計算 Codeunit (398) 内のAddServiceLine関数内のコードを次のように変更します。
既存のコード 1..."Round Tax" := TaxArea."Round Tax";
TaxJurisdiction.GET("Tax Jurisdiction Code");
"Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
// Delete the following line.
"Tax Base Amount" := (ServiceLine."Line Amount" - ServiceLine."Inv. Discount Amount") / ExchangeFactor;
// End of the deleted line.
"Line Amount" := ServiceLine."Line Amount" / ExchangeFactor;
"Tax Liable" := ServiceLine."Tax Liable";
Quantity := ServiceLine."Quantity (Base)";
"Invoice Discount Amount" := ServiceLine."Inv. Discount Amount";
...置換用コード 1
..."Round Tax" := TaxArea."Round Tax";
TaxJurisdiction.GET("Tax Jurisdiction Code");
"Is Report-to Jurisdiction" := ("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,ServiceLine."Line Amount" - ServiceLine."Inv. Discount Amount",ExchangeFactor,FALSE);
// End of the added line.
"Line Amount" := ServiceLine."Line Amount" / ExchangeFactor;
"Tax Liable" := ServiceLine."Tax Liable";
Quantity := ServiceLine."Quantity (Base)";
"Invoice Discount Amount" := ServiceLine."Inv. Discount Amount";
...既存のコード 2
...END ELSE BEGIN
"Line Amount" := "Line Amount" + (ServiceLine."Line Amount" / ExchangeFactor);
IF ServiceLine."Tax Liable" THEN
"Tax Liable" := ServiceLine."Tax Liable";
// Delete the following line.
"Tax Base Amount" :=
"Tax Base Amount" + ((ServiceLine."Line Amount" - ServiceLine."Inv. Discount Amount") / ExchangeFactor);
// End of the deleted line.
"Tax Amount" := 0;
Quantity := Quantity + ServiceLine."Quantity (Base)";
"Invoice Discount Amount" := "Invoice Discount Amount" + ServiceLine."Inv. Discount Amount";
MODIFY;
...置換用コード 2
...END ELSE BEGIN
"Line Amount" := "Line Amount" + (ServiceLine."Line Amount" / ExchangeFactor);
IF ServiceLine."Tax Liable" THEN
"Tax Liable" := ServiceLine."Tax Liable";
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,ServiceLine."Line Amount" - ServiceLine."Inv. Discount Amount",ExchangeFactor,TRUE);
// End of the added line.
"Tax Amount" := 0;
Quantity := Quantity + ServiceLine."Quantity (Base)";
"Invoice Discount Amount" := "Invoice Discount Amount" + ServiceLine."Inv. Discount Amount";
MODIFY;
... -
売上税計算 Codeunit (398) 内のAddServInvoiceLines関数内のコードを次のように変更します。
既存のコード 1..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := ServInvLine."Line Amount" / ExchangeFactor;
// Delete the following lines.
"Tax Base Amount" := ServInvLine."VAT Base Amount" / ExchangeFactor;
Quantity := ServInvLine.Quantity;
"Tax Liable" := ServInvLine."Tax Liable";
// End of the deleted line.
"Calculation Order" := TaxAreaLine."Calculation Order";
InsertRec := TRUE;
INSERT;
...置換用コード 1
..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := ServInvLine."Line Amount" / ExchangeFactor;
// Add the following lines.
SetTaxBaseAmount(TempSalesTaxLine,ServInvLine."VAT Base Amount",ExchangeFactor,FALSE);
Quantity := ServInvLine.Quantity;
"Tax Liable" := ServInvLine."Tax Liable";
// End of the added lines.
"Calculation Order" := TaxAreaLine."Calculation Order";
InsertRec := TRUE;
INSERT;
...既存のコード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (ServInvLine."Line Amount" / ExchangeFactor);
// Delete the following line.
"Tax Base Amount" := "Tax Base Amount" + (ServInvLine."VAT Base Amount" / ExchangeFactor);
// End of the deleted line.
Quantity := Quantity + ServInvLine.Quantity;
IF ServInvLine."Tax Liable" THEN
"Tax Liable" := ServInvLine."Tax Liable";
InsertRec := FALSE;
...置換用コード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (ServInvLine."Line Amount" / ExchangeFactor);
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,ServInvLine."VAT Base Amount",ExchangeFactor,TRUE);
// End of the added line.
Quantity := Quantity + ServInvLine.Quantity;
IF ServInvLine."Tax Liable" THEN
"Tax Liable" := ServInvLine."Tax Liable";
InsertRec := FALSE;
... -
売上税計算 Codeunit (398) 内のAddServCrMemoLines関数内のコードを次のように変更します。
既存のコード 1..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := ServCrMemoLine."Line Amount" / ExchangeFactor;
// Delete the following line.
"Tax Base Amount" := ServCrMemoLine."VAT Base Amount" / ExchangeFactor;
// End of the deleted line.
Quantity := ServCrMemoLine.Quantity;
"Tax Liable" := ServCrMemoLine."Tax Liable";
"Calculation Order" := TaxAreaLine."Calculation Order";
...置換用コード 1
..."Is Report-to Jurisdiction" :=
("Tax Jurisdiction Code" = TaxJurisdiction."Report-to Jurisdiction");
END;
"Line Amount" := ServCrMemoLine."Line Amount" / ExchangeFactor;
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,ServCrMemoLine."VAT Base Amount",ExchangeFactor,FALSE);
// End of the added line.
Quantity := ServCrMemoLine.Quantity;
"Tax Liable" := ServCrMemoLine."Tax Liable";
"Calculation Order" := TaxAreaLine."Calculation Order";
...既存のコード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (ServCrMemoLine."Line Amount" / ExchangeFactor);
// Delete the following line.
"Tax Base Amount" := "Tax Base Amount" + (ServCrMemoLine."VAT Base Amount" / ExchangeFactor);
// End of the deleted line.
Quantity := Quantity + ServCrMemoLine.Quantity;
IF ServCrMemoLine."Tax Liable" THEN
"Tax Liable" := ServCrMemoLine."Tax Liable";
InsertRec := FALSE;
...置換用コード 2
...InsertRec := TRUE;
INSERT;
END ELSE BEGIN
"Line Amount" := "Line Amount" + (ServCrMemoLine."Line Amount" / ExchangeFactor);
// Add the following line.
SetTaxBaseAmount(TempSalesTaxLine,ServCrMemoLine."VAT Base Amount",ExchangeFactor,TRUE);
// End of the added line.
Quantity := Quantity + ServCrMemoLine.Quantity;
IF ServCrMemoLine."Tax Liable" THEN
"Tax Liable" := ServCrMemoLine."Tax Liable";
InsertRec := FALSE;
... -
売上税計算 Codeunit (398) で次のように SetTaxBaseAmount 関数を追加します。
LOCAL PROCEDURE SetTaxBaseAmount@1020031(VAR SalesTaxAmountLine@1020001 : Record 10011;Value@1020000 : Decimal;ExchangeFactor@1020002 : Decimal;Increment@1020003 : Boolean); BEGIN
WITH SalesTaxAmountLine DO BEGIN
IF Increment THEN
"Tax Base Amount FCY" += Value
ELSE
"Tax Base Amount FCY" := Value;
"Tax Base Amount" := "Tax Base Amount FCY" / ExchangeFactor;
END;
END;
必要条件
この修正プログラムを適用するのにはインストールされている製品は次のいずれかが必要です。
-
北米バージョンの Microsoft Dynamics NAV 2009 の R2
-
北米バージョンの Microsoft Dynamics NAV 2009 サービス パック 1
アンインストール情報
この修正プログラムを削除することはできません。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。