Symptomer
Når du oppretter en korrigeringsfaktura Hvis prisene inc. mva. -feltet ble endret, er prisen enhetsverdiene feil i den ungarske versjonen av Microsoft Dynamics NAV 2009 R2. Følg trinnene i delen kodeendringer for å løse dette problemet. Dette problemet oppstår i følgende produkter:
-
Den ungarske versjonen av Microsoft Dynamics NAV 2009 R2
Oppløsning
Informasjon om hurtigreparasjon
En støttet hurtigreparasjon er nå tilgjengelig fra Microsoft. Det er imidlertid bare ment å løse problemet som er beskrevet i denne artikkelen. Bruk den bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan gjennomgå ytterligere testing. Hvis du ikke er alvorlig påvirket av dette problemet, anbefaler vi derfor at du venter på neste oppdateringspakke for Microsoft Dynamics NAV 2009 eller den neste versjonen av Microsoft Dynamics NAV som inneholder denne hurtigreparasjonen.
Obs! I spesielle tilfeller avgifter som vanligvis påløper for støtte samtaler kan avbrytes hvis en kundestøttemedarbeider for Microsoft Dynamics og beslektede produkter avgjør at en bestemt oppdatering løser problemet. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av den gjeldende oppdateringen.
Installasjonsinformasjon
Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre. De endrer imidlertid ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov.
Obs! Før du installerer denne hurtigreparasjonen, må du kontrollere at alle brukerne i Microsoft Dynamics NAV-klienten er logget av systemet. Dette inkluderer tjenester for Microsoft Dynamics NAV Application Server (NAS). Du skal bare klient-brukeren som er logget på når du implementerer denne hurtigreparasjonen.
Hvis du vil implementere denne hurtigreparasjonen, må du ha en utviklerlisens.
Vi anbefaler at kontoen i vinduet Windows-pålogging eller i vinduet Database-pålogging være tildelt "SUPER" rolle-ID. Hvis brukerkontoen ikke kan tilordnes "SUPER" rolle-IDen, må du kontrollere at brukerkontoen har følgende tillatelser:
-
Endre-tillatelse for objektet du vil endre.
-
Tilgangsnivået for systemet objekt-IDen til 5210 objektet og systemet objekt-ID-9015
-objektet.
Obs! Du har ikke tilgangsrettigheter til datalagre med mindre du har til å utføre data reparasjon.
Kodeendringer
Obs! Alltid løser teste koden i et kontrollert miljø før du installerer hurtigreparasjoner til produksjonsdatamaskiner for.
Hvis du vil løse dette problemet, gjør du følgende:
-
Endre koden i UpdateVATAmounts -funksjonen i tabellen Salgslinje for Korreksjon (14536) som følger:
Eksisterende kode...Amount * (1 - SalesHeader."VAT Base Discount %" / 100),
Currency."Amount Rounding Precision");
"Amount Including VAT" :=
ROUND(
Amount * (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100,
Currency."Amount Rounding Precision",Currency.VATRoundingDirection);
END;
"VAT Calculation Type"::"Full VAT":
BEGIN
...Ny kode
...Amount * (1 - SalesHeader."VAT Base Discount %" / 100),
Currency."Amount Rounding Precision");
"Amount Including VAT" :=
// Add the following line.
Amount +
// End of the added line.
ROUND(
Amount * (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100,
Currency."Amount Rounding Precision",Currency.VATRoundingDirection);
END;
"VAT Calculation Type"::"Full VAT":
BEGIN
... -
Endre koden i CheckLineAmount -funksjonen i tabellen Salgslinje for Korreksjon (14536) som følger:
Eksisterende kode 1..."Unit Price Incl. Discount" := "Unit Price" - "Unit Price" * "Line Discount %" / 100;
END;
// Delete the following line.
PROCEDURE CheckLineAmount@1360000();
// End of the deleted line.
BEGIN
// PS16433.begin
IF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN
...Ny kode 1
..."Unit Price Incl. Discount" := "Unit Price" - "Unit Price" * "Line Discount %" / 100;
END;
// Add the following lines.
PROCEDURE CheckLineAmount@1170219();
VAR
SalesinvHeader@1170001 : Record 112;
// End of the added lines.
BEGIN
// PS16433.begin
IF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN
...Eksisterende kode 2
...// PS16433.begin
IF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN
SalesCorrLine.GET("Document Type","Document No.","Correction Line No.","Before/ After correction"::Before);
GetCorrType;
IF (SalesCorrLine."Line Amount" > "Line Amount") AND
("Document Type" = "Document Type"::Invoice) AND
(SalesCorrectionType."Correction Type" = SalesCorrectionType."Correction Type"::"Quantity and Value")
THEN
...Ny kode 2
... // PS16433.begin
IF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN
SalesCorrLine.GET("Document Type","Document No.","Correction Line No.","Before/ After correction"::Before);
// Add the following line.
SalesinvHeader.GET(SalesHeader."Corr. Document No.");
// End of the added line.
GetCorrType;
IF (SalesCorrLine."Line Amount" > "Line Amount") AND
// Add the following line.
(SalesHeader."Prices Including VAT" = SalesinvHeader."Prices Including VAT") AND
// End of the added line.
("Document Type" = "Document Type"::Invoice) AND
(SalesCorrectionType."Correction Type" = SalesCorrectionType."Correction Type"::"Quantity and Value")
THEN
... -
Endre koden i Data elementet nummer 5 i de rapporten salgene - faktura (HU) (14516) som følger:
Eksisterende kode...DataItemTable=Table14537;
DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)
WHERE(Before/ After correction=FILTER(Before),
Document Type=CONST(Posted Invoice));
DataItemVarName=PostedSalesCorrLineBefore;
DataItemLinkReference=Sales Invoice Header;
DataItemLink=Document No.=FIELD(No.);
}
SECTIONS
{
...Ny kode
...DataItemTable=Table14537;
DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)
WHERE(Before/ After correction=FILTER(Before),
Document Type=CONST(Posted Invoice));
DataItemVarName=PostedSalesCorrLineBefore;
// Add the following lines.
OnAfterGetRecord=BEGIN
IF SalesInvHeader.GET("Sales Invoice Header"."Corr. Document No.") THEN
IF SalesInvHeader."Prices Including VAT" <> "Sales Invoice Header"."Prices Including VAT" THEN
"Unit Price Incl. Discount" := "VAT Base Amount" / Quantity;
END;
// End of the added lines.
DataItemLinkReference=Sales Invoice Header;
DataItemLink=Document No.=FIELD(No.);
}
SECTIONS
{
... -
Endre koden i Data element nummer 6 i de rapporten salgene - faktura (HU) (14516) som følger:
Eksisterende kode...DataItemTable=Table14537;
DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)
WHERE(Before/ After correction=FILTER(After),
Document Type=CONST(Posted Invoice));
DataItemVarName=PostedSalesCorrLineAfter;
DataItemLinkReference=PostedSalesCorrLineBefore;
DataItemLink=Document No.=FIELD(Document No.),
Correction Line No.=FIELD(Correction Line No.);
}
SECTIONS
...Ny kode
...DataItemTable=Table14537;
DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)
WHERE(Before/ After correction=FILTER(After),
Document Type=CONST(Posted Invoice));
DataItemVarName=PostedSalesCorrLineAfter;
// Add the following lines.
OnAfterGetRecord=BEGIN
IF SalesInvHeader."Prices Including VAT" <> "Sales Invoice Header"."Prices Including VAT" THEN
"Unit Price Incl. Discount" := "VAT Base Amount" / Quantity;
END;
// End of the added lines.
DataItemLinkReference=PostedSalesCorrLineBefore;
DataItemLink=Document No.=FIELD(Document No.),
Correction Line No.=FIELD(Correction Line No.);
}
SECTIONS
... -
Endre koden i globale variabler i de rapporten salgene - faktura (HU) (14516) som følger:
Eksisterende kode...VALExchRate@1360016 : Text[50];
Text14530@1360017 : TextConst 'ENU=%1/%2;HUN=%1/%2';
GroupVATText@13600018 : Text[30];
CorrInvText@1360018 : TextConst 'ENU=C O R R E C T I V E I N V O I C E;HUN=H E L Y E S B Ö T Š S Z µ M L A';
LogInteractionEnable@19003940 : Boolean INDATASET;
PROCEDURE InitLogInteraction@1360000();
BEGIN
LogInteraction := SegManagement.FindInteractTmplCode(4) <> '';
END;
...Ny kode
...VALExchRate@1360016 : Text[50];
Text14530@1360017 : TextConst 'ENU=%1/%2;HUN=%1/%2';
GroupVATText@13600018 : Text[30];
CorrInvText@1360018 : TextConst 'ENU=C O R R E C T I V E I N V O I C E;HUN=H E L Y E S B Ö T Š S Z µ M L A';
LogInteractionEnable@19003940 : Boolean INDATASET;
// Add the following line.
SalesInvHeader@13600019 : Record 112;
// End of the added line.
PROCEDURE InitLogInteraction@1360000();
BEGIN
LogInteraction := SegManagement.FindInteractTmplCode(4) <> '';
END;
... -
Endre koden i InitSalesLineOnCharge -funksjonen i kodeenheten VATCorrectionManagement (14535) som følger:
Eksisterende kode 1...SalesLine.INSERT;
CopyDim(SalesLine,SalesCorrLine);
END;
PROCEDURE InitSalesLineOnCharge@1360001(VAR SalesLine@1360000 : Record 37;SalesCorrLine@1360001 : Record 14536;QtyOnSalesLine@1360002 : Decimal);
BEGIN
InitSalesLine(SalesCorrLine,SalesLine);
SalesLine.Type := SalesLine.Type::"Charge (Item)";
SalesLine."No." := SalesCorrType."Item Charge Code";
SalesLine.VALIDATE("Unit of Measure Code",'');
...Ny kode 1
...SalesLine.INSERT;
CopyDim(SalesLine,SalesCorrLine);
END;
PROCEDURE InitSalesLineOnCharge@1360001(VAR SalesLine@1360000 : Record 37;SalesCorrLine@1360001 : Record 14536;QtyOnSalesLine@1360002 : Decimal);
// Add the following lines.
VAR
SalesInvHeader@1360003 : Record 112;
// End of the added lines.
BEGIN
InitSalesLine(SalesCorrLine,SalesLine);
SalesLine.Type := SalesLine.Type::"Charge (Item)";
SalesLine."No." := SalesCorrType."Item Charge Code";
SalesLine.VALIDATE("Unit of Measure Code",'');
...Eksisterende kode 2
...InitSalesLine(SalesCorrLine,SalesLine);
SalesLine.Type := SalesLine.Type::"Charge (Item)";
SalesLine."No." := SalesCorrType."Item Charge Code";
SalesLine.VALIDATE("Unit of Measure Code",'');
SalesLine.VALIDATE(Quantity,QtyOnSalesLine);
SalesLine.VALIDATE("Unit Price",SalesCorrLine."Unit Price");
IF SalesLine.Quantity <> 0 THEN
SalesLine.VALIDATE("Line Discount %",SalesCorrLine."Line Discount %");
SalesLine.UpdateAmounts;
SalesLine.VALIDATE("Unit Cost (LCY)",0);
...Ny kode 2
...InitSalesLine(SalesCorrLine,SalesLine);
SalesLine.Type := SalesLine.Type::"Charge (Item)";
SalesLine."No." := SalesCorrType."Item Charge Code";
SalesLine.VALIDATE("Unit of Measure Code",'');
SalesLine.VALIDATE(Quantity,QtyOnSalesLine);
// Add the following lines.
IF (SalesCorrLine."Before/ After correction" = SalesCorrLine."Before/ After correction"::Before) AND
(SalesInvHeader.GET(SalesCorrLine."Source Document No.")) AND
(SalesHeader."Prices Including VAT" <> SalesInvHeader."Prices Including VAT")
THEN BEGIN
IF SalesHeader."Prices Including VAT" THEN
SalesLine.VALIDATE("Unit Price",SalesCorrLine."Amount Including VAT" / SalesCorrLine.Quantity)
ELSE
SalesLine.VALIDATE("Unit Price",SalesCorrLine."VAT Base Amount" / SalesCorrLine.Quantity);
END ELSE
// End of the added lines.
SalesLine.VALIDATE("Unit Price",SalesCorrLine."Unit Price");
IF SalesLine.Quantity <> 0 THEN
SalesLine.VALIDATE("Line Discount %",SalesCorrLine."Line Discount %");
SalesLine.UpdateAmounts;
SalesLine.VALIDATE("Unit Cost (LCY)",0);
...
Forutsetninger
Du må ha én av de følgende programmene installert for å bruke denne hurtigreparasjonen:
-
Den ungarske versjonen av Microsoft Dynamics NAV 2009 R2
Informasjon om fjerning
Du kan ikke fjerne denne hurtigreparasjonen.
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Obs! Dette er en "RASKT PUBLISERE" artikkel opprettet direkte fra innenfor organisasjonen Microsoft Kundestøtte. Informasjonen i dette dokumentet tilbys som-er som svar på nye problemer. Som et resultat av hastigheten i å gjøre den tilgjengelig materialene kan inkludere typografiske feil, og den kunne bli revidert når som helst uten varsel. Se Vilkårene for Brukfor andre hensyn.