Helytelen az áfa összege a Főkönyvi bejegyzésben, ha a Bejegyzések alkalmazatlansága funkciót futtatja egy kifizetésen vagy egy számlán a Microsoft Dynamics NAV-ban

Hatókör
Dynamics NAV 2009

Ez a cikk a Microsoft Dynamics NAV-ra vonatkozik az összes nyelvi beállítás esetén.

Tünetek

Feltételezzük, hogy a Microsoft Dynamics NAV rendszer áfabejegyzésén lévő Fizetési engedmény korrekciója és Fizetési tűréshatár értékét használja. Ha egy értékesítési kifizetést nem alkalmaznak a forgalmi számlán a fizetési engedménnyel és a fizetési tűréssel, azt tapasztalja, hogy a Főkönyvi bejegyzésben helytelen az áfa összege. Ez a probléma a Vásárlási oldalon is előfordul.
Ez a probléma a következő termékekben fordul elő:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009 R2

Megoldás

Gyorsjavítással kapcsolatos információk

A Microsoft már elérhető egy támogatott gyorsjavítást kínál. Ez azonban csak a cikkben ismertetett probléma megoldására szolgál. Csak olyan rendszerekre alkalmazza, amelyek tapasztalják ezt a problémát. Előfordulhat, hogy a gyorsjavítás további tesztelésen eshet át. Ezért ha nem érinti súlyosan ez a probléma, azt javasoljuk, hogy várja meg a Microsoft Dynamics NAV 2009 következő szervizcsomagját, illetve a Microsoft Dynamics NAV következő olyan verzióját, amely tartalmazza ezt a gyorsjavítást.

Megjegyzés: Különleges esetekben a támogatási hívások szokásos díjai törölhetők, ha a Microsoft Dynamics és a kapcsolódó termékek terméktámogatási szakértője úgy ítéli meg, hogy egy adott frissítés megoldja a problémát. A szokásos támogatási költségek olyan további támogatási kérdések és problémák esetén merülnek fel, amelyek nem felelnek meg a kérdéses frissítés feltételeinek.

            
          

Telepítési információk

A Microsoft csak illusztrációs céllal kínál programozási példákat, kifejezett vagy vélelmezett garancia nélkül. Ez magában foglalja, de nem kizárólagosan a forgalmazhatóságra vagy az adott célra való alkalmasságra vonatkozó vélelmezett garanciát. Ez a cikk feltételezi, hogy ismeri a bemutatott programozási nyelvet, valamint az eljárások létrehozásához és hibakereséséhez használt eszközöket. A Microsoft támogatási szakemberei segíthetnek elmagyarázni egy adott eljárás funkcionalitását, de nem módosítják a példákat, hogy további funkciókat biztosítsanak, és nem építenek ki eljárásokat az egyéni igényekre.

Megjegyzés: A gyorsjavítás telepítése előtt győződjön meg arról, hogy a Microsoft Navision-ügyfél összes felhasználója kijelentkezett a rendszerről. Ide tartoznak a Microsoft Navision Application Services (NAS) kliens felhasználói is. A gyorsjavítás telepítésekor csak Ön lehet az, aki be van jelentkezve.

A gyorsjavítás implementálásához fejlesztői licenccel kell rendelkeznie.

Javasoljuk, hogy a Windows Bejelentkezések ablakában vagy az Adatbázis-bejelentkezések ablakban látható felhasználói fiókhoz rendelje a "SUPER" szerepkörazonosítót. Ha a felhasználói fiókhoz nem rendelhető a "SUPER" szerepkörazonosító, ellenőriznie kell, hogy a felhasználói fiók rendelkezik-e az alábbi engedélyekkel:

  • A módosítani kívánt objektum Módosítás engedélye.
  • Végrehajtási engedély az 5210-es rendszerazonosítójú objektumhoz és a 9015-ös rendszerobjektum-azonosítójú objektumhoz.

                
Megjegyzés: Az adattárakhoz csak akkor kell jogokkal rendelkeznie, ha adatokat kell javítást végeznie.

Kódváltozások

Megjegyzés: Mindig ellenőrzött környezetben tesztelje a kódjavításokat, mielőtt telepítené őket az üzemi számítógépekre.
A probléma megoldásához hajtsa végre az alábbi lépéseket:

  1. Módosítsa a kódot az AutoEntrForDtldCustLedgEntries függvényben a Gen. Jnl.-Post Line kódegység (12) az alábbiak szerint:
    Meglévő kód

    ...
       DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)":
        BEGIN
          DtldCVLedgEntryBuf.TESTFIELD("Gen. Prod. Posting Group");
          GenPostingSetup.GET(
            DtldCVLedgEntryBuf."Gen. Bus. Posting Group",
            DtldCVLedgEntryBuf."Gen. Prod. Posting Group");
          CASE GLSetup."Payment Tolerance Posting" OF
            GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts":
              IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN
                GenPostingSetup.TESTFIELD("Sales Pmt. Tol. Debit Acc.");
                AccNo := GenPostingSetup."Sales Pmt. Tol. Debit Acc.";
              END ELSE BEGIN
                GenPostingSetup.TESTFIELD("Sales Pmt. Tol. Credit Acc.");
                AccNo := GenPostingSetup."Sales Pmt. Tol. Credit Acc.";
              END;
            GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts":
              IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN
                GenPostingSetup.TESTFIELD("Sales Pmt. Disc. Debit Acc.");
                AccNo := GenPostingSetup."Sales Pmt. Disc. Debit Acc.";
              END ELSE BEGIN
                GenPostingSetup.TESTFIELD("Sales Pmt. Disc. Credit Acc.");
                AccNo := GenPostingSetup."Sales Pmt. Disc. Credit Acc.";
              END;
          END;
          InitGLEntry(AccNo,-DtldCVLedgEntryBuf."Amount (LCY)",0,FALSE,TRUE);
          GLEntry."Additional-Currency Amount" := -DtldCVLedgEntryBuf."Additional-Currency Amount";
          GLEntry."Gen. Posting Type" := GLEntry."Gen. Posting Type"::Sale;
          GLEntry."Gen. Bus. Posting Group" := DtldCVLedgEntryBuf."Gen. Bus. Posting Group";
          GLEntry."Gen. Prod. Posting Group" := DtldCVLedgEntryBuf."Gen. Prod. Posting Group";
          GLEntry."VAT Bus. Posting Group" := DtldCVLedgEntryBuf."VAT Bus. Posting Group";
          GLEntry."VAT Prod. Posting Group" := DtldCVLedgEntryBuf."VAT Prod. Posting Group";
          GLEntry."Tax Area Code" := DtldCVLedgEntryBuf."Tax Area Code";
          GLEntry."Tax Liable" := DtldCVLedgEntryBuf."Tax Liable";
          GLEntry."Tax Group Code" := DtldCVLedgEntryBuf."Tax Group Code";
          GLEntry."Use Tax" := DtldCVLedgEntryBuf."Use Tax";
          InsertGLEntry(TRUE);
        END;
    ...
    

    Helyettesítő kód

    ...
         DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)":
        BEGIN
          DtldCVLedgEntryBuf.TESTFIELD("Gen. Prod. Posting Group");
          GenPostingSetup.GET(
            DtldCVLedgEntryBuf."Gen. Bus. Posting Group",
            DtldCVLedgEntryBuf."Gen. Prod. Posting Group");
          CASE GLSetup."Payment Tolerance Posting" OF
            GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts":
              IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN
                GenPostingSetup.TESTFIELD("Sales Pmt. Tol. Debit Acc.");
                AccNo := GenPostingSetup."Sales Pmt. Tol. Debit Acc.";
              END ELSE BEGIN
                GenPostingSetup.TESTFIELD("Sales Pmt. Tol. Credit Acc.");
                AccNo := GenPostingSetup."Sales Pmt. Tol. Credit Acc.";
              END;
            GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts":
              IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN
                GenPostingSetup.TESTFIELD("Sales Pmt. Disc. Debit Acc.");
                AccNo := GenPostingSetup."Sales Pmt. Disc. Debit Acc.";
              END ELSE BEGIN
                GenPostingSetup.TESTFIELD("Sales Pmt. Disc. Credit Acc.");
                AccNo := GenPostingSetup."Sales Pmt. Disc. Credit Acc.";
              END;
          END;
          InitGLEntry(AccNo,-DtldCVLedgEntryBuf."Amount (LCY)",0,FALSE,TRUE);
          GLEntry."Additional-Currency Amount" := -DtldCVLedgEntryBuf."Additional-Currency Amount";
    
    // Add the following line.     
          GLEntry."VAT Amount" := -DtldCVLedgEntryBuf."VAT Amount (LCY)";
    // End of the added line.
          GLEntry."Gen. Posting Type" := GLEntry."Gen. Posting Type"::Sale;
          GLEntry."Gen. Bus. Posting Group" := DtldCVLedgEntryBuf."Gen. Bus. Posting Group";
          GLEntry."Gen. Prod. Posting Group" := DtldCVLedgEntryBuf."Gen. Prod. Posting Group";
          GLEntry."VAT Bus. Posting Group" := DtldCVLedgEntryBuf."VAT Bus. Posting Group";
          GLEntry."VAT Prod. Posting Group" := DtldCVLedgEntryBuf."VAT Prod. Posting Group";
          GLEntry."Tax Area Code" := DtldCVLedgEntryBuf."Tax Area Code";
          GLEntry."Tax Liable" := DtldCVLedgEntryBuf."Tax Liable";
          GLEntry."Tax Group Code" := DtldCVLedgEntryBuf."Tax Group Code";
          GLEntry."Use Tax" := DtldCVLedgEntryBuf."Use Tax";
          InsertGLEntry(TRUE);
        END; 
    ...
    
  2. Módosítsa a kódot az AutoEntrForDtldVendLedgEntries függvényben a Gen. Jnl.-Post Line kódegység (12) az alábbiak szerint:
    Meglévő kód

    ...
       DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)":
        BEGIN
          GenPostingSetup.GET(
            DtldCVLedgEntryBuf."Gen. Bus. Posting Group",
            DtldCVLedgEntryBuf."Gen. Prod. Posting Group");
          CASE GLSetup."Payment Tolerance Posting" OF
            GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts":
              BEGIN
                IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN
                  GenPostingSetup.TESTFIELD("Purch. Pmt. Tol. Debit Acc.");
                  AccNo := GenPostingSetup."Purch. Pmt. Tol. Debit Acc.";
                END ELSE BEGIN
                  GenPostingSetup.TESTFIELD("Purch. Pmt. Tol. Credit Acc.");
                  AccNo := GenPostingSetup."Purch. Pmt. Tol. Credit Acc.";
                END;
              END;
            GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts":
              BEGIN
                IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN
                  GenPostingSetup.TESTFIELD("Purch. Pmt. Disc. Debit Acc.");
                  AccNo := GenPostingSetup."Purch. Pmt. Disc. Debit Acc.";
                END ELSE BEGIN
                  GenPostingSetup.TESTFIELD("Purch. Pmt. Disc. Credit Acc.");
                  AccNo := GenPostingSetup."Purch. Pmt. Disc. Credit Acc.";
                END;
              END;
          END;
          InitGLEntry(AccNo,-DtldCVLedgEntryBuf."Amount (LCY)",0,FALSE,TRUE);
          GLEntry."Additional-Currency Amount" := -DtldCVLedgEntryBuf."Additional-Currency Amount";
          GLEntry."Gen. Posting Type" := GLEntry."Gen. Posting Type"::Purchase;
          GLEntry."Gen. Bus. Posting Group" := DtldCVLedgEntryBuf."Gen. Bus. Posting Group";
          GLEntry."Gen. Prod. Posting Group" := DtldCVLedgEntryBuf."Gen. Prod. Posting Group";
          GLEntry."VAT Bus. Posting Group" := DtldCVLedgEntryBuf."VAT Bus. Posting Group";
          GLEntry."VAT Prod. Posting Group" := DtldCVLedgEntryBuf."VAT Prod. Posting Group";
          GLEntry."Tax Area Code" := DtldCVLedgEntryBuf."Tax Area Code";
          GLEntry."Tax Liable" := DtldCVLedgEntryBuf."Tax Liable";
          GLEntry."Tax Group Code" := DtldCVLedgEntryBuf."Tax Group Code";
          GLEntry."Use Tax" := DtldCVLedgEntryBuf."Use Tax";
          InsertGLEntry(TRUE);
    
          InsertVatEntriesFromTemp(DtldCVLedgEntryBuf);
        END;
    ...
    

    Helyettesítő kód

    ...
         DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)":
        BEGIN
          GenPostingSetup.GET(
            DtldCVLedgEntryBuf."Gen. Bus. Posting Group",
            DtldCVLedgEntryBuf."Gen. Prod. Posting Group");
          CASE GLSetup."Payment Tolerance Posting" OF
            GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts":
              BEGIN
                IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN
                  GenPostingSetup.TESTFIELD("Purch. Pmt. Tol. Debit Acc.");
                  AccNo := GenPostingSetup."Purch. Pmt. Tol. Debit Acc.";
                END ELSE BEGIN
                  GenPostingSetup.TESTFIELD("Purch. Pmt. Tol. Credit Acc.");
                  AccNo := GenPostingSetup."Purch. Pmt. Tol. Credit Acc.";
                END;
              END;
            GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts":
              BEGIN
                IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN
                  GenPostingSetup.TESTFIELD("Purch. Pmt. Disc. Debit Acc.");
                  AccNo := GenPostingSetup."Purch. Pmt. Disc. Debit Acc.";
                END ELSE BEGIN
                  GenPostingSetup.TESTFIELD("Purch. Pmt. Disc. Credit Acc.");
                  AccNo := GenPostingSetup."Purch. Pmt. Disc. Credit Acc.";
                END;
              END;
          END;
          InitGLEntry(AccNo,-DtldCVLedgEntryBuf."Amount (LCY)",0,FALSE,TRUE);
          GLEntry."Additional-Currency Amount" := -DtldCVLedgEntryBuf."Additional-Currency Amount";
    
    // Add the following line.      
          GLEntry."VAT Amount" := -DtldCVLedgEntryBuf."VAT Amount (LCY)";
    // End of the added line.
    
          GLEntry."Gen. Posting Type" := GLEntry."Gen. Posting Type"::Purchase;
          GLEntry."Gen. Bus. Posting Group" := DtldCVLedgEntryBuf."Gen. Bus. Posting Group";
          GLEntry."Gen. Prod. Posting Group" := DtldCVLedgEntryBuf."Gen. Prod. Posting Group";
          GLEntry."VAT Bus. Posting Group" := DtldCVLedgEntryBuf."VAT Bus. Posting Group";
          GLEntry."VAT Prod. Posting Group" := DtldCVLedgEntryBuf."VAT Prod. Posting Group";
          GLEntry."Tax Area Code" := DtldCVLedgEntryBuf."Tax Area Code";
          GLEntry."Tax Liable" := DtldCVLedgEntryBuf."Tax Liable";
          GLEntry."Tax Group Code" := DtldCVLedgEntryBuf."Tax Group Code";
          GLEntry."Use Tax" := DtldCVLedgEntryBuf."Use Tax";
          InsertGLEntry(TRUE);
    
          InsertVatEntriesFromTemp(DtldCVLedgEntryBuf);
        END; 
    ...
    

          

Előfeltételek

A gyorsjavítás alkalmazásához az alábbi termékek egyikének telepítve kell lennie:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009 R2

                
              

Eltávolítással kapcsolatos információk

Ez a gyorsjavítás nem távolítható el.

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.

Hivatkozások

VSTF DynamicsNAV SE: 278603; 283382

Megjegyzés: Ez egy "GYORS KÖZZÉTÉTELŰ" cikk, amelyet közvetlenül a Microsoft támogatási szervezete készített. A dokumentumban szereplő információkat adott formában bocsátjuk rendelkezésre, a felmerülő problémákra adott válaszként. A rendelkezésre bocsátás gyorsasága következtében az anyagok sajtóhibákat tartalmazhatnak, és bármikor, előzetes értesítés nélkül felülvizsgálhatók. További szempontokat a használati feltételekben talál.