Сумата на нереализирания ДДС е неправилна, когато уреждате плащания с помощта на група за осчетоводяване на данъци, в която полето "Тип нереализиран данък" е зададено на "Касова база" в Мексико в северноамериканската версия на Microsoft Dynamics NAV 2009

Отнася се за
Dynamics NAV 2009

Тази статия се отнася за Microsoft Dynamics NAV за следните страни и езикови променливи.

  • Английски (Канада) (en-ca)
  • Английски (САЩ) (en-us)
  • Испански (Мексико) (es-mx)
  • Френски (Канада) (fr-ca)

Симптоми

Да предположим, че сте задали полето UnrealizedTaxTypeна CashBasisза група за осчетоводяване на данъци в Мексико в северноамериканската версия на Microsoft Dynamics NAV 2009. Нереализираната сума по ДДС е неправилна, ако е изпълнено едно от следните условия:

  • Когато приложите повече от две плащания към една фактура, нереализираната сума на ДДС е грешна за второто и останалите плащания.
  • Когато приложите частично плащане към фактура за покупка, сумата на нереализирания ДДС не се възстановява, докато не се плати цялата фактура.
  • Публикувате фактура за покупка в чуждестранна валута. След това изпълнявате функцията AdjustCurrencyExchange във фактурата. В тази ситуация, когато приложите плащане към фактурата, нереализираната сума по ДДС е неправилна.

Този проблем възниква в следните продукти:

  • Северноамериканската версия на Microsoft Dynamics NAV 2009 R2
  • Северноамериканската версия на Microsoft Dynamics NAV 2009 Service Pack 1

За повече информация относно свързана, но не зависима гореща поправка за неправилен реализиран проблем с ДДС, щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2694737 Системата попълва неправилна реализирана сума по ДДС, когато публикувате плащане, което се отнася за фактура в чуждестранна валута в северноамериканската версия на Microsoft Dynamics NAV 2009

Решение

Информация за горещи поправки

Поддържа гореща поправка вече се предлага от Microsoft. Целта му е обаче само да коригира проблема, който е описан в тази статия. Прилагайте го само към системи, които срещат този конкретен проблем. Тази гореща корекция може да бъде подложена на допълнително тестване. Ето защо, ако не сте сериозно засегнати от този проблем, ви препоръчваме да изчакате следващия сервизен пакет за Microsoft Dynamics NAV 2009 или следващата версия на Microsoft Dynamics NAV, която съдържа тази гореща корекция.

Забележка: При специални случаи таксите, които обикновено се начисляват за свързани с поддръжката разговори, могат да бъдат отменени, ако специалист по техническа поддръжка за Microsoft Dynamics и свързаните продукти реши, че проблемът може да бъде решен със специфична актуализация. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към съответната актуализация.

            
          

Информация за инсталиране

Microsoft предоставя примери за програмиране само за илюстрация, без гаранция, нито изрична, или подразбираща се. Това включва, но не се ограничава до, подразбиращите се гаранции за продаваемост или годност за определена цел. В тази статия се предполага, че сте запознати с езика за програмиране, който се демонстрира, и с инструментите, които се използват за създаване и за процедури за отстраняване на грешки. Инженерите по поддръжка на Microsoft могат да ви помогнат да обяснят функционалността на дадена процедура, но няма да променят тези примери, за да предоставят допълнителна функционалност или да конструират процедури, които да отговарят на вашите конкретни изисквания.

Забележка Преди да инсталирате тази гореща корекция, уверете се, че всички потребители на клиента на Microsoft Navision са излезли от системата. Това включва потребители на клиенти на Microsoft Navision Application Services (NAS). Когато внедрявате тази гореща корекция, трябва да сте единственият клиентски потребител е влязъл.

За да приложите тази гореща корекция, трябва да имате лиценз за разработчик.

Препоръчваме на потребителския акаунт в прозореца за влизане в Windows или в прозореца за влизане в база данни да бъде присвоен ИД на роля "SUPER". Ако на потребителския акаунт не може да бъде присвоен ИД на роля "SUPER", трябва да се уверите, че този потребителски акаунт има следните разрешения:

  • Разрешението за промяна за обекта, който ще променяте.
  • Разрешението за изпълнение за обекта 5210 на системен обект с ИД 5210 и за обекта 9015 на системен обект.

                
Забележка: Не е необходимо да имате права за хранилищата за данни, освен ако не трябва да извършите поправка на данни.

Промени в кода

Забележка: Винаги тествайте корекциите на кода в контролирана среда, преди да ги приложите към производствените си компютри.
За да решите този проблем, променете кода във функцията GetUnRealizedVATPart в таблицата за въвеждане на VAT (254) както следва:
Съществуващ код 1

...
END;
PROCEDURE GetUnRealizedVATPart@2(SettledAmount@1003 : Decimal;Paid@1005 : Decimal;Full@1001 : Decimal;TotalUnrealVATAmountFirst@1006 : Decimal;TotalUnrealVATAmountLast@1007 : Decimal;OriginalAmtLCY@1480000 : Decimal;OriginalCurrFactor@1020000 : Decimal) : Decimal;
VAR
UnrealizedVatType@1000 : ' ,Percentage,First,Last,First (Fully Paid),Last (Fully Paid),Cash Basis';
BEGIN
IF (Type <> 0) AND
(Amount = 0) AND
(Base = 0)
THEN BEGIN
...

Код за замяна 1

...
END;
PROCEDURE GetUnRealizedVATPart@2(SettledAmount@1003 : Decimal;Paid@1005 : Decimal;Full@1001 : Decimal;TotalUnrealVATAmountFirst@1006 : Decimal;TotalUnrealVATAmountLast@1007 : Decimal;OriginalAmtLCY@1480000 : Decimal;OriginalCurrFactor@1020000 : Decimal) : Decimal;
VAR
UnrealizedVatType@1000 : ' ,Percentage,First,Last,First (Fully Paid),Last (Fully Paid),Cash Basis';

// Add the following lines.
CustLedgEntry@1170000000 : Record 21;
VendLedgEntry@1310001 : Record 25;
// End of the lines.

BEGIN
IF (Type <> 0) AND
(Amount = 0) AND
(Base = 0)
THEN BEGIN
...

Съществуващ код 2

...
UnrealizedVatType::"Cash Basis":
BEGIN
IF OriginalAmtLCY = 0 THEN
EXIT(1)
ELSE

// Delete the following lines.
IF GetCurrencyCode() = '' THEN
EXIT(-SettledAmount / OriginalAmtLCY)
ELSE
EXIT((-SettledAmount / OriginalCurrFactor) / OriginalAmtLCY);
// End of the lines.

END;
END;
END ELSE
EXIT(0);
...

Код за замяна 2

...
UnrealizedVatType::"Cash Basis":
BEGIN
IF OriginalAmtLCY = 0 THEN
EXIT(1)
ELSE

// Add the following lines.
CASE Type OF
Type::Sale:
BEGIN
CustLedgEntry.SETCURRENTKEY("Transaction No.");
CustLedgEntry.SETRANGE("Transaction No.","Transaction No.");
CustLedgEntry.SETRANGE("Document No.","Document No.");
IF CustLedgEntry.FINDFIRST THEN
IF CustLedgEntry."Original Currency Factor" <> CustLedgEntry."Adjusted Currency Factor" THEN
Paid := ROUND((Paid / CustLedgEntry."Original Currency Factor") * CustLedgEntry."Adjusted Currency Factor");
END;
Type::Purchase:
BEGIN
VendLedgEntry.SETCURRENTKEY("Transaction No.");
VendLedgEntry.SETRANGE("Transaction No.","Transaction No.");
VendLedgEntry.SETRANGE("Document No.","Document No.");
IF VendLedgEntry.FINDFIRST THEN
IF VendLedgEntry."Original Currency Factor" <> VendLedgEntry."Adjusted Currency Factor" THEN
Paid := ROUND((Paid / VendLedgEntry."Original Currency Factor") * VendLedgEntry."Adjusted Currency Factor");
END;
END;
EXIT(ABS(-SettledAmount) / (ABS(OriginalAmtLCY) - ABS(Paid) + ABS(SettledAmount)))
// End of the lines.

END;
END;
END ELSE
EXIT(0);
...

          

Предварителни изисквания

Трябва да имате инсталиран един от следните продукти, за да приложите тази гореща корекция:

  • Северноамериканската версия на Microsoft Dynamics NAV 2009 R2
  • Северноамериканската версия на Microsoft Dynamics NAV 2009 Service Pack 1

Информация за премахване

Не можете да премахнете тази гореща корекция.

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Забележка: Това е статия "FAST PUBLISH", създадена директно от организацията за поддръжка на Microsoft. Информацията, съдържаща се тук, е предоставена както е в отговор на възникващи проблеми. В резултат на бързината на предоставянето им, материалите могат да включват печатни грешки и могат да бъдат коригирани по всяко време без предизвестие. Вижте условията на използване за други съображения.