Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

516 lines
16KB

  1. /* French initialisation for the jQuery UI date picker plugin. */
  2. /* Written by Keith Wood (kbwood{at}iinet.com.au),
  3. Stéphane Nahmani (sholby@sholby.net),
  4. Stéphane Raimbault <stephane.raimbault@gmail.com> */
  5. (function( factory ) {
  6. if ( typeof define === "function" && define.amd ) {
  7. // AMD. Register as an anonymous module.
  8. define([ "../jquery.ui.datepicker" ], factory );
  9. } else {
  10. // Browser globals
  11. factory( jQuery.datepicker );
  12. }
  13. }(function( datepicker ) {
  14. datepicker.regional['fr'] = {
  15. closeText: 'Fermer',
  16. prevText: 'Précédent',
  17. nextText: 'Suivant',
  18. currentText: 'Aujourd\'hui',
  19. monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
  20. 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
  21. monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin',
  22. 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
  23. dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
  24. dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
  25. dayNamesMin: ['D','L','M','M','J','V','S'],
  26. weekHeader: 'Sem.',
  27. dateFormat: 'dd/mm/yy',
  28. firstDay: 1,
  29. isRTL: false,
  30. showMonthAfterYear: false,
  31. yearSuffix: ''};
  32. datepicker.setDefaults(datepicker.regional['fr']);
  33. return datepicker.regional['fr'];
  34. }));
  35. $(document).ready(function() {
  36. //chat_scroll() ;
  37. chat_tabs_gamme_saison() ;
  38. //chat_slideshow() ;
  39. $('[data-toggle="tooltip"]').tooltip() ;
  40. chat_systeme_commande() ;
  41. chat_profil_user() ;
  42. }) ;
  43. function chat_profil_user() {
  44. if($('#profil-user').size()) {
  45. if($('#user-no_mail').is(':checked')) {
  46. $('#mails-jours-prod').hide() ;
  47. }
  48. $('#user-no_mail').change(function() {
  49. if($('#user-no_mail').is(':checked')) {
  50. $('#mails-jours-prod').hide() ;
  51. }
  52. else {
  53. $('#mails-jours-prod').fadeIn() ;
  54. }
  55. }) ;
  56. }
  57. }
  58. function chat_event_click_point_vente(id, force) {
  59. $('#commande-id_point_vente').val(id) ;
  60. $('#points-vente .point-vente').removeClass('selected') ;
  61. $('.point-vente-'+id).addClass('selected') ;
  62. $('.point-vente-'+id).hide().fadeIn('fast') ;
  63. var pain = parseInt($('.point-vente-'+id).data('pain')) ;
  64. var vrac = parseInt($('.point-vente-'+id).data('vrac')) ;
  65. if(pain) {
  66. $('#pain .table').show() ;
  67. $('#pain .indisponible').hide() ;
  68. }
  69. else {
  70. $('#pain .table').hide() ;
  71. $('#pain .indisponible').show() ;
  72. }
  73. if(vrac) {
  74. $('#vrac .table').show() ;
  75. $('#vrac .indisponible').hide() ;
  76. }
  77. else {
  78. $('#vrac .table').hide() ;
  79. $('#vrac .indisponible').show() ;
  80. }
  81. $('#produits, .valider-commande, .btn-commentaire, #bar-fixed').fadeIn() ;
  82. // scroll
  83. if(!force)
  84. boulange_scroll('step-choix-produits') ;
  85. }
  86. function chat_init_horaire_point_vente(date) {
  87. $('#points-vente .horaires .jour').hide() ;
  88. var selector_jour = '#points-vente .horaires .jour-'+date.getDay() ;
  89. $(selector_jour).show() ;
  90. // on cache les points de vente si la livraison n'est pas cochée
  91. $('#points-vente .point-vente').show() ;
  92. if($('#livraison').val() == 0) {
  93. $('#points-vente .point-vente').hide() ;
  94. $('#points-vente .point-vente').each(function() {
  95. if($(this).find('.nom').html() == 'Le Chat des Noisettes') {
  96. $(this).show() ;
  97. }
  98. }) ;
  99. }
  100. // on cache les points de vente qui sont fermés
  101. //$('#points-vente .point-vente').removeClass('disabled') ;
  102. $(selector_jour).each(function() {
  103. if($(this).html() == 'Fermé') {
  104. //$(this).parent().parent().parent().addClass('disabled') ;
  105. $(this).parent().parent().parent().hide() ;
  106. }
  107. }) ;
  108. }
  109. function chat_systeme_commande() {
  110. if($('.commande-form').size()) {
  111. // scroll initial
  112. if($('.boulangerie.selected').size())
  113. {
  114. boulange_scroll('step-choix-date') ;
  115. }
  116. // affichage des différentes parties du formulaire
  117. if(!$('#commande-id_production').val()) {
  118. $('#depots, #points-vente, #produits, .valider-commande, #info-horaire-retrait-commande, .btn-commentaire, #bar-fixed').hide() ;
  119. }
  120. else if(!$('#commande-id_point_vente').val()) {
  121. $('#produits, .valider-commande, .btn-commentaire, #bar-fixed').hide() ;
  122. }
  123. if($('#commande-id_point_vente').val())
  124. chat_event_click_point_vente($('#commande-id_point_vente').val(), true) ;
  125. $('#points-vente .point-vente').click(function() {
  126. var id = parseInt($(this).find('.id').html()) ;
  127. chat_event_click_point_vente(id) ;
  128. }) ;
  129. // datepicker
  130. var dates_production = [] ;
  131. $('#dates div').each(function() {
  132. dates_production.push($(this).find('.date').html()) ;
  133. }) ;
  134. //var var_datepicker = $.datepicker ;
  135. $('#datepicker-production').datepicker({
  136. beforeShowDay: function(date){
  137. var string = $.datepicker.formatDate('dd/mm/yy', date);
  138. for(var i=0; i<dates_production.length; i++) {
  139. //alert(dates_production[i]+' '+string) ;
  140. if(dates_production[i] == string)
  141. return [1] ;
  142. }
  143. return [0] ;
  144. // désactivé car internet explorer plante
  145. //return [ dates_production.indexOf(string) != -1 ] ;
  146. },
  147. onSelect: function(selectedDate) {
  148. // on remet tout les prix à zéro
  149. chat_systeme_commande_reset_table_prix() ;
  150. $('#has-commande-en-cours').hide() ;
  151. var tab_date = selectedDate.split('/') ;
  152. var date = new Date(tab_date[2],tab_date[1]-1,tab_date[0]) ;
  153. // set id production
  154. var id_production = 0 ;
  155. $('#dates div .date').each(function() {
  156. if($(this).html() == selectedDate) {
  157. id_production = $(this).parent().find('.id_production').html() ;
  158. }
  159. });
  160. $('#commande-id_production').val(id_production) ;
  161. // verif si le gars a une commande en cours pour cette production
  162. var has_commande_en_cours = false ;
  163. $('#commandes-en-cours .commande').each(function() {
  164. if($(this).data('idproduction') == id_production) {
  165. //alert('bada') ;
  166. $('#has-commande-en-cours a').attr('href',$(this).data('href')) ;
  167. $('#has-commande-en-cours').show() ;
  168. has_commande_en_cours = true ;
  169. $('#depots, #points-vente, #produits, #info-horaire-retrait-commande').hide() ;
  170. }
  171. }) ;
  172. if(!has_commande_en_cours) {
  173. chat_systeme_commande_produits_dispos(tab_date[2]+'-'+tab_date[1]+'-'+tab_date[0], date) ;
  174. $('#produits, .valider-commande, .btn-commentaire, #bar-fixed').hide() ;
  175. // déselection points de vente
  176. $('#points-vente .point-vente').removeClass('selected') ;
  177. $('#commande-id_point_vente').val('') ;
  178. // affichage points de vente
  179. $('#depots, #points-vente, #info-horaire-retrait-commande').fadeIn() ;
  180. // scroll
  181. boulange_scroll('step-choix-depot') ;
  182. }
  183. }
  184. }) ;
  185. if($('#commande-id_production').val()) {
  186. $("#dates .id_production").each(function() {
  187. if($(this).html() == $('#commande-id_production').val()) {
  188. var tab_date = $(this).parent().find('.date').html().split('/') ;
  189. var date = new Date(tab_date[2],tab_date[1]-1,tab_date[0]);
  190. $('#datepicker-production').datepicker('setDate',date) ;
  191. chat_systeme_commande_produits_dispos(tab_date[2]+'-'+tab_date[1]+'-'+tab_date[0], date) ;
  192. chat_init_horaire_point_vente(date) ;
  193. }
  194. }) ;
  195. }
  196. // tableau produits
  197. $('.commande-form .move-quantity').click(function() {
  198. var vrac = ($(this).parent().parent().parent().parent().parent().parent().parent().attr('id') == 'vrac') ;
  199. if(vrac) {
  200. var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ;
  201. if($(this).hasClass('moins') && quantite != 0)
  202. quantite -= 500 ;
  203. if($(this).hasClass('plus'))
  204. quantite += 500 ;
  205. $(this).parent().parent().find('input.quantity').val(quantite) ;
  206. chat_systeme_commande_maj_table_prix();
  207. }
  208. else {
  209. var quantite_totale = 0 ;
  210. $('.quantity').each(function() {
  211. quantite_totale += parseInt($(this).val()) ;
  212. }) ;
  213. if($(this).hasClass('plus') && quantite_totale > 2 && $('#confiance').val() == 0) {
  214. $('html, body').animate({
  215. scrollTop: $('#produits').offset().top - 150
  216. }, 'normal', function() {
  217. $('#mess-limit-quantity').fadeOut('fast',function() {
  218. $(this).fadeIn('fast') ;
  219. })
  220. });
  221. }
  222. else {
  223. var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ;
  224. var quantite_restante = parseInt($(this).parent().parent().parent().find('.quantite-restante .nb').html()) ;
  225. //alert('bada') ;
  226. if($(this).hasClass('moins') && quantite != 0)
  227. quantite -- ;
  228. if($(this).hasClass('plus')){
  229. if(quantite + 1 <= quantite_restante) {
  230. quantite ++ ;
  231. }
  232. else {
  233. if(quantite_restante <= 5) {
  234. $(this).parent().parent().parent().find('.quantite-restante').hide().fadeIn() ;
  235. }
  236. else {
  237. // alert ?
  238. // ...
  239. }
  240. }
  241. }
  242. $(this).parent().parent().find('input.quantity').val(quantite) ;
  243. chat_systeme_commande_maj_table_prix();
  244. }
  245. }
  246. }) ;
  247. chat_systeme_commande_maj_table_prix() ;
  248. }
  249. // commentaire commande
  250. $('.commande-form .btn-commentaire').click(function() {
  251. if($('.field-commande-commentaire').css('display') == 'none') {
  252. $('.field-commande-commentaire').slideDown() ;
  253. }
  254. else {
  255. $('.field-commande-commentaire').slideUp() ;
  256. }
  257. return false ;
  258. }) ;
  259. // bar fixed
  260. if($('#bar-fixed').size()) {
  261. $(window).scroll(function (event) {
  262. var scroll = $(window).scrollTop() + $(window).height();
  263. var pos_bottom_produits = $('#table-produits').offset().top + $('#table-produits').height() + 100 ;
  264. if(scroll > pos_bottom_produits) {
  265. if(!$('#bar-fixed').hasClass('not-fixed')) {
  266. $('#bar-fixed').addClass('not-fixed') ;
  267. }
  268. }
  269. else {
  270. $('#bar-fixed').removeClass('not-fixed') ;
  271. }
  272. });
  273. }
  274. }
  275. function chat_systeme_commande_produits_dispos(str_date, date) {
  276. // produits dispos à la vente à cette date
  277. $.get('index.php',{
  278. r: 'commande/infos-production',
  279. date: str_date,
  280. }, function(data) {
  281. if(data.produits_dispos) {
  282. $.each(data.produits_dispos, function( id_produit, produit ) {
  283. if(produit.actif) $('.produit-'+id_produit).show() ;
  284. else $('.produit-'+id_produit).hide() ;
  285. var quantite_restante = produit.quantite_max - produit.quantite_commandee ;
  286. //if(quantite_restante > 0 || !produit.epuise) {
  287. /*if(quantite_restante > 0) {
  288. $('.produit-'+id_produit+' .epuise').hide() ;
  289. $('.produit-'+id_produit+' .input-group').show() ;
  290. $('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ;
  291. if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5) {
  292. $('.produit-'+id_produit+' .quantite-restante').hide() ;
  293. }
  294. else {
  295. $('.produit-'+id_produit+' .quantite-restante').show() ;
  296. }
  297. }
  298. else {
  299. $('.produit-'+id_produit+' .epuise').show() ;
  300. $('.produit-'+id_produit+' .quantite-restante').hide() ;
  301. $('.produit-'+id_produit+' .input-group').hide() ;
  302. } */
  303. if((!produit.vrac && (!quantite_restante || quantite_restante < 0 || produit.epuise)) || (produit.vrac && produit.epuise)) {
  304. $('.produit-'+id_produit+' .epuise').show() ;
  305. $('.produit-'+id_produit+' .quantite-restante').hide() ;
  306. $('.produit-'+id_produit+' .input-group').hide() ;
  307. }
  308. else {
  309. $('.produit-'+id_produit+' .epuise').hide() ;
  310. $('.produit-'+id_produit+' .input-group').show() ;
  311. $('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ;
  312. if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5) {
  313. $('.produit-'+id_produit+' .quantite-restante').hide() ;
  314. }
  315. else {
  316. $('.produit-'+id_produit+' .quantite-restante').show() ;
  317. }
  318. }
  319. });
  320. }
  321. $('#livraison').val(data.livraison) ;
  322. chat_init_horaire_point_vente(date) ;
  323. }, 'json') ;
  324. }
  325. function chat_systeme_commande_reset_table_prix() {
  326. $('#table-produits tr .colonne-quantite .quantity').each(function() {
  327. $(this).val(0) ;
  328. }) ;
  329. chat_systeme_commande_maj_table_prix() ;
  330. }
  331. function chat_systeme_commande_maj_table_prix() {
  332. // produits pain
  333. var prix = 0 ;
  334. $('.commande-form #table-produits tbody tr').each(function() {
  335. var quantite = parseInt($(this).find('.quantity').val()) ;
  336. var prix_produit = parseFloat($(this).find('.prix').html()) ;
  337. var prix_total_produit = quantite * prix_produit ;
  338. if(prix_total_produit)
  339. $(this).find('.total').html(formate_prix(prix_total_produit)+' €') ;
  340. else
  341. $(this).find('.total').html('--') ;
  342. if(quantite > 0)
  343. prix += prix_total_produit ;
  344. }) ;
  345. $('#total-commande strong').html(formate_prix(prix)+' €') ;
  346. var prix_global = prix ;
  347. // produits vrac
  348. var prix = 0 ;
  349. $('.commande-form #table-produits-vrac tbody tr').each(function() {
  350. var quantite = parseInt($(this).find('.quantity').val()) ;
  351. var prix_produit = parseFloat($(this).find('.prix').html()) ;
  352. var prix_total_produit = quantite/1000 * prix_produit ;
  353. if(prix_total_produit)
  354. $(this).find('.total').html(formate_prix(prix_total_produit)+' €') ;
  355. else
  356. $(this).find('.total').html('--') ;
  357. if(quantite > 0)
  358. prix += prix_total_produit ;
  359. }) ;
  360. $('#total-commande-vrac strong').html(formate_prix(prix)+' €') ;
  361. prix_global += prix ;
  362. $('#total-commande-bottom span').html(formate_prix(prix_global)) ;
  363. if(prix_global)
  364. $('#total-commande-bottom').fadeIn() ;
  365. else
  366. $('#total-commande-bottom').hide() ;
  367. }
  368. function formate_prix(prix) {
  369. return prix.toFixed(2).replace( ".", "," ) ;
  370. }
  371. function chat_slideshow() {
  372. if($('body').hasClass('home')) {
  373. var base_url = $('#base_url').val() ;
  374. $.vegas('slideshow', {
  375. backgrounds:[
  376. //{ src:'./img/background/back2.jpg' },
  377. { src:base_url+'/img/background/four.jpg' },
  378. { src:base_url+'/img/background/gueulard.jpg' }
  379. ],
  380. walk: function() {
  381. $('.vegas-loading').css('display','none') ;
  382. $('.vegas-background').css('position','absolute') ;
  383. }
  384. })('overlay');
  385. }
  386. }
  387. function chat_scroll() {
  388. if($('body').hasClass('home')) {
  389. $('#header nav ul a[href^="#"]').click(function(){
  390. var the_id = $(this).attr("href");
  391. $('html, body').animate({
  392. scrollTop: $(the_id).offset().top - 100
  393. }, 'normal');
  394. return false;
  395. });
  396. $(window).scroll(function() {
  397. chat_event_scroll() ;
  398. }) ;
  399. chat_event_scroll() ;
  400. }
  401. }
  402. function chat_event_scroll() {
  403. var scroll_top = $(window).scrollTop() ;
  404. //console.log(scroll_top + ' '+ ($('#horaires').offset().top-100)) ;
  405. $('#header nav ul a').each(function() {
  406. var top = $($(this).attr('href')).offset().top ;
  407. var test = top + $($(this).attr('href')).height() - 150 ;
  408. //console.log($(this).attr('href')+' : '+scroll_top+ ' | '+ test) ;
  409. if(scroll_top <= top + $($(this).attr('href')).height() - 150) {
  410. $('#header a').removeClass('selec') ;
  411. $(this).addClass('selec') ;
  412. }
  413. }) ;
  414. }
  415. function chat_tabs_gamme_saison() {
  416. $('#tab-gamme-saison a').click(function (e) {
  417. e.preventDefault();
  418. $(this).tab('show');
  419. });
  420. }