Sistem Slovakça Çekçe sürümünü veya Microsoft Dynamics NAV 5.0 Service Pack 1 Yevmiye defterini deftere nakledildikten sonra el ile ayarlanan KDV tutarını yansıtmaz

Şunlar için geçerlidir: Microsoft Dynamics NAV 5.0

Bu makale, Microsoft Dynamics NAV'da aşağıdaki ülke ve dil yerel ayarları için geçerlidir.
  • Slovak korunası (sk)
  • Çekçe (cz)

Belirtiler


Yevmiye Defteri Slovakça Çekçe sürümünü veya Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) bulunan yeni bir satır oluşturmak varsayalım. Sonra değeri KDV tutarını el ile ayarlayın ve post Yevmiye sistemi katma değer vergisi (KDV) tutarı üzerinde yeniden hesaplar hesaplanan değeri kullanarak KDV tutarını deftere nakil günlüğü ile değiştirir ayarladı.

Çözüm


Düzeltme bilgileri

Artık Microsoft tarafından desteklenen bir düzeltme sağlanmaktadır. Ancak bunun yalnızca bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Yalnızca bu özel sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltme ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilemiyorsa, sonraki Microsoft Dynamics NAV 5.0 service pack ya da, bu düzeltmeyi içeren bir sonraki Microsoft Dynamics NAV sürümü beklemeniz önerilir.

Not: Özel durumlarda, destek aramaları teknik destek uzmanı Microsoft Dynamics ve ilgili ürünlere yönelik iptal edilebilir çözeceğini giderleri belirleyen belirli bir güncelleştirmenin sorununuzu. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.


Yükleme bilgileri

Microsoft, programlama örneklerini yalnızca gösterim amacıyla zımni veya açık garanti olmadan sağlar. Bu, satılabilirlik veya belirli bir amaca uygunluk açısından zımni garantileri içerir ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini, yordamları oluşturmak ve yordamlardan hata ayıklamak için kullanılan araçları bildiğinizi varsayar. Microsoft destek mühendisleri belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilirler, ancak ilave işlevsellik sağlamak için bu örnekleri değiştirmezler veya belirli gereksinimlerinizi karşılayacak şekilde yordamları yapılandırmazlar.

Not: Bu düzeltmeyi yüklemeden önce tüm Microsoft Navision istemcisi kullanıcılar sistem oturum doğrulayın. Bu, Microsoft Navision uygulama Hizmetleri (NAS) istemci kullanıcıları içerir. Bu düzeltmeyi uyguladığınızda yalnızca istemci kullanıcının oturum açmış olması gerekir.

Bu düzeltmeyi uygulamak için bir geliştirici lisansı olması gerekir.

Kullanıcı hesabının Windows oturumu açma penceresini veya veritabanı oturumu açma penceresi "Süper" rol kimliği atanması öneririz Kullanıcı hesabı "Süper" rol Kimliği atanamaz, kullanıcı hesabı aşağıdaki izinlere sahip olduğunu doğrulamanız gerekir:
  • Nesnenin, değiştirme değişiklik yapma izni.
  • Execute izni Sistem nesne kimliği 5210 nesnenin ve nesne kimliği 9015 sistem nesnesi için.


Not: Veri onarım gerçekleştirmek zorunda sürece veri depoları haklarına sahip olmanız gerekmez.

Kod değişiklikleri

Not: Her zaman, uygulamadan önce test kodu denetimli bir ortamda üretim bilgisayarlarınıza düzeltmeler giderir.
Bu sorunu gidermek için şu adımları izleyin:
  1. (81) Yevmiye Defteri Satırı tablosundaki KDV % - OnValidate tetikleyici kodu aşağıdaki gibi değiştirin:
    Varolan kodu
    ...  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 deleted lines.

    "VAT Calculation Type"::"Full VAT":
    BEGIN
    IF ("Prepayment Type" = "Prepayment Type"::Advance) AND NOT "System-Created Entry" AND
    ...

    Kod değiştirme
    ...  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
    ...
    ...

  2. Bilanço KDV % - OnValidate tetikleyici (81) Yevmiye Defteri Satırı tablosundaki kodu aşağıdaki gibi değiştirin:
    Varolan kodu
    ...  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 deleted lines.

    "Bal. VAT Calculation Type"::"Full VAT":
    "Bal. VAT Amount" := -Amount;
    "Bal. VAT Calculation Type"::"Sales Tax":
    ...

    Kod değiştirme
    ...  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":
    ...

  3. Yeni bir CalcVATAmount yerel işlev Yevmiye Defteri Satırı tablosuna (81) aşağıdaki gibi oluşturun:
      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);
    END ELSE
    VATAmount :=
    ROUND(
    Amount * VATPercent / (100 + VATPercent),
    Currency."Amount Rounding Precision",Currency.VATRoundingDirection);
    VATBase := Amount - VATAmount;
    END;

  4. InitVat işlevinde, Yev. kodunu değiştirmek-Post satır kod (12). Bunu yapmak için şu adımları izleyin:
    1. Aşağıdaki yerel değişkenleri silin:
      • CalculatedVATAmtLCY: ondalık
      • RoundingPrecisionLCY: ondalık
      • RoundingDirectionLCY: Metin [1]
    2. Yeni bir değişkeni ekleyin ve sonra değişken aşağıdaki gibi belirtin:
      • Adı: VATAmtLCY
      • DataType:Decimal
    3. Kodu aşağıdaki gibi değiştirin:
      Varolan kodu 1
      ...    ELSE
      AddCurrGLEntryVATAmt := CalcLCYToAddCurr(GLEntry."VAT Amount");
      END ELSE BEGIN

      // Delete the following line.
      GLEntry.Amount := ROUND("Amount (LCY)" / (1 + VATPostingSetup."VAT %" / 100)) +
      // End of the deleted line.

      GenJnlLine."VAT Amount LCY (Non Deduct.)";
      GLEntry."VAT Amount" := "Amount (LCY)" - GLEntry.Amount;
      ...

      Değiştirme kodu 1
      ...    ELSE
      AddCurrGLEntryVATAmt := CalcLCYToAddCurr(GLEntry."VAT Amount");
      END ELSE BEGIN

      // Add the following lines.
      GLEntry.Amount :=
      "Amount (LCY)" - ROUND("Amount (LCY)" * VATPostingSetup."VAT %" / (100 + VATPostingSetup."VAT %")) +
      //End of the added lines.

      GenJnlLine."VAT Amount LCY (Non Deduct.)";
      GLEntry."VAT Amount" := "Amount (LCY)" - GLEntry.Amount;
      ...

      Varolan kodu 2
      ...    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 deleted lines.

      GLEntry.Amount := "VAT Base Amount (LCY)";
      GLEntry."VAT Amount" := "VAT Amount (LCY)";
      END;
      ...

      Değiştirme kodu 2
      ...    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 added 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 added lines.
      END;
      ...

  5. InsertVAT işlevinde, Yev. kodunu değiştirmek-Post satır kod (12). Bunu yapmak için şu adımları izleyin:
    1. Aşağıdaki yerel değişkenleri silin:
      • CalculatedVATAmtLCY: ondalık
      • RoundingPrecisionLCY: ondalık
      • RoundingDirectionLCY: Metin [1]
    2. Kodu aşağıdaki gibi değiştirin:
      Varolan kodu
      ...            "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 deleted lines.

      IF "VAT Calculation Type" = "VAT Calculation Type"::"Sales Tax" THEN BEGIN
      IF TaxJurisdiction.Code <> TaxDetail."Tax Jurisdiction Code" THEN
      ...

      Kod değiştirme
      ...                    "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 added lines.

      IF "VAT Calculation Type" = "VAT Calculation Type"::"Sales Tax" THEN BEGIN
      IF TaxJurisdiction.Code <> TaxDetail."Tax Jurisdiction Code" THEN
      ...

  6. Yeni bir CalculatedVATAmountLCY yerel işlev Yev. içinde oluşturun-Post satır kod (12) aşağıdaki gibi:
      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;

Önkoşullar

Bu düzeltmeyi uygulamak için aşağıdaki ürünlerden birine sahip olmalıdır:
  • Slovakça sürümünü Microsoft Dynamics NAV 5.0 Service Pack 1
  • Çekçe sürümünü Microsoft Dynamics NAV 5.0 Service Pack 1
Ayrıca, düzeltme 2527241 bu düzeltmeyi uygulamak için yüklü olması gerekir.
Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

2527241 Feature Pack 1 yüklenmiş olarak Microsoft Dynamics NAV 5.0 SP1'in Çekçe sürümünde "Yuvarlak KDV Coeff" işlevselliğini kullandığınızda, KDV Girişi deftere nakledilen KDV tutarı yanlış

Kaldırma bilgileri

Bu düzeltmeyi kaldıramazsınız.

Durum


Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Not: Bu, doğrudan Microsoft destek kuruluşu bünyesinde oluşturulan bir "HIZLI YAYIN" makalesidir. Burada yer alan bilgiler, oluşan sorunlara yanıt olarak olduğu gibi sağlanmıştır. Makale hızla kullanıma sunulduğu için materyallerde yazım hataları olabilir ve materyaller bildirilmeksizin herhangi bir zamanda revize edilebilir. Diğer konular için bkz. Kullanım koşulları.