Betalingen in contant geld voor hertrokken wissels moeten in het jaar van de oorspronkelijke factuur aangegeven en niet op basis van het jaar van de hertrokken wissel in de 347-aangifte in de Spaanse versie van Microsoft Dynamics NAV 2009. Dit probleem treedt op in de volgende producten:
-
De Spaanse versie van Microsoft Dynamics NAV 2009 R2
-
De Spaanse versie van Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
Oorzaak
Dit probleem treedt op omdat onjuiste datum wordt opgehaald uit het exporteren van 347-aangifte bij hertrokken wissels
Oplossing
Informatie over de hotfix
Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter alleen bedoeld om het probleem dat wordt beschreven in dit artikel. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige problemen ondervindt, is het daarom raadzaam te wachten op het volgende servicepack voor Microsoft Dynamics NAV 2009 of de volgende Microsoft Dynamics NAV versie waarin deze hotfix is opgenomen.
Opmerking In speciale gevallen kunnen kosten die verbonden zijn aan ondersteuningsoproepen ondersteuning worden geannuleerd als een medewerker van Technical Support voor Microsoft Dynamics en verwante producten bepaalt dat een specifieke update de oplossing van uw probleem. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.Informatie over de installatie
Microsoft verstrekt programmeervoorbeelden uitsluitend ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend met de programmeertaal die wordt aangetoond en met de hulpprogramma's die worden gebruikt bent voor het maken van en naar procedures voor foutopsporing. Ondersteuningstechnici van Microsoft kunnen voor uitleg over de functionaliteit van een bepaalde procedure. Zij zal deze voorbeelden bieden extra functionaliteit of desgewenst uw specifieke vereisten echter niet wijzigen.
Opmerking Voordat u deze hotfix hebt geïnstalleerd, controleert u of dat alle gebruikers van Microsoft Dynamics NAV-clients zijn afgemeld bij het systeem. Dit omvat services voor Microsoft Dynamics NAV Application Server (NAS). U moet de alleen clientgebruiker die is aangemeld wanneer u deze hotfix gaat implementeren. Als u deze hotfix gaat implementeren, hebt u een ontwikkelaarslicentie voor. Is raadzaam dat de gebruikersaccount in het venster Windows-aanmeldingen of Databaseaanmeldingen de rol-id 'SUPER'. Als de gebruikersaccount kan worden toegewezen als de ID 'SUPER' rol, moet u controleren of de gebruikersaccount de volgende machtigingen heeft:-
De machtiging wijzigen voor het object dat u wijzigt.
-
De machtiging uitvoeren voor het object System Object ID 5210 en voor de System Object ID 9015
-object.
Opmerking Er geen rechten voor de opgeslagen gegevens hebben, tenzij u gegevens herstellen.
Codewijzigingen
Opmerking test correcties altijd in een testomgeving voordat u ze implementeert in de productieomgeving. Importeer alle SEPA updates voordat de wijziging wordt toegepast.
U kunt dit probleem oplossen door de volgende stappen uit te voeren:-
De code in de functie IdentifyCashPayments in het rapport van 347-aangifte maken (10707) als volgt wijzigen:
Bestaande code 1...LOCAL PROCEDURE IdentifyCashPayments@1100010(CustomerNo@1100000 : Code[20];VATRegistrationNo@1100002 : Text[20]);
VAR CustLedgerEntry@1100001 : Record 21; BEGIN // es0020.begin CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code"); CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment); ...Nieuwe code 1
...LOCAL PROCEDURE IdentifyCashPayments@1100010(CustomerNo@1100000 : Code[20];VATRegistrationNo@1100002 : Text[20]);
VAR CustLedgerEntry@1100001 : Record 21; // Add the following line. DocumentPostingDate@1170000000 : Date; BEGIN // es0020.begin CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code"); CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment); ...Bestaande code 2
...CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code");
CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment); CustLedgerEntry.SETRANGE("Customer No.",CustomerNo); // Delete the following lines. CustLedgerEntry.SETRANGE("Posting Date",FromDate,ToDate); IF CustLedgerEntry.FINDSET THEN REPEAT IF (CustLedgerEntry."Bal. Account Type" = CustLedgerEntry."Bal. Account Type"::"G/L Account") AND (CustLedgerEntry."Bal. Account No." <> '') THEN BEGIN IF IsCashAccount(CustLedgerEntry."Bal. Account No.") THEN CreateCashTotals(CustLedgerEntry."Entry No.",VATRegistrationNo); END ELSE IF ((CustLedgerEntry."Bal. Account No." = '') OR (CustLedgerEntry."Bal. Account Type" <> CustLedgerEntry."Bal. Account Type"::"G/L Account")) THEN BEGIN IF IdentifyCashPaymentsFromGL(CustLedgerEntry) THEN CreateCashTotals(CustLedgerEntry."Entry No.",VATRegistrationNo); END; // End of the deleted lines. UNTIL CustLedgerEntry.NEXT = 0; // es0020.end END; ...Vervangende code 2
...CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code");
CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment); CustLedgerEntry.SETRANGE("Customer No.",CustomerNo); // Add the following lines. // we need payments made in future. // CustLedgerEntry.SETRANGE("Posting Date",FromDate,ToDate); IF CustLedgerEntry.FINDSET THEN REPEAT DocumentPostingDate := GetPaymentDocumentPostingDate(CustLedgerEntry); IF (CheckCashTotalsPossibility(CustLedgerEntry,DocumentPostingDate)) THEN CreateCashTotals(CustLedgerEntry."Entry No.",VATRegistrationNo,DocumentPostingDate); // End of the added lines. UNTIL CustLedgerEntry.NEXT = 0; // es0020.end END; ... -
De code in de functie CreateCashTotals in het rapport van 347-aangifte maken (10707) als volgt wijzigen:
Bestaande code 1...UNTIL CustLedgerEntry.NEXT = 0;
// es0020.end END; // Delete the following line. LOCAL PROCEDURE CreateCashTotals@2(CustLedgerEntryNo@1100000 : Integer;VATRegistrationNo@1100001 : Text[20]) : Boolean; VAR CustLedgerEntry@1100091 : Record 21; DtldCustLedgEntry@1100094 : Record 379; DtldCustLedgEntry2@1100095 : Record 379; ...Nieuwe code 1
...UNTIL CustLedgerEntry.NEXT = 0;
// es0020.end END; // Add the following line. LOCAL PROCEDURE CreateCashTotals@2(CustLedgerEntryNo@1100000 : Integer;VATRegistrationNo@1100001 : Text[20];DocumentPostingDate@1170000000 : Date) : Boolean; VAR CustLedgerEntry@1100091 : Record 21; DtldCustLedgEntry@1100094 : Record 379; DtldCustLedgEntry2@1100095 : Record 379; ...Bestaande code 2
...THEN BEGIN
IF CustLedgerEntry.GET(DtldCustLedgEntry2."Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, // Delete the following line. DATE2DMY(CustLedgerEntry."Posting Date",3),-(DtldCustLedgEntry2."Amount (LCY)")); END; UNTIL DtldCustLedgEntry2.NEXT = 0; END ELSE BEGIN ...Vervangende code 2
...THEN BEGIN
IF CustLedgerEntry.GET(DtldCustLedgEntry2."Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, // Add the following line. DATE2DMY(DocumentPostingDate,3),-(DtldCustLedgEntry2."Amount (LCY)")); END; UNTIL DtldCustLedgEntry2.NEXT = 0; END ELSE BEGIN ...Bestaande code 3
...END ELSE BEGIN
IF CustLedgerEntry.GET(DtldCustLedgEntry."Applied Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, // Delete the following line. DATE2DMY(CustLedgerEntry."Posting Date",3),DtldCustLedgEntry."Amount (LCY)"); END; UNTIL DtldCustLedgEntry.NEXT = 0; // es0020.end ...Vervangende code 3
...END ELSE BEGIN
IF CustLedgerEntry.GET(DtldCustLedgEntry."Applied Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, // Add the following line. DATE2DMY(DocumentPostingDate,3),DtldCustLedgEntry."Amount (LCY)"); END; UNTIL DtldCustLedgEntry.NEXT = 0; // es0020.end ... -
De code in de functie GetPaymentDocumentPostingDate in het rapport van 347-aangifte maken (10707) als volgt wijzigen:
Bestaande code...IF Vendor."Country/Region Code" = CountryCode THEN
FromJournal := TRUE; END; ...Nieuwe code
...IF Vendor."Country/Region Code" = CountryCode THEN
FromJournal := TRUE; END; // Add the following lines. LOCAL PROCEDURE GetPaymentDocumentPostingDate@1170000000(CustLedgerEntry@1170000000 : Record 21) PostingDate : Date; VAR CustLedgerEntryRelated@1170000001 : Record 21; BEGIN WITH CustLedgerEntry DO BEGIN; TESTFIELD("Document Type","Document Type"::Payment); PostingDate := "Posting Date"; END; // If payment for Bill then we need get Posting Date of the Document related to the Bill WITH CustLedgerEntryRelated DO BEGIN SETRANGE("Closed by Entry No.",CustLedgerEntry."Entry No."); SETRANGE("Document Type","Document Type"::Bill); IF FINDFIRST THEN BEGIN RESET; SETRANGE("Document No.","Document No."); SETFILTER("Document Type",'%1|%2',"Document Type"::Invoice,"Document Type"::"Credit Memo"); FINDFIRST; PostingDate := "Posting Date"; END END; EXIT(PostingDate); END; PROCEDURE CheckCashTotalsPossibility@1170000008(CustLedgerEntry@1170000000 : Record 21;DocumentPostingDate@1170000001 : Date) : Boolean; BEGIN IF (DocumentPostingDate < FromDate) OR (DocumentPostingDate > ToDate) THEN EXIT(FALSE); WITH CustLedgerEntry DO IF ("Bal. Account Type" = "Bal. Account Type"::"G/L Account") AND ("Bal. Account No." <> '') THEN BEGIN IF IsCashAccount("Bal. Account No.") THEN EXIT(TRUE); END ELSE IF ("Bal. Account No." = '') OR ("Bal. Account Type" <> "Bal. Account Type"::"G/L Account") THEN IF IdentifyCashPaymentsFromGL(CustLedgerEntry) THEN EXIT(TRUE); EXIT(FALSE); END; // End of the added lines. ...
Vereisten
Hebt u een van de volgende producten geïnstalleerd om deze hotfix:
-
De Spaanse versie van Microsoft Dynamics NAV 2009 R2
-
De Spaanse versie van Microsoft Dynamics NAV 2009 SP1
Informatie over verwijderen
U kunt deze hotfix niet verwijderen.
Status
Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Opmerking Dit is een 'Snel publiceren' artikel dat rechtstreeks door het ondersteuningsteam van Microsoft is gemaakt. De informatie wordt geleverd zoals het is in reactie op de opkomende problemen. Omdat het artikel snel beschikbaar moest zijn, kunnen de materialen typografische fouten bevatten en op elk gewenst moment zonder voorafgaande kennisgeving worden gewijzigd. Zie de Gebruiksvoorwaardenvoor andere overwegingen.