Jump to content

Error en precio de combinaciones (solucionado)


Recommended Posts

Mi problema es que a la hora de añadir atributos a los productos a través del generador de combinaciones, donde me pone impacto en el precio sin iva, me suma el iva y después al volver a la vista de producto me añade el iva otra vez.

 

Es decir....donde me pone precio sin iva: le escribo 5 y ni me deja acabar de escribir el 5 cuando ya me está poniendo 6,05 osea....5 + (5 * 0,21), lo cual es desesperante porque encima si lo borro me aumenta el precio más aún XD

 

A ver...he mirado mil y una vez muchos threads del foro y aún no logro resolver el problema, se que hay hilos parecidos y he aplicado algunas soluciones de otros usuarios.

 

el product.js no creo que sea, le he restaurado, le he quitado lo de que me multiplique el impuesto, etc, etc y nada, a su bola.

 

Esto me ha pasado a raíz de que tuviera que reinstalar todo sin la base de datos ya que no me la reconocía y use la de una versión más antigua, en su día logre corregirlo pero....con esta base de datos no lo logro

Edited by kumenasai (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Bueno verás, lo cierto es que como nadie me ayudo XD, pues me puse a trastear en las carpetas de mi tienda y las compare con las de la versión 1.5, una de las cosas distintas era en la carpeta administrador, donde la carpeta themes donde creo que no tenía más que uno, y no tenía todas las carpetas que tenía el 1.5 así que las copie pero no paso nada jeje.

 

En la versión 1.5 en la carpeta administrador/tabs hay un archivo que se llama AdminAttributeGenerator.php, no recuerdo muy bien lo que cambie pero es una de las cosas que toque

 

en administrador/themes/default/template/controllers/attributtte_generator.tpl mismo caso, fueron pruebas que hice.

 

también toque el archivo product.js de la carpeta de tu tema/js :

 

 

if (!selectedCombination['unavailable'] && productShowPrice == 1)

{

var combination_add_price = selectedCombination['price'] * group_reduction;

 

var tax = (taxRate / 100) + 1;

var taxExclPrice = (specific_price ? (specific_currency ? specific_price : specific_price * currencyRate) : productPriceTaxExcluded) + combination_add_price * currencyRate;

 

if (specific_price)

var productPriceWithoutReduction = productPriceTaxExcluded + combination_add_price //* currencyRate;

 

if (!displayPrice && !noTaxForThisProduct)

{

 

var productPrice = ps_round(taxExclPrice * tax, 2);

if (specific_price)

productPriceWithoutReduction = ps_round(productPriceWithoutReduction * tax, 2);

}

else

{

var productPrice = ps_round(taxExclPrice, 2);

if (specific_price)

productPriceWithoutReduction = ps_round(productPriceWithoutReduction, 2);

}

 

var reduction = 0;

if (reduction_price || reduction_percent)

{

reduction = productPrice * (parseFloat(reduction_percent) / 100) + reduction_price;

if (reduction_price && (displayPrice || noTaxForThisProduct))

reduction = reduction / tax;

}

 

 

Se que al meterme a ver el código de mi tienda con el chrome, me salía que la caja donde se introduce el precio sin iva a la hora de meter los atributos aparecía sin valor y no se mostraba, por eso aunque creía que era un error, en realidad te está mostrando la otra casilla que es la que te hace el calculo automático del iva.

 

Yo había tirado la toalla porque aunque modifique no note ningún cambio pero...al día siguiente todo estaba bien XD.

 

Se que no he sido de gran ayuda pero quizá si que te he dado alguna pista ;).

Link to comment
Share on other sites

Bueno, yo lo que acabo de hacer es averiguar donde se genera la pantalla de generación de atributos. Esta se genera con javascript en un archivo llamado "attributesBack.js" y concretamente de una funcion llamada "create_attribute_row".

 

Bien. Al comparar la versión que tengo en concreto (1.4.9) con la última conocida y que funcionaba (1.4.8), vi que efectivamente en la "1.4.9" falta un campo (el sin iva).

 

Y como de perdidos al río, copié la función antigua y la pegué en la nueva. Resultado ? Ahora los atributos los puedo generar correctamente y puedo crear los precios sin iva como antes, generándose automáticamente el precio con iva.

 

Lo cierto es que no sé si es un error de que venía en la versión que me bajé (y lo hice un par de veces) o si debería ser así, porque no conozco a nadie que se haya quejado de algo similar.

 

Esta es la función que debería ser (apróximadamente por la línea 265)

function create_attribute_row(id, id_group, name, price, weight)
{
var html = '';
html += '<tr id="result_'+id+'">';
html +=   '<td><input type="hidden" value="'+id+'" name="options['+id_group+']['+id+']" />'+name+'</td>';
html +=   '<td>'+i18n_tax_exc+' <input id="related_to_price_impact_ti_'+id+'" class="price_impact_ti" style="width:50px" type="text" value="'+price+'" name="price_impact_'+id+'" onkeyup="calcPrice($(this), false)" /></td>';
   html +=   '<td>'+i18n_tax_inc+' <input id="related_to_price_impact_'+id+'" class="price_impact" style="width:50px" type="text" value="" name="price_impact_ti_'+id+'" /></td>';
html +=   '<td><input style="width:50px" type="text" value="'+weight+'" name="weight_impact['+id+']"></td>';
html += '</tr>';
return html;
}

 

Espero que te sirva de ayuda.

 

Un saludo

Link to comment
Share on other sites

  • 5 weeks later...

La funcion anterior no acaba de tirar, sigue no dejando poner el precio , con esta puedes poner el precio con iva o sin iva i te hace bien los cálculos

 

 

La funcion correcta es esta:

 

 

function create_attribute_row(id, id_group, name, price, weight)

{

var html = '';

html += '<tr id="result_' + id + '">';

html += '<td><input type="hidden" value="' + id + '" name="options[' + id_group + '][' + id + ']" />' + name + '</td>';

html += '<td>'+i18n_tax_exc+'<input id="related_to_price_impact_ti_'+id+'" class="price_impact" style="width:50px" type="text" value="'+price+'" name="price_impact_'+id+'" onkeyup="calcPrice($(this), false)"></td>';

html += '<td>'+i18n_tax_inc+'<input id="related_to_price_impact_'+id+'" class="price_impact_ti" style="width:50px" type="text" value="" name="price_impact_ti_'+id+'" onkeyup="calcPrice($(this), true)"></td>';

html += '<td><input style="width:50px" type="text" value="' + weight + '" name="weight_impact[' + id + ']"></td>';

html += '</tr>';

 

return html;

}

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
  • 1 year later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...