Податок на дохід є визначається неправильно у разі використання бази виключено, податок на додану вартість Італійська версія Microsoft Dynamics NAV 5.0 з пакетом оновлень 1


У цій статті стосуються Microsoft Dynamics NAV у мовних параметрах в Італійська (ІТ).

Причини


Якщо кількість основний податок на додану вартість виключено, у Італійська версія Microsoft Dynamics NAV 5.0 з пакетом оновлень 1 (SP1), податок на дохід визначається неправильно.

Вирішення


Відомості про виправлення

Корпорація Майкрософт випустила підтримуване виправлення доступна. Однак, застосовувати лише для вирішення проблеми, описаної в цій статті. Він придатний лише для систем, які зазнають цієї конкретної проблеми. Те, що це виправлення може потребувати додаткового тестування. Таким чином, якщо ви не завдає значної, рекомендовано почекати до виходу чергового пакета оновлень Microsoft Dynamics NAV або наступної версії Microsoft Dynamics NAV, який містить це виправлення.

Примітка. В окремих випадках оплату звернення до служби підтримки може бути скасовано якщо технічної підтримки професійного для Microsoft Dynamics і пов'язані продукти визначає телефонів служби. Плата стягується на додаткові питання і проблеми, які не пов'язані з оновленням.


Відомості про інсталяцію

Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації, без гарантій – прямих або інших. Це включає, але не обмежується, будь-яких гарантій придатності до продажу та придатності для певної мети. У цій статті припускається, що ви знайомі з, що демонструє мову програмування та інструменти, які використовуються для створення та налагодження процедури. Співробітники служби підтримки корпорації Майкрософт можуть пояснити функціональні особливості кожної конкретної процедури, але вони не будуть змінювати приклади для реалізації додаткових можливостей або створювати процедури на вимогу окремих користувачів.

Примітка. Перш ніж інсталювати це виправлення, переконайтеся, що всі користувачі Microsoft Navision-клієнт відключився системи. Пакет оновлень містить служб Microsoft Navision застосунків (NAS) клієнта користувачів. Ви повинні тільки клієнт користувача, який увійшов до системи, під час виконання цього виправлення.

Щоб застосувати це виправлення, потрібно мати ліцензію для розробників.

Корпорація Майкрософт рекомендує, що обліковий запис користувача Windows, вхід вікна або у вікні бази даних вхід призначити "Супер" роль ID. Якщо обліковий запис користувача не призначено роль ID "Супер", необхідно переконатися, що обліковий запис користувача, має такі дозволи:
  • Змінити дозвіл об'єкт, який буде змінити.
  • Права для виконання системи об'єкт з Ідентифікатором 5210 об'єкт а також системи об'єкт з Ідентифікатором 9015 об'єкта.


Примітка. Маєте відповідних прав у сховища даних, якщо не потрібно виконати дані відновлення не потрібно.

Зміни коду

Примітка. Завжди тест код вирішення в середовищі контрольовані перед інсталяцією розглянутого виправлення виробництва комп'ютери.
Щоб вирішити цю проблему, виконайте такі дії.
  1. Змін на дохід, – внесок-codeunit (12101), функція CreateTmpWithhSocSec наступним чином:
    Наявний код 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
    ...
    Код на заміну 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
    ...
    Наявний код 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
    ...
    Код на заміну 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. Створіть нову функцію FindApplyingDocument . Щоб це зробити, виконайте такі дії:
    1. Додайте локальні новий параметр і вкажіть параметр наступним чином:
      • VAR: так
      • Ім'я: VendLedgEntry
      • Тип даних: запис
      • Підтип: постачальника книга запис
    2. Додайте локальні новий параметр і вкажіть параметр наступним чином:
      • Var: No
      • Ім'я: ComputedWithholdingTax
      • Тип даних: , запис
      • Підтип: обчислюється податок на дохід
    3. Додавання нового локальну змінну і вкажіть змінна наступним чином:
      • Ім'я: DtldVendLedgEntry
      • Тип даних: , запис
      • Підтип: , докладні виробника Ledg. Запис
    4. Додати нову локальну змінну і вкажіть змінну, наступним чином:
      • Ім'я: TempDtldVendLedgEntry
      • Тип даних: тимчасового запису.
      • Підтип: , докладні виробника Ledg. Запис
    5. Додати 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. Створіть нову функцію GetBaseExcludedAmount . Щоб це зробити, виконайте такі дії:
    1. Додайте локальні новий параметр і вкажіть параметр наступним чином:
      • Var: No
      • Ім'я: ComputedWithholdingTax
      • Тип даних: запис
      • Підтип: обчислюється податок на дохід
    2. Укажіть на ім'я змінної наступним чином:
      • Повернення тип: десятковий
    3. Додавання нового локальну змінну і вкажіть змінна наступним чином:
      • Ім'я: VendLedgEntry
      • Тип даних: запис
      • Підтип: виробника книга запис
    4. Додавання нового локальну змінну і вкажіть змінна наступним чином:
      • Ім'я: BaseExcludedAmount
      • Тип даних: десятковий
    5. Додати 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. Створіть нову функцію GetNonTaxableAmount . Щоб це зробити, виконайте такі дії:
    1. Додайте локальні новий параметр і вкажіть параметр наступним чином:
      • Var: No
      • Ім'я: ComputedWithholdingTax
      • Тип даних: запис
      • Підтип: обчислюється податок на дохід
    2. Укажіть на ім'я змінної наступним чином:
      • Повернення тип: десятковий
    3. Додавання нового локальну змінну і вкажіть змінна наступним чином:
      • Ім'я: VendLedgEntry
      • Тип даних: запис
      • Підтип: постачальника книга вступ
    4. Додавання нового локальну змінну і вкажіть змінна наступним чином:
      • Ім'я: NonTaxableAmount
      • Тип даних: десятковий
    5. Додати 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);

Попередні вимоги

Італійська версія Microsoft Dynamics NAV 5.0 з пакетом оновлень 1 для застосування цього виправлення, потрібно мати.

Відомості про видалення

Неможливо видалити це виправлення.

Додаткові відомості


Щоб отримати додаткові відомості, клацніть номер статті в базі знань Microsoft:
974684 Італійська версія Microsoft Dynamics NAV віднімає сума податку неправильно, коли ви процесу оплати за рахунок придбання

Стан


Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".
Примітка. Це "Швидка публікація" статті, надана службою підтримки корпорації Майкрософт. Відомості в цій статті надано без змін у відповідь на повідомлення про проблеми. З огляду на швидкість публікації матеріали можуть містити орфографічні помилки. Їх може бути змінено в будь-який час без повідомлення. Щоб отримати додаткові відомості, див. Умови використання.