Az "Előlegek (LCY)" érték helytelen egy ügyfélkártyán, amikor a vevő előlegszámláját a Microsoft Dynamics NAV 2009 R2 magyar verziójában devizában adja fel

Hatókör
Microsoft Dynamics NAV 2009 R2

Ez a cikk a Microsoft Dynamics NAV magyar (hu) területi beállítására vonatkozik.

Tünetek

Feltételezzük, hogy a Microsoft Dynamics NAV 2009 R2 magyar verziójában előtörlesztési gyorsjavítási TFS326659 alkalmaz. Ha egy vevő előlegszámláját devizában adja fel, az előlegek (LCY) értéke a vevőkártyán 0,01 lesz. A Advances (LCY) értéke várhatóan nulla lesz.
Az TFS326659-es előrefizetési gyorsjavításról az alábbi információk nyújtanak további információt:

TFS326659 Előre fizetett frissítés a Microsoft Dynamics NAV 2009 R2-höz - Magyarország

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 működését. Azonban nem módosítják ezeket a példákat, hogy további funkciókat biztosítsanak, és nem építenek ki eljárásokat kifejezetten az Ön igényeire.

Megjegyzés: A gyorsjavítás telepítése előtt győződjön meg arról, hogy a Microsoft Dynamics NAV ügyfél összes felhasználója kijelentkezett a rendszerből. Ez magában foglalja a Microsoft Dynamics NAV Application Server (NAS) szolgáltatásokat 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óhoz.

    objektum.

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 a következő lépéseket:

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

    ...
    CustLedgEntry."Prepayment Type" := "Prepayment Type";
    
    // Delete the following lines.
    IF CustLedgEntry.Prepayment AND
    (CustLedgEntry."Document Type" = CustLedgEntry."Document Type"::Payment) AND
    (CustLedgEntry."Prepayment Type" = CustLedgEntry."Prepayment Type"::Advance)
    // End of the deleted lines.
    
    THEN BEGIN
    ...
    

    Helyettesítő kód 1

    ...
    CustLedgEntry."Prepayment Type" := "Prepayment Type";
    
    // Add the following lines.
    IF IsAdvancePrepayment(CustLedgEntry.Prepayment,CustLedgEntry."Prepayment Type") AND
    (CustLedgEntry."Document Type" = CustLedgEntry."Document Type"::Payment)
    // End of the added lines.
    
    THEN BEGIN
    ...
    

    Meglévő 2. kód

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Delete the following line.
    CustLedgEntry.Prepayment AND (CustLedgEntry."Prepayment Type" = CustLedgEntry."Prepayment Type"::Advance);
    // End of the deleted line.
    
    TransferCustLedgEntry(CVLedgEntryBuf,CustLedgEntry,TRUE);
    ...
    

    2-es helyettesítő kód

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Add the following line.
    IsAdvancePrepayment(CustLedgEntry.Prepayment,CustLedgEntry."Prepayment Type");
    // End of the added line.
    
    TransferCustLedgEntry(CVLedgEntryBuf,CustLedgEntry,TRUE);
    ...
    
  2. Módosítsa a kódot a PostVend függvényben a Gen. Jnl.-Post Line Codeunit (12) az alábbiak szerint:
    Meglévő kód: 1

    ...
    VendLedgEntry."Prepayment Type" := "Prepayment Type";
    
    // Delete the following lines.
    IF VendLedgEntry.Prepayment AND
    (VendLedgEntry."Document Type" = VendLedgEntry."Document Type"::Payment) AND
    (VendLedgEntry."Prepayment Type" = VendLedgEntry."Prepayment Type"::Advance)
    // End of the deleted lines.
    
    THEN BEGIN
    ...
    

    Helyettesítő kód 1

    ...
    VendLedgEntry."Prepayment Type" := "Prepayment Type";
    
    // Add the following lines.
    IF IsAdvancePrepayment(VendLedgEntry.Prepayment,VendLedgEntry."Prepayment Type") AND
    (VendLedgEntry."Document Type" = VendLedgEntry."Document Type"::Payment)
    // End of the added lines.
    
    THEN BEGIN
    ...
    

    Meglévő 2. kód

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Delete the following line.
    VendLedgEntry.Prepayment AND (VendLedgEntry."Prepayment Type" = VendLedgEntry."Prepayment Type"::Advance);
    // End of the deleted line.
    
    TransferVendLedgEntry(CVLedgEntryBuf,VendLedgEntry,TRUE);
    ...
    

    2-es helyettesítő kód

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Add the following line.
    IsAdvancePrepayment(VendLedgEntry.Prepayment,VendLedgEntry."Prepayment Type");
    // End of the added line.
    
    TransferVendLedgEntry(CVLedgEntryBuf,VendLedgEntry,TRUE);
    ...
    
  3. Módosítsa a kódot a CalcCurrencyRealizedGainLoss függvényben a generációban. Jnl.-Post Line Codeunit (12) az alábbiak szerint:
    Meglévő kód

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Delete the following line.
    CVLedgEntryBuf.Prepayment AND (CVLedgEntryBuf."Prepayment Type" = CVLedgEntryBuf."Prepayment Type"::Advance);
    // End of the deleted line.
    
    IF RealizedGainLossLCY < 0 THEN BEGIN
    ...
    

    Helyettesítő kód

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Add the following line.
    IsAdvancePrepayment(CVLedgEntryBuf.Prepayment,CVLedgEntryBuf."Prepayment Type");
    // End of the added line.
    
    IF RealizedGainLossLCY < 0 THEN BEGIN
    ...
    
  4. Módosítsa a kódot a CalcApplication függvényben a Gen. Jnl.-Post Line Codeunit (12) az alábbiak szerint:
    Meglévő kód: 1

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Delete the following line.
    OldCVLedgEntryBuf.Prepayment AND (OldCVLedgEntryBuf."Prepayment Type" = OldCVLedgEntryBuf."Prepayment Type"::Advance);
    // End of the deleted line.
    
    InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,OldCVLedgEntryBuf,FALSE);
    ...
    

    Helyettesítő kód 1

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Add the following line.
    IsAdvancePrepayment(OldCVLedgEntryBuf.Prepayment,OldCVLedgEntryBuf."Prepayment Type");
    // End of the added line.
    
    InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,OldCVLedgEntryBuf,FALSE);
    ...
    

    Meglévő 2. kód

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Delete the following line.
    NewCVLedgEntryBuf.Prepayment AND (NewCVLedgEntryBuf."Prepayment Type" = NewCVLedgEntryBuf."Prepayment Type"::Advance);
    // End of the deleted line.
    
    InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,NewCVLedgEntryBuf,FALSE);
    ...
    

    2-es helyettesítő kód

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Add the following line.
    IsAdvancePrepayment(NewCVLedgEntryBuf.Prepayment,NewCVLedgEntryBuf."Prepayment Type");
    // End of the added line.
    
    InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,NewCVLedgEntryBuf,FALSE);
    ...
    
  5. Módosítsa a kódot a CalcAmtLCYAdjustment függvényben a Gen. Jnl.-Post Line Codeunit (12) az alábbiak szerint:
    Meglévő kód

    ...
    DtldCVLedgEntryBuf."Entry Type"::"Correction of Remaining Amount";
    DtldCVLedgEntryBuf."Amount (LCY)" := AdjustedAmountLCY - CVLedgEntryBuf."Remaining Amt. (LCY)";
    ...
    

    Helyettesítő kód

    ...
    DtldCVLedgEntryBuf."Entry Type"::"Correction of Remaining Amount";
    
    // Add the following lines.
    DtldCVLedgEntryBuf.Advance :=
    IsAdvancePrepayment(CVLedgEntryBuf.Prepayment,CVLedgEntryBuf."Prepayment Type");
    // End of the added lines.
    
    DtldCVLedgEntryBuf."Amount (LCY)" := AdjustedAmountLCY - CVLedgEntryBuf."Remaining Amt. (LCY)";
    ...
    
  6. Módosítsa a kódot a PostDtldCustLedgEntries függvényben a Gen. Jnl.-Post Line Codeunit (12) az alábbiak szerint:
    Meglévő kód: 1

    ...
    GenJnlLine."Posting Group",
    
    // Delete the following lines.
    GenJnlLine.Prepayment AND
    (GenJnlLine."Prepayment Type" = GenJnlLine."Prepayment Type"::Advance));
    // End of the deleted lines.
    
    IF CustLedgEntryInserted OR (TotalAmountLCY <> 0) OR
    ...
    

    Helyettesítő kód 1

    ...
    GenJnlLine."Posting Group",
    
    // Add the following line.
    IsAdvancePrepayment(GenJnlLine.Prepayment,GenJnlLine."Prepayment Type"));
    // End of the added line.
    
    IF CustLedgEntryInserted OR (TotalAmountLCY <> 0) OR
    ...
    

    Meglévő 2. kód

    
    
    ...
    
    
    GenJnlLine."Posting Group",
    
    // Delete the following lines.
    GenJnlLine.Prepayment AND
    (GenJnlLine."Prepayment Type" = GenJnlLine."Prepayment Type"::Advance));
    // End of the deleted lines.
    
    
    
    IF CustLedgEntryInserted OR (TotalAmountLCY <> 0) OR
    ...
    

    2-es helyettesítő kód

    
    
    ...
    
    
    GenJnlLine."Posting Group",
    
    // Add the following line.
    IsAdvancePrepayment(GenJnlLine.Prepayment,GenJnlLine."Prepayment Type"));
    // End of the added line.
    
    
    
    IF CustLedgEntryInserted OR (TotalAmountLCY <> 0) OR
    ...
    
  7. Módosítsa a kódot a GetReceivablesAccNo függvényben a Gen. Jnl.-Post Line Codeunit (12) az alábbiak szerint:
    Meglévő kód

    ...
    CustLedgEntry."Customer Posting Group",
    
    // Delete the following lines.
    CustLedgEntry.Prepayment AND
    (CustLedgEntry."Prepayment Type" = CustLedgEntry."Prepayment Type"::Advance)));
    // End of the deleted lines.
    
    END;
    ...
    

    Helyettesítő kód

    ...
    CustLedgEntry."Customer Posting Group",
    
    // Add the following line.
    IsAdvancePrepayment(CustLedgEntry.Prepayment,CustLedgEntry."Prepayment Type")));
    // End of the added line.
    
    END;
    ...
    
  8. Módosítsa a kódot a GetPayablesAccNo függvényben a generációban. Jnl.-Post Line Codeunit (12) az alábbiak szerint:
    Meglévő kód

    ...
    VendLedgEntry."Vendor Posting Group",
    
    // Delete the following lines.
    VendLedgEntry.Prepayment AND
    (VendLedgEntry."Prepayment Type" = VendLedgEntry."Prepayment Type"::Advance)));
    // End of the deleted lines.
    
    END;
    

    Helyettesítő kód

    ...
    VendLedgEntry."Vendor Posting Group",
    
    // Add the following line.
    IsAdvancePrepayment(VendLedgEntry.Prepayment,VendLedgEntry."Prepayment Type")));
    // End of the added line.
    
    END;
    ...
    

          

Előfeltételek

A gyorsjavítás alkalmazásához a Microsoft Dynamics NAV 2009 R2 magyar nyelvű verziójának kell telepítve lennie.

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.

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.