/* French initialisation for the jQuery UI date picker plugin. */ /* Written by Keith Wood (kbwood{at}iinet.com.au), Stéphane Nahmani (sholby@sholby.net), Stéphane Raimbault <stephane.raimbault@gmail.com> */ (function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "../jquery.ui.datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } }(function( datepicker ) { datepicker.regional['fr'] = { closeText: 'Fermer', prevText: 'Précédent', nextText: 'Suivant', currentText: 'Aujourd\'hui', monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'], dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], dayNamesMin: ['D','L','M','M','J','V','S'], weekHeader: 'Sem.', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; datepicker.setDefaults(datepicker.regional['fr']); return datepicker.regional['fr']; })); $(document).ready(function() { //chat_scroll() ; chat_tabs_gamme_saison() ; //chat_slideshow() ; $('[data-toggle="tooltip"]').tooltip() ; chat_systeme_commande() ; chat_profil_user() ; $('.dropdown-toggle').dropdown() ; }) ; function chat_profil_user() { if($('#profil-user').size()) { if($('#user-no_mail').is(':checked')) { $('#mails-jours-prod').hide() ; } $('#user-no_mail').change(function() { if($('#user-no_mail').is(':checked')) { $('#mails-jours-prod').hide() ; } else { $('#mails-jours-prod').fadeIn() ; } }) ; } } function chat_event_click_point_vente(id, force) { if($('.point-vente-'+id).data('code') == 1) { $('#modal-code #id-point-vente').val(id) ; $('#modal-code').modal('show') ; } else { $('#commande-id_point_vente').val(id) ; $('#points-vente .point-vente').removeClass('selected') ; $('.point-vente-'+id).addClass('selected') ; $('.point-vente-'+id).hide().fadeIn('fast') ; var pain = parseInt($('.point-vente-'+id).data('pain')) ; var vrac = parseInt($('.point-vente-'+id).data('vrac')) ; if(pain) { $('#pain .table').show() ; $('#pain .indisponible').hide() ; } else { $('#pain .table').hide() ; $('#pain .indisponible').show() ; } if(vrac) { $('#vrac .table').show() ; $('#vrac .indisponible').hide() ; } else { $('#vrac .table').hide() ; $('#vrac .indisponible').show() ; } $('#produits, .valider-commande, .btn-commentaire, #bar-fixed').fadeIn() ; // credit pain chat_systeme_commande_credit_pain_event(chat_systeme_commande_maj_table_prix()) ; // scroll if(!force) boulange_scroll('step-choix-produits') ; } } function chat_init_horaire_point_vente(date) { $('#points-vente .horaires .jour').hide() ; var selector_jour = '#points-vente .horaires .jour-'+date.getDay() ; $(selector_jour).show() ; // on cache les points de vente si la livraison n'est pas cochée /*$('#points-vente .point-vente').show() ; if($('#livraison').val() == 0) { $('#points-vente .point-vente').hide() ; $('#points-vente .point-vente').each(function() { if($(this).find('.nom').html() == 'Le Chat des Noisettes') { $(this).show() ; } }) ; }*/ // on cache les points de vente qui sont fermés //$('#points-vente .point-vente').removeClass('disabled') ; /*$(selector_jour).each(function() { if($(this).html() == 'Fermé') { //$(this).parent().parent().parent().addClass('disabled') ; $(this).parent().parent().parent().hide() ; } }) ;*/ } function chat_base_url() { return $('meta[name=base-url]').attr('content')+'/' ; } function chat_systeme_commande() { if($('.commande-form').size()) { // scroll initial if($('.boulangerie.selected').size()) { boulange_scroll('step-choix-date') ; } // affichage des différentes parties du formulaire if(!$('#commande-id_production').val()) { $('#depots, #points-vente, #produits, .valider-commande, #info-horaire-retrait-commande, .btn-commentaire, #bar-fixed').hide() ; } else if(!$('#commande-id_point_vente').val()) { $('#produits, .valider-commande, .btn-commentaire, #bar-fixed').hide() ; } // points de vente if($('#commande-id_point_vente').val()) chat_event_click_point_vente($('#commande-id_point_vente').val(), true) ; $('#modal-code form').submit(function() { var id_pv = $('#modal-code #id-point-vente').val() ; var code = $('#modal-code #code').val() ; $.get(chat_base_url()+'commande/verif-code-point-vente',{ id_point_vente: id_pv, code: code }, function(ok) { if(ok) { $('.point-vente-'+id_pv).data('code',0) ; $('.point-vente-'+id_pv+' .glyphicon').remove() ; $('input[name="code_point_vente_'+id_pv+'"]').val(code) ; $('#modal-code').modal('hide') ; chat_event_click_point_vente($('#modal-code #id-point-vente').val()) ; } else { $('#modal-code .field-code').addClass('has-error') ; $('#modal-code .help-block-error').hide().fadeIn() ; } }) ; return false ; }) ; $('#points-vente .point-vente').click(function() { var id = parseInt($(this).find('.id').html()) ; chat_event_click_point_vente(id) ; }) ; // datepicker var dates_production = [] ; $('#dates div').each(function() { dates_production.push($(this).find('.date').html()) ; }) ; //var var_datepicker = $.datepicker ; $('#datepicker-production').datepicker({ beforeShowDay: function(date){ var string = $.datepicker.formatDate('dd/mm/yy', date); for(var i=0; i<dates_production.length; i++) { //alert(dates_production[i]+' '+string) ; if(dates_production[i] == string) return [1] ; } return [0] ; // désactivé car internet explorer plante //return [ dates_production.indexOf(string) != -1 ] ; }, onSelect: function(selectedDate) { // on remet tout les prix à zéro chat_systeme_commande_reset_table_prix() ; $('#has-commande-en-cours').hide() ; var tab_date = selectedDate.split('/') ; var date = new Date(tab_date[2],tab_date[1]-1,tab_date[0]) ; // set id production var id_production = 0 ; $('#dates div .date').each(function() { if($(this).html() == selectedDate) { id_production = $(this).parent().find('.id_production').html() ; } }); $('#commande-id_production').val(id_production) ; // verif si le gars a une commande en cours pour cette production var has_commande_en_cours = false ; $('#commandes-en-cours .commande').each(function() { if($(this).data('idproduction') == id_production) { //alert('bada') ; $('#has-commande-en-cours a').attr('href',$(this).data('href')) ; $('#has-commande-en-cours').show() ; has_commande_en_cours = true ; $('#depots, #points-vente, #produits, #info-horaire-retrait-commande').hide() ; } }) ; if(!has_commande_en_cours) { chat_systeme_commande_produits_dispos(tab_date[2]+'-'+tab_date[1]+'-'+tab_date[0], date) ; $('#produits, .valider-commande, .btn-commentaire, #bar-fixed').hide() ; // déselection points de vente $('#points-vente .point-vente').removeClass('selected') ; $('#commande-id_point_vente').val('') ; // affichage points de vente $('#depots, #points-vente, #info-horaire-retrait-commande').fadeIn() ; // scroll boulange_scroll('step-choix-depot') ; } } }) ; if($('#commande-id_production').val()) { $("#dates .id_production").each(function() { if($(this).html() == $('#commande-id_production').val()) { var tab_date = $(this).parent().find('.date').html().split('/') ; var date = new Date(tab_date[2],tab_date[1]-1,tab_date[0]); $('#datepicker-production').datepicker('setDate',date) ; chat_systeme_commande_produits_dispos(tab_date[2]+'-'+tab_date[1]+'-'+tab_date[0], date) ; chat_init_horaire_point_vente(date) ; } }) ; } // tableau produits $('.commande-form .move-quantity').click(function() { var vrac = ($(this).parent().parent().parent().parent().parent().parent().parent().attr('id') == 'vrac') ; if(vrac) { var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ; if($(this).hasClass('moins') && quantite != 0) quantite -= 500 ; if($(this).hasClass('plus')) quantite += 500 ; $(this).parent().parent().find('input.quantity').val(quantite) ; chat_systeme_commande_maj_table_prix(); } else { var quantite_totale = 0 ; $('.quantity').each(function() { quantite_totale += parseInt($(this).val()) ; }) ; var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ; var quantite_restante = parseInt($(this).parent().parent().parent().find('.quantite-restante .nb').html()) ; var quantite_max = $(this).parent().parent().parent().parent().data('quantite-max') ; var no_limit = $(this).parent().parent().parent().parent().data('no-limit') ; if($(this).hasClass('moins') && quantite != 0) { quantite -- ; quantite_restante ++ ; } if($(this).hasClass('plus') ){ if(quantite_restante > 0 || no_limit) { quantite ++ ; quantite_restante -- ; } } $(this).parent().parent().parent().find('.quantite-restante .nb').html(quantite_restante) ; if(quantite_restante <= 5 && quantite_restante > 0) { $(this).parent().parent().parent().find('.quantite-restante').fadeIn() ; } else { $(this).parent().parent().parent().find('.quantite-restante').hide() ; } if(quantite_restante == 0 && !no_limit) { $(this).parent().parent().parent().find('.epuise').fadeIn() ; } else { $(this).parent().parent().parent().find('.epuise').hide() ; } $(this).parent().parent().find('input.quantity').val(quantite) ; chat_systeme_commande_maj_table_prix(); } }) ; chat_systeme_commande_maj_table_prix() ; chat_systeme_commande_credit_pain(); } // commentaire commande $('.commande-form .btn-commentaire').click(function() { if($('.field-commande-commentaire').css('display') == 'none') { $('.field-commande-commentaire').slideDown() ; } else { $('.field-commande-commentaire').slideUp() ; } return false ; }) ; // bar fixed if($('#bar-fixed').size()) { $(window).scroll(function (event) { var scroll = $(window).scrollTop() + $(window).height(); var pos_bottom_produits = $('#table-produits').offset().top + $('#table-produits').height() + 100 ; if(scroll > pos_bottom_produits) { if(!$('#bar-fixed').hasClass('not-fixed')) { $('#bar-fixed').addClass('not-fixed') ; } } else { $('#bar-fixed').removeClass('not-fixed') ; } }); } } function chat_systeme_commande_produits_dispos(str_date, date) { // produits dispos à la vente à cette date $.get(chat_base_url()+'commande/infos-production',{ id_production: $('#commande-id_production').val() }, function(data) { if(data.produits_dispos) { $.each(data.produits_dispos, function( id_produit, produit ) { if(produit.actif) $('.produit-'+id_produit).show() ; else $('.produit-'+id_produit).hide() ; var quantite_restante = produit.quantite_max - produit.quantite_commandee ; var no_limit = 0 ; if(!produit.quantite_max) no_limit = 1 ; $('.produit-'+id_produit).attr('data-no-limit',no_limit) ; $('.produit-'+id_produit).attr('data-quantite-max',produit.quantite_max) ; $('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ; if(produit.quantite_max && (!quantite_restante || quantite_restante < 0 || produit.epuise)) { $('.produit-'+id_produit+' .epuise').show() ; if(!$('#id-commande').val() && $('.produit-'+id_produit+' .quantity').val() == 0) { $('.produit-'+id_produit+' .quantite-restante').hide() ; $('.produit-'+id_produit+' .input-group').hide() ; } } else { $('.produit-'+id_produit+' .epuise').hide() ; $('.produit-'+id_produit+' .input-group').show() ; $('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ; } if($('.produit-'+id_produit+' .quantite-restante').size()) { if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5 || parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) <= 0) { $('.produit-'+id_produit+' .quantite-restante').hide() ; } else { $('.produit-'+id_produit+' .quantite-restante').show() ; } } }); } $('#points-vente .point-vente').hide() ; // init affichage points de vente $.each(data.points_vente, function(key, livraison) { console.log(key+' | '+livraison) ; if(livraison) { $('.point-vente-'+key).fadeIn() ; } else { $('.point-vente-'+key).hide() ; } }) ; chat_init_horaire_point_vente(date) ; }, 'json') ; } function chat_systeme_commande_reset_table_prix() { $('#table-produits tr .colonne-quantite .quantity').each(function() { $(this).val(0) ; }) ; chat_systeme_commande_maj_table_prix() ; } function chat_systeme_commande_maj_table_prix() { // produits pain var prix = 0 ; $('.commande-form #table-produits tbody tr').each(function() { var quantite = parseInt($(this).find('.quantity').val()) ; var prix_produit = parseFloat($(this).find('.prix').html()) ; var prix_total_produit = quantite * prix_produit ; if(prix_total_produit) $(this).find('.total').html(formate_prix(prix_total_produit)+' €') ; else $(this).find('.total').html('--') ; if(quantite > 0) prix += prix_total_produit ; }) ; $('#total-commande strong').html(formate_prix(prix)+' €') ; var prix_global = prix ; // produits vrac var prix = 0 ; $('.commande-form #table-produits-vrac tbody tr').each(function() { var quantite = parseInt($(this).find('.quantity').val()) ; var prix_produit = parseFloat($(this).find('.prix').html()) ; var prix_total_produit = quantite/1000 * prix_produit ; if(prix_total_produit) $(this).find('.total').html(formate_prix(prix_total_produit)+' €') ; else $(this).find('.total').html('--') ; if(quantite > 0) prix += prix_total_produit ; }) ; $('#total-commande-vrac strong').html(formate_prix(prix)+' €') ; prix_global += prix ; $('#total-commande-bottom span').html(formate_prix(prix_global)) ; if(prix_global) $('#total-commande-bottom').fadeIn() ; else $('#total-commande-bottom').hide() ; // maj credit pain chat_systeme_commande_credit_pain_event(prix_global) ; return prix_global ; } function chat_systeme_commande_credit_pain() { $('input[name=credit_pain]').change(function() { var prix_global = chat_systeme_commande_maj_table_prix() ; chat_systeme_commande_credit_pain_event(prix_global) ; }) ; } function chat_systeme_commande_credit_pain_event(prix_global) { var html = '' ; var use_credit_pain = $('input[name=credit_pain]').prop('checked') ; var credit_pain = parseFloat($('#montant-credit-pain').val()) ; var credit_pain_dispo = credit_pain ; var montant_paye = 0 if($('#montant-paye').size() && $('#montant-paye').val()) montant_paye = parseFloat($('#montant-paye').val()) ; if($('#id-commande').size() && $('#id-commande').val()) { credit_pain_dispo = credit_pain + montant_paye ; } var credit_pain_active = $('.point-vente.selected').data('credit-pain') ; if(credit_pain_active || montant_paye) { $('#checkbox-credit-pain #info-credit-vide').show() ; $('#checkbox-credit-pain label').show() ; $('#checkbox-credit-pain #credit-pain-disabled').hide() ; if(prix_global > credit_pain_dispo) { var reste_payer = prix_global - credit_pain_dispo ; if(use_credit_pain) { if(montant_paye) { html += '<span class="montant-paye">'+montant_paye+' € déjà payé</span><br />' ; } html += '<strong>'+credit_pain+' €</strong> seront débités<br />' ; html += 'Restera <strong>'+reste_payer+' €</strong> à payer à la boulangerie' ; $('#checkbox-credit-pain .info').html(html) ; } else { $('#checkbox-credit-pain .info').html('') ; } } else { $('#checkbox-credit-pain').removeClass('paiement-impossible') ; $('input[name=credit_pain]').removeAttr('disabled') ; if(use_credit_pain) { var html = '' ; // à payer if(prix_global > montant_paye) { montant = prix_global - montant_paye ; if(montant_paye) { html += '<span class="montant-paye">'+montant_paye+' € déjà payé</span><br />' ; } html += '<strong>'+montant+' €</strong> seront débités' ; $('#checkbox-credit-pain .info').html(html) ; } // remboursé else if(prix_global < montant_paye) { montant = montant_paye - prix_global ; if(montant_paye) { html += '<span class="montant-paye">'+montant_paye+' € déjà payé</span><br />' ; } html += '<strong>'+montant+' €</strong> seront remboursés' ; $('#checkbox-credit-pain .info').html(html) ; } else { if(montant_paye > 0) $('#checkbox-credit-pain .info').html('<span class="montant-paye">'+montant_paye+' € déjà payé</span>') ; else $('#checkbox-credit-pain .info').html('') ; } } else { $('#checkbox-credit-pain .info').html('') } } } else { $('#checkbox-credit-pain #info-credit-vide').hide() ; $('#checkbox-credit-pain label').hide() ; $('#checkbox-credit-pain #credit-pain-disabled').show() ; } } function formate_prix(prix) { return prix.toFixed(2).replace( ".", "," ) ; } function chat_slideshow() { if($('body').hasClass('home')) { var base_url = $('#base_url').val() ; $.vegas('slideshow', { backgrounds:[ //{ src:'./img/background/back2.jpg' }, { src:base_url+'/img/background/four.jpg' }, { src:base_url+'/img/background/gueulard.jpg' } ], walk: function() { $('.vegas-loading').css('display','none') ; $('.vegas-background').css('position','absolute') ; } })('overlay'); } } function chat_scroll() { if($('body').hasClass('home')) { $('#header nav ul a[href^="#"]').click(function(){ var the_id = $(this).attr("href"); $('html, body').animate({ scrollTop: $(the_id).offset().top - 100 }, 'normal'); return false; }); $(window).scroll(function() { chat_event_scroll() ; }) ; chat_event_scroll() ; } } function chat_event_scroll() { var scroll_top = $(window).scrollTop() ; //console.log(scroll_top + ' '+ ($('#horaires').offset().top-100)) ; $('#header nav ul a').each(function() { var top = $($(this).attr('href')).offset().top ; var test = top + $($(this).attr('href')).height() - 150 ; //console.log($(this).attr('href')+' : '+scroll_top+ ' | '+ test) ; if(scroll_top <= top + $($(this).attr('href')).height() - 150) { $('#header a').removeClass('selec') ; $(this).addClass('selec') ; } }) ; } function chat_tabs_gamme_saison() { $('#tab-gamme-saison a').click(function (e) { e.preventDefault(); $(this).tab('show'); }); }