Pagina 2 di 2

Inviato: 10/05/2005, 12:09
da fez
a me funziona alla grande....il calcolo è esatto!!! anke in fattura!!
:D

Re: proposta soluzione iva

Inviato: 14/06/2005, 11:37
da pippo010
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?
Quale sarebbe la modifica che hai apportato alla function tep_add_tax per forzare le 3 cifre nel calcolo?

Re: problemone con Iva!

Inviato: 05/09/2006, 0:19
da alcova
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?
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!!!
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.

:(
Affermazione corretta!

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 :wink:

Nella classe order cerca le linee

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;

e sostituiscile con:

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;
Poi cerca queste:

Codice: 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'];
      }
    }

e sostituisci con

Codice: Seleziona tutto

$this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
Ovviamente non ti garantisco niente :wink:

Buno lavoro
Marzullus

Inviato: 05/09/2006, 1:10
da loki79
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 :wink:

Inviato: 05/09/2006, 1:24
da alcova
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?

Inviato: 05/04/2008, 18:00
da Gpl
Penso di avere lo stesso problema, infatti dopo aver installato il contributo di Giorgio Abbate, e subito dopo ho avuto anche io i problemi con l'iva, ma non trovo le stringhe da sostituire son file order.php

(OSC 2.2 MS2a)

Inviato: 02/09/2008, 17:24
da XaRaBaS
Stesso problema di Gpl.. non si trovano queste stringhe da sostituire.. mi sa che quella soluzione era per una vecchia versione di osCommerce..

Qualche idea ragazzi?

Inviato: 02/09/2008, 20:02
da lavoriamopervoi
la soluzione dovrebbe essere questa...
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'];
      }
con questo:

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'];
      //}
Ciao
Antonello

Inviato: 05/09/2008, 13:46
da lavoriamopervoi
vi funziona?