/////////////////////////////////////////////////////////////////////////////////////////
var tv_mostrar_stock = 0;
var tv_mostrar_stock_imagen = 0;
var tv_mostrar_stock_imagen_parcial = 0;
var tv_mostrar_stock_imagen_minimos = 0;
var tv_stock_mostrar_mensaje_insuficiente = 0
var aux_stock;
var con_stock;
var num_descuentos = 3;
var tv_kits = 1;
var tv_kits_fabricar_sin_stock = 0;
var es_kit;
var es_neto;
var neumatico;
var fam_web_con_stock;
var sub_web_con_stock;
var ref_web_con_stock;
var id_marca = cargar_variable("id-marca", 0);
var id_modelo = cargar_variable("id-modelo", 0);
var id_version = cargar_variable("id-version", 0);
var id_grupo = cargar_variable("id-grupo", 0);
var id_subgrupo = cargar_variable("id-subgrupo", 0);
var tip_catalogo = cargar_variable("tip-catalogo", 0);
var unidades_cesta;
var unidades_pendientes;
var uds_envase;
var ultima_referencia_cargada;
function cargar_variables (referencia) {
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
data: { json: 1,
id_referencia: referencia,
id_ref_talla: $("#id-ref-talla-" + referencia + " option:selected").val(),
id_ref_color: $("#id-ref-color-" + referencia + " option:selected").val(),
estado: 10,
tabla: 3
},
async: false,
success: function (response) {
es_kit = parseFloat(response["es_kit"]);
es_neto = parseFloat(response["es_neto"]);
neumatico = parseFloat(response["neumatico"]);
fam_web_con_stock = parseFloat(response["fam_web_con_stock"]);
sub_web_con_stock = parseFloat(response["sub_web_con_stock"]);
ref_web_con_stock = parseFloat(response["ref_web_con_stock"]);
unidades_cesta = parseFloat(response["unidades_cesta"]);
unidades_pendientes = parseFloat(response["unidades_pendientes"]);
ultima_referencia_cargada = referencia;
},
error: function (response) {
console.log("Error AJAX");
console.log(response);
}
})
}
function cargar_variable (id, defecto) {
if ($("#" + id).val() != undefined) {
return parseFloat($("#" + id).val());
} else {
return defecto;
}
}
/////////////////////////////////////////////////////////////////////////////////////////
var cantidad_anterior;
function aumentar_cantidad (referencia) {
var cantidad = parseFloat($("#cantidad-" + referencia).val());
uds_envase = parseFloat($("#uds-envase-" + referencia).val());
if (uds_envase == 0) {
uds_envase = 1;
}
var nueva_cantidad = cantidad + uds_envase;
$("#cantidad-" + referencia).val(nueva_cantidad);
$(".valor button, #cantidad-" + referencia).prop("disabled", true);
recalcular_precio(referencia);
}
function disminuir_cantidad (referencia) {
var cantidad = parseFloat($("#cantidad-" + referencia).val());
var uds_envase = parseFloat($("#uds-envase-" + referencia).val());
if (uds_envase == 0) {
uds_envase = 1;
}
var nueva_cantidad;
if (cantidad > uds_envase) {
nueva_cantidad = cantidad - uds_envase;
}
else {
nueva_cantidad = uds_envase;
}
$("#cantidad-" + referencia).val(nueva_cantidad);
$(".valor button, #cantidad-" + referencia).prop("disabled", true);
recalcular_precio(referencia);
}
function cantidad_uds_envase (referencia, cantidad) {
var nueva_cantidad;
uds_envase = parseFloat($("#uds-envase-" + referencia).val());
if (uds_envase == 0) {
uds_envase = 1;
}
if (cantidad > uds_envase) {
nueva_cantidad = cantidad / uds_envase;
nueva_cantidad = Math.ceil(nueva_cantidad);
nueva_cantidad = nueva_cantidad * uds_envase;
} else {
nueva_cantidad = uds_envase;
}
$("#cantidad-" + referencia).val(nueva_cantidad);
$(".valor button, #cantidad-" + referencia).prop("disabled", true);
if (nueva_cantidad != cantidad_anterior) {
recalcular_precio(referencia);
} else {
$(".valor button, #cantidad-" + referencia).prop("disabled", false);
}
}
var respuesta;
function recalcular_precio (referencia) {
$(".validation-msj").hide();
if (ultima_referencia_cargada != referencia) {
cargar_variables(referencia);
}
var cantidad_introducida = validar_cantidad("#cantidad-" + referencia);
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
data: { json: 1,
id_referencia: referencia,
id_ref_talla: $("#id-ref-talla-" + referencia + " option:selected").val(),
id_ref_color: $("#id-ref-color-" + referencia + " option:selected").val(),
cantidad: cantidad_introducida,
estado: 1,
tabla: 3
},
async: false,
success: function (response) {
var resultado = parseFloat(response["resultado"]);
if (resultado == 0) {
var cantidad = parseFloat(response["cantidad"]);
var stock = parseFloat(response["stock"]);
if (es_neto == 0) {
$("#precio-" + referencia).empty().append(response["precio"]);
} else {
$("#precio-" + referencia).empty().append(response["preciof"]);
}
$("#dto1-" + referencia).empty().append(response["dto1"]);
$("#dto2-" + referencia).empty().append(response["dto2"]);
$("#dto3-" + referencia).empty().append(response["dto3"]);
$("#imp-linea-" + referencia).empty().append(response["imp_linea"]);
$("#cantidad-" + referencia).val(cantidad);
cantidad_anterior = cantidad;
var mos_sto_referencia = parseFloat(response["mos_sto_referencia"]);
var mos_stock = parseFloat(response["mos_stock"]);
var mensaje_personalizado = $("#fam-web-men-sin-stock-" + referencia).val();
if (mensaje_personalizado === undefined) {
mensaje_personalizado = "";
}
if ( mos_sto_referencia == 1) {
if (mos_stock == 1) {
if (tv_stock_mostrar_mensaje_insuficiente != 0) {
aux_stock = stock;
}
if (tv_mostrar_stock_imagen == 0) {
if (stock == 1) {
$("#stock-" + referencia).removeClass("text-red").addClass("text-green").empty().append(stock + " unidad");
} else if (stock > 1) {
$("#stock-" + referencia).removeClass("text-red").addClass("text-green").empty().append(stock + " unidades");
} else {
$("#stock-" + referencia).removeClass("text-green").addClass("text-red").empty().append(stock + " unidades");
}
} else {
if (stock > 0) {
if (stock >= cantidad) {
$("#stock-" + referencia).removeClass().addClass('label label-stock-disponible').data('type', 1).empty().append('En stock');
} else {
if (tv_mostrar_stock_imagen_parcial == 1) {
$("#stock-" + referencia).removeClass().addClass('label label-stock-parcial').data('type', 3).empty().append('Parcial');
} else {
if ( mensaje_personalizado.length > 0 ) {
$("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).empty().append(mensaje_personalizado);
} else {
$("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).empty().append('Sin stock');
}
}
}
} else {
if (tv_mostrar_stock_imagen_minimos == 0) {
if ( mensaje_personalizado.length > 0 ) {
$("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).empty().append(mensaje_personalizado);
} else {
$("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).empty().append('Sin stock');
}
} else {
$("#stock-" + referencia).removeClass().addClass('label label-stock-minimos').data('type', 4).empty().append('Consultar');
}
}
}
}
} else {
if ( mensaje_personalizado.length > 0 ) {
if ($("#url-producto").val() == 1) {
$("#stock-" + referencia).removeClass().addClass("text-red").data('type', 5).empty().append(mensaje_personalizado);
} else {
$("#stock-" + referencia).removeClass().addClass("label label-stock-vacio").data('type', 5).empty().append(mensaje_personalizado);
}
} else {
$("#stock-" + referencia).removeClass().addClass("h4 text-red").data('type', 5).empty().append("Consultar");
}
}
respuesta = response;
} else {
location.reload();
}
},
error: function (response) {
console.log("error AJAX");
respuesta = false;
},
complete: function () {
$(".valor button, #cantidad-" + referencia).prop("disabled", false);
comprobar_select();
}
});
}
function comprobar_select () {
if ($("#url-producto").val() == 1) {
if ( $("#producto").find('select').length ) {
var select = "#producto #informacion .valor .select-talla-color";
if ( $(select).val() == 0 ) {
var texto = $(select).data('texto');
$(".stock-mensaje span").removeClass().empty().append(texto);
}
}
} else {
$( ".producto" ).each(function(index , el) {
id = $(el).attr('id');
if ( $(el).find('.select-talla-color').length ) {
var select = "#" + id + " select";
if ( $(select).val() == 0 ) {
var numero = id.split("-").pop();
var texto = $(select).data('texto');
$("#stock-" + numero + " span").removeClass().empty().append(texto);
}
}
});
}
}
// =======================================================================================
var estado_validacion = 0;
var referencia_anterior = "";
$("#modal-mensaje-confirmar").on('hide.bs.modal', function (e) {
estado_validacion = 0;
});
$(".btn-cancelar").on("click", function (){
estado_validacion = 0;
});
$("#modal-mensaje-confirmar .btn-aceptar").on("click", function (){
estado_validacion = 5;
});
$("#modal-mensaje-aviso").on('hidden.bs.modal', function (e) {
validar_cesta(referencia_anterior);
});
function validar_cesta (referencia) {
$("#id-producto-activo").val(referencia);
recalcular_precio(referencia);
var stock = parseFloat(respuesta["stock"]);
if (respuesta == false) {
$("#modal-mensaje-error").modal("show");
$("#modal-mensaje-error .mensaje").html("Si quiere pedir esta referencia póngase en contacto con la tienda.
Disculpe las molestias.");
return false;
}
if ( replace($("#imp-linea-" + referencia).text(), ",", ".") == 0 ) {
$("#modal-mensaje-error").modal("show");
$("#modal-mensaje-error .mensaje").html("Precio no válido.
Póngase en contacto con la tienda para pedir esta referencia.
Disculpe las molestias.");
return false;
}
if (uds_envase > 1) {
if (validar_cantidad("#cantidad-" + referencia) % uds_envase != 0) {
$("#modal-mensaje-aviso").modal("show");
$("#modal-mensaje-aviso .mensaje").html("Solo se puede añadir a la cesta de " + parseInt(uds_envase) + " en " + parseInt(uds_envase) + " unidades");
$("#cantidad-" + referencia).select();
return false;
}
}
if (fam_web_con_stock == 0 || sub_web_con_stock == 0 || ref_web_con_stock == 0 || (tv_kits == 1 && es_kit == 1 && tv_kits_fabricar_sin_stock == 1)) {
con_stock = 0;
} else {
con_stock = 1;
}
if (con_stock == 1){
}
if (estado_validacion < 6) {
var forzar_confirmar = 0;
if (neumatico==1){
$("#modal-confirmar-anadir").modal("show");
$("#modal-confirmar-anadir .mensaje").html("Si desea montar su neumático en nuestro taller, asegurese de haber marcado el montaje de neumático.
¿Esta seguro de que quiere añadir el producto?");
return false;
}
if (forzar_confirmar==1){
$("#modal-confirmar-anadir").modal("show");
$("#modal-confirmar-anadir .mensaje").html("¿Esta seguro de que quiere añadir el producto?");
}else{
anadir_cesta(referencia);
}
}
}
function anadir_cesta (referencia) {
estado_validacion = 0;
$(".modal").modal("hide");
$("#btn-anadir-cesta-" + referencia).html(" Añadiendo producto").prop("disabled", true);
var total_accesorios = parseFloat($("#total-accesorios").val());
var id_ref_talla = parseFloat($("#id-ref-talla-" + referencia + " option:selected").val());
var id_ref_color = parseFloat($("#id-ref-color-" + referencia + " option:selected").val());
var data = { json: 1,
cantidad: validar_cantidad("#cantidad-" + referencia),
id_referencia: referencia,
id_ref_proveedor: 0,
aleatorio: numero_aleatorio,
ces_conectado: 0,
ces_contado: 0,
estado: 2,
tabla: 3
};
var accesorios_anadidos = 0;
for ( i = 1; i <= total_accesorios; i++) {
if ( $("#chk-accesorio-" + i).is(":checked") ) {
data["id_accesorio_" + i] = parseFloat($("#chk-accesorio-" + i).val());
accesorios_anadidos++;
}
}
if (accesorios_anadidos > 0) {
data["accesorios"] = accesorios_anadidos;
}
if (!isNaN(id_ref_talla)) {
data["id_ref_talla"] = id_ref_talla;
}
if (!isNaN(id_ref_color)) {
data["id_ref_color"] = id_ref_color;
}
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
data: data,
success: function (response) {
if (response == 0) {
if ($("#url-producto").val()==1) {
if (id_marca==0 || id_modelo==0 || id_version==0){
window.location.href = "cesta.jsp;jsessionid=67C754678A82C887DD0E129701BA5051";
}else{
window.location.href = "cesta.jsp;jsessionid=67C754678A82C887DD0E129701BA5051?id_marca="+id_marca+"&id_modelo="+id_modelo+"&id_version="+id_version+"&id_grupo="+id_grupo+"&id_subgrupo="+id_subgrupo+"&tip_catalogo="+tip_catalogo;
}
}else{
$("#modal-producto-anadido").modal("show");
$("#btn-anadir-cesta-" + referencia).html(" Añadir a la cesta").prop("disabled", false);
}
} else if (response == -1) {
$("#modal-sesion-caducada" + response).modal("show");
$("#modal-sesion-caducada" + response).on('hide.bs.modal', function (e) {
window.location.href = "login.jsp?inicio_aplicacion=4&ori_id_referencia=" + referencia;
});
} else if (response == -2) {
$("#modal-sesion-caducada" + response).modal("show");
$("#modal-sesion-caducada" + response).on('hide.bs.modal', function (e) {
location.reload();
});
} else {
$(".validation-msj:not(#anadir-cesta-" + referencia + "-" + response + ")").hide();
$("#anadir-cesta-" + referencia + "-" + response).show();
$("#btn-anadir-cesta-" + referencia).html(" Añadir a la cesta").prop("disabled", false);
}
},
error: function (response) {
console.log("error AJAX");
},
complete: function () {
total_unidades_cesta(1);
cargar_variables(referencia);
recalcular_precio(referencia);
}
});
}
function total_unidades_cesta (accion) {
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
data: { json: 1, estado: 6, tabla: 3},
success: function (response){
var cantidad = parseFloat(response["cantidad"]);
if (accion == 1) {
// Actualizar icono cesta
if (cantidad < 1000) {
$("#cesta-icon").empty();
$("#cesta-icon").text(response["cantidad"]);
} else {
$("#cesta-icon").empty();
$("#cesta-icon").text("+999");
}
} else if (accion == 2) {
// Comprobar cantidades cesta
cantidad_inicial = parseFloat($("#productos-cesta").val());
if (cantidad > cantidad_inicial) {
location.reload();
}
}
},
error: function (response){
console.log("Error AJAX");
}
});
}
///////////////////////////////////////////////////////////////////////////////////////////////
$(".modal-anadir-cesta").on("shown.bs.modal", function (e) {
$(".modal-validacion").hide();
});
$('#email-share').on('shown.bs.modal', function () {
$('#per-contacto').focus();
});
$('#email-share').on('hidden.bs.modal', function () {
$("#per-contacto").val("");
$("#email").val("");
$("#recomendar-form").show();
$("#email-enviado").hide();
});
$('#modal-recomendar-producto').on('shown.bs.modal', function () {
$('#per-contacto').focus();
});
$('#modal-recomendar-producto').on('hidden.bs.modal', function () {
$("#per-contacto").val("");
$("#email").val("");
$("#chk-privacidad").prop('checked', false);
$("#recomendar-form").show();
$("#formulario-enviado").hide();
});
function validar_recomendar_producto (referencia) {
if (validar_vacio("#per-contacto") && validar_correo("#email") && validar_checkbox("#chk-privacidad")) {
recomendar_producto(referencia);
}
}
function recomendar_producto (referencia) {
if ( $("#btn-recomendar-producto").prop('disabled') == false ) {
$("#btn-recomendar-producto").html("Enviando, por favor espere...").prop('disabled', true);
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C_1",
data: { json: 1,
per_contacto: $("#per-contacto").val(),
email: $("#email").val(),
id_referencia: referencia,
observaciones: $("#observaciones").val(),
cod_formulario: $("#cod-formulario").val(),
estado: 17,
tabla: 1
},
success: function (response){
$(".validation-msj:not(#recomendar-producto-" + response + ")").hide();
$("#recomendar-producto-" + response).show();
if (response == 0) {
$("#recomendar-form").hide();
$("#formulario-enviado").show();
}
$("#btn-recomendar-producto").html("Enviar").prop('disabled', false);
},
complete: function(){
$("#email-share button.btn-success").html("Enviar").prop('disabled', false);
},
error: function (response){
console.log("Error AJAX");
}
});
}
}
$('#producto #modal-calcular-gastos-envio').on('shown.bs.modal', function (e) {
var referencia = $('#id-producto-activo').val();
calcular_envio(referencia);
});
function calcular_envio (referencia) {
var pais = $("#cod-pais").val();
var provincia = $("#dropdown-provincia").val();
var data = { json: 1,
cod_pais: pais,
id_provincia: provincia,
id_ref_talla: $("#id-ref-talla-" + referencia + " option:selected").val(),
id_ref_color: $("#id-ref-color-" + referencia + " option:selected").val(),
cantidad: $("#cantidad-" + referencia).val(),
id_referencia: referencia,
estado: 9,
tabla: 3
};
consultar_gastos_envio(data);
}
function consultar_gastos_envio (data){
var pais = $("#cod-pais").val();
var destino;
if (pais != "ESP") {
$("#dropdown-provincia").val(0);
$("#provincia").hide();
destino = $("#cod-pais option:selected").text();
} else {
$("#provincia").show();
destino = $("#dropdown-provincia option:selected").text() + " - " + $("#cod-pais option:selected").text();
}
var provincia = $("#dropdown-provincia").val();
if (pais == "ESP" && provincia == "0") {
$("#dropdown-provincia").focus();
$("#precios-envio, .validation-msj").hide();
$("#modal-calcular-gastos-envio .modal-footer").show();
} else {
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
data: data,
success: function (response){
// Ocultamos todo menos mensaje de error si existe
$("#modal-calcular-gastos-envio .modal-footer").hide();
$("#precios-envio").hide();
$("#detalles-producto").hide();
$(".validation-msj:not(#calcular-envio-" + response["resultado"] + ")").hide();
$("#calcular-envio-" + response["resultado"]).show();
// Si el resultado es 0 enseñamos precios y detalles del producto
if (response["resultado"] == 0) {
$("#precios-envio").show();
$("#destino").empty().append(destino);
// Gastos de envío normal
if (response["normal"] == 1) {
$("#envio-normal-container").show();
if (response["imp_normal"] == "0,00") {
$("#envio-normal").empty().append(" Gratis");
$("#envio-normal-container .moneda").hide();
} else {
$("#envio-normal").empty().append(" " + response["imp_normal"]);
$("#envio-normal-container .moneda").show();
}
if (response["imp_nor_gratis"] == "0,00") {
$("#envio-normal-gratis-desde").hide();
}else{
$("#envio-normal-gratis-desde").show();
$("#envio-normal-gratis").empty().append(" " + response["imp_nor_gratis"]);
}
} else if (response["normal"] == 0) {
$("#envio-normal-container").hide();
}
// Gastos de envío express
if (response["express"] == 1) {
$("#envio-express-container").show();
if (response["imp_express"] == "0,00") {
$("#envio-express").empty().append(" Gratis");
$("#envio-express-container .moneda").hide();
} else {
$("#envio-express").empty().append(" " + response["imp_express"]);
$("#envio-express-container .moneda").show();
}
if (response["imp_exp_gratis"] == "0,00") {
$("#envio-express-gratis-desde").hide();
}else{
$("#envio-express-gratis-desde").show();
$("#envio-express-gratis").empty().append(" " + response["imp_exp_gratis"]);
}
} else if (response["express"] == 0) {
$("#envio-express-container").hide();
}
if (response["normal"] == 0 && response["express"] == 0) {
$("#precios-envio, #detalles-producto .texto, .validation-msj").hide();
$("#sin-portes-activos").show();
} else {
mostrar_detalles_producto();
}
alinear_modal("#modal-calcular-gastos-envio");
} else if (response["resultado"] == 4) {
$("#modal-calcular-gastos-envio .modal-footer").hide();
mostrar_detalles_producto();
alinear_modal("#modal-calcular-gastos-envio");
}
function mostrar_detalles_producto () {
// Detalles de producto
$("#detalles-producto").show();
$("#cantidad-envio").empty().append(response["cantidad"]);
$("#imp-cesta").empty().append(" " + response["imp_cesta"]);
if (response["pes_cesta"] == "0,00") {
$("#pes-cesta").parent().hide();
} else {
$("#pes-cesta").empty().append(" " + response["pes_cesta"]);
}
}
},
error: function (response){
console.log("error AJAX");
}
});
}
}
function aviso_disponibilidad (referencia) {
$("#btn-aviso-disponibilidad").html("Enviando solicitud...").prop('disabled', true);
var id_ref_talla = parseFloat($("#id-ref-talla-" + referencia + " option:selected").val());
var id_ref_color = parseFloat($("#id-ref-color-" + referencia + " option:selected").val());
var data = { json: 1, id_referencia: referencia, estado: 21, tabla: 1 };
if (!isNaN(id_ref_talla)) {
data["id_ref_talla"] = id_ref_talla;
}
if (!isNaN(id_ref_color)) {
data["id_ref_color"] = id_ref_color;
}
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C_1",
data: data,
success: function (response){
$(".validation-msj:not(#aviso-disponibilidad-" + response + ")").hide();
$("#aviso-disponibilidad-" + response).show();
$("#btn-aviso-disponibilidad").html("Avísame cuando esté disponible");
if (response == -1) {
window.location.href = "login.jsp?ori_id_referencia=" + referencia;
}
},
error: function (response) {
console.log("Error AJAX");
}
});
}
$('#modal-producto-anadido').on('hidden.bs.modal', function (e) {
});
// Vehículos compatibles