Vrijednost "Predujmovi (LCY)" nije točna na kartici klijenta kada za klijenta knjižite fakturu u stranoj valuti u mađarskoj verziji sustava Microsoft Dynamics NAV 2009 R2

Primjenjuje se na
Microsoft Dynamics NAV 2009 R2

Ovaj se članak odnosi na Microsoft Dynamics NAV za regionalnu shemu mađarskog (hu).

Simptomi

Pretpostavimo da primjenjujete TFS326659 hitnog popravka za plaćanje unaprijed u mađarskoj verziji sustava Microsoft Dynamics NAV 2009 R2. Kada za kupca knjižite pretpregled fakture u stranoj valuti, vrijednost predujmova (LCY) na kartici klijenta iznosi 0,01. Očekujete da će vrijednost predujmova (LCY) biti nula.
Dodatne informacije o hitnom popravku za plaćanje unaprijed TFS326659 potražite u sljedećim informacijama:

TFS326659 Ažuriranje plaćanja unaprijed za Microsoft Dynamics NAV 2009 R2 – Mađarska

Rješenje

Informacije o hitnom popravku

Microsoft sada nudi podržani hitni popravak. No njegova je namjena samo ispravljanje problema opisanog u ovom članku. Primijenite ga samo na sustave koji imaju taj specifični problem. Ovaj hitni popravak može proći dodatna testiranja. Stoga, ako se ovaj problem ne odnosi ozbiljno, preporučujemo da pričekate sljedeći servisni paket za Microsoft Dynamics NAV 2009 ili sljedeću verziju sustava Microsoft Dynamics NAV koja sadrži ovaj hitni popravak.

Napomena: U posebnim slučajevima, ako stručnjak tehničke podrške za Microsoft Dynamics i povezane proizvode utvrdi da određeno ažuriranje može riješiti problem, poziv službi podrške može biti besplatan. Uobičajene cijene poziva službi za podršku primjenjuju se na dodatna pitanja i probleme koje nemaju veze s pripadnom nadopunom.

Informacije o instalaciji

Microsoft daje primjere programiranja samo za ilustraciju, bez jamstva, bilo izričitog ili prešutnog. To uključuje, bez ograničenja, implicitna jamstva utrživosti ili prikladnosti za određenu svrhu. U članku se podrazumijeva da ste upoznati s programskim jezikom koji se pokazuje te s alatima koji se koriste za stvaranje i ispravljanje pogrešaka procedura. Microsoftovi inženjeri za podršku mogu vam objasniti funkcionalnost određenog postupka. Međutim, oni neće mijenjati te primjere radi pružanja dodatne funkcionalnosti ili konstruirati postupke koji zadovoljavaju vaše specifične zahtjeve.

Napomena Prije instaliranja ovog hitnog popravka provjerite jesu li svi korisnici klijenta sustava Microsoft Dynamics NAV odjavljeni iz sustava. To uključuje i usluge poslužitelja Microsoft Dynamics NAV Application Server (NAS). Trebali biste biti jedini klijentski korisnik prijavljen na vrijeme implementacije ovog hitnog popravka.

Da biste implementirali ovaj hitni popravak, morate imati licencu za razvojne inženjere.

Preporučujemo da se korisničkom računu u prozoru Prijave u sustav Windows ili u prozoru Prijave u bazu podataka dodijeli ID uloge "SUPER". Ako korisničkom računu nije moguće dodijeliti ID uloge "SUPER", morate provjeriti ima li korisnički račun sljedeće dozvole:

  • Dozvola za izmjenu objekta koji ćete mijenjati.

  • Dozvola za izvršavanje za objekt objekta sustava s ID-om 5210 i za objekt sustava s ID-om 9015

    objekt.

Napomena: nemate pravo na spremišta podataka, osim ako morate popraviti podatke.

Promjene koda

Napomena: uvijek testirajte popravke koda u kontroliranom okruženju prije primjene popravaka na proizvodnim računalima.

Da biste riješili taj problem, učinite sljedeće:

  1. Promijenite kod u funkciji PostCust u Gen. Jnl.-Post Line Codeunit (12) kako slijedi:
    Postojeći kod 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
    ...
    

    Zamjenski kod 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
    ...
    

    Postojeći kod 2

    ...
    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);
    ...
    

    Zamjenski kod 2

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Add the following line.
    IsAdvancePrepayment(CustLedgEntry.Prepayment,CustLedgEntry."Prepayment Type");
    // End of the added line.
    
    TransferCustLedgEntry(CVLedgEntryBuf,CustLedgEntry,TRUE);
    ...
    
  2. Promijenite kod u funkciji PostVend u naredbi Gen. Jnl.-Post Line Codeunit (12) kako slijedi:
    Postojeći kod 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
    ...
    

    Zamjenski kod 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
    ...
    

    Postojeći kod 2

    ...
    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);
    ...
    

    Zamjenski kod 2

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Add the following line.
    IsAdvancePrepayment(VendLedgEntry.Prepayment,VendLedgEntry."Prepayment Type");
    // End of the added line.
    
    TransferVendLedgEntry(CVLedgEntryBuf,VendLedgEntry,TRUE);
    ...
    
  3. Promijenite kod u funkciji CalcCurrencyRealizedGainLoss u Gen. Jnl.-Post Line Codeunit (12) kako slijedi:
    Postojeći kod

    ...
    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
    ...
    

    Zamjenski 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. Promijenite kod u funkciji CalcApplication u naredbi Gen. Jnl.-Post Line Codeunit (12) kako slijedi:
    Postojeći kod 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);
    ...
    

    Zamjenski kod 1

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

    Postojeći kod 2

    ...
    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);
    ...
    

    Zamjenski kod 2

    ...
    DtldCVLedgEntryBuf.Advance :=
    
    // Add the following line.
    IsAdvancePrepayment(NewCVLedgEntryBuf.Prepayment,NewCVLedgEntryBuf."Prepayment Type");
    // End of the added line.
    
    InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,NewCVLedgEntryBuf,FALSE);
    ...
    
  5. Promijenite kod u funkciji CalcAmtLCYAdjustment u Gen. Jnl.-Post Line Codeunit (12) kako slijedi:
    Postojeći kod

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

    Zamjenski 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. Promijenite kod u funkciji PostDtldCustLedgEntries u Gen. Jnl.-Post Line Codeunit (12) kako slijedi:
    Postojeći kod 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
    ...
    

    Zamjenski kod 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
    ...
    

    Postojeći kod 2

    
    
    ...
    
    
    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
    ...
    

    Zamjenski kod 2

    
    
    ...
    
    
    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. Promijenite kod u funkciji GetReceivablesAccNo u Gen. Jnl.-Post Line Codeunit (12) kako slijedi:
    Postojeći kod

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

    Zamjenski kôd

    ...
    CustLedgEntry."Customer Posting Group",
    
    // Add the following line.
    IsAdvancePrepayment(CustLedgEntry.Prepayment,CustLedgEntry."Prepayment Type")));
    // End of the added line.
    
    END;
    ...
    
  8. Promijenite kod u funkciji GetPayablesAccNo u Gen. Jnl.-Post Line Codeunit (12) kako slijedi:
    Postojeći kod

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

    Zamjenski kôd

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

          

Preduvjeti

Morate imati instaliranu mađarsku verziju sustava Microsoft Dynamics NAV 2009 R2 da biste primijenili ovaj hitni popravak.

Podaci o uklanjanju

Ovaj hitni popravak ne možete ukloniti.

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Napomena: Ovo je članak "FAST PUBLISH" stvoren izravno u Microsoftovoj ustanovi za podršku. Ovdje sadržane informacije pružaju se takve kakve jesu kao odgovor na nove probleme. Kao rezultat brzine stavljanja na raspolaganje, materijali mogu sadržavati tipografske pogreške i mogu se revidirati u bilo kojem trenutku bez prethodne najave. Dodatne napomene potražite u Uvjetima korištenja .