Iznosi plaćanja i otvoreni iznosi plaćanja miješani su i pogrešno prikazani u odjeljku "Plaćanja izvan zakonskog ograničenja" u izvješću o prekoračenim plaćanja dobavljača (10748) u španjolskoj verziji sustava Microsoft Dynamics NAV

Primjenjuje se na
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0

Ovaj se članak odnosi na Microsoft Dynamics NAV za regiju Španjolska (es).

Simptomi

Pretpostavimo da imate dva računa za dobavljača u španjolskoj verziji sustava Microsoft Dynamics NAV. Knjižite uplatu za jedan račun. U ovoj situaciji, kada pokrenete izvješće o prekoračenim plaćanja dobavljača (10748), iznosi plaćanja i otvoreni iznosi plaćanja za dobavljača miješaju se i pogrešno se prikazuju u odjeljku "Plaćanja izvan zakonskog ograničenja (LYC)". 
Taj se problem pojavljuje u sljedećim proizvodima:

  • Španjolska verzija sustava Microsoft Dynamics NAV 2009 R2
  • Španjolska verzija sustava Microsoft Dynamics NAV 2009 Service Pack 1
  • Španjolska verzija sustava Microsoft Dynamics NAV 5.0 Service Pack 1

      

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 pomoći objasniti funkcionalnost određene procedure, no neće mijenjati te primjere radi pružanja dodatne funkcionalnosti ili konstruirati procedure koji zadovoljavaju vaše specifične zahtjeve.

Napomena Prije nego što instalirate ovaj hitni popravak, provjerite jesu li svi korisnici Microsoft Navision klijenta odjavljeni sa sustava. To obuhvaća korisnike klijentskih usluga Microsoft Navision Application Services (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 System Object ID 5210 i za objekt System Object ID 9015

                
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 problem, učinite sljedeće:

  1. Promijenite kod u podatkovnoj stavci broj 1 u izvješću dobavljača – prekoračena Plaćanja (10748) na sljedeći način:
    Postojeći kod 1

    ...
    }
    { PROPERTIES
    {
    SectionType=GroupFooter;
    SectionWidth=17850;
    
    // Delete the following line.
    SectionHeight=2538;
    
    OnPreSection=BEGIN
    CurrReport.SHOWOUTPUT(VendTotalAmount <> 0);
    END;
    }
    ...
    

    Zamjenski kod 1

    ...
    }
    { PROPERTIES
    {
    SectionType=GroupFooter;
    SectionWidth=17850;
    
    // Add the following line.
    SectionHeight=2961;
    
    OnPreSection=BEGIN
    CurrReport.SHOWOUTPUT(VendTotalAmount <> 0);
    END;
    }
    ...
    

    Postojeći kod 2

    ...
    DataSetFieldName=Vend_WeightedExceededAmount }
    { 1170000000;TextBox;13800;0 ;450 ;423 ;Visible=No;
    ForeColor=65535;
    SourceExpr=[VendWeightedExceededAmount ];
    DataSetFieldName=WeightedExceededAmount1 }
    }
    }
    { PROPERTIES
    {
    SectionType=Footer;
    ...
    

    Zamjenski kod 2

    ...
    DataSetFieldName=Vend_WeightedExceededAmount }
    { 1170000000;TextBox;13800;0 ;450 ;423 ;Visible=No;
    ForeColor=65535;
    SourceExpr=[VendWeightedExceededAmount ];
    DataSetFieldName=WeightedExceededAmount1 }
    
    // Add the following lines.
    { 1000000000;Label ;5250 ;2115 ;4950 ;423 ;ParentControl=1000000001;
    DataSetFieldName=ABS_OpenTotalPaymentOutsideDueDate_Caption }
    { 1000000001;TextBox;10350;2115 ;1800 ;423 ;CaptionML=[ENU=Open Payments outside the legal limit (LCY);
    ESP=Pagos fuera del l¡mite legal (DL):];
    SourceExpr=ABS(OpenVendPaymentOutsideDueDate);
    DataSetFieldName=OpenVend_PaymentOutsideDueDate }
    { 1000000004;TextBox;12600;2115 ;1800 ;423 ;SourceExpr=FormatRatio(OpenVendPaymentOutsideDueDate,VendTotalAmount);
    DataSetFieldName=OpenVend_PaymentOutsideDueDateRatio }
    // End of the lines.
    
    }
    }
    { PROPERTIES
    {
    SectionType=Footer;
    ...
    

    Postojeći kod 3

    ...
    }
    { PROPERTIES
    {
    SectionType=Footer;
    SectionWidth=17850;
    
    // Delete the following line.
    SectionHeight=2115;
    
    OnPreSection=BEGIN
    CurrReport.SHOWOUTPUT(TotalAmount <> 0);
    END;
    }
    ...
    

    Zamjenski kod 3

    ...
    }
    { PROPERTIES
    {
    SectionType=Footer;
    SectionWidth=17850;
    
    // Add the following line.
    SectionHeight=2538;
    
    OnPreSection=BEGIN
    CurrReport.SHOWOUTPUT(TotalAmount <> 0);
    END;
    }
    ...
    

    Postojeći kod 4

    ...
    DataSetFieldName=Total_PaymentOutsideDueDateRatio }
    { 1100057;TextBox ;10350;846 ;1800 ;423 ;CaptionML=[ENU=Weighted average term exceeded:;
    ESP=Plazo medio ponderado superado:];
    SourceExpr=TotalWeightedExceededAmount / ABS(TotalAmount);
    DataSetFieldName=Total_WeightedExceededAmount }
    }
    }
    }
    }
    { PROPERTIES
    ...
    

    Zamjenski kod 4

    ...
    DataSetFieldName=Total_PaymentOutsideDueDateRatio }
    { 1100057;TextBox ;10350;846 ;1800 ;423 ;CaptionML=[ENU=Weighted average term exceeded:;
    ESP=Plazo medio ponderado superado:];
    SourceExpr=TotalWeightedExceededAmount / ABS(TotalAmount);
    DataSetFieldName=Total_WeightedExceededAmount }
    
    // Add the following lines.
    { 1000000002;Label ;5250 ;2115 ;4950 ;423 ;ParentControl=1000000003;
    DataSetFieldName=ABS_OpenTotalPaymentOutsideDueDate__Control1100045Caption }
    { 1000000003;TextBox;10350;2115 ;1800 ;423 ;CaptionML=[ENU=Open Payments outside the legal limit (LCY);
    ESP=Pagos fuera del l¡mite legal (DL):];
    SourceExpr=ABS(TotalOpenPaymentOutsideDueDate);
    DataSetFieldName=OpenTotal_PaymentOutsideDueDate }
    { 1000000005;TextBox;12600;2115 ;1800 ;423 ;SourceExpr=FormatRatio(TotalOpenPaymentOutsideDueDate,TotalAmount);
    DataSetFieldName=OpenTotal_PaymentOutsideDueDateRatio }
    // End of the lines.
    
    }
    }
    }
    }
    { PROPERTIES
    ...
    
  2. Promijenite kod u podatkovnoj stavci broj 3 u izvješću dobavljača – prekoračena Plaćanja (10748) na sljedeći način:
    Postojeći kod 1

    ...
    IF AppldVendLedgEntryTmp.NEXT = 0 THEN
    CurrReport.BREAK;
    IF AppldVendLedgEntryTmp."Posting Date" > AppldVendLedgEntryTmp."Initial Entry Due Date" THEN BEGIN
    DaysOverdue := AppldVendLedgEntryTmp."Posting Date" - AppldVendLedgEntryTmp."Initial Entry Due Date";
    
    // Delete the following lines.
    VendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    TotalPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    // End of the lines.
    
    END ELSE BEGIN
    DaysOverdue := 0;
    VendPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    TotalPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    END;
    ...
    

    Zamjenski kod 1

    ...
    IF AppldVendLedgEntryTmp.NEXT = 0 THEN
    CurrReport.BREAK;
    IF AppldVendLedgEntryTmp."Posting Date" > AppldVendLedgEntryTmp."Initial Entry Due Date" THEN BEGIN
    DaysOverdue := AppldVendLedgEntryTmp."Posting Date" - AppldVendLedgEntryTmp."Initial Entry Due Date";
    
    // Add the following lines.
    IF AppldVendLedgEntryTmp."Applied Vend. Ledger Entry No." = 0 THEN BEGIN 
    OpenVendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; 
    TotalOpenPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; 
    END ELSE BEGIN 
    VendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    TotalPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    END; 
    // End of the lines.
    
    END ELSE BEGIN
    DaysOverdue := 0;
    VendPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    TotalPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    END;
    ...
    

    Postojeći kod 2

    ...
    IF AppldVendLedgEntryTmp."Entry Type" = AppldVendLedgEntryTmp."Entry Type"::"Initial Entry" THEN
    AppldVendLedgEntryTmp."Posting Date" := 0D;
    VendDaysOverdue += DaysOverdue;
    VendWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)");
    
    // Delete the following lines.
    VendTotalAmount := VendPaymentOutsideDueDate + VendPaymentWithinDueDate;
    TotalDaysOverdue += DaysOverdue;
    TotalWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)");
    TotalAmount := TotalPaymentOutsideDueDate + TotalPaymentWithinDueDate;
    // End of the lines.
    
    END;
    }
    SECTIONS
    {
    ...
    

    Zamjenski kod 2

    ...
    IF AppldVendLedgEntryTmp."Entry Type" = AppldVendLedgEntryTmp."Entry Type"::"Initial Entry" THEN
    AppldVendLedgEntryTmp."Posting Date" := 0D;
    VendDaysOverdue += DaysOverdue;
    VendWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)");
    
    // Add the following lines.
    VendTotalAmount := VendPaymentOutsideDueDate + VendPaymentWithinDueDate + OpenVendPaymentOutsideDueDate; 
    TotalDaysOverdue += DaysOverdue;
    TotalWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)");
    TotalAmount := TotalPaymentOutsideDueDate + TotalPaymentWithinDueDate+TotalOpenPaymentOutsideDueDate; 
    // End of the lines.
    
    END;
    }
    SECTIONS
    {
    ...
    
  3. Promijenite kod u globalnim varijablama u izvješću dobavljača – prekoračena Plaćanja (10748) na sljedeći način:
    Postojeći kod

    ...
    VendPaymentWithinDueDate@1100016 : Decimal;
    VendDaysOverdue@1100017 : Decimal;
    TotalDaysOverdue@1100018 : Decimal;
    TotalWeightedExceededAmount@1100019 : Decimal;
    ShowPayments@1100012 : 'Overdue,Legally Overdue,All';
    LOCAL PROCEDURE FindAppliedPayments@1210013(VendLedgEntryNo@1210000 : Integer);
    VAR
    DtldVendLedgEntry@1210001 : Record 380;
    InvVendLedgEntry@1100000 : Record 25;
    ...
    

    Zamjenski kôd

    ...
    VendPaymentWithinDueDate@1100016 : Decimal;
    VendDaysOverdue@1100017 : Decimal;
    TotalDaysOverdue@1100018 : Decimal;
    TotalWeightedExceededAmount@1100019 : Decimal;
    ShowPayments@1100012 : 'Overdue,Legally Overdue,All';
    
    // Add the following lines.
    OpenVendPaymentOutsideDueDate@1000000000 : Decimal;
    TotalOpenPaymentOutsideDueDate@1000000001 : Decimal;
    // End of the lines.
    
    LOCAL PROCEDURE FindAppliedPayments@1210013(VendLedgEntryNo@1210000 : Integer);
    VAR
    DtldVendLedgEntry@1210001 : Record 380;
    InvVendLedgEntry@1100000 : Record 25;
    ...
    
  4. Promijenite kod u funkciji ClearVendAmount u izvješću dobavljača – prekoračena Plaćanja (10748) na sljedeći način:
    Postojeći kod

    ...
    VendTotalAmount := 0;
    VendDaysOverdue := 0;
    VendWeightedExceededAmount := 0;
    VendPaymentOutsideDueDate := 0;
    VendPaymentWithinDueDate := 0;
    END;
    BEGIN
    END.
    }
    ...
    

    Zamjenski kôd

    ...
    VendTotalAmount := 0;
    VendDaysOverdue := 0;
    VendWeightedExceededAmount := 0;
    VendPaymentOutsideDueDate := 0;
    VendPaymentWithinDueDate := 0;
    
    // Add the following line.
    OpenVendPaymentOutsideDueDate := 0;
    
    END;
    BEGIN
    END.
    }
    ...
    

            
          

Preduvjeti

Da biste primijenili ovaj hitni popravak, morate imati instaliran neki od sljedećih proizvoda:

  • Španjolska verzija sustava Microsoft Dynamics NAV 2009 R2
  • Španjolska verzija sustava Microsoft Dynamics NAV 2009 Service Pack 1
  • Španjolska verzija sustava Microsoft Dynamics NAV 5.0 Service Pack 1

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 .