Deklaracija PDV-a u španjolskom 349 izvozi iznose u valuti koja se koristi u dokumentu iako ste primijenili 254942 hitnog popravka u sustavu Microsoft Dynamics NAV

Primjenjuje se na
Dynamics NAV 2013 Dynamics NAV 2009

Ovaj se članak odnosi na Microsoft Dynamics NAV za regionalnu shemu španjolskog (es).

Simptomi

Pretpostavimo da ste primijenili hitni popravak 2547942 u sustavu Microsoft Dynamics NAV. Međutim, španjolska deklaracija PDV-a 349 i dalje izvozi iznose u valuti koja se koristi u dokumentu umjesto u lokalnoj valuti. Ako kupac ili prodavač nema šifru valute na kartici, a knjižen je dokument u kojem se nalazi valuta, iznosi koji se izvoze u deklaraciji 349 nisu točni jer je izvezeni iznos iznos iznos u valuti koji se koristi u dokumentu, a ne u lokalnoj valuti koju korisnik mora prijaviti poreznoj upravi.

Taj se problem pojavljuje u sljedećim proizvodima:

  • Microsoft Dynamics NAV 2013
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 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 2013 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 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 taj problem, promijenite kod u izvješću o deklaraciji Make 349 (10710). Slijedite korake u nastavku.

  1. Promijenite kod u funkciji GetPostedCountryLocCode na sljedeći način:
    Postojeći kod 1

    ...
                                REPEAT
                                  IF SalesInvLines."Location Code" <> '' THEN BEGIN
                                    IF Location.GET(SalesInvLines."Location Code") THEN
                                      EUCountryLinesLocationCode := FindEUCountryRegionCode(Location."Country/Region Code");
                                    IF EUCountryLinesLocationCode THEN BEGIN
    
    // Delete the following line.
                                      AmountToIncludeIn349 := AmountToIncludeIn349 + SalesInvLines.Amount;
    
                                      IF GetCountryfromLocation(SalesInvLines."Location Code") <> CountryCode THEN
                                        LocationDifferentCountryCode := TRUE;
                                      TempSalesInvLines := SalesInvLines;
                                      TempSalesInvLines.INSERT;
                                    END;
    ...
    
    

    Zamjenski kod 1

    ...
                                REPEAT
                                  IF SalesInvLines."Location Code" <> '' THEN BEGIN
                                    IF Location.GET(SalesInvLines."Location Code") THEN
                                      EUCountryLinesLocationCode := FindEUCountryRegionCode(Location."Country/Region Code");
                                    IF EUCountryLinesLocationCode THEN BEGIN
    
    // Add the following lines.
                                      AmountToIncludeIn349 +=
                                        GetExportedAmountIn349(SalesInvHeader."Currency Code",
                                        SalesInvHeader."Currency Factor",SalesInvLines."Line Amount");
    // End of the lines.
    
                                      IF GetCountryfromLocation(SalesInvLines."Location Code") <> CountryCode THEN
                                        LocationDifferentCountryCode := TRUE;
                                      TempSalesInvLines := SalesInvLines;
                                      TempSalesInvLines.INSERT;
                                    END;
    ...
    
    

    Postojeći kod 2

    ...
                                      TempSalesInvLines.INSERT;
                                    END;
                                  END ELSE
                                    IF CompInforShipToCountryCode THEN BEGIN
                                      EUCountryLinesLocationCode := TRUE;
    
    // Delete the following line.
                                      AmountToIncludeIn349 := AmountToIncludeIn349 + SalesInvLines.Amount;
    
                                      TempSalesInvLines := SalesInvLines;
                                      TempSalesInvLines.INSERT;
                                    END;
                                UNTIL SalesInvLines.NEXT = 0;
                            END;
    ...
    
    

    Zamjenski kod 2

    ...
                                      TempSalesInvLines.INSERT;
                                    END;
                                  END ELSE
                                    IF CompInforShipToCountryCode THEN BEGIN
                                      EUCountryLinesLocationCode := TRUE;
    
    // Add the following lines.
                                      AmountToIncludeIn349 +=
                                        GetExportedAmountIn349(SalesInvHeader."Currency Code",
                                        SalesInvHeader."Currency Factor",SalesInvLines."Line Amount");
    // End of the lines.
    
                                      TempSalesInvLines := SalesInvLines;
                                      TempSalesInvLines.INSERT;
                                    END;
                                UNTIL SalesInvLines.NEXT = 0;
                            END;
    ...
    
    

    Postojeći kod 3

    ...
                              REPEAT
                                IF PurchInvLines."Location Code" <> '' THEN BEGIN
                                  IF Location.GET(PurchInvLines."Location Code") THEN
                                    EUCountryLinesLocationCode := FindEUCountryRegionCode(Location."Country/Region Code");
                                  IF EUCountryLinesLocationCode THEN BEGIN
    
    // Delete the following line.
                                    AmountToIncludeIn349 := AmountToIncludeIn349 + PurchInvLines.Amount;
    
                                    IF GetCountryfromLocation(PurchInvLines."Location Code") <> CountryCode THEN
                                      LocationDifferentCountryCode := TRUE;
                                    TempPurchInvLines := PurchInvLines;
                                    TempPurchInvLines.INSERT;
                                  END;
    ...
    

    Zamjenski kod 3

    ...
                              REPEAT
                                IF PurchInvLines."Location Code" <> '' THEN BEGIN
                                  IF Location.GET(PurchInvLines."Location Code") THEN
                                    EUCountryLinesLocationCode := FindEUCountryRegionCode(Location."Country/Region Code");
                                  IF EUCountryLinesLocationCode THEN BEGIN
    
    // Add the following lines.
                                    AmountToIncludeIn349 +=
                                      GetExportedAmountIn349(PurchInvHeader."Currency Code",
                                      PurchInvHeader."Currency Factor",PurchInvLines."Line Amount");
    // End of the lines.
    
                                    IF GetCountryfromLocation(PurchInvLines."Location Code") <> CountryCode THEN
                                      LocationDifferentCountryCode := TRUE;
                                    TempPurchInvLines := PurchInvLines;
                                    TempPurchInvLines.INSERT;
                                  END;
    ...
    
    

    Postojeći kod 4

    ...
                                    TempPurchInvLines.INSERT;
                                  END;
                                END ELSE
                                  IF CompInforShipToCountryCode THEN BEGIN
                                    EUCountryLinesLocationCode := TRUE;
    
    // Delete the following line.
                                    AmountToIncludeIn349 := AmountToIncludeIn349 + PurchInvLines.Amount;
    
                                    TempPurchInvLines := PurchInvLines;
                                    TempPurchInvLines.INSERT;
                                  END;
                              UNTIL PurchInvLines.NEXT = 0;
                          END;
    ...
    
    

    Zamjenski kod 4

    ...
                                    TempPurchInvLines.INSERT;
                                  END;
                                END ELSE
                                  IF CompInforShipToCountryCode THEN BEGIN
                                    EUCountryLinesLocationCode := TRUE;
    
    // Add the following lines.
                                    AmountToIncludeIn349 +=
                                      GetExportedAmountIn349(PurchInvHeader."Currency Code",
                                      PurchInvHeader."Currency Factor",PurchInvLines."Line Amount");
    // End of the lines.
    
                                    TempPurchInvLines := PurchInvLines;
                                    TempPurchInvLines.INSERT;
                                  END;
                              UNTIL PurchInvLines.NEXT = 0;
                          END;
    ...
    
    
  2. Kod u funkciji GetExportedAmountIn349 promijenite na sljedeći način:
    Postojeći kod

    ...
          BEGIN
            IF DeliveryOperationCode = DeliveryOperationCode::" " THEN
              DeliveryOperationCode := DeliveryOperationCode::E;
          END;
    
          BEGIN
          END.
        }
        RDLDATA
        {
    ...
    
    

    Zamjenski kôd

    ...
          BEGIN
            IF DeliveryOperationCode = DeliveryOperationCode::" " THEN
              DeliveryOperationCode := DeliveryOperationCode::E;
          END;
    
    // Add the following lines.  
          LOCAL PROCEDURE GetExportedAmountIn349@1100014(CurrencyCode@1100008 : Code[20];CurrencyFactor@1100009 : Decimal;LineAmount@1100010 : Decimal) : Decimal;
          VAR
            Currency@1100001 : Record 4;
          BEGIN
            IF CurrencyCode <> '' THEN BEGIN
              Currency.GET(CurrencyCode);
              EXIT(ROUND(LineAmount / CurrencyFactor,Currency."Amount Rounding Precision"))
            END;
            EXIT(LineAmount);
          END;
    
    // End of the lines.
    
          BEGIN
          END.
        }
        RDLDATA
        {
    ...
    
    

Preduvjeti

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

  • Microsoft Dynamics NAV 2013
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 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 .