Et saa varoitusta, kun julkaiset ennakonpidätyslaskun maksun laskematta lähdeveroa Microsoft Dynamics NAV:n italiankielisessä versiossa

Käytetään kohteeseen
Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 5.0 Microsoft Dynamics NAV 5.0 Service Pack 1

Nopeasti julkaistut artikkelit antavat tietoja suoraan Microsoftin tukiorganisaatiosta. Tässä esitetyt tiedot luodaan vastauksena uusiin tai yksilöllisiä aiheita varten, tai ne on tarkoitettu täydentämään muita Knowledge Base -tietoja.

Tämä artikkeli koskee Microsoft Dynamics NAV -kieliasetusta italiankielisessä kielialueessa.

Ongelman ilmenemistapa

Oletetaan, että sinulla on lasku, joka sisältää lähdeveron Microsoft Dynamics NAV:n italiankielisessä versiossa. Kun kirjaat laskun maksun käyttämättä Withhia. Tax-Soc. Sek. -funktio, joka laskee ennakonpidätysveron, Microsoft Dynamics NAV kirjaa maksun. Tämä kirjaus on kuitenkin virheellinen. Näyttöön pitäisi tulla varoitussanoma, jossa sinua varoitetaan käyttämästä Withhia. Tax-Soc. Sek. -funktio, jos kirjaat ennakonpidätyslaskun maksun laskematta lähdeveroa.

Tämä ongelma ilmenee seuraavissa tuotteissa:

  • Microsoft Dynamics NAV 2009 SP1:n italiankielinen versio
  • Microsoft Dynamics NAV 5.0 SP1:n italiankielinen versio
  • Microsoft Dynamics NAV 5.0:n italiankielinen versio

Ratkaisu

Hotfix-tiedot

Tuettu hotfix-korjaus on nyt saatavilla Microsoftilta. Sen tarkoituksena on kuitenkin korjata vain tässä artikkelissa kuvattu ongelma. Käytä sitä vain järjestelmissä, joissa on tämä ongelma. Tämä hotfix-korjaus voi saada lisätestejä. Jos ongelma ei siis vaikuta sinuun vakavasti, suosittelemme odottamaan seuraavaa Microsoft Dynamics NAV Service Pack -pakettia tai seuraavaa versiota, joka sisältää tämän hotfix-korjauksen.

Huomautus Erityistapauksissa tukipuheluista tavallisesti aiheutuvat maksut voidaan peruuttaa, jos Microsoft Dynamicsin ja siihen liittyvien tuotteiden teknisen tuen asiantuntija määrittää, että tietty päivitys ratkaisee ongelmasi. Tavanomaiset tukikustannukset koskevat muita tukikysymyksiä ja -ongelmia, jotka eivät ole oikeutettuja kyseiseen päivitykseen.

            
          

Asennustiedot

Microsoft tarjoaa ohjelmointiesimerkkejä vain havainnollistamista varten ilman ilmaistua tai oletettua takuuta. Tämä sisältää muun muassa oletetut takuut soveltuvuudesta kaupankäynnin kohteeksi tai sopivuudesta tiettyyn tarkoitukseen. Tässä artikkelissa oletetaan, että tunnet ohjelmointikielen, jota esitellään, sekä työkalut, joita käytetään toimintosarjojen luomiseen ja virheenkorjaukseen. Microsoftin tukihenkilöt voivat auttaa selittämään tietyn menettelyn toiminnallisuuden, mutta he eivät muokkaa näitä esimerkkejä niin, että ne tarjoaisivat lisätoimintoja tai laativat menetelmiä erityisvaatimusten täyttämiseksi.

Huomautus Varmista ennen tämän hotfix-korjauksen asentamista, että kaikki Microsoft Navision -asiakasohjelman käyttäjät ovat kirjautuneet ulos järjestelmästä. Tämä koskee myös Microsoft Navision Application Services (NAS) -asiakaskäyttäjiä. Sinun pitäisi olla ainoa asiakaskäyttäjä, joka on kirjautunut sisään, kun otat tämän hotfix-korjauksen käyttöön.

Jotta voit ottaa tämän hotfix-korjauksen käyttöön, sinulla on oltava kehittäjän käyttöoikeus.

Suosittelemme, että käyttäjätilille, joka on Windowsin kirjautumisikkunassa tai Tietokannan kirjautumiset -ikkunassa, määritetään "SUPER"-roolitunnus. Jos käyttäjätilille ei voi määrittää "SUPER"-roolitunnusta, sinun on varmistettava, että käyttäjätilillä on seuraavat käyttöoikeudet:

  • Muutettavan objektin Muokkaa-käyttöoikeus.
  • System Object ID 5210 -objektin ja System Object ID 9015 -objektin Suoritus-oikeus.

                
Huomautus Sinulla ei tarvitse olla oikeuksia tietosäilöihin, ellei sinun tarvitse korjata tietoja.

Koodin muutokset

Huomautus Testaa koodikorjaukset aina valvotussa ympäristössä, ennen kuin otat korjaukset käyttöön tuotantotietokoneissasi.

Jos haluat asentaa tämän hotfix-korjauksen, muuta gen-kohdassa olevaa koodia. Jnl.-Post Line codeunit (12) seuraavasti.
Voit tehdä tämän seuraavasti:

  1. Valitse Näytä-valikossaC/AL globals ja lisää sitten Testivakiot-välilehdessä seuraava:

    • Nimi: Teksti1130023
    • ConstValue: Lasku sisältää ennakonpidätysveron, jota ei tule soveltaa suoraan. Käytä funktiota Maksupäiväkirjat -> Maksut -> Withh.Tax-Soc.Sec.
  2. Muuta ApplyVendLedgEntry-käynnistimen koodia seuraavasti:
    Olemassa oleva koodi 1

    ...
    
    IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN
    // Find the entry to be applied to
    OldVendLedgEntry.RESET;
    OldVendLedgEntry.SETCURRENTKEY("Document Type","Document No.","Document Occurrence","Vendor No.");
    ...
    
    

    Korvaava koodi 1

    ...
    
    IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN
    CheckWithholdTax(GenJnlLine."Applies-to Doc. Type",GenJnlLine."Applies-to Doc. No.",GenJnlLine,TRUE); // Add this line. 
    // Find the entry to be applied to
    OldVendLedgEntry.RESET;
    OldVendLedgEntry.SETCURRENTKEY("Document Type","Document No.","Document Occurrence","Vendor No.");
    ...
    
    

    Nykyinen koodi 2

    ...
    
    OldVendLedgEntry.SETFILTER("Amount to Apply",'<>%1',0);
    
    //Check and Move Ledger Entries to Temp
    IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN
    OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code");
    IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN
    REPEAT
    IF GenJnlApply.CheckAgainstApplnCurrency(
    ....
    
    

    Korvaava koodi 2

    ...
    
    OldVendLedgEntry.SETFILTER("Amount to Apply",'<>%1',0);
    
    //Check and Move Ledger Entries to Temp
    IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN
    OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code");
    IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN
    REPEAT
    CheckWithholdTax(OldVendLedgEntry."Document Type",OldVendLedgEntry."Document No.",GenJnlLine,FALSE); // Add this line. 
    IF GenJnlApply.CheckAgainstApplnCurrency(
    ...
    
    
  3. Valitse Näytä-valikossaC/AL Globals ja lisää sitten seuraavat tiedot Funktio-välilehdessä :

    1. Kirjoita Nimi-ruutuun CheckWithholdTax.

    2. Valitse Paikallinen.

    3. Määritä Parametrit-välilehdessä seuraavat asetukset:
      Ensimmäinen parametri:

      • Var: Ei
      • Nimi: DocType
      • Tietotyyppi: Vaihtoehto
      • Valitse Näytä-valikossaOminaisuudet ja lisää OptionString-ominaisuuden arvo: ,,Lasku,Hyvityslasku

      Toinen parametri:

      • Var: Ei
      • Nimi: DocNo
      • DataType: Koodi
      • Pituus: 20

      Kolmas parametri:

      • Var: Ei
      • Nimi: GenJnlLine
      • Tietotyyppi: Tietue
      • Alatyyppi: Sukupolvi. Päivyririvi

      Neljäs parametri:

      • Var: Ei
      • Nimi: ApplyInGenJnlLine
      • DataType: Totuusarvo
    4. Määritä Muuttujat-välilehdessä seuraavat asetukset:
      Ensimmäinen muuttuja:

      • Nimi : ComputedWithholdTax
      • DataType : Tietue
      • Alatyyppi : Laskettu ennakonpidätysvero

      Toinen muuttuja:

      • Nimi : TmpWithholdingContribution
      • DataType : Tietue
      • Alatyyppi : Tmp-ennakonpidätysosuus

      Kolmas muuttuja:

      • Nimi : WithholdCode
      • DataType : Tietue
      • Alatyyppi : Pidätyskoodi
  4. Lisää uusi käynnistin "CheckWithholdTax" seuraavasti:

    CheckWithholdTax(DocType : ',,Invoice,Credit Memo';DocNo : Code[20];GenJnlLine : Record "Gen. Journal Line";ApplyInGenJnlLine : Boolean )
    
    IF DocType IN [DocType::Invoice,DocType::"Credit Memo"] THEN BEGIN
    ComputedWithholdTax.RESET;
    ComputedWithholdTax.SETRANGE("Document No.",DocNo);
    IF ComputedWithholdTax.FINDFIRST THEN BEGIN
    IF NOT ApplyInGenJnlLine THEN
    ERROR(Text1130023)
    ELSE BEGIN
    TmpWithholdingContribution.RESET;
    TmpWithholdingContribution.SETRANGE("Invoice No.",DocNo);
    IF NOT TmpWithholdingContribution.FINDFIRST THEN BEGIN
    WithholdCode.GET(ComputedWithholdTax."Withholding Tax Code");
    WithholdCode.TESTFIELD("Withholding Taxes Payable Acc.");
    IF NOT((GenJnlLine."Bal. Account Type" = GenJnlLine."Bal. Account Type"::"G/L Account") AND
    (GenJnlLine."Bal. Account No." = WithholdCode."Withholding Taxes Payable Acc.")) THEN
    ERROR(Text1130023);
    END;
    END;
    END;
    END;
    
    

Edellytykset

Sinulla on oltava asennettuna jokin seuraavista tuotteista, jotta voit käyttää tätä hotfix-korjausta:

  • Microsoft Dynamics NAV 2009 SP1:n italiankielinen versio
  • Microsoft Dynamics NAV 5.0 SP1:n italiankielinen versio
  • Microsoft Dynamics NAV 5.0:n italiankielinen versio

Poistotiedot

Et voi poistaa tätä hotfix-korjausta.

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

MICROSOFT JA/TAI SEN TOIMITTAJAT EIVÄT TEE MITÄÄN ESITYKSIÄ TAI TAKUITA ASIAKIRJOJEN JA TÄSSÄ SIVUSTOSSA JULKAISTUJEN AIHEESEEN LIITTYVIEN KUVIEN ("MATERIAALIT") SOVELTUVUUDESTA, LUOTETTAVUUDESTA TAI OIKEELLISUUDESTA.

MATERIAALIT VOIVAT SISÄLTÄÄ TEKNISIÄ EPÄTARKKUUKSIA TAI TYPOGRAFISIA VIRHEITÄ, JA NIITÄ VOIDAAN MUUTTAA MILLOIN TAHANSA ILMAN ENNAKKOILMOITUSTA. SOVELLETTAVAN LAIN SALLIMISSA MÄÄRIN MICROSOFT JA/TAI SEN TOIMITTAJAT EIVÄT HYVÄKSY KAIKKIA ESITYKSIÄ, TAKUITA JA EHTOJA RIIPPUMATTA SIITÄ, OVATKO NE NIMENOMAISIA, EPÄSUORIA TAI LAKISÄÄTEISIÄ, MUKAAN LUKIEN MUTTA EI RAJOITTUEN MATERIAALEIHIN LIITTYVÄT KUVAUKSET, TAKUUT TAI OMISTUSEHDOT, RIKKOMATTA JÄTTÄMINEN, TYYDYTTÄVÄ EHTO TAI LAATU, SOVELTUVUUS KAUPANKÄYNNIN KOHTEEKSI JA SOVELTUVUUS TIETTYYN TARKOITUKSEEN.