Problemas con el IVA

Larry

Miembro
Buenas tardes,

El otro dia estube configurando todo el modulo de IVAs tal y como muestra el manual de este foro (por cierto estais haciendo un trabajo genial para esta comunidad). Bueno, despues dle peloteo voy a mi problemilla.

En principio mis articulos tienen el Iva incluido en todos los articulos. Asi que una vez asignado el IVA en prices en cada articulo, me voy a configurarlo desde La Sistema > Configuracion > Ventas > Impuestos. Bien aqui me voy al menu de Calcular y pongo Los precios de catalogo incluyen impuestos = Si y Los precios de Gastos de Envio incluyen impuestos = Si. A mi entender esto lo que tendria que hacer es que cuando calcule el total, desglose el IVA segun el precio que tenga en catalogo, pero no me lo hace asi. Coge el precio del catalogo, le aplica el 16% y se lo suma al total. Lo mismo para los gastos de envio, coge el precio de gastos de envio, le aplica el 16% y le suma al total. (pongo 16% por poner algo).

Esto no es lo que yo deseo. Yo tengo ya los ivas incluidos en precio de catalogo y gastos de envio, por lo tanto no tendria que sumarmelos al total, si no simplemente desglosarme las lineas del pedido segun el IVA de cada una y que el total fuera el mismo, sin sumarle nada.

Es esto posible? Como tendria que modificar para que funcione asi? Gracias.

Un saludo.

Adjunto imagen del resultado.
 

Adjuntos

OSdave

Super Moderador
Miembro del equipo
lo que tienes que hacer es poner el precio sin el IVA cuando creas/editas el producto. Así magento te lo calcula todo bien.
 

Larry

Miembro
Si te he entendido bien, pongo el precio sin IVA y en mis productos del frontend se me mostrara ya con el IVA que aplico? y a la hora de hacer el desglose me pondra el precio que puse yo sin iva y me mostrara despues el iva que le aplico y se lo sumara al total?

Para poner un campo de texto denajo de la imagen de cada articulo que ponga (*iva incluido) simplemente tengo que modificar el list.phtml?

Gracias por tu respuesta.
 

OSdave

Super Moderador
Miembro del equipo
creo que si (me pierdo un poco entre tanto IVA :p). Lo mejor que puedas hacer es probar, a ver como va.
 

Larry

Miembro
jejejee, yo me cago en el IVA XD. Todos quieren chupar del tarro... que el mercado se autoregula.. MUAHAHAHA!

Gracias, ya te dire si me funciona :contento2:
 

Larry

Miembro
Ya vuelvo a estar aqui :contento2:

Despues de pensar que todo iva bien con el IVA, ahora veo qu etengo un problema gordo y no se como resolverlo.

Representa que en la configuracion de Impuestos dentro de el Admin, tengo que seleccionar a la hora de calcular el precio final de los productos, si quiero que se calculen segun el origen, el destino, o la direccion de facturacion. Bien esto pensado asi es muy bonito... pero me he fijado y pues pasa lo siguiente:

Cualquier usuario que entra en la pagina web sin loguerase ve los precios sin IVA, pues al ser un invitado, no hay datos ni de origen ni de destino ni de facturacion. Para poder ver los precios con IVA incluido tiene que loguearse i refrescar la pagina. Entonces si se aplican la staxas que he creado en Impuestos. Esto es un problema porque he puesto un label al lado del precio que pone (*IVA incluido) y claro.. si eres usuario logueado.. va perfecto, pero si entras y solo quieres ver productos... los precios realmente aparecen sin IVA.

Como podria arreglar este tema?

Un Saludo.
 

Adjuntos

Última edición:

OSdave

Super Moderador
Miembro del equipo
pues sí, es un problema. Lo suyo seria encontrar la función que gestiona el IVA y poner el pais de la tienda como valor por defecto... solo queda encontrar esta funcion...
 

Larry

Miembro
hay una opcion en el Menu de Impuestos de la Configuracion que pone: Default Tax Origin Calculation. Alli pongo España y *, * para todas las provincias y codigos postales. Representa que en base a esto, si luego pongo en Calculation > Impuesto Basado en : Origen de Envio tendria que funcionar, pero nada... no hay manera de que por defecto me aparezca el IVA en mi frontend sin estar logueado...

Intentare buscar esa funcion...

Si alguien puede aportar algo a este problemilla seria de gran ayuda.
 

Larry

Miembro
Puede ser esta la funcion qu eme comentabas?

PHP:
Product.OptionsPrice = Class.create();
Product.OptionsPrice.prototype = {
    initialize: function(config) {
        this.productId          = config.productId;
        this.priceFormat        = config.priceFormat;
        this.includeTax         = config.includeTax;
        this.defaultTax         = config.defaultTax;
        this.currentTax         = config.currentTax;
        this.productPrice       = config.productPrice;
        this.showIncludeTax     = config.showIncludeTax;
        this.showBothPrices     = config.showBothPrices;
        this.productPrice       = config.productPrice;
        this.productOldPrice    = config.productOldPrice;
        this.skipCalculate      = config.skipCalculate;
        this.duplicateIdSuffix  = config.idSuffix;

        this.optionPrices = {};
        this.containers = {};

        this.initPrices();
    },

    setDuplicateIdSuffix: function(idSuffix) {
        this.duplicateIdSuffix = idSuffix;
    },

    initPrices: function() {
        this.containers[0] = 'product-price-' + this.productId;
        this.containers[1] = 'bundle-price-' + this.productId;
        this.containers[2] = 'price-including-tax-' + this.productId;
        this.containers[3] = 'price-excluding-tax-' + this.productId;
        this.containers[4] = 'old-price-' + this.productId;
    },

    changePrice: function(key, price) {
        this.optionPrices[key] = parseFloat(price);
    },

    getOptionPrices: function() {
        var result = 0;
        $H(this.optionPrices).each(function(pair) {
            result += pair.value;
        });
        return result;
    },

    reload: function() {
        var price;
        var formattedPrice;
        var optionPrices = this.getOptionPrices();
        $H(this.containers).each(function(pair) {
            var _productPrice;
            if ($(pair.value)) {
                if (pair.value == 'old-price-'+this.productId && this.productOldPrice != this.productPrice) {
                    _productPrice = this.productOldPrice;
                } else {
                    _productPrice = this.productPrice;
                }

                var price = optionPrices+parseFloat(_productPrice)
                if (this.includeTax == 'true') {
                    // tax = tax included into product price by admin
                    var tax = price / (100 + this.defaultTax) * this.defaultTax;
                    var excl = price - tax;
                    var incl = excl*(1+(this.currentTax/100));
                } else {
                    var tax = price * (this.defaultTax / 100);
                    var excl = price;
                    var incl = excl + tax;
                }

                if (pair.value == 'price-including-tax-'+this.productId) {
                    price = incl;
                } else if (pair.value == 'old-price-'+this.productId) {
                    if (this.showIncludeTax || this.showBothPrices) {
                        price = incl;
                    } else {
                        price = excl;
                    }
                } else {
                    if (this.showIncludeTax) {
                        price = incl;
                    } else {
                        if (!this.skipCalculate || _productPrice == 0) {
                            price = excl;
                        } else {
                            price = optionPrices+parseFloat(_productPrice);
                        }
                    }
                }

                if (price < 0) price = 0;
                formattedPrice = this.formatPrice(price);
                if ($(pair.value).select('.price')[0]) {
                    $(pair.value).select('.price')[0].innerHTML = formattedPrice;
                    if ($(pair.value+this.duplicateIdSuffix) && $(pair.value+this.duplicateIdSuffix).select('.price')[0]) {
                        $(pair.value+this.duplicateIdSuffix).select('.price')[0].innerHTML = formattedPrice;
                    }
                } else {
                    $(pair.value).innerHTML = formattedPrice;
                    if ($(pair.value+this.duplicateIdSuffix)) {
                        $(pair.value+this.duplicateIdSuffix).innerHTML = formattedPrice;
                    }
                }
            };
        }.bind(this));
    },
    formatPrice: function(price) {
        return formatCurrency(price, this.priceFormat);
    }
}
 

raimonesteve

Nuevo usuario
He estado mirando este tema, y con la configuración de impuestos que comentais, sólo os falla a "calculation", marcar "Shipping prices include tax" a no, en vez de si.

Al mostrar el catàlogo, los precios son con IVA. (logicamente creando previamente las reglas de IVA y el producto marcar con el impuesto corresponiente).
 
Arriba