/////////////////////////////////////////////////////////////////////////////////////////
var tv_mostrar_stock = 0;
var tv_mostrar_stock_imagen = 1;
var tv_mostrar_stock_imagen_parcial = 1;
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 uds_cesta;
var uds_pendientes;
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 = parseInt(response["es_kit"]);
es_neto = parseInt(response["es_neto"]);
neumatico = parseInt(response["neumatico"]);
fam_web_con_stock = parseInt(response["fam_web_con_stock"]);
sub_web_con_stock = parseInt(response["sub_web_con_stock"]);
ref_web_con_stock = parseInt(response["ref_web_con_stock"]);
uds_cesta = stringToFloat(response.uds_cesta);
uds_pendientes = stringToFloat(response.uds_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 parseInt($("#" + id).val());
} else {
return defecto;
}
}
/////////////////////////////////////////////////////////////////////////////////////////
var cantidadAnterior;
function aumentar_cantidad (referencia) {
var cantidad = stringToFloat($("#cantidad-" + referencia).val());
var uds_envase = stringToFloat($("#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 = stringToFloat($("#cantidad-" + referencia).val());
var uds_envase = stringToFloat($("#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 validarCantidadReferencia (idReferencia) {
var cantidad = stringToFloat($('#cantidad-' + idReferencia).val());
var uds_envase = stringToFloat($('#uds-envase-' + idReferencia).val());
if (cantidad < uds_envase) {
cantidad = uds_envase;
$('#cantidad-' + idReferencia).val(cantidad);
}
return cantidad;
}
function cantidad_uds_envase (referencia, cantidad) {
cantidad = stringToFloat(cantidad);
var nuevaCantidad;
var uds_envase = stringToFloat($("#uds-envase-" + referencia).val());
if (uds_envase === 0) {
uds_envase = 1;
}
if (cantidad > uds_envase) {
nuevaCantidad = cantidad / uds_envase;
nuevaCantidad = Math.ceil(nuevaCantidad);
nuevaCantidad = nuevaCantidad * uds_envase;
} else {
nuevaCantidad = uds_envase;
}
$("#cantidad-" + referencia).val(nuevaCantidad);
$(".valor button, #cantidad-" + referencia).prop("disabled", true);
if (nuevaCantidad != cantidadAnterior) {
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 = validarCantidadReferencia(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(),
stock_almacen: $("#almacen-stock-" + referencia).val() || "",
cantidad: cantidad_introducida,
estado: 1,
tabla: 3
},
async: false,
success: function (response) {
if (parseInt(response.resultado) === 0) {
var cantidad = stringToFloat(response.cantidad);
var stock = stringToFloat(response.stock);
if (es_neto == 0) {
$("#precio-" + referencia).html(response["precio"]);
} else {
$("#precio-" + referencia).html(response["preciof"]);
}
$("#dto1-" + referencia).html(response["dto1"]);
$("#dto2-" + referencia).html(response["dto2"]);
$("#dto3-" + referencia).html(response["dto3"]);
$("#imp-linea-" + referencia).html(response["imp_linea"]);
$("#cantidad-" + referencia).val(response.cantidad);
cantidadAnterior = cantidad;
var mos_sto_referencia = parseInt(response["mos_sto_referencia"]);
var mos_stock = parseInt(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").html(response.stock + " unidad");
} else if (stock > 0) {
$("#stock-" + referencia).removeClass("text-red").addClass("text-green").html(response.stock + " unidades");
} else {
$("#stock-" + referencia).removeClass("text-green").addClass("text-red").html(response.stock + " unidades");
}
} else {
if (stock > 0) {
if (stock >= cantidad) {
$("#stock-" + referencia).removeClass().addClass('label label-stock-disponible').data('type', 1).html('En stock');
} else {
if (tv_mostrar_stock_imagen_parcial == 1) {
$("#stock-" + referencia).removeClass().addClass('label label-stock-parcial').data('type', 3).html('Parcial');
} else {
if ( mensaje_personalizado.length > 0 ) {
$("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).html(mensaje_personalizado);
} else {
$("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).html('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).html(mensaje_personalizado);
} else {
$("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).html('Sin stock');
}
} else {
if ( mensaje_personalizado.length > 0 ) {
$("#stock-" + referencia).removeClass().addClass('label label-stock-minimos').data('type', 2).html(mensaje_personalizado);
}else{
$("#stock-" + referencia).removeClass().addClass('label label-stock-minimos').data('type', 2).html('Consultar');
}
}
}
}
}
} else {
if ( mensaje_personalizado.length > 0 ) {
if ($("#url-producto").val() == 1) {
$("#stock-" + referencia).removeClass().addClass("text-red").data('type', 5).html(mensaje_personalizado);
} else {
$("#stock-" + referencia).removeClass().addClass("label label-stock-vacio").data('type', 5).html(mensaje_personalizado);
}
} else {
$("#stock-" + referencia).removeClass().addClass("text-red").data('type', 5).html("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().addClass('label label-gris').html(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().addClass('label label-gris').html(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);
if ($('#almacen-stock-' + referencia).val() != undefined && $('#almacen-stock-' + referencia).val().length === 0) {
$("#modal-mensaje-error").modal("show");
$("#modal-mensaje-error .mensaje").html("Seleccione un almacén.");
return false;
}
var stock = stringToFloat(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;
}
var uds_envase = stringToFloat($("#uds-envase-" + referencia).val());
if (uds_envase === 0) {
uds_envase = 1;
}
if (validarCantidadReferencia(referencia) % uds_envase != 0) {
$("#modal-mensaje-aviso").modal("show");
$("#modal-mensaje-aviso .mensaje").html("Solo se puede añadir a la cesta de " + uds_envase + " en " + 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 (stock < validarCantidadReferencia(referencia)) {
$("#modal-mensaje-error").modal("show");
$("#modal-mensaje-error .mensaje").html("No hay stock disponible para la venta.
Si quiere pedir esta referencia póngase en contacto con la tienda.
Disculpe las molestias.");
$("#cantidad-" + referencia).select();
return false;
}
}
if (estado_validacion < 6) {
var forzar_confirmar = 0;
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 = parseInt($("#total-accesorios").val());
var id_ref_talla = parseInt($("#id-ref-talla-" + referencia + " option:selected").val());
var id_ref_color = parseInt($("#id-ref-color-" + referencia + " option:selected").val());
var id_talla = $("#id-ref-talla-" + referencia + " option:selected").data('id-ref-talla');
var id_color = $("#id-ref-color-" + referencia + " option:selected").data('id-ref-color');
var data = { json: 1,
cantidad: validarCantidadReferencia(referencia),
id_referencia: referencia,
id_ref_proveedor: 0,
aleatorio: numero_aleatorio,
ces_conectado: 0,
ces_contado: 0,
stock_almacen: $("#almacen-stock-" + referencia).val() || "",
tabla: 3,
estado: 2
};
var accesorios_anadidos = 0;
for ( i = 1; i <= total_accesorios; i++) {
if ( $("#chk-accesorio-" + i).is(":checked") ) {
data["id_accesorio_" + i] = parseInt($("#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_talla)) {
data["id_talla"] = id_talla;
}
if (!isNaN(id_ref_color)) {
data["id_ref_color"] = id_ref_color;
}
if (!isNaN(id_color)) {
data["id_color"] = id_color;
}
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
data: data,
success: function (response) {
if (response === 0) {
if (parseInt($("#url-producto").val()) === 1) {
if (id_marca === 0 || id_modelo === 0 || id_version === 0){
window.location.href = "cesta.jsp;jsessionid=0DBD232B5A9DBF8CF4771168D4A441BC";
}else{
window.location.href = "cesta.jsp;jsessionid=0DBD232B5A9DBF8CF4771168D4A441BC?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);
}
total_unidades_cesta(1);
cargar_variables(referencia);
recalcular_precio(referencia);
} 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 {
if (response === 1 || response === 2 || response === 3 | response === 4) {
var mensaje = '* El producto no se ha añadido a la cesta. Póngase en contacto con la tienda. \
Teléfono: 986 501 540
';
} else if (response === 5) {
var mensaje = 'No hay suficiente stock para la venta.
\
Puede reducir la cantidad a pedir o ponerse en contacto con la tienda.
\
Disculpe las molestias.';
}
$("#modal-mensaje-error .mensaje").html(mensaje);
$("#modal-mensaje-error").modal("show");
$("#btn-anadir-cesta-" + referencia).html(" Añadir a la cesta").prop("disabled", false);
}
},
error: function (response) {
console.log("error AJAX");
}
});
}
function total_unidades_cesta (accion) {
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
data: { json: 1, estado: 6, tabla: 3},
success: function (response){
var cantidad = stringToFloat(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,
tabla: 3,
estado: 9
};
consultar_gastos_envio(data, 'ControlB2C_2');
}
function consultar_gastos_envio (data, url){
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") {
document.getElementById('contenedor-agencias-envio').style.display = 'none';
$("#dropdown-provincia").focus();
$("#precios-envio, .validation-msj").hide();
$("#modal-calcular-gastos-envio .modal-footer").show();
} else {
$.ajax({
dataType: "json",
type: "POST",
url: url,
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").html(destino);
// Gastos de envío normal
if (response["normal"] == 1) {
$("#envio-normal-container").show();
if (response["imp_normal"] == "0,00") {
$("#envio-normal").html(" Gratis");
$("#envio-normal-container .moneda").hide();
} else {
$("#envio-normal").html(" " + 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").html(" " + 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").html(" Gratis");
$("#envio-express-container .moneda").hide();
} else {
$("#envio-express").html(" " + 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").html(" " + 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").html(response["cantidad"]);
$("#imp-cesta").html(" " + response["imp_cesta"]);
if (response["pes_cesta"] == "0,00") {
$("#pes-cesta").parent().hide();
} else {
$("#pes-cesta").html(" " + response["pes_cesta"]);
}
}
},
error: function (response){
console.log("error AJAX");
}
});
}
}
function pintarAgenciasEnvioEnModal (respuesta) {
var contenedorAgencias = document.getElementById('contenedor-agencias-envio');
var contenedorListado = contenedorAgencias.querySelector('ul');
var contenedorMensaje = contenedorAgencias.querySelector('p');
var agencias = respuesta.sys_age_sevicios;
var htmlAgencias = '';
if (agencias.length > 0) {
for (var i = 0; i < agencias.length; i++) {
var agencia = agencias[i];
htmlAgencias += '