var ajax_url = "https://soriabonos.es/wp-content/plugins/nt-webservice-form-stats/includes/ajax.php";
jQuery( document ).ready(function( $ ) {
//las metermos dentro del ready para que se pueda usar el $
function show_response(text, status){
var divclass = "msgok";
$(".nwfs-response").hide();
var capa = $(".nwfs-container");
if(status == "error"){
divclass = "msgerror";
capa = $(".nwfs-error-container");
$("#commerce-form").show();
}
var div = "
"+text+"
";
capa.html(div);
}
function showQrCodes(array_codes){
var arrayBonosQr = array_codes
$(".nwfs-container").append("")
var contenedor = $(".containerQr");
$.each(arrayBonosQr, function(key, value) {
contenedor.append(`
${key}
${value}
`);
});
addListenerQr()
}
function addListenerQr(){
$(".btn_download").each(function(){
$(this).click(function(){
var clave_id = $(this).attr("id")
downloadQrCode(clave_id)
});
});
$(".qr_code").each(function(){
$(this).click(function(){
var clave_id = $(this).attr("id")
downloadQrCode(clave_id)
});
});
}
function downloadQrCode(qr_key){
var imagenQr = $("img#"+qr_key);
var src = imagenQr.attr("src");
var downloadLink = document.createElement('a');
downloadLink.href = src;
downloadLink.download = 'bono_'+ qr_key +'.svg';
downloadLink.click();
}
/*function nwfs_check_form_fields(form){
form.validate({
submitHandler: function(form) {
//$(form).ajaxSubmit();
return false;
}
});
//return true;
}*/
function is_person(){
if( $("#commerce_cifnif").val()==1){
return true;
}else{
return false;
}
}
function is_juridic(){
if( $("#commerce_cifnif").val()==2){
return true;
}else{
return false;
}
}
function required_subsector(){
var subsel = $("#commerce_iae_sub");
if(subsel.html()!="" && subsel.is(':enabled')){
return true;
}else{
return false;
}
}
function is_local_user(){
var usermode = $("#usermode");
if(usermode.val()=="empadronado"){
return true;
}else{
return false;
}
}
//Envio de formulario
var form = $("#commerce-form");
var max10 = "Este campo no puede tener más de 10 caracteres";
var max50 = "Este campo no puede tener más de 50 caracteres";
var max100 = "Este campo no puede tener más de 100 caracteres";
var min5 = "Este campo debe tener 5 caracteres como mínimo";
var reqfield = "Este campo es obligatorio";
$('#commerce_iban').mask('SS00 0000 0000 0000 0000 0000', {
placeholder: 'ESXX XXXX XXXX XXXX XXXX XXXX'
});
form.validate({
rules: {
commerce_name: {
required: true,
maxlength: 100
},
commerce_manager: {
required: true,
maxlength: 100
},
commerce_mail: {
required: true,
email: true,
maxlength: 100
},
commerce_iae: {
required: true,
min: 1
},
commerce_iae_sub: {
required: required_subsector(),
min: 1
},
commerce_employees: {
required: true,
min: 1
},
commerce_location: {
required: true,
maxlength: 100
},
commerce_cp: {
required: true,
minlength: 5,
maxlength: 10
},
commerce_devices: {
required: true,
min: 1
},
commerce_iban: {
required: true,
maxlength: 100
},
commerce_nif: {
required: {
depends: is_person()
},
minlength: {
param: 8,
depends: is_person()
}
},
commerce_cif: {
required: {
depends: is_juridic()
},
minlength: {
param: 8,
depends: is_juridic()
}
},
commerce_represent: {
required: {
depends: is_juridic()
}
},
commerce_represent_nif: {
required: {
depends: is_juridic()
},
minlength: {
param: 8,
depends: is_juridic()
}
},
commerce_device_num_1: {
required: true
},
commerce_agreement: {
required: true
},
commerce_agreement_rep: {
required: true
},
commerce_agreement_con: {
required: true
},
commerce_agreement_act: {
required: true
},
commerce_agreement_aut: {
required: true
},
commerce_agreement_cor: {
required: true
}
},
messages: {
commerce_name: {
required: "El nombre es obligatorio",
maxlength: max100
},
commerce_manager: {
required: "El titular del comercio es obligatorio",
maxlength: max100
},
commerce_mail: {
required: "Necesitamos tu email para enviarte toda la información",
email: "Tu email debe tener un formato tipo nombre@dominio.com",
maxlength: max100
},
commerce_iae: {
required: "Selecciona un sector de la lista",
min: "Selecciona un sector de la lista"
},
commerce_iae_sub: {
required: "El sector que has elegido requiere que especifiques un subsector",
min: "El sector que has elegido requiere que especifiques un subsector"
},
commerce_employees: {
required: reqfield,
min: 1
},
commerce_location: {
required: reqfield,
maxlength: max100
},
commerce_cp: {
required: reqfield,
minlength: min5,
maxlength: max10
},
commerce_devices: {
required: reqfield,
min: 1
},
commerce_iban: {
required: reqfield,
maxlength: max100
},
commerce_nif: {
required: reqfield
},
commerce_cif: {
required: reqfield
},
commerce_represent: {
required: reqfield
},
commerce_represent_nif: {
required: reqfield
},
commerce_agreement: {
required: "Debes aceptar los términos y condiciones."
},
commerce_device_num_1: {
required: reqfield
},
commerce_agreement_rep: {
required: "Debes aceptar todas las cláusulas"
},
commerce_agreement_con: {
required: "Debes aceptar todas las cláusulas"
},
commerce_agreement_act: {
required: "Debes aceptar todas las cláusulas"
},
commerce_agreement_aut: {
required: "Debes aceptar todas las cláusulas"
},
commerce_agreement_cor: {
required: "Debes aceptar todas las cláusulas"
}
},
submitHandler: function(resform, e) {
//$(form).ajaxSubmit();
e.preventDefault();
form.hide();
$(".nwfs-response").show(300);
$([document.documentElement, document.body]).animate({
scrollTop: ($(".nwfs-response").offset().top - 120)
}, 300);
jQuery.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
data: form.serialize(),
success: function (response) {
//console.log(data);
if(response != null && response.status !== typeof undefined){
if(response.status == 'success'){
//alert("Thank you for subscribing!");
show_response("La petición ha sido enviada con éxito. "
+"Hemos enviado un correo con toda la información necesaria.
"
+"Se le acaba de enviar un correo electrónico a la dirección de email facilitada con el IMPRESO DE SOLICITUD completado y DECLARACIÓN RESPONSABLE para que, una vez firmados, los remita al Ayuntamiento de Soria por Sede Electrónica.
"
+"Gracias.", "ok");
}else if(response.status == 'error'){
var restext = '';
if(typeof undefined !== response.error_msg){
restext = ': ' + response.error_msg;
}
show_response("Error en el envío de datos" + restext, "error");
grecaptcha.reset();
}
}else{
// Mensaje de Error
show_response("Error en la comunicación", "error");
grecaptcha.reset();
}
},
error: function() {
// Mensaje de Error
show_response("Error en la comunicación", "error");
grecaptcha.reset();
}
});
}
});
var userform = $("#user-form");
var userresend = $("#user-resend-form");
var user_menores = $("#user_menores");
if(userform.length>0){
$("#action").val('check_send_user');
user_menores.val("");
}else if(userresend.length>0){
$("#action").val('resend_user');
if(user_menores.length>0){
user_menores.val("");
}
}else{
$("#action").val('send_commerce');
}
userform.validate({
rules: {
user_nif: {
required: true,
maxlength: 100
},
user_surname: {
required: true,
maxlength: 100
},
user_phone: {
required: true,
maxlength: 100
},
user_phone_confirm: {
required: true,
equalTo: "#user_phone"
},
user_mail: {
required: false,
email: true,
maxlength: 100
},
user_agreement: {
required: true
},
user_agreement_datos: {
required: true
}
},
messages: {
user_nif: {
required: "El NIF es obligatorio",
maxlength: max100
},
user_surname: {
required: "El primer apellido es obligatorio",
maxlength: max100
},
user_mail: {
//required: "Necesitamos tu email para enviarte toda la información",
email: "Tu email debe tener un formato tipo nombre@dominio.com",
maxlength: max100
},
user_phone: {
required: "Necesitamos tu teléfono móvil para enviarte los Soria Bonos",
maxlength: max100
},
user_phone_confirm: {
required: "Confirma tu teléfono móvil",
equalTo: "Debe coincidir con el teléfono introducido más arriba"
},
user_agreement: {
required: "Debes aceptar todas las cláusulas"
},
user_agreement_datos: {
required: "Debes aceptar todas las cláusulas"
}
},
submitHandler: function(resform, e) {
//$(form).ajaxSubmit();
e.preventDefault();
userform.hide();
$(".user-form-step-1").hide();
$(".nwfs-response").show(300);
$([document.documentElement, document.body]).animate({
scrollTop: ($(".nwfs-response").offset().top - 120)
}, 300);
jQuery.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
data: userform.serialize(),
success: function (response) {
//console.log(data);
if(response != null && response.status !== typeof undefined){
// response.status = 'success'
if(response.status == 'success'){
//alert("Thank you for subscribing!");
/*show_response("La petición ha sido enviada con éxito. "
+"Recibirás tus Soria Bonos en tu Teléfono Móvil.
"
+"Gracias.", "ok");*/
var action = $("#action");
if(action.val()=='check_send_user'){
$(".nwfs-response").hide();
action.val('send_user');
if( response.children >0){
$(".user-form-step-2").show();
userform.show();
}else{
userform.trigger("submit");
}
}else{
show_response("La petición ha sido enviada con éxito. "
+"Recibirás tus Soria Bonos en tu Teléfono Móvil.
"
+"Gracias.", "ok");
// se pintan códigos Qr
//console.log(response.bonosQr)
showQrCodes(response.bonosQr)
}
}else if(response.status == 'error'){
var restext = '';
if(typeof undefined !== response.error_msg){
restext = ': ' + response.error_msg;
}
show_response("Error en el envío de datos" + restext, "error");
$(".user-form-step-1").show();
grecaptcha.reset();
}
}else{
// Mensaje de Error
show_response("Error en la comunicación", "error");
$(".user-form-step-1").show();
grecaptcha.reset();
}
},
error: function() {
// Mensaje de Error
show_response("Error en la comunicación", "error");
$(".user-form-step-1").show();
grecaptcha.reset();
}
});
}
});
var userresend = $("#user-resend-form");
/*if(userform.length>0){
$("#action").val('check_send_user');
$("#user_menores").val("");
}else{
$("#action").val('send_commerce');
}*/
userresend.validate({
rules: {
user_nif: {
required: true,
maxlength: 100
},
user_phone: {
required: true,
maxlength: 100
},
user_agreement: {
required: true
},
user_agreement_datos: {
required: true
}
},
messages: {
user_nif: {
required: "El NIF es obligatorio",
maxlength: max100
},
user_phone: {
required: "Necesitamos tu teléfono móvil para enviarte los Soria Bonos",
maxlength: max100
},
user_agreement: {
required: "Debes aceptar todas las cláusulas"
},
user_agreement_datos: {
required: "Debes aceptar todas las cláusulas"
}
},
submitHandler: function(resform, e) {
//$(form).ajaxSubmit();
e.preventDefault();
userresend.hide();
$(".user-form-step-1").hide();
$(".nwfs-response").show(300);
$([document.documentElement, document.body]).animate({
scrollTop: ($(".nwfs-response").offset().top - 120)
}, 300);
jQuery.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
data: userresend.serialize(),
success: function (response) {
//console.log(data);
if(response != null && response.status !== typeof undefined){
if(response.status == 'success'){
show_response("La petición ha sido enviada con éxito. "
+"Recibirás tus Soria Bonos en tu Teléfono Móvil.
"
+"Gracias.", "ok");
// se pintan códigos Qr
showQrCodes(response.bonosQr)
}else if(response.status == 'error'){
var restext = '';
if(typeof undefined !== response.error_msg){
restext = ': ' + response.error_msg;
}
show_response("Error en el envío de datos" + restext, "error");
$(".user-form-step-1").show();
grecaptcha.reset();
}
}else{
// Mensaje de Error
show_response("Error en la comunicación", "error");
$(".user-form-step-1").show();
grecaptcha.reset();
}
},
error: function() {
// Mensaje de Error
show_response("Error en la comunicación", "error");
$(".user-form-step-1").show();
grecaptcha.reset();
}
});
}
});
$("#user_phone_confirm").bind("paste",function(e) {
e.preventDefault();
});
/*form.bind('submit', function (e) {
form.hide();
$(".nwfs-response").show(300);
e.preventDefault();
return false;
});*/
//Carga de IAEs desde webservice
var pollknow = $("#pollknow");
if(pollknow.length>0){
var pollusedcont = $("#pollusedcont");
pollknow.change(function(){
pollusedcont.hide();
if(pollknow.val()==1){
pollusedcont.show();
}
});
pollknow.trigger("change");
}
var seliaes = $("#commerce_iae");
var seliaessub = $("#commerce_iae_sub");
var seliaessubcont = $("#commerce_iae_sub_cont");
var comcont = $("#comcont");
var culturalcont = $("#culturalcont");
function decodeHTMLEntities(text)
{
return $("")
.html(text)
.text();
}
function showHideCultural(sh)
{
$('#commerce_bono_cultural>option:eq(0)').prop('selected', true);
if(sh){
culturalcont.show();
}else{
culturalcont.hide();
}
}
function iae_select_action()
{
seliaes.unbind('change');
seliaes.change(function(){
showHideCultural(false);
var parent_iae = $(this).val();
if(parent_iae == "657"){
showHideCultural(true);
}
var subiae = $("#options-"+parent_iae);
if(subiae.length>0){
//alert(subiae.html());
seliaessub.html(decodeHTMLEntities(subiae.html()));
seliaessub.removeAttr("disabled");
comcont.show();
}else{
seliaessub.html("");
seliaessub.attr("disabled", "disabled");
comcont.hide();
}
});
seliaessub.unbind('change');
seliaessub.change(function(){
showHideCultural(false);
var sub_iae = $(this).val();
if(sub_iae == "653.2" || sub_iae == "653.9" || sub_iae == "659.4" || sub_iae == "659.9" ){
showHideCultural(true);
}
});
}
if(seliaes.length >0){
jQuery.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
data: {action: "get_iaes"},
success: function (response) {
//console.log(data);
if(response != null && response.status !== typeof undefined){
if(response.status == 'success'){
//alert("Thank you for subscribing!");
//show_response("Enviado con éxito"+response.data, "ok");
seliaes.html(response.data.padres);
seliaes.removeAttr("disabled");
seliaessubcont.html(response.data.subselect);
iae_select_action();
}else if(response.status == 'error'){
show_response("Error en el envío de datos", "error");
}
}else{
// Mensaje de Error
show_response("Error en la comunicación", "error");
}
},
error: function() {
// Mensaje de Error
show_response("Error en la comunicación", "error");
}
});
}
//Dispositivos dinamicos
var seldevices = $("#commerce_devices");
if(seldevices.length >0){
var lastndevices = 0;
seldevices.change(function(){
var n = seldevices.val();
if(n>lastndevices){
jQuery.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
data: {action: "html_device", num: n},
success: function (response) {
//console.log(data);
if(response != null && response.status !== typeof undefined){
if(response.status == 'success'){
//alert("Thank you for subscribing!");
//show_response("Enviado con éxito"+response.data, "ok");
$("#contdevices").append(response.data);
}else if(response.status == 'error'){
show_response("Error en el envío de datos", "error");
}
}else{
// Mensaje de Error
show_response("Error en la comunicación", "error");
}
},
error: function() {
// Mensaje de Error
show_response("Error en la comunicación", "error");
}
});
}else{
$("#com_devic_"+lastndevices).remove();
}
lastndevices = n;
});
seldevices.val(1);
$("#contdevices").html();
seldevices.trigger("change");
}
//CIF NIF
var cifnif = $("#commerce_cifnif");
if(cifnif.length >0){
//var lastndevices = 0;
cifnif.change(function(){
var n = cifnif.val();
if(n==1){
$(".juridicfield").hide();
$("input.juridicfield").val("");
$(".personfield").show();
}else if(n==2){
$(".juridicfield").show();
$(".personfield").hide();
$("input.personfield").val("");
}
});
cifnif.trigger("change");
}
/*$('.counter').counterUp({
delay: 10,
time: 1000
});*/
var NWFS_counter = $(".NWFS_counter");
if(NWFS_counter.length>0){
function show_counter(my_counter, num, cl){
my_counter.html(''+num+'');
//$('.counter').counterUp({
my_counter.children('.counter').counterUp({
delay: 10,
time: 1000
});
}
NWFS_counter.each(function(){
var my_counter = $(this);
var s = my_counter.data("stats");
var cl = my_counter.data("class");
var def = my_counter.data("default");
console.log('s: '+s+' cl: '+cl+' def: '+def);
jQuery.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
data: {action: "get_stats", stats: s},
success: function (response) {
//console.log(data);
if(response != null && response.status !== typeof undefined && response.data !== typeof undefined ){
console.log('status y data');
if(response.status == 'success'){
console.log('success');
var num = response.data;
if(isNaN(num)){
console.log('NaN');
num = def;
}
show_counter(my_counter, num, cl);
}else if(response.status == 'error'){
console.log('error');
show_counter(my_counter, def, cl);
}
}else{
console.log('NO status / data');
// Mensaje de Error
show_counter(my_counter, def, cl);
}
},
error: function() {
console.log('Error conexion');
// Mensaje de Error
//show_response("Error en la comunicación", "error");
show_counter(my_counter, def, cl);
}
});
});
}
var NWFS_commerce_list = $(".NWFS_commerce_list");
if(NWFS_commerce_list.length>0){
NWFS_commerce_list.each(function(){
var my_list = $(this);
/*var s = my_counter.data("stats");
var cl = my_counter.data("class");
var def = my_counter.data("default");
console.log('s: '+s+' cl: '+cl+' def: '+def);*/
jQuery.ajax({
type: "POST",
url: ajax_url,
dataType: "json",
data: {action: "get_stats", filter: "active_commerces", groupby: "sector", returnhtml: 1},
success: function (response) {
//console.log(data);
if(response != null && response.status !== typeof undefined && response.data !== typeof undefined ){
console.log('status y data');
if(response.status == 'success'){
console.log('success');
if(response.data.html){
NWFS_commerce_list.html(response.data.html);
}else if(response.data.tables){
/*for(var i=0; i