See artikkel kehtib microsoft Dynamics NAV kohta järgmistes riikides ja keele lokaadis.
- Slovaki (sk)
- Tšehhi (cz)
Sümptomid
Oletagem, et loote uue rea peažurnaali Slovakkia versiooni või Microsoft Dynamics NAV 5.0 Hoolduspaketi Service Pack 1 (SP1 Tšehhi versiooni) tšehhikeelses versioonis. Pärast km summa käsitsi täpsustamist ja peažurnaali konteerimist arvutab süsteem žurnaali konteerimisel käibemaksu summa ümber ja asendab täpsustatud KM summa arvutatud väärtusega.
Lahendus
Kiirparanduse teave
Microsoftilt on nüüd saadaval toetatud kiirparandus. Siiski on see mõeldud ainult selles artiklis kirjeldatud probleemi lahendamiseks. Rakendage see ainult süsteemidele, kus esineb see konkreetne probleem. See kiirparandus võib saada täiendavaid katseid. Seega, kui see probleem ei mõjuta teid tõsiselt, soovitame oodata järgmist Microsoft Dynamics NAV 5.0 hoolduspaketti või järgmist Microsoft Dynamics NAV versiooni, mis sisaldab seda kiirparandust.
Märkus. Erijuhtudel võidakse tavaliselt tugiteenuse kõnede eest tehtud tasud tühistada, kui Microsoft Dynamicsi ja seotud toodete tehniline tugitöötaja leiab, et konkreetne värskendus lahendab teie probleemi. Tavapärased toetuskulud kehtivad täiendavatele tugiteenustega seotud küsimustele ja probleemidele, mis ei vasta kõnealuse värskenduse tingimustele.
Installiteave
Microsoft pakub programmeerimise näiteid ainult illustreerimiseks, ilma et garantii oleks väljendatud või kaudselt. See hõlmab kaubastatavuse või kindlaks otstarbeks sobivuse kaudseid garantiisid, kuid mitte ainult. Selles artiklis eeldatakse, et olete tuttav kuvatava programmeerimiskeelega ja tööriistadega, mida kasutatakse protseduuride loomiseks ja silumiseks. Microsofti tugiteenuste insenerid saavad aidata selgitada konkreetse protseduuri funktsionaalsust, kuid nad ei muuda neid näiteid selleks, et pakkuda teie vajadustele vastavaid lisafunktsioone või koostada protseduure.
Märkus. Enne selle kiirparanduse installimist veenduge, et kõik Microsoft Navisioni klientrakenduse kasutajad oleksid süsteemist välja logitud. See hõlmab ka Microsoft Navision Application Servicesi (NAS) klientkasutajaid. Peaksite olema ainus klientkasutaja, kes on sisse logitud, kui rakendate selle kiirparanduse.
Selle kiirparanduse rakendamiseks peab teil olema arendaja litsents.
Soovitame, et aknas Windowsi sisselogimised või aknas Andmebaasi sisselogimised olevale kasutajakontole määrataks "SUPER" rolli ID. Kui kasutajakontole ei saa superrolli ID-d määrata, peate kontrollima, kas kasutajakontol on järgmised õigused.
- Muudetava objekti muutmisõigus.
- Süsteemiobjekti ID 5210 ja süsteemiobjekti ID 9015 täitmisõigus.
Märkus. Teil pole andmesalvede jaoks õigusi, kui te ei pea tegema andmete parandamist.
Koodi muudatused
Märkus. Enne paranduste rakendamist tööarvutitele testige koodiparandusi alati kontrollitud keskkonnas.
Probleemi lahendamiseks tehke järgmist.
Muutke koodi žanri päästikus KM summa – OnValidate. Päevikurea tabel (81) järgmiselt:
Olemasolev kood... "VAT Difference" := "VAT Amount" - ROUND( // Delete the following lines. Amount * "VAT %" / (100 + "VAT %"), Currency."Amount Rounding Precision",Currency.VATRoundingDirection); // End of the lines. GLSetup.GET; GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY); ...Asenduskood
... "VAT Difference" := "VAT Amount" - ROUND( // Add the following lines. Amount - ROUND(Amount / (1 + "VAT %" / 100), Currency."Amount Rounding Precision",Currency.VATRoundingDirection)); //End of the lines. GLSetup.GET; GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY); ...Muutke koodi geni päästikus KM % – OnValidate. Päevikurea tabel (81) järgmiselt:
Olemasolev kood... CASE "VAT Calculation Type" OF "VAT Calculation Type"::"Normal VAT", "VAT Calculation Type"::"Reverse Charge VAT": // Delete the following lines. BEGIN GLSetup.GET; IF GLSetup."Round VAT Coeff." THEN BEGIN GLSetup.GetRoundingParamenters(Currency,RoundingPrecision,RoundingDirection); "VAT Amount" := ROUND( Amount * ROUND("VAT %" / (100 + "VAT %"),GLSetup."VAT Coeff. Rounding Precision"), RoundingPrecision, RoundingDirection); "VAT Base Amount" := Amount - "VAT Amount"; END ELSE BEGIN "VAT Base Amount" := ROUND(Amount / (1 + "VAT %" / 100),Currency."Amount Rounding Precision"); "VAT Amount" := ROUND(Amount - "VAT Base Amount",Currency."Amount Rounding Precision",Currency.VATRoundingDirection); END; END; // End of the lines. "VAT Calculation Type"::"Full VAT": BEGIN IF ("Prepayment Type" = "Prepayment Type"::Advance) AND NOT "System-Created Entry" AND ...Asenduskood
... CASE "VAT Calculation Type" OF "VAT Calculation Type"::"Normal VAT", "VAT Calculation Type"::"Reverse Charge VAT": // Add the following line. CalcVATAmount(Amount,"VAT Amount","VAT Base Amount","VAT %"); "VAT Calculation Type"::"Full VAT": BEGIN IF ("Prepayment Type" = "Prepayment Type"::Advance) AND NOT "System-Created Entry" AND ...Muutke žanri päästikus Korr. KM % – OnValidate koodi. Päevikurea tabel (81) järgmiselt:
Olemasolev kood... CASE "Bal. VAT Calculation Type" OF "Bal. VAT Calculation Type"::"Normal VAT", "Bal. VAT Calculation Type"::"Reverse Charge VAT": // Delete the following lines. BEGIN GLSetup.GET; IF GLSetup."Round VAT Coeff." THEN BEGIN GLSetup.GetRoundingParamenters(Currency,RoundingPrecision,RoundingDirection); "Bal. VAT Amount" := ROUND( -Amount * ROUND("Bal. VAT %" / (100 + "Bal. VAT %"),GLSetup."VAT Coeff. Rounding Precision"), RoundingPrecision, RoundingDirection); "Bal. VAT Base Amount" := -Amount - "Bal. VAT Amount"; END ELSE BEGIN "Bal. VAT Base Amount" := ROUND(-Amount / (1 + "Bal. VAT %" / 100),Currency."Amount Rounding Precision"); "Bal. VAT Amount" := ROUND(-Amount - "Bal. VAT Base Amount",Currency."Amount Rounding Precision",Currency.VATRoundingDirection); END; END; // End of the lines. "Bal. VAT Calculation Type"::"Full VAT": "Bal. VAT Amount" := -Amount; "Bal. VAT Calculation Type"::"Sales Tax": ...Asenduskood
... CASE "Bal. VAT Calculation Type" OF "Bal. VAT Calculation Type"::"Normal VAT", "Bal. VAT Calculation Type"::"Reverse Charge VAT": // Add the following line CalcVATAmount(-Amount,"Bal. VAT Amount","Bal. VAT Base Amount","Bal. VAT %"); "Bal. VAT Calculation Type"::"Full VAT": "Bal. VAT Amount" := -Amount; "Bal. VAT Calculation Type"::"Sales Tax": ...Looge gen-s uus kohalik funktsioon CalcVATAmount. Päevikurea tabel (81) järgmiselt:
LOCAL PROCEDURE CalcVATAmount@1220000(Amount@1220000 : Decimal;VAR VATAmount@1220001 : Decimal;VAR VATBase@1220002 : Decimal;VATPercent@1220003 : Decimal); VAR RoundingPrecision@1220004 : Decimal; RoundingDirection@1220005 : Text[1]; BEGIN GLSetup.GET; IF GLSetup."Round VAT Coeff." THEN BEGIN GLSetup.GetRoundingParamenters(Currency,RoundingPrecision,RoundingDirection); VATAmount := ROUND( Amount * ROUND(VATPercent / (100 + VATPercent),GLSetup."VAT Coeff. Rounding Precision"), RoundingPrecision, RoundingDirection); VATBase := Amount - VATAmount; END ELSE BEGIN VATBase := ROUND( Amount / (1 + VATPercent / 100), Currency."Amount Rounding Precision", Currency.VATRoundingDirection); VATAmount := Amount - VATBase; END; END;Muutke koodi geni funktsioonis InitVat. Jnl.-Post – koodiploki kood (12). Selleks tehke järgmist.
Kustutage järgmised kohalikud muutujad:
- CalculatedVATAmtLCY: kümnendarv
- RoundingPrecisionlCY: kümnendarv
- RoundingDirectionLCY : Tekst[1]
Lisage uus muutuja ja määrake muutuja järgmiselt.
- Nimi: VATAmtLCY
- DataType:Decimal
Muutke koodi järgmiselt.
Olemasolev kood... GenJnlLine."VAT Amount LCY (Non Deduct.)"; GLEntry."VAT Amount" := "Amount (LCY)" - GLEntry.Amount; // Delete the following lines. GLSetup.GET; GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY); IF GLSetup."Round VAT Coeff." THEN CalculatedVATAmtLCY := ROUND( "Amount (LCY)" * ROUND("VAT %" / (100 + "VAT %"),GLSetup."VAT Coeff. Rounding Precision"), RoundingPrecisionLCY, RoundingDirectionLCY) ELSE CalculatedVATAmtLCY := ROUND( "Amount (LCY)" - ROUND("Amount (LCY)" / (1 + "VAT %" / 100),RoundingPrecisionLCY), RoundingPrecisionLCY, RoundingDirectionLCY); IF ("VAT Amount (LCY)" <> CalculatedVATAmtLCY) AND ("Currency Code" <> '') THEN BEGIN // End of the lines. GLEntry.Amount := "VAT Base Amount (LCY)"; GLEntry."VAT Amount" := "VAT Amount (LCY)"; END; ...Asenduskood
... GenJnlLine."VAT Amount LCY (Non Deduct.)"; GLEntry."VAT Amount" := "Amount (LCY)" - GLEntry.Amount; // Add the following lines. VATAmtLCY := CalculatedVATAmountLCY; IF ("VAT Amount (LCY)" <> VATAmtLCY) AND ("Currency Code" <> '') THEN BEGIN //End of the lines. GLEntry.Amount := "VAT Base Amount (LCY)"; GLEntry."VAT Amount" := "VAT Amount (LCY)"; // Add the following lines. END ELSE IF GLSetup."Round VAT Coeff." THEN BEGIN GLEntry."VAT Amount" := VATAmtLCY - "VAT Amount LCY (Non Deduct.)"; GLEntry.Amount := "Amount (LCY)" - GLEntry."VAT Amount"; //End of the lines. END; ...
Muutke žanri funktsiooni InsertVAT koodi. Jnl.-Post – koodiploki kood (12). Selleks tehke järgmist.
Kustutage järgmised kohalikud muutujad:
- CalculatedVATAmtLCY: kümnendarv
- RoundingPrecisionlCY: kümnendarv
- RoundingDirectionLCY : Tekst[1]
Muutke koodi järgmiselt.
Olemasolev kood... "Posting Date","Currency Code","VAT Difference", CurrExchRate.ExchangeRate("Posting Date","Currency Code"))); // Delete the following lines. GLSetup.GET; GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY); IF GLSetup."Round VAT Coeff." THEN CalculatedVATAmtLCY := ROUND( "Amount (LCY)" * ROUND("VAT %" / (100 + "VAT %"),GLSetup."VAT Coeff. Rounding Precision"), RoundingPrecisionLCY, RoundingDirectionLCY) ELSE CalculatedVATAmtLCY := ROUND( "Amount (LCY)" - ROUND("Amount (LCY)" / (1 + "VAT %" / 100),RoundingPrecisionLCY), RoundingPrecisionLCY, RoundingDirectionLCY); IF ("VAT Amount (LCY)" <> CalculatedVATAmtLCY) AND ("Currency Code" <> '') THEN VATDifferenceLCY := "VAT Amount (LCY)" - CalculatedVATAmtLCY; // End of the lines. IF "VAT Calculation Type" = "VAT Calculation Type"::"Sales Tax" THEN BEGIN IF TaxJurisdiction.Code <> TaxDetail."Tax Jurisdiction Code" THEN ...Asenduskood
... "Posting Date","Currency Code","VAT Difference", CurrExchRate.ExchangeRate("Posting Date","Currency Code"))); // Add the following lines. IF "VAT Amount (LCY)" <> CalculatedVATAmountLCY THEN VATDifferenceLCY := "VAT Amount (LCY)" - CalculatedVATAmountLCY; //End of the lines. IF "VAT Calculation Type" = "VAT Calculation Type"::"Sales Tax" THEN BEGIN IF TaxJurisdiction.Code <> TaxDetail."Tax Jurisdiction Code" THEN ...
Looge genis uus funktsioon CalculatedVATAmountLCY. Jnl.-Post line codeunit (12) järgmiselt:
LOCAL PROCEDURE CalculatedVATAmountLCY@1220009() : Decimal; VAR CalculatedVATAmtLCY@1220002 : Decimal; RoundingPrecisionLCY@1220001 : Decimal; RoundingDirectionLCY@1220000 : Text[1]; BEGIN WITH GenJnlLine DO BEGIN IF "Currency Code" = '' THEN EXIT("VAT Amount (LCY)"); GLSetup.GET; GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY); IF GLSetup."Round VAT Coeff." THEN CalculatedVATAmtLCY := ROUND( "Amount (LCY)" * ROUND("VAT %" / (100 + "VAT %"),GLSetup."VAT Coeff. Rounding Precision"), RoundingPrecisionLCY, RoundingDirectionLCY) ELSE CalculatedVATAmtLCY := ROUND( "Amount (LCY)" - ROUND("Amount (LCY)" / (1 + "VAT %" / 100),RoundingPrecisionLCY), RoundingPrecisionLCY, RoundingDirectionLCY); EXIT(CalculatedVATAmtLCY); END; END;
Eeltingimused
Selle kiirparanduse rakendamiseks peab teil olema installitud üks järgmistest toodetest:
- Microsoft Dynamics NAV 5.0 hoolduspaketi Service Pack 1 Slovakkia versioon
- Microsoft Dynamics NAV 5.0 hoolduspaketi Service Pack 1 Tšehhi versioon
Lisaks peate selle kiirparanduse rakendamiseks olema kiirparanduse 2527241 installitud.
Microsofti teabebaasis oleva artikli kuvamiseks klõpsake järgmist artiklinumbrit.
2527241 Konteeritud KM summa KM kandes on vale, kui kasutate Funktsiooni "Round VAT Coeff" Microsoft Dynamics NAV 5.0 SP1 Tšehhi versioonis, kuhu on installitud feature Pack 1
Eemaldamisteave
Seda kiirparandust ei saa eemaldada.
Olek
Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.
Märkus. See on otse Microsofti tugiteenuste organisatsioonist loodud FAST PUBLISH-artikkel. Käesolevas artiklis sisalduv teave on esitatud kujul, mis on seotud tekkivate küsimustega. Materjali kättesaadavaks tegemise kiiruse tõttu võivad materjalid sisaldada kirjavigu ja neid võib igal ajal ette teatamata läbi vaadata. Muid kaalutlusi leiate teemast Kasutustingimused .