Du märker att den bokförda förskottsbetalningen förblir öppen efter att du bokfört den slutliga fakturan för en försäljningsorder eller för en inköpsorder i den östeuropeiska versionen av Microsoft Dynamics NAV 2009 R2 med snabbkorrigering 2546442 och snabbkorrigering 2672643 tillämpad

Gäller för
Microsoft Dynamics NAV 2009 R2

Den här artikeln gäller Microsoft Dynamics NAV för regionen Östeuropa (EE).

Symptom

Tänk dig följande scenario i den östeuropeiska versionen av Microsoft Dynamics NAV 2009 R2:

  • Du använder snabbkorrigering 2546442 och snabbkorrigering 2672643.
  • Du genererar en förskottsbetalning för en försäljningsorder eller för en inköpsorder.
  • Du bokför en del av förskottsbetalningsbeloppet.
  • Du bokför resten av förskottsbetalningsbeloppet.
  • Du bokför den slutliga fakturan för försäljningsordern eller för inköpsordern.

I det här scenariot är den bokförda förskottsbetalningen fortfarande öppen. Den bokförde förskottsbetalningen bör dock avslutas.
  Om du vill ha mer information om snabbkorrigering 2672643 klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

2672643 Felmeddelandet "Det finns ej bokförda förskottsbetalningsbelopp på order [nummer]" visas när du bokför en del av en leverans för en försäljningsorder i den östeuropeiska versionen av Microsoft Dynamics NAV 2009 R2 Om du vill ha mer information om snabbkorrigeringar 2546442 klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

2546442 felmeddelandet "Det finns ej bokförda förskottsbetalningsbelopp på order [ordernummer]" visas när du bokför en slutfaktura i scenariot med förskottsbetalning i den östeuropeiska versionen av Microsoft Dynamics NAV 2009

Lösning

Snabbkorrigeringsinformation

En snabbkorrigering som stöds är nu tillgänglig från Microsoft. Det är dock bara avsett att åtgärda problemet som beskrivs i den här artikeln. Använd den bara på system som har det här specifika problemet. Den här snabbkorrigeringen kan få ytterligare tester. Om du inte drabbas hårt av det här problemet rekommenderar vi därför att du väntar på nästa Microsoft Dynamics NAV Service Pack eller nästa Microsoft Dynamics NAV-version som innehåller den här snabbkorrigeringen.

Obs! I särskilda fall kan avgifter som vanligtvis uppkommer för supportsamtal avbrytas om en teknisk supporttekniker för Microsoft Dynamics och relaterade produkter fastställer att en specifik uppdatering löser problemet. De vanliga supportkostnaderna gäller för ytterligare supportfrågor och problem som inte är berättigade till den aktuella uppdateringen.

            
          

Installationsinformation

Microsoft tillhandahåller endast programmeringsexempel i visningssyfte, utan att någon form av garanti uttrycks eller är underförstådd. Detta omfattar men är inte begränsat till underförstådda garantier för säljbarhet eller lämplighet för ett visst ändamål. Den här artikeln förutsätter att du är bekant med programmeringsspråket som demonstreras och med de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till att förklara funktionaliteten i en viss procedur, men de ändrar inte de här exemplen för att tillhandahålla ytterligare funktioner eller konstruera procedurer för att uppfylla dina specifika krav.

Obs! Innan du installerar den här snabbkorrigeringen kontrollerar du att alla Microsoft Navision-klientanvändare loggas ut från systemet. Detta omfattar användare av Microsoft Navision Application Services (NAS). Du bör vara den enda klientanvändare som är inloggad när du implementerar snabbkorrigeringen.

Om du vill implementera den här snabbkorrigeringen måste du ha en utvecklarlicens.

Vi rekommenderar att användarkontot i fönstret Windows-inloggningar eller i fönstret Databasinloggningar tilldelas roll-ID:t "SUPER". Om användarkontot inte kan tilldelas superroll-ID måste du kontrollera att användarkontot har följande behörigheter:

  • Behörigheten Ändra för det objekt som du kommer att ändra.
  • Körbehörigheten för systemobjekt-ID 5210-objektet och för 9015-objektet Systemobjekt-ID.

                
Obs! Du behöver inte ha rättigheter till datakällorna om du inte behöver utföra datareparation.

Kodändringar

Obs! Testa alltid korrigeringar av kod i en kontrollerad miljö innan du tillämpar korrigeringarna på produktionsdatorerna.
Lös problemet genom att följa de här stegen:

  1. Ändra koden i funktionen CalcLinkedPmtAmountToApply i koduniten för Sales-Post Advances (26585). Gör följande:

    1. Lägg till en global variabel och ange sedan variabeln enligt följande:

      • Namn: SumAmountToApply
      • Datatyp: Decimal
    2. Ändra koden på följande sätt:
      Befintlig kod 1

      ...
      IF TotalAmountToApply = 0 THEN
      EXIT;
      SetCurrencyPrecision(LetterLine."Currency Code");
      ...
      

      Ersättningskod 1

      ...
      
      // Add the following line. 
      SumAmountToApply := SumAmountToApply + TotalAmountToApply;
      
      IF TotalAmountToApply = 0 THEN
      EXIT;
      SetCurrencyPrecision(LetterLine."Currency Code");
      ...
      

      Befintlig kod 2

      ...
      TotAmt := TotAmt + TotalAmountToApply *
      Link.Amount / (CustLedgEntry.Amount - CustLedgEntry."Remaining Amount to Link") *
      (CustLedgEntry."Remaining Amount" - CustLedgEntry."Remaining Amount to Link") /
      
      // Delete the following lines. 
      (LetterLine."Amount Linked" - LetterLine."Amount Deducted" + TotalAmountToApply);
      AmountToApply := ROUND(TotAmt,Currency."Amount Rounding Precision") - TotAmtRnded;
      // End of the deleted lines.
      
      TotAmtRnded := TotAmtRnded + AmountToApply;
      ...
      

      Ersättningskod 2

      ...
      TotAmt := TotAmt + TotalAmountToApply *
      Link.Amount / (CustLedgEntry.Amount - CustLedgEntry."Remaining Amount to Link") *
      (CustLedgEntry."Remaining Amount" - CustLedgEntry."Remaining Amount to Link") /
      
      // Add the following lines. 
      (LetterLine."Amount Linked" - LetterLine."Amount Deducted" + SumAmountToApply); 
      AmountToApply := TotAmt - TotAmtRnded;
      // End of the added lines. 
      
      TotAmtRnded := TotAmtRnded + AmountToApply;
      ...
      
  2. Ändra koden i funktionen CalcLinkedPmtAmountToApply i koduniten för Purchase-Post Advances (26586). Gör följande:

    1. Lägg till en global variabel och ange sedan variabeln enligt följande:

      • Namn: SumAmountToApply
      • Datatyp: Decimal
    2. Ändra koden på följande sätt:
      Befintlig kod 1

      ...
      IF TotalAmountToApply = 0 THEN
      EXIT;
      
      SetCurrencyPrecision(LetterLine."Currency Code");
      Link.SETRANGE("Entry Type",Link."Entry Type"::"Link To Letter");
      Link.SETRANGE("Document No.",LetterLine."Letter No.");
      ...
      

      Ersättningskod 1

      ...
      IF TotalAmountToApply = 0 THEN
      EXIT;
      
      // Add the following line. 
      SumAmountToApply := SumAmountToApply + TotalAmountToApply;
      
      SetCurrencyPrecision(LetterLine."Currency Code");
      Link.SETRANGE("Entry Type",Link."Entry Type"::"Link To Letter");
      Link.SETRANGE("Document No.",LetterLine."Letter No.");
      ...
      

      Befintlig kod 2

      ...
      TotAmt := TotAmt + TotalAmountToApply *
      Link.Amount / (VendLedgEntry.Amount - VendLedgEntry."Remaining Amount to Link") *
      (VendLedgEntry."Remaining Amount" - VendLedgEntry."Remaining Amount to Link") /
      
      // Delete the following lines. 
      (LetterLine."Amount Linked" - LetterLine."Amount Deducted" + TotalAmountToApply);
      AmountToApply := ROUND(TotAmt,Currency."Amount Rounding Precision") - TotAmtRnded;
      // End of the deleted lines.
      
      TotAmtRnded := TotAmtRnded + AmountToApply;
      ...
      

      Ersättningskod 2

      ...
      TotAmt := TotAmt + TotalAmountToApply *
      Link.Amount / (VendLedgEntry.Amount - VendLedgEntry."Remaining Amount to Link") *
      (VendLedgEntry."Remaining Amount" - VendLedgEntry."Remaining Amount to Link") /
      
      // Add the following lines. 
      (LetterLine."Amount Linked" - LetterLine."Amount Deducted" + SumAmountToApply);
      AmountToApply := TotAmt - TotAmtRnded;
      // End of the added lines. 
      
      TotAmtRnded := TotAmtRnded + AmountToApply;
      ...
      

Krav

Du måste ha den östeuropeiska versionen av Microsoft Dynamics NAV 2009 R2 installerad för att kunna använda den här snabbkorrigeringen.

Information om borttagning

Du kan inte ta bort den här snabbkorrigeringen.

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Obs! Det här är en "FAST PUBLISH"-artikel som skapats direkt från Microsofts supportorganisation. Den information som finns häri tillhandahålls i befintligt format som svar på framväxande problem. Till följd av hur snabbt materialet blir tillgängligt kan materialet innehålla typografiska fel och kan komma att revideras när som helst utan föregående meddelande. Se användningsvillkor för andra överväganden.