function aumentar_cantidad_cesta(referencia, proveedor, linea) {
$('.linea-cesta button').attr('disabled', true);
var cantidadReservada = stringToFloat($("#cantidad-" + linea).data('cantidad'));
var cantidad = stringToFloat($("#cantidad-" + linea).val());
uds_envase = stringToFloat($("#uds-envase-" + linea).val());
if (uds_envase === 0) {
uds_envase = 1;
}
var nueva_cantidad = cantidad + uds_envase;
if (referenciaAnadible(referencia, cantidadReservada, nueva_cantidad, linea)) {
const diferencia = nueva_cantidad - cantidad;
$("#cantidad-" + linea).val(nueva_cantidad);
recalcular_cantidad_producto(referencia, proveedor, linea, diferencia);
}
}
function disminuir_cantidad_cesta(referencia, proveedor, linea) {
$('.linea-cesta button').attr('disabled', true);
var cantidadReservada = stringToFloat($("#cantidad-" + linea).data('cantidad'));
var cantidad = stringToFloat($("#cantidad-" + linea).val());
uds_envase = stringToFloat($("#uds-envase-" + linea).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;
}
if (referenciaAnadible(referencia, cantidadReservada, nueva_cantidad, linea)) {
const diferencia = nueva_cantidad - cantidad;
$("#cantidad-" + linea).val(nueva_cantidad);
recalcular_cantidad_producto(referencia, proveedor, linea, diferencia);
}
}
function onblurInputCantidad (input, referencia, proveedor, linea) {
if ( stringToFloat($(input).val()) != stringToFloat($(input).data('cantidad')) ) {
cantidad_uds_envase_cesta(referencia, proveedor, linea);
}
}
function cantidad_uds_envase_cesta(referencia, proveedor, linea) {
var cantidadReservada = stringToFloat($("#cantidad-" + linea).data('cantidad'));
var cantidad = stringToFloat($("#cantidad-" + linea).val());
var nueva_cantidad;
uds_envase = stringToFloat($("#uds-envase-" + linea).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;
}
if (referenciaAnadible(referencia, cantidadReservada, nueva_cantidad, linea)) {
// Tengo que averiguar por que ambas cantidades llegan a 0
const diferencia = nueva_cantidad - cantidadReservada;
$("#cantidad-" + linea).val(nueva_cantidad);
recalcular_cantidad_producto(referencia, proveedor, linea, diferencia);
} else {
$("#cantidad-" + linea).val(cantidadReservada);
}
}
var tv_kits = 1;
var tv_kits_fabricar_sin_stock = 0;
var es_kit;
var fam_web_con_stock;
var sub_web_con_stock;
var ref_web_con_stock;
function cargarVariablesAnadible (referencia) {
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C_2",
async: false,
data: { id_referencia: referencia,
id_ref_talla: 0,
id_ref_color: 0,
tabla: 3,
estado: 10
},
async: false,
success: function (response) {
es_kit = parseInt(response["es_kit"]);
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"]);
},
error: function (response) {
console.log("Error AJAX");
console.log(response);
}
})
}
var referenciaAnadible = function (idReferencia, cantidadReservada, nuevaCantidad, linea) {
var respuesta = new Boolean();
cargarVariablesAnadible(idReferencia);
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)) {
respuesta = true;
} else {
if ( (0 === 1 && 0 === 0 && 0 === 1) || (0 === 1 && 0 === 1 && 1 === 1) || (0 === 0 && 1 === 1) ) {
var cantidadEnStock = new Number();
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
async: false,
data: {
json: 1,
id_referencia: idReferencia,
id_ref_talla: 0,
id_ref_color: 0,
cantidad: nuevaCantidad,
stock_almacen: $('#cantidad-' + linea).data('almacen'),
tabla: 3,
estado: 1
},
success: function(response) {
var stock = stringToFloat(response.stock);
if (0 === 1) {
cantidadEnStock = stock + cantidadReservada;
} else {
cantidadEnStock = stock;
}
if (nuevaCantidad <= cantidadEnStock) {
respuesta = true;
} else {
$("#modal-mensaje-error").modal("show");
$("#modal-mensaje-error .mensaje").html("No hay " + nuevaCantidad + " unidades en stock para la venta.
Puedes reducir la cantidad a pedir o ponerte en contacto con la tienda.
Disculpa las molestias.");
$('.linea-cesta button').attr('disabled', false);
respuesta = false;
}
},
error: function(response) {
console.log("error AJAX");
respuesta = false;
}
});
} else {
respuesta = true;
}
}
return respuesta;
}
function recalcular_cantidad_producto(referencia, proveedor, linea, diferencia) {
var cantidad = stringToFloat($("#cantidad-" + linea).val());
var cantidadReservada = stringToFloat($("#cantidad-" + linea).data('cantidad'));
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C",
data: {
json: 1,
id_referencia: referencia,
old_id_linea: linea,
id_ref_proveedor: proveedor,
cantidad: cantidad,
ces_conectado: 0,
ces_contado: 0,
stock_almacen: $('#cantidad-' + linea).data('almacen'),
tabla: 3,
estado: 2
},
success: function(response) {
if (response === 0) {
const reload = function () {
location.reload();
}
const elementoProducto = $('#' + linea);
const params = {
elementoProducto,
quantity: diferencia,
event_callback: reload,
}
if (diferencia > 0) {
params.index = 0;
handleAddToCart(params);
} else if (diferencia < 0) {
handleRemoveFromCart(params);
} else {
reload();
}
} 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&origen=5";
});
} 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. Ponte en contacto con la tienda. \
Teléfono: 956 67 74 19
";
} else if (response === 5) {
var mensaje = "No hay suficiente stock para la venta.
\
Puedes reducir la cantidad a pedir o ponerte en contacto con la tienda.
\
Disculpa las molestias.";
$("#cantidad-" + linea).val(cantidadReservada);
}
$('.linea-cesta button').attr('disabled', false);
$("#modal-mensaje-error .mensaje").html(mensaje);
$("#modal-mensaje-error").modal("show");
}
},
error: function(response) {
console.log("error");
}
});
}
// ================== Eliminar lineas =================
function eliminar_linea(linea) {
const data = {
tabla: 3,
estado: 3,
id_linea: linea
};
$.ajax({
dataType: "json",
type: "POST",
url: "ControlB2C_2",
data,
success: function(response) {
if (response == 0) {
const reload = function () {
location.reload();
}
const elementoProducto = $('#' + linea);
const params = {
elementoProducto,
cantidadAEliminar: $(elementoProducto).find('.cem-quantity').val(),
event_callback: reload,
};
handleRemoveFromCart(params);
};
},
error: function(response) {
console.log("error");
}
});
}
function modalConfirmarVaciarCesta() {
var cestaAlmacenSelect = document.getElementById('cesta-almacen');
var denominacionAlmacen = '';
var mensaje = "¿Estás seguro de querer vaciar la cesta?";
if (cestaAlmacenSelect) {
var selectedOption = cestaAlmacenSelect.options[cestaAlmacenSelect.selectedIndex];
denominacionAlmacen = selectedOption.getAttribute('data-denominacion') || "";
mensaje = "