problemone con Iva!

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

fez
membro Junior
membro Junior
Messaggi: 26
Iscritto il: 22/04/2005, 10:09

Messaggio da fez »

a me funziona alla grande....il calcolo è esatto!!! anke in fattura!!
:D
pippo010
membro Regular
membro Regular
Messaggi: 134
Iscritto il: 26/01/2004, 1:00
Località: Italia
Contatta:

Re: proposta soluzione iva

Messaggio 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?
alcova
membro Junior
membro Junior
Messaggi: 35
Iscritto il: 04/09/2006, 9:54

Re: problemone con Iva!

Messaggio 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
Stefano
-----------
loki79
membro Junior
membro Junior
Messaggi: 24
Iscritto il: 17/06/2006, 0:07
Contatta:

Messaggio 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:
alcova
membro Junior
membro Junior
Messaggi: 35
Iscritto il: 04/09/2006, 9:54

Messaggio 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?
Stefano
-----------
Gpl
membro Regular
membro Regular
Messaggi: 106
Iscritto il: 01/03/2008, 11:03
Contatta:

Messaggio 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)
Avatar utente
XaRaBaS
membro Junior
membro Junior
Messaggi: 37
Iscritto il: 30/06/2008, 22:52

Messaggio 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?
Avatar utente
lavoriamopervoi
membro Senior
membro Senior
Messaggi: 405
Iscritto il: 14/12/2007, 18:32
Contatta:

Messaggio 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
Avatar utente
lavoriamopervoi
membro Senior
membro Senior
Messaggi: 405
Iscritto il: 14/12/2007, 18:32
Contatta:

Messaggio da lavoriamopervoi »

vi funziona?
Rispondi