In questo articolo si applica a Microsoft Dynamics NAV per i seguenti paesi e lingue.
-
Inglese (Canada) (en-ca)
-
Inglese (Stati Uniti) (en-us)
-
Spagnolo (Messico) (es-mx)
-
Francese (Canada) (fr-ca)
Sintomi
Si supponga di applicare l'hotfix 983245 nella versione nordamericana di Microsoft Dynamics NAV 2009. Si dispone di un ordine di acquisto contenente uno sconto riga e un codice area imposte per un elemento. Quindi si riceve l'ordine di acquisto. In questo caso, quando si registra una fattura parziale per l'ordine di acquisto, il sistema calcola lo sconto completo per l'importo della fattura in modo non corretto. Questo problema si verifica nei seguenti prodotti:
-
La versione nordamericana di Microsoft Dynamics NAV 2009 R2
-
La versione nordamericana del Service Pack 1 di Microsoft Dynamics NAV 2009
Per ulteriori informazioni sull'hotfix 983245, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
983245 i movimenti di contabilità generale non sono corretti quando si registrano transazioni di fattura che ha uno sconto riga 100 percentuale in Microsoft Dynamics NAV 2009 SP1
Risoluzione
Informazioni sull'hotfix
Un hotfix supportato è ora disponibile da Microsoft. Tuttavia, è destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Applicarlo solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Pertanto, se il problema non causa gravi difficoltà, consiglia di attendere il prossimo service pack di Microsoft Dynamics NAV 2009 o versione successiva di Microsoft Dynamics NAV contenente tale hotfix.
Nota: In casi particolari, le spese normalmente addebitate per le chiamate potrebbero essere annullate qualora un aggiornamento del supporto tecnico di Microsoft Dynamics e prodotti correlati di supporto determina che uno specifico aggiornamento risolverà il problema. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione.
Informazioni sull'installazione
Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, ma non limitato a, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che si abbia familiarità con il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire la procedura di debug. I tecnici del supporto Microsoft possono spiegare la funzionalità di una particolare procedura, ma in nessun caso possono modificare questi esempi per fornire funzionalità aggiuntive o creare procedure atte a soddisfare specifiche esigenze.
Nota: Prima di installare questo hotfix, verificare che tutti gli utenti di client Microsoft Navision siano disconnessi dal sistema. Include gli utenti client Microsoft Navision Application Services (NAS). Dovrebbe essere il solo l'utente client connesso quando si implementa questo hotfix.
Per implementare questo hotfix, è necessario disporre di una licenza di sviluppatore.
È consigliabile che l'account utente nella finestra Login Windows o Login Database assegnare l'ID di ruolo "SUPER". Se l'account utente non può essere assegnato l'ID ruolo "SUPER", è necessario verificare che l'account utente disponga delle autorizzazioni seguenti:
-
Autorizzazione alla modifica dell'oggetto che si desidera modificare.
-
L'autorizzazione di esecuzione per l'oggetto System Object ID 5210 e object ID 9015 oggetto di sistema .
Nota: Non è necessario disporre dei diritti per gli archivi dati a meno che non è necessario eseguire il ripristino di dati.
Modifiche al codice
Nota: Sempre il codice di test consente di correggere in un ambiente controllato prima di applicare le correzioni per i computer di produzione.
Per risolvere questo problema, attenersi alla seguente procedura:
-
Modificare il codice nella funzione AddSalesTaxLineToSalesTaxCalc nella codeunit "Post-vendita" (80) come segue:
Codice esistente...ROUND(
"Inv. Discount Amount" * "Qty. to Invoice" / Quantity,
Currency."Amount Rounding Precision");
"Quantity (Base)" := "Qty. to Invoice (Base)";
"Line Amount" := ROUND("Qty. to Invoice" * "Unit Price",Currency."Amount Rounding Precision");
// Delete the following line.
IF MaxInvQty <> Quantity THEN
"Line Discount Amount" :=
ROUND("Line Amount" * "Line Discount %" / 100,Currency."Amount Rounding Precision");
Quantity := "Qty. to Invoice";
"Line Amount" := "Line Amount" - "Line Discount Amount";
"Inv. Discount Amount" := "Inv. Disc. Amount to Invoice";
...Codice di sostituzione
...ROUND(
"Inv. Discount Amount" * "Qty. to Invoice" / Quantity,
Currency."Amount Rounding Precision");
"Quantity (Base)" := "Qty. to Invoice (Base)";
"Line Amount" := ROUND("Qty. to Invoice" * "Unit Price",Currency."Amount Rounding Precision");
// Add the following line.
IF Quantity <> "Qty. to Invoice" THEN
"Line Discount Amount" :=
ROUND("Line Amount" * "Line Discount %" / 100,Currency."Amount Rounding Precision");
Quantity := "Qty. to Invoice";
"Line Amount" := "Line Amount" - "Line Discount Amount";
"Inv. Discount Amount" := "Inv. Disc. Amount to Invoice";
... -
Modificare il codice nella funzione AddSalesTaxLineToSalesTaxCalc di "Acq.-Post" codeunit (90) come segue:
Codice esistente...ROUND(
"Inv. Discount Amount" * "Qty. to Invoice" / Quantity,
Currency."Amount Rounding Precision");
"Quantity (Base)" := "Qty. to Invoice (Base)";
"Line Amount" := ROUND("Qty. to Invoice" * "Direct Unit Cost",Currency."Amount Rounding Precision");
// Delete the following line.
IF MaxInvQty <> Quantity THEN
"Line Discount Amount" :=
ROUND("Line Amount" * "Line Discount %" / 100,Currency."Amount Rounding Precision");
Quantity := "Qty. to Invoice";
"Line Amount" := "Line Amount" - "Line Discount Amount";
"Inv. Discount Amount" := "Inv. Disc. Amount to Invoice";
...Codice di sostituzione
...ROUND(
"Inv. Discount Amount" * "Qty. to Invoice" / Quantity,
Currency."Amount Rounding Precision");
"Quantity (Base)" := "Qty. to Invoice (Base)";
"Line Amount" := ROUND("Qty. to Invoice" * "Direct Unit Cost",Currency."Amount Rounding Precision");
// Add the following line.
IF Quantity <> "Qty. to Invoice" THEN
"Line Discount Amount" :=
ROUND("Line Amount" * "Line Discount %" / 100,Currency."Amount Rounding Precision");
Quantity := "Qty. to Invoice";
"Line Amount" := "Line Amount" - "Line Discount Amount";
"Inv. Discount Amount" := "Inv. Disc. Amount to Invoice";
...
Prerequisiti
Deve avere uno dei seguenti prodotti per applicare questo hotfix:
-
La versione nordamericana di Microsoft Dynamics NAV 2009 R2
-
La versione nordamericana del Service Pack 1 di Microsoft Dynamics NAV 2009
Informazioni sulla rimozione
Non è possibile rimuovere questo hotfix.
Stato
Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".
Nota: Si tratta di un articolo a "Pubblicazione Veloce" creato direttamente all'interno dell'organizzazione di supporto Microsoft. Le informazioni contenute nel presente documento sono fornite così come sono in risposta a problemi urgenti. Per la velocità in rendendo disponibili, i materiali possono includere errori tipografici e possono essere modificati in qualsiasi momento senza preavviso. Per altre considerazioni, vedere Condizioni di utilizzo .