Jump to content

Come applicare l'imposta di bollo di 2 € sui prodotti Covid-19 al superamento di € 77,46


Recommended Posts

Ciao,

c'è un'imposta di bollo da pagare sui prodotti esenti iva (prodotti covid-19) che andrebbe applicata al superamento di € 77,46.

La questione però è più complicata perché questa imposta di bollo si deve applicare solo ai prodotti covid-19 con iva allo 0%, o almeno così mi è stato detto. Per cui, in un carrello di prodotti multipli covid-19 e non covid-19, Prestashop dovrebbe scorporare le due tipologie di prodotti e calcolare a quanto ammontano quelli covid-19 per applicare più o meno l'imposta.
Al momento ho creato una nuova tassa allo 0 % e applicata a tutti i prodotti Covid-19. Da qui però come faccio a segnalare a Prestahsop che deve applicare tale imposta?
Da escludere una creazione di una categoria apposita perché andrebbe a creare confusione sia per il cliente che dal punto di vista della SEO. Preferirei mantenere i prodotti all'interno della loro categoria di appartenenza.

Se avete suggerimenti in merito scrivete per favore. La cosa potrebbe essere utile. Ciao e grazie per le eventuali risposte.

 

Avete suggerimento in merito

Link to comment
Share on other sites

  • 5 months later...

Ciao, ti aggiungo qui la soluzione al tuo problema anche se non è proprio il modo migliore per farlo.

Recati in classes/Cart.php e alla linea 2004 sotto : $compute_precision = $this->configuration->get('_PS_PRICE_COMPUTE_PRECISION_'); aggiungi

        if($value >= 77.46){

            $value +=2.00;

        }

Prima del return, mi raccomando.

Salva il file e poi vai in src/Adapter/Presenter/Cart/CartPresenter.php linea 349 dopo

        } else {

            $subtotals['discounts'] = null;

        }

aggiungi

        // Custom Imposta

        if($totalCartAmount >= 77.47){

            $subtotals['impostaDiBollo'] = array(

                'type' => 'impostaDiBollo',

                'label' => $this->translator->trans('Imposta di bollo', array(), 'Shop.Theme.Checkout'),

                'amount' => 2,

                'value' => $this->priceFormatter->format(2),

            );

        }

 

spero di esserti stato d'aiuto! ;)

 

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 months later...
On 11/13/2020 at 3:41 PM, SpectreMZ said:

Ciao, ti aggiungo qui la soluzione al tuo problema anche se non è proprio il modo migliore per farlo.

Recati in classes/Cart.php e alla linea 2004 sotto : $compute_precision = $this->configuration->get('_PS_PRICE_COMPUTE_PRECISION_'); aggiungi

        if($value >= 77.46){

            $value +=2.00;

        }

Prima del return, mi raccomando.

Salva il file e poi vai in src/Adapter/Presenter/Cart/CartPresenter.php linea 349 dopo

        } else {

            $subtotals['discounts'] = null;

        }

aggiungi

        // Custom Imposta

        if($totalCartAmount >= 77.47){

            $subtotals['impostaDiBollo'] = array(

                'type' => 'impostaDiBollo',

                'label' => $this->translator->trans('Imposta di bollo', array(), 'Shop.Theme.Checkout'),

                'amount' => 2,

                'value' => $this->priceFormatter->format(2),

            );

        }

 

spero di esserti stato d'aiuto! ;)

 

Ciao, scusami ma nel mio PS  1.7.7.1 il file Cart.php in classes non contiene alla riga 2004 la stringa da te indicata, cosa sto sbagliando?

ecco la stringa dalla  2004 in poi:

* @param bool $use_tax_display Whether the tax should be displayed
     * @param int $type Type enum:
     *                  - ONLY_PRODUCTS
     *                  - ONLY_DISCOUNTS
     *                  - BOTH
     *                  - BOTH_WITHOUT_SHIPPING
     *                  - ONLY_SHIPPING
     *                  - ONLY_WRAPPING
     *
     * @return string Formatted amount in Cart
     */
    public static function getTotalCart($id_cart, $use_tax_display = false, $type = Cart::BOTH)
    {
        $cart = new Cart($id_cart);
        if (!Validate::isLoadedObject($cart)) {
            die(Tools::displayError());
        }

        $with_taxes = $use_tax_display ? $cart->_taxCalculationMethod != PS_TAX_EXC : true;

        return Context::getContext()->getCurrentLocale()->formatPrice($cart->getOrderTotal($with_taxes, $type), Currency::getIsoCodeById((int) $cart->id_currency), false);
    }
 

grazie mille

allego anche il file

Cart.php

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...