problemone con Iva!
Moderatore: mod Generali
Re: proposta soluzione iva
Quale sarebbe la modifica che hai apportato alla function tep_add_tax per forzare le 3 cifre nel calcolo?varr98 ha scritto:in general.php (sia admin\includes\function che in includes\function)
ho modificato anche la function tep_add_tax forzando le 3 cifre nel calcolo ....
da
return tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']) + tep_calculate_tax($price, $tax);
a
return tep_round($price, 3) + tep_calculate_tax($price, $tax);
così ottengo un numero maggiore di calcoli esatti (in alcuni casi però ho delle discrepanze)
che ne pensate?
Re: problemone con Iva!
marcus,
ho fatto le modifiche che suggerivi, ma se nell'ordine ci sono prodotti con aliquote iva diverse (ho creato un'aliquota aggiuntiva al 10%) il subtotale è costituito dalla somma del netto dei prodotti al 20% e del lordo di quelli al 10%.
Ti faccio un esempio:
prodotto A 22.00 (iva 10%)
prodotto B 36.00 (iva 20%)
subtotale 52.00
Iva 10% 2.00
Iva 20% 6.00
Totale 58.00
come mai? hai suggerimenti?
ho fatto le modifiche che suggerivi, ma se nell'ordine ci sono prodotti con aliquote iva diverse (ho creato un'aliquota aggiuntiva al 10%) il subtotale è costituito dalla somma del netto dei prodotti al 20% e del lordo di quelli al 10%.
Ti faccio un esempio:
prodotto A 22.00 (iva 10%)
prodotto B 36.00 (iva 20%)
subtotale 52.00
Iva 10% 2.00
Iva 20% 6.00
Totale 58.00
come mai? hai suggerimenti?
marcus ha scritto:provider ha scritto:-----------------------
Lo stesso problema mi si presenta in fattura.
N.B.: il problema lo risolverei impostando la visualizzazione dei prezzi senz'iva, ma molti clienti preferiscono vederli ivati. Quindi cerco una soluzione alternativa. Prezzi ivati ma subtotale non ivato per la somma finale con l'iva!
Come fare????
Grazie in anticipo!!!Affermazione corretta!provider ha scritto:Ho il Total Pack di phobos più altre contrib installate.
Ma credo la cosa accadeva anche su precedenti versioni pulite di OSC.
Infatti Osc opera in due modi:
1) display prices with TAX - il sub totale viene calcolato sui i prezzi comprensivi di IVA
2) display prices without TAX - il sub totale viene calcolato sui prezzi al netto di IVA.
Tu vuoi un comportamento diciamo asimmetrico che non è previsto.
Devi mettere mano alla classe order lato cliente.
La seguente modifica che ti propongo dovrebbe 'forzare' il calcolo del subtotale NON comprendendo l'iva pur continuando a mostrare i singoli prezzi comprensivi di iva.
Per la fattura le cose dovrebbero automaticamente funzionare allo stesso modo ..ma sicuramente sono troppo ottimista
Nella classe order cerca le linee
e sostituiscile con:Codice: Seleziona tutto
$shown_price = tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax']) * $this->products[$index]['qty']; $this->info['subtotal'] += $shown_price;
Poi cerca queste:Codice: Seleziona tutto
$shown_price = tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax']) * $this->products[$index]['qty']; $shown_price_wt = $this->products[$index]['final_price'] * $this->products[$index]['qty']; $this->info['subtotal'] += $shown_price_wt;
e sostituisci conCodice: Seleziona tutto
if (DISPLAY_PRICE_WITH_TAX == 'true') { $this->info['total'] = $this->info['subtotal'] + $this->info['shipping_cost']; } else { $this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost']; } }
Ovviamente non ti garantisco nienteCodice: Seleziona tutto
$this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
Buno lavoro
Marzullus
Stefano
-----------
-----------
scusate se mi intrometto .......
se i prezzi sono iva inclusa credo nn sia necessario visualizzare all'ultimo step dell'acquisto la voce iva.
infatti questa voce serve ,credo, solo se si utilizzano differenti aliquote ,per rendere + chiara al cliente la lettura delle varie tasse applicate.
spero di essere stato utile
se i prezzi sono iva inclusa credo nn sia necessario visualizzare all'ultimo step dell'acquisto la voce iva.
infatti questa voce serve ,credo, solo se si utilizzano differenti aliquote ,per rendere + chiara al cliente la lettura delle varie tasse applicate.
spero di essere stato utile
oopss.. non avevo uploadato un file.
come non detto.. tutto bene.
Unico problema che sto ancora cercando di risolvere è come sommare all'iva dei prodotti anche quella relativa alle spese di spedizione e alle spese accessorie (es. sovraprezzo per pagamento in contrassegno o handling per consegna in sede).
qualcuno sa come fare?
come non detto.. tutto bene.
Unico problema che sto ancora cercando di risolvere è come sommare all'iva dei prodotti anche quella relativa alle spese di spedizione e alle spese accessorie (es. sovraprezzo per pagamento in contrassegno o handling per consegna in sede).
qualcuno sa come fare?
Stefano
-----------
-----------
- lavoriamopervoi
- membro Senior
- Messaggi: 405
- Iscritto il: 14/12/2007, 18:32
- Contatta:
la soluzione dovrebbe essere questa...
sostituire questo:
con questo:
Ciao
Antonello
sostituire questo:
Codice: Seleziona tutto
$shown_price = $currencies->calculate_price($this->products[$index]['final_price'], $this->products[$index]['tax'], $this->products[$index]['qty']);
$this->info['subtotal'] += $shown_price;
$products_tax = $this->products[$index]['tax'];
$products_tax_description = $this->products[$index]['tax_description'];
if (DISPLAY_PRICE_WITH_TAX == 'true') {
$this->info['tax'] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
if (isset($this->info['tax_groups']["$products_tax_description"])) {
$this->info['tax_groups']["$products_tax_description"] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
} else {
$this->info['tax_groups']["$products_tax_description"] = $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
}
} else {
$this->info['tax'] += ($products_tax / 100) * $shown_price;
if (isset($this->info['tax_groups']["$products_tax_description"])) {
$this->info['tax_groups']["$products_tax_description"] += ($products_tax / 100) * $shown_price;
} else {
$this->info['tax_groups']["$products_tax_description"] = ($products_tax / 100) * $shown_price;
}
}
$index++;
}
if (DISPLAY_PRICE_WITH_TAX == 'true') {
$this->info['total'] = $this->info['subtotal'] + $this->info['shipping_cost'];
} else {
$this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
}
Codice: Seleziona tutto
$shown_price = $currencies->calculate_price($this->products[$index]['final_price'], '', $this->products[$index]['qty']);
$this->info['subtotal'] += $shown_price;
$products_tax = $this->products[$index]['tax'];
$products_tax_description = $this->products[$index]['tax_description'];
/*if (DISPLAY_PRICE_WITH_TAX == 'true') {
$this->info['tax'] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
if (isset($this->info['tax_groups']["$products_tax_description"])) {
$this->info['tax_groups']["$products_tax_description"] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
} else {
$this->info['tax_groups']["$products_tax_description"] = $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
}
} else {*/
$this->info['tax'] += ($products_tax / 100) * $shown_price;
if (isset($this->info['tax_groups']["$products_tax_description"])) {
$this->info['tax_groups']["$products_tax_description"] += ($products_tax / 100) * $shown_price;
} else {
$this->info['tax_groups']["$products_tax_description"] = ($products_tax / 100) * $shown_price;
}
//}
$index++;
}
//if (DISPLAY_PRICE_WITH_TAX == 'true') {
//$this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
//} else {
$this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
//}
Antonello
- lavoriamopervoi
- membro Senior
- Messaggi: 405
- Iscritto il: 14/12/2007, 18:32
- Contatta: