var ta_emp = 0;
var isMobile = false;
console.log(isMobile);
var formatNumber = {
separador: ".", // separador para los miles
sepDecimal: ',', // separador para los decimales
formatear:function (num,dec){
num +='';
var splitStr = num.split('.');
var splitLeft = splitStr[0];
var splitRight = splitStr.length > 1 ? this.sepDecimal + splitStr[1] : '';
var regx = /(\d+)(\d{3})/;
while (regx.test(splitLeft)) {
splitLeft = splitLeft.replace(regx, '$1' + this.separador + '$2');
}
return this.simbol + splitLeft +splitRight;
},
new:function(num, simbol){
this.simbol = simbol ||'';
return this.formatear(num,2);
}
}
function moneda(valor){
return formatNumber.new(valor)+" €";
}
var path = "/wp-content/themes/stockholm-child/takeaway/ta_ajaxV2.php";
var path_neto = "/wp-content/themes/stockholm-child/takeaway/";
var accept=0;
var cliente_filled=0;
var menu_filled=0;
var pago_filled=0;
var calendar_filled=0;
//Funciones REDSYS
function merchantValidationEjemplo(){
//Insertar validaciones…
alert("Validado!");
return true;
}
/*
Listener de recepción de ID de operación
window.addEventListener("message", function receiveMessage(event) {
storeIdOper(event,"token", "errorCode", "merchantValidationEjemplo");
});
*/
//Fin funciones REDSYS
jQuery(function ($) {
//alert de que se pueden escoger dos primeros o un primero y un segundo
function js_msg_err(msg){
alert(msg);
}
function carga_tpv(){
//Alta del pedido en temp
//Cuidado no se puede hacer un pago si la cantidad es negativa
console.log(accept+cliente_filled+menu_filled+calendar_filled);
if(accept+cliente_filled+menu_filled+calendar_filled==4){
//Saber si tiene promo importante para cuando se resuelva la notificación para poder quemar el código para ese mail.
var promo = $('#promo').val();
var total = $('#nuTotalPedido').val();
$('#ajax-tpv').load("/wp-content/themes/stockholm-child/takeaway/ta_ajax_tpvv.php?idioma=CA&total="+total+"&promo="+promo,function(){
//Handlers de botones
$('#pay-now').click(function(){
pay_now();
});
});
} else {
$('#ajax-tpv').html("");
}
}
function quitaTPV(){
$('#radio3').prop("checked",false);
$('#ajax-tpv').html("");
}
function carga_monedero(){
//Alta del pedido en temp
if(accept+cliente_filled+menu_filled+calendar_filled==4){
//Saber si tiene promo importante para cuando se resuelva la notificación para poder quemar el código para ese mail.
var promo = $('#promo').val();
var total = $('#nuTotalPedido').val();
//$('#ajax-tpv').html('
');
//Handlers de botones
$('#pay-monedero').click(function(){
pay_monedero();
});
} else {
$('#ajax-tpv').html("");
}
}
function pay_now(){
var jqxr = $.post(path+"?option=add-cabecera",$('#form-data-pers').serialize())
.done(function(){
var jqxr = $.getJSON(path+"?option=graba-tempV4&tipo=TPVV")
.done(function(data){
$('#IDPedido').val(data.idp);
$('#TPV').submit();
});
});
}
function pay_monedero(){
var jqxr = $.post(path+"?option=add-cabecera",$('#form-data-pers').serialize())
.done(function(){
var jqxr = $.getJSON(path+"?option=graba-tempV4&tipo=MONEDERO")
.done(function(data){
$('#IDPedido').val(data.idp);
$(location).attr("href",data.qs);
});
});
}
function recalc_comanda(){
//Recalcula el pedido en el caso que se hayan quitado y puesto datos, en el caso que se haya puesto el codigo de promoción.
var jqxr = $.post(path+"?option=add-cabecera",$('#form-data-pers').serialize())
.done(function(data){
//Datos del cliente introducidos, es uno de los pasos para que pueda acceder al pago.
$('#msg-validate').removeClass("alert-danger");
$('#msg-validate').addClass("alert-success");
$('#mensaje_user').show();
$('#msg-validate').html("Sessió iniciada. ");
//$('#nuTotalPedido').val(data);
//Comprobación si tiene codigo de oferta o no
var mail = $('#txtEMail').val();
var codigo = $('#txtCodigo').val();
var total = $('#nuTotalPedidoBase').val();
var ts = $('#txtTipoServicio').val();
var dir = $('#IDDireccion').val();
if(codigo!=""){
var jqxr=$.getJSON(path+"?option=get-codigo&mail="+mail+"&total="+total+"&codigo="+codigo+"&ts="+ts+"&dir="+dir)
.done(function(data){
if(data.status==1){
//Es correcte retorna a total a pagar la quantitat que hi havia menys 2€
$('#nuTotalPedido').val(data.total);
$('#billing-nuPreu').html(data.total_text);
$('#oferta').show();
$('#promo').val(1);
} else {
$('#nuTotalPedido').val(data.total);
$('#billing-nuPreu').html(data.total_text);
$('#msg-validate-code').removeClass("alert-success");
$('#msg-validate-code').addClass("alert-danger");
$('#mensaje-user-code').show();
$('#oferta').hide();
$('#promo').val(0);
//No es correcte pq o be s'ha posat malament o be ja està cremat
switch(data.tipoError){
case 1:
$('#msg-validate-code').append("Aquest codi no existeix, revisa el codi i posa'l exactament igual. ");
break;
case 2:
$('#msg-validate-code').append("Aquest codi ja ha estat utilitzat en una oferta anterior. ");
break;
case 3:
$('#msg-validate-code').append("Aquest usuari no està enregistrat, no es pot fer us de la promoció");
break;
}
}
}); //.done(function(data) inner
} else { //No se pone código pero quizás se ha puesto antes y ahora se quita
$('#nuTotalPedido').val(total);
$('#billing-nuPreu').html(moneda(total));
$('#oferta').hide();
$('#promo').val(0);
} //if(codigo!="")
}); //.done(function(data) outer
//Necesitamos al menos desactivar la aceptación de política de privacidad para luego recalcular el form del TPV
$('#acepta-condiciones').prop("checked",false);
$('#ajax-tpv').html("");
isDelivery($('#txtTipoServicio').val());
//Cargamos el combo de promos
combo_promo();
}
function button_trash() {
$('.item-trash').unbind("click");
$('.item-trash').click(function(){
if(confirm("Està segur de esborra aquest menu?")){
//Borramos
var i = $(this).attr("lin");
var jqxr = $.getJSON(path+"?option=delete-item-detalle&lin="+i)
.done(function(data){
$('.menuses').html(data.pinta);
$('#nuTotalPedidoBase').val(data.suma_pedido);
button_trash();
$('#billing-nuPreu').text($('#total_pedido').text());
menu_filled = (data.items==0) ? 0 : 1;
recalc_comanda();
amountMonedero();
isDelivery($('#txtTipoServicio').val());
});
return true;
} else {
return false;
}
});
}
function validate_menu(){
//Valida que se haya puesto un plato de cada categoria y se haya puesto un nombre
var p1 = $('.p1_radio').is(":checked");
var p2 = $('.p2_radio').is(":checked");
var pp = $('.pp_radio').is(":checked");
var nom = $('#ta_nombre').val();
var f = $('#dtFechaEntrega').val();
//return ((p1 || p2) && pp & nom!="") ? true : false;
//Devolvemos mensajes
var caderr="";var err=0;
if((!p1)&&(!p2)) {
err=1;
caderr="Tria un primer o un segoni postre. Ah i no oblidis posar per qui és el menú.\r\n";
}
if(!pp){
err=1;
caderr+="Ha d'inclure un postre al menú. \r\n";
}
if(nom==""){
err=1;
caderr+="¿Per a quí és el menú?\r\nIndica per quí és el menú\r\n";
}
if(f=="0"){
err=1;
caderr+="Falta que indiquis quin dia vols que et fem aquest menu\r\n";
}
if(err==1){
caderr = "Ooops! "+caderr;
} else {
caderr="0";
}
return caderr;
}
function validate_contact(){
var n = $('#txtNom').val();
var c = $('#txtCognoms').val();
var t = $('#txtTelefon').val();
var m = $('#txtEMail').val();
console.log(n!="" && c!="" && t!="" && m!="");
return (n!="" && c!="" && t!="" && m!="");
}
//Funciones indepes asociadas a mi cuenta
function CheckPasswordOLD(inputtxt) {
var passw = /^[A-Za-z0-9$@$!%*#?&]\w{7,14}/;
if(inputtxt.match(passw)) {
return true;
} else {
return false;
}
}
function CheckPassword(inputtxt) {
//var passw = /^[A-Za-z0-9$@$!%*#?&]\w{7,14}/;
if(inputtxt.length >= 6) {
return true;
} else {
return false;
}
}
function mayusc(c){
return c.toUpperCase();
}
function validatePassword(password) {
// Do not show anything when the length of password is zero.
if (password.length === 0) {
document.getElementById("msg").innerHTML = "";
return;
}
// Create an array and push all possible values that you want in password
var matchedCase = new Array();
matchedCase.push("[$@$!%*#?&]"); // Special Charector
matchedCase.push("[A-Z]"); // Uppercase Alpabates
matchedCase.push("[0-9]"); // Numbers
matchedCase.push("[a-z]"); // Lowercase Alphabates
// Check the conditions
var ctr = 0;
for (var i = 0; i < matchedCase.length; i++) {
if (new RegExp(matchedCase[i]).test(password)) {
ctr++;
}
}
// Display it
var color = "";
var strength = "";
switch (ctr) {
case 0:
case 1:
case 2:
strength = "Very Weak";
color = "red";
break;
case 3:
strength = "Medium";
color = "orange";
break;
case 4:
strength = "Strong";
color = "green";
break;
}
document.getElementById("msg").innerHTML = strength;
document.getElementById("msg").style.color = color;
}
function validate_profile(){
var n = $('#txtNombre_profile').val();
var c = $('#txtCognoms_profile').val();
var t = $('#txtTelefon_profile').val();
var m = $('#txtEMail_profile').val();
console.log(n!="" && c!="" && t!="" && m!="");
return (n!="" && c!="" && t!="" && m!="");
}
function validate_customer(){
var n = $('#txtNombre_customer').val();
var c = $('#txtCognoms_customer').val();
var t = $('#txtTelefono1_customer').val();
var m = $('#txtEMail_customer').val();
var d = $('#txtDP_customer').val();
var a = $('#lgAcepta_customer').is(":checked");
console.log(t);
console.log(n!="" && c!="" && t!="" && m!="" && a && d!="");
return (n!="" && c!="" && t!="" && m!="" && a && d!="");
}
function get_cost_delivery(){
//devuelve los costes de delivery
var dir = $('#IDDireccion').val()
var jqxr = $.getJSON(path+"?option=delivery-costs&dir="+dir)
.done(function(data){
return data;
})
}
function funct_user_dirs(){
var jqxr = $.getJSON(path+"?option=direcciones-cliente")
.done(function(data){
var user_dirs = data.dirs;
return user_dirs;
});
}
function isDelivery(t){
var user_dirs =funct_user_dirs();
var dir = $('#IDDireccion').val()
var jqxr = $.getJSON(path+"?option=delivery-costs&dir="+dir)
.done(function(data){
var costs = data;
if(user_dirs==0){
console.log("no-dirs");
$('#gr-delivery').html('
');
$('#combo-dirs').hide();
} else {
if(t=='D'){
console.log(JSON.stringify(costs));
if(costs.minimo){
//Muestra delivery on en la capa de delivery
$('#gr-delivery').html('
ENTREGA
A domicili 12:00 - 14:00
');
grTipo();
$('#radioTSD').prop("disabled",false);
$('#msg-delivery').hide();
//Hay costes de delivery
$('#cost-prep').html(moneda(costs.costes_menus));
$('#cost-trans').html(moneda(costs.costes_delivery));
if(costs.nuMinimo==-1){
$('#delivery-cost').hide();
} else {
$('#delivery-cost').show();
}
//Falta la suma total del pedido
$('#nuCostePrep').val(costs.costes_menus);
$('#nuCosteTrans').val(costs.costes_delivery);
//var st = Math.round(parseFloat(($('#nuTotalPedido').val()) + costs.costes_menus + costs.costes_delivery)* 100 / 100).toFixed(2);
var st = Math.round((Number($('#nuTotalPedidoBase').val()) + costs.costes_menus + costs.costes_delivery - $('#nuDescuentoPromo').val()) * 100) / 100;
$('#nuTotalPedido').val(st);
$('#billing-nuPreu').html(moneda($('#nuTotalPedido').val()));
} else {
//No llega al mínimo, muestra mensaje de error que no se puede acceder a este servicio y desactiva el botón radio de "Delivery" y activa el de "Take Away"
$('#msg-delivery').html('
¡Et falten '+data.diferencia+'€ per la comanda mínima per delivery! Consulta condicions.
');
$('#msg-delivery').show();
//Muestra delivery off en la capa de delivery
$('#gr-delivery').html('
ENTREGA
A domicili 12:00 - 14:00
');
//Muestra el Take AWAY en ON en la capa de take away
$('#gr-take-away').html('
RECOLLIDA
Al local
');
$('#radioTSD').prop("checked",false);
//$('#radioTSD').prop("disabled",true);
//activamos radioTST
$('#radioTST').prop("checked",true);
$('#delivery-cost').hide();
$('#combo-dirs').hide();
$('#txtTipoServicio').val("T");
grTipo();
//Volvemos a calcular el coste de la comanda sin delivery
$('#nuCostePrep').val(0);
$('#nuCosteTrans').val(0);
$('#nuTotalPedido').val($('#nuTotalPedidoBase').val() - $('#nuDescuentoPromo').val());
$('#billing-nuPreu').html(moneda($('#nuTotalPedido').val()));
}
} else { //Es Take away
//aunque sea TA debemos saber si se puede acceder a delivery para activar el botón
if(costs.minimo){
console.log("es minimo")
//Muestra delivery on en la capa de delivery
$('#gr-delivery').html('
ENTREGA
A domicili 12:00 - 14:00
');
} else {
$('#gr-delivery').html('
ENTREGA
A domicili 12:00 - 14:00
');
}
grTipo();
$('#delivery-cost').hide();
$('#msg-delivery').hide();
//Falta la suma total del pedido
$('#nuCostePrep').val(0);
$('#nuCosteTrans').val(0);
$('#nuTotalPedido').val($('#nuTotalPedidoBase').val() - $('#nuDescuentoPromo').val());
$('#billing-nuPreu').html(moneda($('#nuTotalPedido').val()));
}
amountMonedero();
}
});
}
function amountMonedero(){
//Comprueba que el precio final no supera el monto de monedero que ahora hay.
var am = parseFloat($('#monedero-radio').attr("amount"));
var tp = parseFloat($('#nuTotalPedido').val());
console.log("Valores monedero:"+am+" "+tp+" "+(am < tp));
if(am < tp || tp==0 || isNaN(tp)){ //Desaparece el monedero de escena
$('#monedero-radio').hide();
} else {
$('#monedero-radio').show();
}
//$('#monedero-radio').attr("amount",am);
}
function grTipo(){
console.log("grTipo");
$('.gr-tipo').unbind("click");
function select_tipo(t){
var t = $('#txtTipoServicio').val();
console.log(t);
$('.gr-tipo').removeClass("gr-tipo-selected");
if(t!=""){
if(t=='T'){
$('#grTST').parent().addClass("gr-tipo-selected");
} else {
$('#grTSD').parent().addClass("gr-tipo-selected");
}
}
}
$('.gr-tipo').click(function(){
//Desconectamos las condiciones de servicio y el tipo de pago
accept = 0;
$("input[name='payment']").prop("checked",false);
quitaTPV();
var t = $(this).attr("tipo");
var idc = $('#IDCliente').val();
$('#txtTipoServicio').val(t);
//Si es delivery muestra la capa de las direcciones del cliente para escoger que dirección
if(t=="D"){
$.getJSON(path+"?option=direcciones-cliente")
.done(function(data){
$('#combo-list-dirs').html(data.html);
$('#msg-delivery-horario').html('
Les comandes rebudes abans de les 12:00 seran entregades entre 12:00 i 13:00 Les comandes rebudes entre 12:00 i 13:00 seran entregades entre 13:00 i 14:00 Les comandes rebudes entre 13:00 i 15:00 seran entregades en 45 minuts aproximadament a partir de la recepció de la comanda
');
//asignacion inicial de dirección.
$('#combo-dirs').show();
$('#IDDireccion').val($('#IDDireccion-combo').val());
isDelivery('D');
amountMonedero();
if(data.dirs==0){ // No hay direcciones
isDelivery('T');
$('#txtTipoServicio').val("T");
$('#delivery-cost').hide();
//$('#msg-radio').html('
');
//Muestra el Take AWAY en ON en la capa de take away
$('#gr-take-away').html('
RECOLLIDA
Al local
');
} else {
$('#msg-radio').hide();
}
//handlers de la carga
$('#IDDireccion-combo').change(function(){
var d = $(this).val();
$('#IDDireccion').val(d);
var jqxr = $.post(path+"?option=add-cabecera",$('#form-data-pers').serialize())
.done(function(data){
console.log(data);
isDelivery($('#txtTipoServicio').val());
//Carga on the fly las condiciones de servicio
//$('#delivery-conditions').click();
})
});
});
} else {
$('#combo-dirs').hide();
isDelivery('T');
console.log($('#txtTipoServicio').val());
select_tipo("T");
}
});
//Marca el tipo que es T o D
select_tipo($('#txtTipoServicio').val());
}
function combo_promo(){
$('#IDCodigo_promo').unbind("change");
var imp = $('#nuTotalPedidoBase').val();
if(imp!=""){
$('#help-promo').show();
//Carga por ajax el combo de promociones según importes pedidos
var jqxr = $.getJSON(path+"?option=combo-promos&imp="+imp)
.done(function(data){
$('#combo-promos').html(data.html);
if(data.min){
$('#help-promo-non').hide();
} else {
$('#help-promo-non').show();
}
//Helpers
$('#IDCodigo_promo').change(function(){
//Validar el código de promoción
//No se pueden entrar los datos del cliente hasta que no se haya hecho una selección de menu
//Comprobación si tiene codigo de oferta o no
var mail = $('#txtEMail').val();
var idcode = $(this).val();
var total = $('#nuTotalPedidoBase').val();
var ts = $('#txtTipoServicio').val();
var dir = $('#IDDireccion').val();
if(idcode!=""){
var jqxr=$.getJSON(path+"?option=get-codigo&mail="+mail+"&total="+total+"&idcode="+idcode+"&ts="+ts+"&dir="+dir)
.done(function(data){
//Siempre llega un código válido
$('#nuTotalPedido').val(data.total);
$('#billing-oferta').html(data.dto_text);
$('#billing-nuPreu').html(data.total_text);
$('#nuDescuentoPromo').val(data.dto);
$('#IDCupon').val(data.idcode);
$('#msg-validate-code').html("Codi promocional vàlid. ");
$('#msg-validate-code').removeClass("alert-danger");
$('#msg-validate-code').addClass("alert-success");
$('#mensaje-user-code').show();
(idcode==0) ? $('#oferta').hide() : $('#oferta').show();
$('#promo').val(1);
}); //.done(function(data) inner
} else { //No se pone código pero quizás se ha puesto antes y ahora se quita
$('#nuTotalPedido').val(total);
$('#billing-nuPreu').html(moneda(total));
$('#oferta').hide();
$('#promo').val(0);
$('#nuDescuentoPromo').val(0);
} //if(codigo!=0
quitaTPV();
});
});
} else {
$('#help-promo').hide();
}
}
//Funciones indepes asociadas a CARTA
function button_trash_carta() {
$('.item-trash-carta').unbind("click");
$('.item-trash-carta').click(function(){
if(confirm("Està segur d'esborrar aquest plat de la comada?\r\nL'acció no es pot desfer.")){
//Borramos
var i = $(this).attr("lin");
var jqxr = $.getJSON(path+"?option=delete-item-detalle-carta&lin="+i)
.done(function(data){
menu_filled = data.menu_filled;
$('#cloned-detall-navidad').html(data.html);
$('#billing-nuPreu').html(data.total_text);
$('#nuTotalPedidoBase').val(data.total);
$('#nuTotalPedido').val(data.total);
button_trash_carta();
//Poner a 0 el value del item borrado
$('#plato_'+data.plato_a_cero).val(0);
menu_filled = (data.total==0) ? 0 : 1;
amountMonedero();
});
return true;
} else {
return false;
}
});
}
/* Puedes usar $ con seguridad para hacer referencia a jQuery */
$(document).ready(function(){
//Directo para take away
//User debe seleccionar inicialmente la forma de pago.
var maxchecks = 2;
$("input[name='payment']").prop("checked",false);
//Cargamos los menus aun no registrado el usuario
//Ponemos en la capa el resultado del envío (detalle de pedido y despues clonamos en la parte del checkout
//Borramos los datos de detalle pedido cuando se entra por primera vez (carga de la página)
$.ajax(path+"?option=initialize")
.done(function(){
$.getJSON(path+"?option=carga-menuses")
.done(function(data){
$('.menuses').html(data.pinta);
$('#nuTotalPedido').val(data.suma_pedido);
$('#nuTotalPedidoBase').val(data.suma_pedido);
button_trash();
$('div#cloned_detall > div.btn-erase').remove();
$('#billing-nuPreu').text($('#total_pedido').text());
//$('#precioTotal_text').html("");
//$('#precioTotal').val("");
recalc_comanda();
menu_filled = data.menuses;
//si hay menu cargado también hay fecha cargada en lo que se refiere a TA diario.
if(menu_filled==1) calendar_filled=1;
amountMonedero();
});
});
//Determina si hay bloqueo de delivery en los menus TakeAway (nativo de carta)
//31/08/21
var block_delivery = 1;
if(block_delivery=="1"){
$('#radio-delivery').hide();
$('#delivery-conditions').hide();
$('.gr-tipo').addClass("gr-tipo-selected");
$('#txtTipoServicio').val("T");
}
//Carga directa cuando estamos en cesta de navidad
//Carga la cesta que hasta ahora ha seleccionado
var jqxr = $.getJSON(path+"?option=carga-cesta-navidad")
.done(function(data){
//Helpers
//Activa el borrado de items
menu_filled = data.menu_filled;
$('#cloned-detall-navidad').html(data.html);
button_trash_carta();
/*
$('#billing-nuPreu').html(data.total_text);
$('#nuTotalPedidoBase').val(data.total);
$('#nuTotalPedido').val(data.total);
$('#precioTotal_text').html(data.total_text);
$('#precioTotal').val(data.total);
*/
//Poner los contadores de unidades de cada uno de los platos que se han pedido
$.each(data.plato, function(i,val) {
$("#plato_" + this).val(data.cant[i])
});
//A ver si deja
combo_promo();
});
//Carta de navidad todas las secciones plegadas excepto la primera
$('.desplegada').hide();
$('#pcr').show();
//activamos el handler de tipo de servicio para gráficos de la V7
grTipo();
//Carga directa de datos en cabecera de pedido si el cliente ya está logonado (evita la perdida en el refresco de los datos)
if(idc!=0) {
var jqxr = $.post(path+"?option=add-cabecera",$('#form-data-pers').serialize())
.done(function(){
cliente_filled=1;
//Fijamos a 0 diferentes campos hidden
$('#nuTotalPedidoBase').val(0);
$('#nuTotalPedido').val(0);
$('#promo').val(0);
$('#nuDescuentoPromo').val(0);
$('#IDDireccion').val(0);
$('#lgAbonoFianza').val(0);
$('#billing-nuPreu').text("");
})
}
$('#send').click(function(){
var jqxr = $.ajax(path+"?option=enviar")
.done(function(data){
$('#test').html("
"+data+"
");
});
});
$('#ta_extras_b,#ta_extras_p').change(function(){
var isMedio = $('#is_medio').val();
var pb=0;
if(isMedio==0) {
pb = parseFloat($('#precio_base').val());
} else {
pb = parseFloat($('#precio_base_medio').val());
}
var be = $('#ta_extras_b').val();
var pa = $('#ta_extras_p').val();
var jqxr = $.getJSON(path+"?option=get-extra&be="+be+"&pa="+pa+"&pb="+pb)
.done(function(data){
$('#precioTotal_text').html(data.precio_total_text);
$('#precioTotal').val(data.precio_total);
});
});
$('#add-menu').click(function(){
var msg = validate_menu();
var ok = (msg=="0") ? true : false;
var isMedio = $('#is_medio').val();
if(ok){
$('#add-menu').hide();
$('#acepta-condiciones').prop("checked",false);
acepta = 0;
menu_filled=1; //al menos se ha llenado un menu
//hemos de avisar si es medio menu o entero
//Si hay errores en los menus que no se agregan, no se han de realizar las partes comunes
var errcheck = 0;
if(isMedio==1){
if(confirm("Estàs triant mig menú. Si vols un menú sencer apreta cancelar i tria un altre plat.")) {
var jqxr = $.post(path+"?option=add-menu",$('#ta_form').serialize(),function(){},'json')
.done(function(data){
//Ponemos en la capa el resultado del envío (detalle de pedido y despues clonamos en la parte del checkout
$('.menuses').html(data.pinta);
$('#nuTotalPedido').val(data.suma_pedido);
$('#nuTotalPedidoBase').val(data.suma_pedido);
button_trash();
$('div#cloned_detall > div.btn-erase').remove();
$('#billing-nuPreu').text($('#total_pedido').text());
$('#precioTotal_text').html("");
$('#precioTotal').val("");
recalc_comanda();
amountMonedero();
});
}//De confirm
} else { //es entero
//Obligatoriamente ha de ser entero el menu es decir dos primeros o primero y segundo y siempre postre.
//Una vez validate_menu() hemos de saber si se han hecho dos checks los necesarios para completar el menu.
var checks = countChecks("p1");
checks += countChecks("p2");
if(checks < 2){ //Ops! Error
alert("S'han d'escollir obligatoriament dos plats principals.");
errcheck=1;
} else {
var jqxr = $.post(path+"?option=add-menu",$('#ta_form').serialize(),function(){},'json')
.done(function(data){
//Ponemos en la capa el resultado del envío (detalle de pedido y despues clonamos en la parte del checkout
$('.menuses').html(data.pinta);
$('#nuTotalPedido').val(data.suma_pedido);
$('#nuTotalPedidoBase').val(data.suma_pedido);
button_trash();
$('div#cloned_detall > div.btn-erase').remove();
$('#billing-nuPreu').text($('#total_pedido').text());
$('#precioTotal_text').html("12,90 €");
$('#precioTotal').val(12.9);
recalc_comanda();
amountMonedero();
});
} // de if(checks < 2)
} // isMedio
//Parte común
//reiniciamos el form
if(errcheck==0){
$('#ta_form')[0].reset();
$('#checkout').prop("disabled",false);
//Limpia marcos selected del anterior menu
$('img').removeClass("plat_selected")
$('.add-more-review').show();
//Visores de dias
$('.calendar').removeClass("calendar_selected");
$('.calendar').removeClass("calendar_not_selected");
$('#dtFechaEntrega').val(0);
//Calculamos si hay suficiente monedero
}
} else {
alert(msg);
menu_filled=0;
}
})
$('#add-more').click(function(){
$('html, body').animate({
scrollTop: $('#inicio').offset().top
}, 500);
$('.add-more-review').hide();
});
$('#checkout').click(function(){
if(isMobile==0){
$('html, body').animate({
scrollTop: $('#inicio').offset().top
}, 500);
} else {
/*
$('html, body').animate({
scrollBottom: $("#mobile").offset().bottom
}, 500);
*/
$('body').scrollTo('#mobile', 1000);
}
//$('.add-more-review').hide();
});
$('#cancel-buy').click(function(){
//$('#ciberpack').hide();
});
$('#clientTA').click(function(){
//Validar si se han introducido todos los datos
//No se pueden entrar los datos del cliente hasta que no se haya hecho una selección de menu
if(menu_filled==1){
if(validate_contact()){
$('#mensaje_user').hide();
cliente_filled=1
var jqxr = $.post(path+"?option=add-cabecera",$('#form-data-pers').serialize())
.done(function(data){
//Datos del cliente introducidos, es uno de los pasos para que pueda acceder al pago.
$('#msg-validate').removeClass("alert-danger");
$('#msg-validate').addClass("alert-success");
$('#mensaje_user').show();
$('#msg-validate').html("Sessió iniciada. ");
//$('#nuTotalPedido').val(data);
//Comprobación si tiene codigo de oferta o no
var mail = $('#txtEMail').val();
var codigo = $('#txtCodigo').val();
var total = $('#nuTotalPedidoBase').val();
var dir = $('#IDDireccion').val();
if(codigo!=""){
var jqxr=$.getJSON(path+"?option=get-codigo&mail="+mail+"&total="+total+"&codigo="+codigo+"&dir="+dir)
.done(function(data){
if(data.status==1){
//Es correcte retorna a total a pagar la quantitat que hi havia menys 2€
$('#nuTotalPedido').val(data.total);
$('#billing-nuPreu').html(data.total_text);
$('#oferta').show();
$('#promo').val(1);
} else {
$('#nuTotalPedido').val(data.total);
$('#billing-nuPreu').html(data.total_text);
$('#msg-validate-code').removeClass("alert-success");
$('#msg-validate-code').addClass("alert-danger");
$('#mensaje-user-code').show();
$('#oferta').hide();
$('#promo').val(0);
//No es correcte pq o be s'ha posat malament o be ja està cremat
switch(data.tipoError){
case 1:
$('#msg-validate-code').append("Aquest codi no existeix, revisa el codi i posa'l exactament igual. ");
break;
case 2:
$('#msg-validate-code').append("Aquest codi ja ha estat utilitzat en una oferta anterior. ");
break;
case 3:
$('#msg-validate-code').append("Aquest usuari no està enregistrat, no es pot fer us de la promoció");
break;
}
}
}); //.done(function(data) inner
} else { //No se pone código pero quizás se ha puesto antes y ahora se quita
$('#nuTotalPedido').val(total);
$('#billing-nuPreu').html(moneda(total));
$('#oferta').hide();
$('#promo').val(0);
} //if(codigo!==""
}); //.done(function(data) outer
} else {
//Mensaje de error
$('#msg-validate').removeClass("alert-success");
$('#msg-validate').addClass("alert-danger");
$('#mensaje_user').show();
$('#msg-validate').html("Dades incomplertes. Ha d'omplir tots els camps que es demanen.");
cliente_filled=0;
}
//PARA ASEGURARNOS DE LA CARGA CORRECTA DEL FORM DE FORMA DE PAGO
//DESACTIVAMOS LOS RADIOS DE FORMA DE PAGO Y LA APROBACIÓN DE CONDICIONES PARA QUE LO VUELVA A HACER
$("input[name='payment']").prop("checked",false);
$('#acepta-condiciones').prop("checked",false);
carga_tpv();
} else { //no se ha comprado un menú. Se avisa que no se pueden guardar los datos de cabecera hasta que eso no suceda
$('#msg-validate').removeClass("alert-success");
$('#msg-validate').addClass("alert-danger");
$('#msg-validate').html("No pot guardar les dades de una comanda fins que no esculli el seu menú take away. ");
$('#mensaje_user').show();
cliente_filled=0;
}
});
$('#IDCodigo_promo_DEPRECATED').change(function(){
//Indicamos el codigo de promoción y por consulta AJAX sabemos que importe tiene
var idcode = $(this).val();
$.getJSON(path+"?option=get-importe-promo&idcode="+idcode)
.done(function(data){
$('#promo').val(data.ispromo);
$('#nuDescuentoPromo').val(data.importe);
$('#IDCupon').val(data.idcode);
})
})
//$('#clientTA-validate').click(function(){ DEPRECATED
$('#IDCodigo_promo').change(function(){
//Validar el código de promoción
//No se pueden entrar los datos del cliente hasta que no se haya hecho una selección de menu
//Comprobación si tiene codigo de oferta o no
var mail = $('#txtEMail').val();
var idcode = $(this).val();
var total = $('#nuTotalPedidoBase').val();
var ts = $('#txtTipoServicio').val();
var dir = $('#IDDireccion').val();
if(idcode!=''){
var jqxr=$.getJSON(path+"?option=get-codigo&mail="+mail+"&total="+total+"&idcode="+idcode+"&ts="+ts+"&dir="+dir)
.done(function(data){
//Siempre llega un código válido
$('#nuTotalPedido').val(data.total);
$('#billing-oferta').html(data.dto_text);
$('#billing-nuPreu').html(data.total_text);
$('#nuDescuentoPromo').val(data.dto);
$('#IDCupon').val(data.idcode);
$('#msg-validate-code').html("Codi promocional vàlid. ");
$('#msg-validate-code').removeClass("alert-danger");
$('#msg-validate-code').addClass("alert-success");
$('#mensaje-user-code').show();
(idcode==0) ? $('#oferta').hide() : $('#oferta').show();
$('#promo').val(1);
}); //.done(function(data) inner
} else { //No se pone código pero quizás se ha puesto antes y ahora se quita
//$('#nuTotalPedido').val(total);
//$('#billing-nuPreu').html(moneda(total));
$('#oferta').hide();
$('#promo').val(0);
$('#nuDescuentoPromo').val(0);
} //if(codigo!=0
quitaTPV();
});
$('#cancel-buy').click(function(){
//$('#ciberpack').hide();
});
$('#acepta_tpv').click(function(){
if($(this).is(":checked")) {
//Todo el proceso de carga
accept=1
} else {
//desaparece el contenido del form
$('#ajax-tpv').html("");
accept=0;
}
carga_tpv();
})
function acepta_condiciones(){
//Cuando se aceptan las condiciones se activa el pago.
//Hay dos tipos de pago, por lo que se ha de saber qué se hace si por TPVV o por MONEDERO
var tipo = $("input[name='payment']:checked").val();
accept = ($('#acepta-condiciones').is(":checked")) ? 1 : 0;
var color = (accept==1) ? "black" : "red";
var border = (accept==1) ? "2px solid #404040" : "2px solid #F00";
$('#acepta-condiciones-text').css("color",color);
$('.c-checkbox label > .box').css("border",border);
$('.c-checkbox label > .box-platos').css("border","2px solid #666");
console.log("accept="+accept);
//Ojo solo si se ha seleccionado un tipo de pago o es TPVV o es MONEDERO no puede ser NULL
if(tipo=="TPVV"){
carga_tpv();
} else {
if(tipo=='MONEDERO'){//Monedero
//Limpiamos el form del contenido TPV
$('#ajax-tpv').html("");
//Tenemos que hacer que el botón vaya a notificación directamente con un paso de parametro que indique que es monedero, reste la cantidad del monedero y
//Guarde en DS_response, el valor que indiquemos de alguna manera (numero aleatorio) para que no vuelva a repetirse la operativa GHOST que a veces sucede.
//Mostramos el botón de pagar
carga_monedero();
} else {
//No haces nada no cargas el PAGAR
return false;
}
}
}
$("input[name='payment']").click(function(){
$('#txtFormaPago').val($(this).val());
acepta_condiciones();
})
$('#acepta-condiciones').click(function(){
acepta_condiciones();
})
/*OLD
$('.p1,.p2,.pp').click(function(){
//quitar todos los selecteds de ese plato
var plato = $(this).attr("dataid");
var clase_radio = $(this).attr("nplato");
$('.'+clase_radio).removeClass("plat_selected")
//$("."+clase_radio).prop("checked",false);
if($('#radio_'+plato).is(":checked")){
$('#radio_'+plato).prop("checked",false);
} else {
$('#radio_'+plato).prop("checked",true);
$(this).addClass("plat_selected");
}
//Saber si hay algun plato seleccionado para activar el botón de añadir menu #add-menu
if($('.plat_selected').length > 0) {
$('#add-menu').show();
} else {
$('#add-menu').hide();
}
//alert(plato);
//Comprobar si es medio menu
//si se ha clicado un p1 y un p2 es menu completo
//Mientras es un medio menu
var isHalf = isMedio();
//console.log(isHalf);
$('#is_medio').val(isHalf);
var msg_type_menu = (isHalf==1) ? "Mig menú" : "Menu sencer";
//console.log(msg_type_menu);
$('#menu-type').text(msg_type_menu);
precio_menu();
//Los extras se reinician
//$('#ta_extras_b').val(1);
//$('#ta_extras_p').val(9);
});
*/
//Nuevo en la versión dos primeros platos o un primero y un segundo
function countChecks(clase){
//Devuelve los checks de un tipo de plato p1, p2 o pp
var c = "."+clase+"_radio";
var n=0;
$(c).each(function(){
if($(this).is(":checked")){
n++;
}
});
return n;
}
$('.p1').click(function(){
//quitar todos los selecteds de ese plato
var plato = $(this).attr("dataid");
var clase_radio = $(this).attr("nplato");
var checks = countChecks("p1");
checks+=countChecks("p2");
//$('.'+clase_radio).removeClass("plat_selected")
if($('#radio_'+plato).is(":checked")){
$('#radio_'+plato).prop("checked",false);
$(this).removeClass("plat_selected");
} else {
//Si hay 2 checks no actua, hasta que no se desactive uno
if(checks < maxchecks){
$('#radio_'+plato).prop("checked",true);
$(this).addClass("plat_selected");
} else {
if(maxchecks==1){
js_msg_err("Solament es pot escollir un primer o un segon en modalitat contractada de Mig Menu. ");
} else {
js_msg_err("Solament es pot seleccionar o dos primers o un primer i un segon plat en menú complet. Revisa si us plau la selecció. ");
}
}
}
//Saber si hay algun plato seleccionado para activar el botón de añadir menu #add-menu
if($('.plat_selected').length > 0) {
$('#add-menu').show();
} else {
$('#add-menu').hide();
}
//Comprobar si es medio menu
//si se ha clicado un p1 y un p2 es menu completo
//Mientras es un medio menu
var isHalf = isMedio();
//console.log(isHalf);
//$('#is_medio').val(isHalf);
var msg_type_menu = (isHalf==1) ? "Mig menú" : "Menu sencer";
//console.log(msg_type_menu);
$('#menu-type').text(msg_type_menu);
precio_menu();
});
$('.p1_radio').click(function(){
console.log(".p1_radio");
console.log($(this).is(":checked"));
$('#add-menu').show();
//quitar todos los selecteds de ese plato
var plato = $(this).attr("plato");
var idplato = $(this).attr("dataid");
var checks = countChecks("p1");
checks+=countChecks("p2");
console.log(checks);
if($(this).is(":checked")){
//Si hay 2 checks no actua, hasta que no se desactive uno
if(checks <= maxchecks){
$('#p_'+idplato).addClass("plat_selected");
$('#radio_'+idplato).prop("checked",true);
} else {
$(this).prop("checked",false);
if(maxchecks==1){
js_msg_err("Solament es pot escollir un primer o un segon en modalitat contractada de Mig Menu. ");
} else {
js_msg_err("Solament es pot seleccionar o dos primers o un primer i un segon plat en menú complet. Revisa si us plau la selecció. ");
}
}
} else {
$('#p_'+idplato).removeClass("plat_selected");
$('#radio_'+idplato).prop("checked",false);
}
var isHalf = isMedio();
//$('#is_medio').val(isHalf);
console.log(isHalf);
var msg_type_menu = (isHalf) ? "Mig menú" : "Menu sencer";
$('#menu-type').text(msg_type_menu);
precio_menu();
//Los extras se reinician
//$('#ta_extras_b').val(1);
//$('#ta_extras_p').val(9);
});
$('.p2').click(function(){
//quitar todos los selecteds de ese plato
var plato = $(this).attr("dataid");
var clase_radio = $(this).attr("nplato");
var checks = countChecks("p1");
if(checks!=maxchecks){
$('.'+clase_radio).removeClass("plat_selected");
if($('#radio_'+plato).is(":checked")){
$('.'+clase_radio+'_radio').prop("checked",false);
$('#radio_'+plato).prop("checked",false);
} else {
//Todos los checks a uncheck
$('.'+clase_radio+'_radio').prop("checked",false);
$('#radio_'+plato).prop("checked",true);
$(this).addClass("plat_selected");
}
//Saber si hay algun plato seleccionado para activar el botón de añadir menu #add-menu
if($('.plat_selected').length > 0) {
$('#add-menu').show();
} else {
$('#add-menu').hide();
}
//alert(plato);
//Comprobar si es medio menu
//si se ha clicado un p1 y un p2 es menu completo
//Mientras es un medio menu
var isHalf = isMedio();
//console.log(isHalf);
//$('#is_medio').val(isHalf);
var msg_type_menu = (isHalf==1) ? "Mig menú" : "Menu sencer";
//console.log(msg_type_menu);
$('#menu-type').text(msg_type_menu);
precio_menu();
//Los extras se reinician
//$('#ta_extras_b').val(1);
//$('#ta_extras_p').val(9);
} else {
if(maxchecks==1){
js_msg_err("Solament es pot escollir un primer o un segon en modalitat contractada de Mig Menu. ");
} else {
js_msg_err("Solament es pot seleccionar o dos primers o un primer i un segon plat en menú complet. Revisa si us plau la selecció. ");
}
}
});
$('.p2_radio').click(function(){
$('#add-menu').show();
//quitar todos los selecteds de ese plato
var plato = $(this).attr("plato");
var idplato = $(this).attr("dataid");
var checks = countChecks("p1");
if(checks!=maxchecks && plato=="p2"){
$('.'+plato).removeClass("plat_selected")
//$('#p_'+idplato).addClass("plat_selected");
console.log('.'+plato+'_radio');
if($(this).is(":checked")){
$('.'+plato+'_radio').prop("checked",false);
$('#p_'+idplato).addClass("plat_selected");
$('#radio_'+idplato).prop("checked",true);
} else {
$('#p_'+idplato).removeClass("plat_selected");
$('#radio_'+idplato).prop("checked",false);
}
var isHalf = isMedio();
var msg_type_menu = (isHalf) ? "Mig menú" : "Menu sencer";
$('#menu-type').text(msg_type_menu);
precio_menu();
//Los extras se reinician
//$('#ta_extras_b').val(1);
//$('#ta_extras_p').val(9);
} else {
if(maxchecks==1){
js_msg_err("Solament es pot escollir un primer o un segon en modalitat contractada de Mig Menu. ");
} else {
js_msg_err("Solament es pot seleccionar o dos primers o un primer i un segon plat en menú complet. Revisa si us plau la selecció. ");
}
}
});
$('.pp').click(function(){
//quitar todos los selecteds de ese plato
var plato = $(this).attr("dataid");
var clase_radio = $(this).attr("nplato");
$('.'+clase_radio).removeClass("plat_selected");
if($('#radio_'+plato).is(":checked")){
$('.'+clase_radio+'_radio').prop("checked",false);
$('#radio_'+plato).prop("checked",false);
} else {
//Todos los checks a uncheck
$('.'+clase_radio+'_radio').prop("checked",false);
$('#radio_'+plato).prop("checked",true);
$(this).addClass("plat_selected");
}
//Saber si hay algun plato seleccionado para activar el botón de añadir menu #add-menu
if($('.plat_selected').length > 0) {
$('#add-menu').show();
} else {
$('#add-menu').hide();
}
//alert(plato);
//Comprobar si es medio menu
//si se ha clicado un p1 y un p2 es menu completo
//Mientras es un medio menu
var isHalf = isMedio();
var msg_type_menu = (isHalf==1) ? "Mig menú" : "Menu sencer";
$('#menu-type').text(msg_type_menu);
precio_menu();
//Los extras se reinician
//$('#ta_extras_b').val(1);
//$('#ta_extras_p').val(9);
});
$('.pp_radio').click(function(){
$('#add-menu').show();
//quitar todos los selecteds de ese plato
var plato = $(this).attr("plato");
var idplato = $(this).attr("dataid");
$('.'+plato).removeClass("plat_selected")
//$('#p_'+idplato).addClass("plat_selected");
console.log('.'+plato+'_radio');
if($(this).is(":checked")){
$('.'+plato+'_radio').prop("checked",false);
$('#p_'+idplato).addClass("plat_selected");
$('#radio_'+idplato).prop("checked",true);
} else {
$('#p_'+idplato).removeClass("plat_selected");
$('#radio_'+idplato).prop("checked",false);
}
var isHalf = isMedio();
var msg_type_menu = (isHalf) ? "Mig menú" : "Menu sencer";
$('#menu-type').text(msg_type_menu);
precio_menu();
//Los extras se reinician
//$('#ta_extras_b').val(1);
//$('#ta_extras_p').val(9);
});
//Fin de lo nuevo
function isMedioOLD(){
var p1 = $('.p1_radio').is(":checked");
var p2 = $('.p2_radio').is(":checked");
//Ponemos el precio del menú ya en pantalla
var uno = $('#precio_base').val();
var medio = $('#precio_base_medio').val();
var precio_total = (p1 && p2) ? uno : medio;
$('#precioTotal_text').html(moneda(precio_total));
$('#precioTotal').val(precio_total);
var isHalf = (p1 && p2) ? 0 : 1;
var msg_type_menu = (isHalf) ? "Mig menú" : "Menu sencer";
$('#menu-type').text(msg_type_menu);
return isHalf;
}
function isMedio(){
//Ojo ahora son checks y el comportamiento es diferente
var p = countChecks("p1");
p = p + countChecks("p2");
/*
var p1 = $('.p1_radio').is(":checked");
var p2 = $('.p2_radio').is(":checked");
*/
//Ponemos el precio del menú ya en pantalla
var uno = $('#precio_base').val();
var medio = $('#precio_base_medio').val();
var precio_total = (p==2) ? uno : medio;
$('#precioTotal_text').html(moneda(precio_total));
$('#precioTotal').val(precio_total);
//var isHalf = (p==2) ? 0 : 1;
var isHalf = $('#is_medio').val();
var msg_type_menu = (isHalf) ? "Mig menú" : "Menu sencer";
$('#menu-type').text(msg_type_menu);
return isHalf;
}
/* OLD
$('.p1_radio,.p2_radio,.pp_radio').click(function(){
$('#add-menu').show();
//quitar todos los selecteds de ese plato
var plato = $(this).attr("plato");
var idplato = $(this).attr("dataid");
$('.'+plato).removeClass("plat_selected")
$('#p_'+idplato).addClass("plat_selected");
//$("."+plato+"_radio").prop("checked",false);
$('#radio_'+idplato).prop("checked",true);
var isHalf = isMedio();
$('#is_medio').val(isHalf);
var msg_type_menu = (isHalf) ? "Mig menú" : "Menu sencer";
$('#menu-type').text(msg_type_menu);
precio_menu();
//Los extras se reinician
//$('#ta_extras_b').val(1);
//$('#ta_extras_p').val(9);
});
*/
$('.reset_plato').click(function(){
var plato = $(this).attr("plato");
$("."+plato+"_radio").prop("checked",false);
$('.'+plato).removeClass("plat_selected");
precio_menu();
})
function precio_menuOLD(){
//Esto se ha de recalcular para los menus o medios menus
var p1 = $("input:radio[name=IDPlato1]:checked").val();
var p2 = $("input:radio[name=IDPlato2]:checked").val();
var isMedio = (p1===undefined || p2===undefined) ? 1 : 0;
console.log(p1+" "+p2+" "+isMedio);
$('#is_medio').val(isMedio);
var t=0;
var b = $("#ta_extras_b").val();
var p = $("#ta_extras_p").val();
var jqxr = $.getJSON(path+"?option=get-current-extras&b="+b+"&p="+p)
.done(function (data){
b = parseFloat(data.b);
p = parseFloat(data.p);
if(isMedio==1){
t = parseFloat($("#precio_base_medio").val());
} else {
t = parseFloat($("#precio_base").val());
}
t = t+p+b;
$('#precioTotal').val(t);
$('#precioTotal_text').html(moneda(t));
})
}
function precio_menu(){
//Rehacer las opciones por ser checks
var c = "";
$('.platos_total').each(function(){
if($(this).is(":checked")){
c = c + $(this).val()+",";
}
});
c = c.substr(0,c.length - 1);
console.log(c);
var ar = c.split(",");
//Esto se ha de recalcular para los menus o medios menus
var p1 = ar[0];
var p2 = ar[1];
var isMedio = (p1===undefined || p2===undefined) ? 1 : 0;
console.log(p1+" "+p2+" "+isMedio);
$('#is_medio').val(isMedio);
var t=0;
var b = $("#ta_extras_b").val();
var p = $("#ta_extras_p").val();
var jqxr = $.getJSON(path+"?option=get-current-extras&b="+b+"&p="+p)
.done(function (data){
b = parseFloat(data.b);
p = parseFloat(data.p);
if(isMedio==1){
t = parseFloat($("#precio_base_medio").val());
} else {
t = parseFloat($("#precio_base").val());
}
t = t+p+b;
$('#precioTotal').val(t);
$('#precioTotal_text').html(moneda(t));
})
}
$('.calendar_on').on("click",function(){
var f = $(this).attr("fecha");
//viewers Poner todas en calendar_not_selected excepto el seleccionado.
$('.calendar_on').removeClass("calendar_selected");
$('.calendar_on').addClass("calendar_not_selected");
$(this).removeClass("calendar_not_selected");
$(this).addClass("calendar_selected");
//actuación
$('#dtFechaEntrega').val(f);
calendar_filled=1;
acepta_condiciones();
//Mensaje
var msg='';
/*
if((f=='2021-12-24') || (f=='2021-12-31')){
msg='La seva comanda estarà disponible el dia escollit de 12:00 a 17:00';
} else {
msg='La seva comanda estarà disponible el dia escollit de 10:00 a 12:00';
}*/
msg='La seva comanda estarà disponible el dia escollit de 10:00 a 12:00';
$('#msg-delivery-festes').html('
'+msg+'
');
$('#msg-delivery-festes').show();
//El precio del menú ha de cambiar si es domingo Lo sacamos de las variables para la V9
var fe = new Date(f);
var ds = fe.getUTCDay(); //Para saber si es 0 Domingo o 6 Sábado
var menuTA = (ds==0 || ds==6) ? 15 :12.9;
var menuMed_TA = (ds==0 || ds==6) ? 12.5 : 10;
console.log("Fecha:"+ fe +" Dia semana:"+ds+" Precios:" + menuTA+"/"+menuMed_TA);
//Ponemos el precio base en el campo segun fecha y en el atributo dataid?
$('#precio_base').val(menuTA);
$('#precio_base_medio').val(menuMed_TA);
$('#precio_base').attr("dataid",menuTA);
$('#precio_base_medio').attr("dataid",menuMed_TA);
//hay que tener en cuenta que pueden haber extras
var isMedio = $('#is_medio').val();
var pb=0;
if(isMedio==0) {
pb = parseFloat($('#precio_base').val());
} else {
pb = parseFloat($('#precio_base_medio').val());
}
var be = $('#ta_extras_b').val();
var pa = $('#ta_extras_p').val();
var jqxr = $.getJSON(path+"?option=get-extra&be="+be+"&pa="+pa+"&pb="+pb)
.done(function(data){
$('#precioTotal_text').html(data.precio_total_text);
$('#precioTotal').val(data.precio_total);
});
/*
var isMedio = $('#is_medio').val();
if(isMedio==1){
$('#precioTotal_text').html(moneda(menuMed_TA));
$('#precioTotal').val(menuMed_TA);
} else {
$('#precioTotal_text').html(moneda(menuTA));
$('#precioTotal').val(menuTA);
}
*/
});
// desde take away
$('#btn-login-ta').click(function(){
//Comprobación de credenciales
$.post(path+"?option=login",$('#form-login').serialize(),function(){},"json")
.done(function(data){
if (data.err==0) {
//analizamos si es de empresa, si es así se deriva al delivery empresas
if(data.user.lgTAEmpresa=="1"){
//Es empresa
location.href= "https://elracodelesportiu.com/index.php/take-away-empresas/";
} else {
$('#msg-login').html("
"+data.msg+"
");
//Carga en el formulario de contacto los datos devueltos
$('#txtNom').val(data.user.txtNombre);
$('#txtCognoms').val(data.user.txtApellidos);
$('#txtTelefon').val(data.user.txtTelefono1);
$('#txtEMail').val(data.user.txtEMail);
$('#IDCliente').val(data.user.ID);
//Carga el valor de la promo si tiene
$('#billing-oferta').html(moneda(data.user.nuDtoPromo));
$('#no-log').show();
$('#div-sign-in').hide();
//muestra los platos de menú
$('#select-platos-menu').show();
cliente_filled = 1;
//Comprueba si tiene direcciones sino elimina el radio de Delivery
if(data.user.dirs==0) {
$('.radio-delivery').hide();
//Muestro mensaje que indica que no puedo hacer delivery pq no tengo direcciones asignadas.
$('#msg-radio').html('
');
}
//Una vez login OK ya añade la cabecera de pedido
var jqxr = $.post(path+"?option=add-cabecera",$('#form-data-pers').serialize())
setTimeout(function(){
$('#msg-login').hide();
$('#login-ta-customer').hide();
$('#data-pers').show();
$('#ta-customer').hide(); //Botón de ya estas logonado.
//Mostrar el monedero si lo tiene
//Vemos si se carga el monedero
if(data.user.isMonedero==1){
$('#monedero-radio').show();
$('#monedero-value').html(moneda(data.user.nuMonedero));
$('#monedero-radio').attr("amount",data.user.nuMonedero);
amountMonedero();
}
},3000);
}
} else {
$('#msg-login').html("
"+data.msg+"
");
}
});
});
//Parte de mi cuenta
//arranque directo sin funciones
var isCustomer = 0;
var renew = 0;
if(isCustomer==1){
$('#msg-login').hide();
$('#tabs').show();
$('#login').hide();
//Reset de password
$('#renew').hide();
//Parte en la página de takeaway
$('#login-ta-customer').hide();
$('#data-pers').show();
$('#ta-customer').hide(); //Botón de ya estas logonado.
//Carga del perfil
$.getJSON(path+"?option=load-customer-profile")
.done(function(data){
$('#form-data-profile input').each(function(){
$('#form-data-profile input').each(function(){
var id = $(this).attr("name");
$('#'+id+"_profile").val(data.user[id]);
});
})
//Nombre de bienvenida
$('#customer-name').text(data.user.txtNombre+" "+data.user.txtApellidos);
//Parte en la página de takeaway
$('#txtNom').val(data.user.txtNombre);
$('#txtCognoms').val(data.user.txtApellidos);
$('#txtTelefon').val(data.user.txtTelefono1);
$('#txtEMail').val(data.user.txtEMail);
//Vemos si se carga el monedero
if(data.user.isMonedero==1){
$('#monedero-radio').show();
$('#monedero-value').html(moneda(data.user.nuMonedero));
$('#monedero-radio').attr("amount",data.user.nuMonedero);
amountMonedero();
}
//Direcciones
if(data.user.dirs==0) {
//$('.radio-delivery').hide();
$('#radioTSD').prop("checked",false); //el de delivery
//$('#radioTSD').prop("disabled",true); //el de delivery
//Muestro mensaje que indica que no puedo hacer delivery pq no tengo direcciones asignadas.
$('#msg-radio').html('
');
$('#radioTST').prop("checked",true); //el de take away
$('#txtTipoServicio').val("T");
}
});
} else {
if(renew==1){
$('#renew').show();
$('#login').hide();
} else {
$('#login').show();
$('#msg-login').show();
}
}
//Carga las direcciones del usuario
$('.datepicker').datepicker({
dateFormat: 'dd-mm-yy',
languaje: 'ca'
});
//Carga directa de comprobación de si tiene datos fiscales si es asi se habilita el botón enviar tickets-factura, sino se avisa del caso.
var txtEmpresa = "";
var txtNIF = "";
var txtDireccion = "";
var txtPoblacion = "";
var txtDP = "";
if(txtEmpresa!="" && txtNIF!="" && txtDireccion!="" && txtPoblacion!="" && txtDP!=""){
//OK
$('#btn-send-ticket-factura').show();
$('#msg-ticket-factura').html('');
} else {
//KO
$('#btn-send-ticket-factura').hide();
$('#msg-ticket-factura').html('
No pot demanar factures fins que no hagi emplenat totes les dades fiscals que li demanem en la 3ª pestanya Dades Fiscals (factures)
');
}
$('#btn-login').click(function(){
//Comprobación de credenciales
$.post(path+"?option=login",$('#form-login').serialize(),function(){},"json")
.done(function(data){
if (data.err==0) {
$('#msg-login').html("
"+data.msg+"
");
setTimeout(function(){
location.reload();
},3000);
//acciones - Muestra la capa con las tabs
//Cargamos en los campos correspondientes los datos del cliente.
$('#form-data-profile input').each(function(){
var id = $(this).attr("name");
$('#'+id+"_profile").val(data.user[id]);
});
//Nombre de bienvenida
$('#customer-name').text(data.user.txtNombre+" "+data.user.txtApellidos);
} else {
$('#msg-login').html("
"+data.msg+"
");
}
});
});
$(".toggle-password").click(function() {
$(this).toggleClass("fa-eye fa-eye-slash");
var input = $($(this).attr("toggle"));
if (input.attr("type") == "password") {
input.attr("type", "text");
} else {
input.attr("type", "password");
}
});
$('#lost-password').click(function(){
//envio de mail con la nueva contraseña para ese usuario.
var mail = $('#txtEMailLog').val();
$.getJSON(path+"?option=send-mail-lost-pass&mail="+mail)
.done(function(data){
if (data.err==0) {
$('#msg-login').html("
"+data.msg+"
");
} else {
$('#msg-login').html("
"+data.msg+"
");
}
});
})
$('#btn-change-pass').click(function(){
//Validar que sean strong
var p1 = $('#txtPassChange').val();
var p2 = $('#txtPassChange2').val();
var err=0; //No hay inicialmente error
var passOK = CheckPassword(p1);
if(passOK){
//Son iguales?
if(p1==p2){
err=0;
} else {
err=2;
}
} else {
err=1;
}
switch(err){
case 0:
$.post(path+"?option=change-pass",$('#change-password').serialize())
.done(function(){
$('#msg-err').html("
Contrasenya canviada correctament
");
});
break;
case 1:
$('#msg-err').html("
La contrasenya no és vàlida. S'ha de posar una contrasenya de al menys 6 caracters.
");
break;
case 2:
$('#msg-err').html("
Les contrasenyes no coincideixen
");
break;
}
});
$('#btn-save-profile').click(function(){
var ok = validate_profile();
if(ok){
$.post(path+"?option=save-profile",$('#form-data-profile').serialize(),"json")
.done(function(data){
$('#msg-profile').html("
Perfil actualitzat
");
})
} else {
$('#msg-profile').html("
No s'actualitzat el perfil, ha de posar el seu nom, cognoms, telèfon i mail.
");
}
})
$('#btn-new-customer').click(function(){
//Validar que ha puesto al menos Nombre, Apellidos, Telefono y mail
//Validar si ha puesto un código amigo correcto
var err=0;
var ok = (validate_customer()) ? 1 : 0;
var p1 = $('#txtPass_customer').val();
var p2 = $('#txtPass2_customer').val();
var m = (p1==p2) ? 1 : 0;
//var mail = ($('#txtEMail_customer').val() == $('#txtEMail2_customer').val()) ? 1 : 0;
var okpass = (CheckPassword(p1)) ? 1 : 0;
var msg_err = "";
console.log(ok+m+okpass);
if(ok==1 && m==1 && okpass==1){
//COMPROBAR SI HA PUESTO CODIGO AMIGO Y ES CORRECTO A ALGUN CLIENTE.
var ca = $('#txtCodigoAmigo_customer').val();
var jqxr = $.getJSON(path+"?option=test-ca&ca="+ca)
.done(function(data){
//Evaluar que ha pasado
if(data.error==1){
console.log(status.error);
//No es un código amigo correcto, no se da de alta el usuario y se le avisa
$('#msg-new-customer').html("
");
}
},"json");
}
});
} else {
//Analizar los errores
console.log(ok+" "+m+" "+okpass);
if(ok==0) msg_err += "No s'actualitzat el perfil, ha de posar el seu nom, cognoms, telèfon i mail i ha d'acceptar la política de privacitat. ";
if(m==0) msg_err += "Les contrasenyes no coincideixen ";
if(okpass==0) msg_err += "La contrasenya no és vàlida. S'ha de posar una contrasenya de al menys 6 caracters.";
//if(mail==0) msg_err += "Les adreces de mail no son iguals";
$('#msg-new-customer').html("
"+msg_err+"
");
}
});
$('#new-contact').click(function(){
$('#data-pers').toggle();
});
$('#ta-customer').on('click touchstart',function(){
$('#login-ta-customer').toggle();
});
$('#bt-disconnect').click(function(){
$.ajax(path+"?option=disconnect")
.done(function(){
$(location).attr("href","https://elracodelesportiu.com/index.php/el-meu-compte/");
});
});
$('#renew-password').click(function(){
//Validar que sean strong
var p1 = $('#txtPassMD5-first').val();
var p2 = $('#txtPassMD5-repeat').val();
var err=0; //No hay inicialmente error
var passOK = CheckPassword(p1);
if(passOK){
//Son iguales?
if(p1==p2){
err=0;
} else {
err=2;
}
} else {
err=1;
}
switch(err){
case 0:
var jqxr = $.post(path+"?option=renew-password",$('#form-pass-renew').serialize())
.done(function(data){
$('#msg-login-renew').html("
"+data+"
");
});
break;
case 1:
$('#msg-login-renew').html("
La contrasenya no és vàlida. S'ha de posar una contrasenya de al menys 6 caracters.
");
break;
case 2:
$('#msg-login-renew').html("
Les contrasenyes no coincideixen
");
break;
}
});
//Adreces
//Funciones handlers
function acciones_direcciones(){
$('.radio-favorito').unbind("click");
$('.del-address').unbind("click");
$('.radio-favorito').click(function(){
var id = $(this).val();
var idc = $(this).attr("idc");
$.ajax(path+"?option=set-favorite&id="+id+"&idc="+idc)
});
$('.del-address').click(function(){
if(confirm('Està segur d\'esborrar aquesta adreça. L\'acció no es pot desfer. ')){
//Borra
var id = $(this).attr("dataid");
$.ajax(path+"?option=del-address&id="+id)
.done(function(){
$('#load-addresses').load(path+"?option=load-addresses&idc="+idc, function(){
//Handlers para papelera y borrar alguna dirección, favorito
acciones_direcciones();
return true;
});
});
} else {
return false;
}
});
}
//Carga directa
var idc = 0;
$('#load-addresses').load(path+"?option=load-addresses&idc="+idc, function(){
//Handlers para papelera y borrar alguna dirección, favorito
acciones_direcciones();
})
$('#txtDP_address').change(function(){
var id = $(this).val();
var jqxr = $.ajax(path+"?option=get-pob&id="+id)
.done(function(data){
$('#txtPoblacion').val(data);
});
});
$('#add-address').click(function(){
//Validació dels camps com a mínim la primera linia d'adreça, DP i població.
var d = $('#txtDireccion').val();
var dp = $('#txtDP').val();
var dpsb = $('#txtDP_standby').val();
var psb = $('#txtPoblacion_standby').val();
var p = $('#txtPoblacion').val();
var err = ((d!="") && ((dp!="0")||(dpsb!="")) & ((p!="")||(psb!=""))) ? 0 : 1;
if(err==1){
$('#msg-add-address').html('
Els camps adreça, dp i població son obligatoris, revisi les seves dades.
Adreça introduïda correctament. La teva adreça encara no es pot fer servir pel servei de delivery fins que quedi activada.
');
}
//Carga ajax de las direcciones del cliente.
$('#load-addresses').load(path+"?option=load-addresses&idc="+idc, function(){
//Handlers para papelera y borrar alguna dirección, favorito
acciones_direcciones();
});
});
}
//limpiar tod el formulario de datos
$('#adreces')[0].reset();
});
$('#modi-fiscal').click(function(){
//Validació dels camps com a mínim la primera linia d'adreça, DP i població.
var e = $('#txtEmpresa_fisc').val();
var n = $('#txtNIF_fisc').val();
var d = $('#txtDireccion_fisc').val();
var dp = $('#txtDP_fisc').val();
var p = $('#txtPoblacion_fisc').val();
var err = ((e!="") && (n!="") && (d!="") && (dp!="") & (p!="")) ? 0 : 1;
if(err==1){
$('#msg-fiscal').html('
Els camps adreça, dp i població son obligatoris, revisi les seves dades.
');
$('#btn-send-ticket-factura').show();
$('#msg-ticket-factura').html("");
});
}
});
//Facturación
$('#send-ticket-factura').click(function(){
//Validar la entrada de los tres campos
var t = $('#txtTicket').val();
var i = $('#nuImport').val();
var d = $('#txtFecha').val();
var noerr = (t!="" && i!="" && d!="");
if(noerr){
//Submit de valor
$.post(path+"?option=ticket-factura",$('#ticket-factura').serialize())
.done(function(data){
var msg="";
var cl="";
if(data==0){
cl="alert-danger";
msg="El seu ticket ja ha estat processat anteriorment, no es pot tornar a expedir. Demani la seva factura duplicada contactant per telèfon o per mail";
} else {
cl="alert-success";
msg = "La seva petició està en procés, en breu rebrà la factura a la seva adreça de mail. ";
}
$('#msg-ticket-factura').html('
'+msg+'
');
});
} else {
alert ("Error: s'han d'omlir el tres camps requerits");
}
})
$('.decimal').keypress(function(e){
var key = e.charCode;
var espkey = e.keyCode;
var valor = $(this).val();
//Teclas aceptadas: 48-57 (numeros teclado alfanumerico, 96-105 numes tecl numerico, 188-",", 190--".", 110-"." (numeric pad)
//8 - BS, 46-Del/Supr.
if((key>=48 && key <=57) || (key>=44) && (key<=46) || (espkey==8) || (espkey==46)) {
$(this).val(valor.replace(",","."));
} else {
e.preventDefault();
}
});
function load_facturas(){
$('#comandes').load(path_neto+"ta_load_facturas.php",function(){
$('.download-ticket').unbind("click");
$('.download-factura').unbind("click");
$('.download-ticket').click(function(){
var idp = $(this).attr("idped");
console.log(idp);
//Gestiona desde ajax toda la producción y descarga
$.getJSON(path+"?option=a-ticket&idp="+idp)
.done(function(data){
load_facturas();
//Devuelve el path y link de descarga
//Solo cuando se ha generado el archivo, lo envia al navegador
var url = "https://intranet.elracodelesportiu.com/ta_facturas/raco/tickets/"+data.fac;
window.open(url, '_blank');
});
});
$('.download-factura').click(function(){
var idp = $(this).attr("idped");
console.log(idp);
//Gestiona desde ajax toda la producción y descarga
$.getJSON(path+"?option=a-factura&idp="+idp)
.done(function(data){
load_facturas();
//Devuelve el path y link de descarga
//Solo cuando se ha generado el archivo, lo envia al navegador
var url = "https://intranet.elracodelesportiu.com/ta_facturas/raco/facturas/"+data.fac;
window.open(url, '_blank');
});
});
});
}
$('#pest-factures').click(function(){
load_facturas();
});
//Delivery
$('.c-radio-type').click(function(){
var t = $(this).val();
var idc = $('#IDCliente').val();
$('#txtTipoServicio').val(t);
//Si es delivery muestra la capa de las direcciones del cliente para escoger que dirección
if(t=="D"){
$.getJSON(path+"?option=direcciones-cliente")
.done(function(data){
$('#combo-list-dirs').html(data.html);
$('#msg-delivery-horario').html('
Les comandes rebudes abans de les 12:00 seran entregades entre 12:00 i 13:00 Les comandes rebudes entre 12:00 i 13:00 seran entregades entre 13:00 i 14:00 Les comandes rebudes entre 13:00 i 15:00 seran entregades en 45 minuts aproximadament a partir de la recepció de la comanda
');
//asignacion inicial de dirección.
$('#combo-dirs').show();
$('#IDDireccion').val($('#IDDireccion-combo').val());
isDelivery('D');
amountMonedero();
if(data.dirs==0){ // No hay direcciones
isDelivery('T');
$('#delivery-cost').hide();
$('#msg-radio').html('
');
$('#combo-dirs').hide();
$('#radioTSD').prop("checked",false); //el de delivery
$('#radioTST').prop("checked",true); //el de take away
$('#txtTipoServicio').val("T");
} else {
$('#msg-radio').hide();
}
//handlers de la carga
$('#IDDireccion-combo').change(function(){
var d = $(this).val();
$('#IDDireccion').val(d);
var jqxr = $.post(path+"?option=add-cabecera",$('#form-data-pers').serialize())
.done(function(){
isDelivery($('#txtTipoServicio').val());
//Carga on the fly las condiciones de servicio
//$('#delivery-conditions').click();
})
});
});
} else {
$('#combo-dirs').hide();
isDelivery('T');
}
//También abre la capa de calculo de costes del pedido segun si es delivery, basado en la dirección favorita.
});
$('#delivery-conditions').click(function(){
$.ajax(path+"?option=text-conditions-delivery")
.done(function(data){
$('#text-conditions-delivery').html(data);
$('#msg-radio-conditions').show();
})
})
$('#close-conditions').click(function(){
$('#msg-radio-conditions').hide();
});
//Codigos de promoción
//CARTA PARA FIESTAS DE NAVIDAD - Y DE RESTAURANTE
$('.plus').on("click",function(){
var it = $(this).prev();
var q = parseInt(it.val());
$(it).val(q+1);
});
$('.minus').on("click",function(){
var it = $(this).next();
var q = parseInt(it.val());
if(q>0){
$(it).val(q-1);
}
});
$('.add-plato').on("click",function(){
//Todo esto ha de pasar si el cliente está logonado
var plato = $(this).attr("plato");
var c='';
$('.qty').each(function(){
var q = $(this).val();
var p = $(this).attr("plato");
var t = $(this).attr("tipo");
if(q>=1) c+=t+':'+p+':'+q+';';
});
menu_filled = 1;
$('#acepta-condiciones').prop("checked",false);
acepta = 0;
var promo = $('#nuDescuentoPromo').val();
//Llamada ajax para conseguir el JSON que devuelva los datos para pintar la cesta
var jqxr = $.getJSON(path+"?option=cesta-navidad&cadena="+c+"&promo="+promo)
.done(function(data){
if(data.user_logged==1){
//Helpers
$('#cloned-detall-navidad').html(data.html);
button_trash_carta();
$('#billing-nuPreu').html(data.total_text);
$('#nuTotalPedidoBase').val(data.total_base);
$('#nuTotalPedido').val(data.total);
//Pie de la página
$('#precioTotal_text').html(data.total_text);
$('#precioTotal').val(data.total_base);
amountMonedero();
return true;
} else {
alert("No pot demanar cap plat, abans s\'ha d\'acreditar com a client. Si no és client registri a la nostra web en l\'apartat EL MEU COMPTE");
return false;
}
});
});
$('[data-toggle="tooltip"]').tooltip();
$('.desplegar').on("click",function(){
var capa = $(this).attr("data-toggle");
$('#'+capa).toggle();
});
//Funciones específicas para Sant-Valentí
//Validador de campos del form
function validarEmail(valor) {
if (/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i.test(valor)){
return true;
} else {
return false;
}
}
function validate_sv(){
var n = $('#txtNombre').val();
var a = $('#txtApellidos').val();
var m = $('#txtEMail').val();
var t = $('#txtTelefono').val();
var d = $('input:radio[name=dtFechaEntrega]:checked').val();
console.log("dtFechaEntrega:"+d);
var nn = (n=='') ? 0 : 1;
var na = (a=='') ? 0 : 1;
var nm = (!validarEmail(m)) ? 0 : 1;
var nt = (t=='') ? 0 : 1;
var nd = (d===undefined) ? 0 : 1;
var v = nn+na+nm+nt+nd;
console.log(v);
return v;
}
$('#pay-now-sv').click(function(){
//primero guarda en temp los datos del post y luego envía la página
if(validate_sv()==5){
$.post(path+"?option=save-data-temp-sv",$('#TPVSV').serialize())
.done(function(data){
//Aquí haremos el submit
if(data>0){
$("#TPVSV").submit();
}
})
} else {
alert("Tots els camps son obligatoris.\r\nEl camp d'email ha de tindre una adreça vàlida. \r\nRevisi el formulari");
return false;
}
});
//Delivery EMPRESES
//Carga de subclientes
function cargaSubCuentas(){
//Carga las subcuentas de un cliente en modo listado
$('#load-subcuentas').load(path+'?option=load-subcuentas&idc=',
function(){
//Handlers del listado
$('.del-subcuenta').click(function(){
if(confirm("Està segur d'eliminar aquest subclient? \r\nL'acció no es pot desfer")){
//Borra
var id = $(this).attr("dataid");
$.ajax(path+"?option=del-subcuenta&id="+id)
.done(function(){
cargaSubCuentas();
return true;
});
} else {
return false;
}
});
})
}
cargaSubCuentas();
$('#generate-pass').click(function(){
$.ajax(path+"?option=gen-pass")
.done(function(data){
$('#txtPassMD5_sub').val(data);
});
});
$('#add-worker').click(function(){
$.post(path+'?option=add-worker',$('#form-trabajadores').serialize(),
function(data){
//Done devolviendo JSON de estado de la alta.
if(data.err==0){
$('#subcuenta-msg').addClass("alert-success");
$('#subcuenta-msg').removeClass("alert-danger");
} else {
$('#subcuenta-msg').addClass("alert-danger");
$('#subcuenta-msg').removeClass("alert-success");
}
$('#subcuenta-msg').html(data.msg);
cargaSubCuentas();
},'json')
})
$('.mayusc').on("keypress",function(){
$input=$(this);
setTimeout(function () {
$input.val($input.val().toUpperCase());
},50);
});
}); //$(document).ready
}); //jQuery(function ($)