$(document).ready(function() { chat_calendar() ; chat_datepicker() ; chat_vrac() ; chat_email_masse() ; $('button[data-toggle=popover]').popover() ; chat_ordre_produits() ; chat_index_commandes_liste_produits() ; chat_index_commandes_points_vente() ; chat_index_commandes_points_vente_livraison() ; chat_btn_plus_moins() ; chat_commandeauto() ; chat_points_vente_acces() ; chat_tooltip() ; chat_points_vente_jours_livraison() ; chat_index_commandes_maj_points_vente() ; // admin chat_select_etablissement() ; }) ; function chat_tooltip() { $('[data-toggle="tooltip"]').tooltip(); } function chat_nl2br(str, is_xhtml) { var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '
' : '
'; return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2'); } function chat_index_commandes_points_vente_livraison() { $('#productionpointvente-productions_point_vente input[type=checkbox]').change(function() { var nb = $('#productionpointvente-productions_point_vente input[type=checkbox]:checked').size() ; if(nb == 0) { $(this).prop('checked',true) ; chat_alert('danger','Vous devez avoir au moins un point de vente activé') ; } else { var val = $(this).val() ; var arr_val = val.split('-') ; var livraison = 0 ; if($(this).prop('checked')) livraison = 1 ; $.get('index.php',{ r: 'commande/ajax-point-vente-livraison', id_production: arr_val[0], id_point_vente: arr_val[1], bool_livraison: livraison }, function(data) { chat_alert('success','Point de vente modifié') ; }) ; chat_index_commandes_maj_points_vente() ; } }) ; } function chat_index_commandes_maj_points_vente() { if($('#productions-point-vente').size()) { var nb = $('#productionpointvente-productions_point_vente input[type=checkbox]:checked').size() ; if(nb == 0) { $('#panel-commandes #tabs-points-vente, #panel-commandes #commandes-points-vente').hide() ; $('#panel-commandes .alert-danger').show(); } else { $('#panel-commandes #tabs-points-vente, #panel-commandes #commandes-points-vente').show() ; $('#panel-commandes .alert-danger').hide(); } } var id_production = $('#id-production').val() ; if(id_production) { $('#tabs-points-vente li').each(function() { var id_point_vente = $(this).find('a').attr('id').replace('btn-point-vente-','') ; var nb_commandes = parseInt($(this).find('.badge-success').html()) ; var checked = $('#productionpointvente-productions_point_vente input[value='+id_production+'-'+id_point_vente+']').prop('checked') ; if(checked || nb_commandes > 0) { $(this).show() ; } else { $(this).hide() ; } }) ; $('#tabs-points-vente li:visible:first a').click() ; } } function chat_points_vente_jours_livraison() { $('#pointvente-point_fabrication').change(function() { chat_points_vente_jours_livraison_event() ; }) ; chat_points_vente_jours_livraison_event(); } function chat_points_vente_jours_livraison_event() { if($('#pointvente-point_fabrication').prop('checked')) { $('#jours-livraison').hide() ; } else { $('#jours-livraison').fadeIn() ; } } function chat_points_vente_acces() { // affichage du bloc acces restreint $('#pointvente-acces_restreint').change(function() { chat_points_vente_acces_event() ; }) ; chat_points_vente_acces_event() ; // affichage du champs commentaire $('#pointvente-users input[type=checkbox]').change(function() { chat_points_vente_commentaire_event() ; }) ; chat_points_vente_commentaire_event() ; } function chat_points_vente_commentaire_event() { $('#pointvente-users input[type=checkbox]').each(function() { if($(this).prop('checked')) { $(this).parent().find('.commentaire').fadeIn() ; } else { $(this).parent().find('.commentaire').hide() ; } }) ; } function chat_points_vente_acces_event() { if($('#pointvente-acces_restreint').prop('checked')) { $('#pointvente-users').fadeIn() ; } else { $('#pointvente-users').hide() ; } } function chat_select_etablissement() { $('select[name="select_etablissement"]').change(function() { window.location.href = 'index.php?r=site/change-etablissement&id='+$(this).val() ; }) ; } function chat_commandeauto() { // dates $('#commandeautoform-date_debut, #commandeautoform-date_fin').datepicker() ; } function chat_index_commandes_points_vente() { $('#commandes-points-vente .liste-commandes a').unbind('click').click(function() { var id_pv = $(this).data('pv-id') ; // affiche la commande var id_commande = $(this).data('id-commande') ; chat_index_commandes_affiche_commande(id_pv, id_commande) ; }) ; $('#commandes-points-vente .bloc-point-vente').each(function() { var id_pv = $(this).data('id-pv') ; // edit $('#point-vente-'+id_pv+' .btn-edit').unbind('click').click(function() { // boutons $('#point-vente-'+id_pv+' .buttons-edit-remove').hide() ; $('#point-vente-'+id_pv+' .buttons-save-cancel').show() ; $('#point-vente-'+id_pv+' .tr-total').hide() ; // inputs chat_index_commandes_inputs_commande(id_pv, true) ; }) ; // remove $('#point-vente-'+id_pv+' .btn-remove').unbind('click').click(function() { var id_commande = $(this).data('id-commande') ; $(this).attr('disabled', 'disabled') ; $.get('index.php',{ r: 'commande/ajax-delete', date: $('#date-production').val(), id_commande: id_commande }, function(data) { $('#point-vente-'+id_pv+' .btn-remove').removeAttr('disabled') ; if($('#point-vente-'+id_pv+' .liste-commandes li').size()) { if($('#point-vente-'+id_pv+' .liste-commandes li:last-child a').is('.active')) { var commande_next = $('#point-vente-'+id_pv+' .liste-commandes a.active').parent().prev().find('a') ; } else { var commande_next = $('#point-vente-'+id_pv+' .liste-commandes a.active').parent().next().find('a') ; } $('#point-vente-'+id_pv+' .liste-commandes a.active').parent().remove() ; if($('#point-vente-'+id_pv+' .liste-commandes li').size()) { chat_index_commandes_affiche_commande(id_pv, commande_next.data('id-commande')) ; } else { $('#point-vente-'+id_pv+' .liste-commandes').hide() ; $('#point-vente-'+id_pv+' .creer-commande').trigger('click') ; } } chat_index_commandes_maj_recap_pv(id_pv, data.total_pv) ; chat_index_commandes_maj_total_commandes() ; chat_alert('success','Commande supprimée') ; }, 'json') ; }); // cancel $('#point-vente-'+id_pv+' .btn-cancel').unbind('click').click(function() { $('#point-vente-'+id_pv+' .buttons-edit-remove').show() ; $('#point-vente-'+id_pv+' .buttons-save-cancel').hide() ; $('#point-vente-'+id_pv+' .btn-save').removeClass('is-create') ; chat_index_commandes_affiche_commande(id_pv, $(this).data('id-commande')) ; }) ; // save $('#point-vente-'+id_pv+' .btn-save').unbind('click').click(function() { var tab_produits = {} ; var cpt_produits = 0 ; $('#point-vente-'+id_pv+' .table-produits tr').each(function() { tab_produits[$(this).data('id-produit')] = $(this).find('.quantite').val() ; if($(this).find('.quantite').val()) cpt_produits ++ ; }) ; if(cpt_produits) { // création if($(this).hasClass('is-create')) { if($('#point-vente-'+id_pv+' .user-id').val() || $('#point-vente-'+id_pv+' .username').val().length) { $(this).attr('disabled', 'disabled') ; $.get('index.php',{ r: 'commande/ajax-create', date: $('#date-production').val(), id_pv: id_pv, id_user: $('#point-vente-'+id_pv+' .user-id').val(), username: $('#point-vente-'+id_pv+' .username').val(), produits: JSON.stringify(tab_produits), commentaire: $('#point-vente-'+id_pv+' .textarea-commentaire').val() }, function(data) { $('#point-vente-'+id_pv+' .btn-save').removeAttr('disabled') ; $('#point-vente-'+id_pv+' .btn-save').removeClass('is-create') ; $('#point-vente-'+id_pv+' .liste-commandes').append(data.commande) ; chat_index_commandes_points_vente() ; chat_index_commandes_maj_recap_pv(id_pv, data.total_pv) ; $('#point-vente-'+id_pv+' .buttons-edit-remove').show() ; $('#point-vente-'+id_pv+' .buttons-save-cancel').hide() ; $('#point-vente-'+id_pv+' .btn-create').removeClass('is-create') ; $('#point-vente-'+id_pv+' .user-id').val(0) ; $('#point-vente-'+id_pv+' .user-id').val('') ; chat_index_commandes_affiche_commande(id_pv, data.id_commande) ; chat_alert('success', 'Commande créée') ; }, 'json') ; } else { chat_alert('danger', 'Veuillez choisir ou saisir un nom d\'utilisateur') ; } } // modification else { var id_commande = $(this).data('id-commande') ; $(this).attr('disabled', 'disabled') ; $.get('index.php',{ r: 'commande/ajax-update', id_commande: id_commande, produits: JSON.stringify(tab_produits), date: $('#date-production').val(), commentaire: $('#point-vente-'+id_pv+' .textarea-commentaire').val() }, function(data) { $('#point-vente-'+id_pv+' .btn-save').removeAttr('disabled') ; $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+']').attr('data-commande',data.json_commande); $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').html(data.json_commande.str_montant) ; chat_index_commandes_affiche_commande(id_pv, id_commande) ; chat_index_commandes_maj_recap_pv(id_pv, data.total_pv) ; $('#point-vente-'+id_pv+' .buttons-edit-remove').show() ; $('#point-vente-'+id_pv+' .buttons-save-cancel').hide() ; chat_alert('success','Commande modifiée') ; }, 'json') ; } } else { chat_alert('danger', 'Veuillez saisir au moins un produit') ; } chat_index_commandes_maj_total_commandes() ; }) ; // create $('.creer-commande').unbind('click').click(function() { var id_pv = $(this).data('pv-id') ; $('#point-vente-'+id_pv+' .bloc-commande').fadeIn() ; $('#point-vente-'+id_pv+' .liste-commandes a.active').removeClass('active') ; $('#point-vente-'+id_pv+' .tr-total').hide() ; $('#point-vente-'+id_pv+' .buttons-edit-remove').hide() ; $('#point-vente-'+id_pv+' .the-title').hide() ; $('#point-vente-'+id_pv+' .buttons-save-cancel').show() ; $('#point-vente-'+id_pv+' .choix-user').show() ; $('#point-vente-'+id_pv+' .choix-user .user-id').val(0) ; $('#point-vente-'+id_pv+' .choix-user .username').val('') ; $('#point-vente-'+id_pv+' .commentaire').hide() ; $('#point-vente-'+id_pv+' .btn-save').addClass('is-create'); /*if(!$('#point-vente-'+id_pv+' .btn-cancel').data('id-commande') && $('#point-vente-'+id_pv+' .liste-commandes li').size()) { $('#point-vente-'+id_pv+' .btn-cancel').data('id-commande',$('#point-vente-'+id_pv+' .liste-commandes li:first a').data('id-commande')) ; }*/ $('#point-vente-'+id_pv+' .btn-save').data('id-commande',0) ; chat_index_commandes_inputs_commande(id_pv, false) ; $('#point-vente-'+id_pv+' .title-user').show() ; }) ; }) ; $('#commandes-points-vente .liste-commandes').each(function() { //$(this).find('a:first').trigger('click') ; }) ; } function chat_index_commandes_maj_total_commandes() { $.get('index.php',{ r: 'commande/ajax-total-commandes', date: $('#date-production').val() }, function(data) { $('#bloc-totaux').html(data.html_totaux) ; }, 'json') ; } function chat_index_commandes_maj_recap_pv(id_pv, total) { $('#point-vente-'+id_pv+' .recap-pv .recettes').html(total) ; var nb_commandes = $('#point-vente-'+id_pv+' .liste-commandes li').size() ; if(nb_commandes == 0) { $('#point-vente-'+id_pv+' .recap-pv .commandes').html('Aucune commande') ; $('#point-vente-'+id_pv+' .recap-pv .recettes').hide() ; $('#point-vente-'+id_pv+' .liste-commandes').addClass('no-commande') ; } else if(nb_commandes == 1) { $('#point-vente-'+id_pv+' .recap-pv .commandes').html('1 commande') ; $('#point-vente-'+id_pv+' .recap-pv .recettes').show() ; $('#point-vente-'+id_pv+' .liste-commandes').removeClass('no-commande') ; } else { $('#point-vente-'+id_pv+' .recap-pv .commandes').html(nb_commandes+' commandes') ; $('#point-vente-'+id_pv+' .recap-pv .recettes').show() ; $('#point-vente-'+id_pv+' .liste-commandes').removeClass('no-commande') ; } $('#btn-point-vente-'+id_pv+' .badge').html(nb_commandes) ; } function chat_index_commandes_inputs_commande(id_pv, use_quantite) { // commentaire $('#point-vente-'+id_pv+' .commentaire').hide() ; $('#point-vente-'+id_pv+' .textarea-commentaire').show() ; var id_commande = $('#point-vente-'+id_pv+' .btn-save').data('id-commande') ; if(id_commande) { var link = $('a[data-id-commande='+id_commande+']') ; if(!$.isPlainObject(link.attr('data-commande'))) { var commande = JSON.parse(link.attr('data-commande')) ; if(commande.commentaire && commande.commentaire.length) $('#point-vente-'+id_pv+' .textarea-commentaire').val(commande.commentaire) ; } } else { $('#point-vente-'+id_pv+' .textarea-commentaire').val('') ; } // produits $('#point-vente-'+id_pv+' .table-produits tr').each(function() { var quantite = '' ; if(use_quantite) quantite = $(this).find('.td-commande').html() ; var id_produit = $(this).data('id-produit') ; $(this).find('.td-commande').html('
'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
') ; }) ; // plus / moins chat_btn_plus_moins() ; } function chat_btn_plus_moins() { $('.btn-plus').each(function() { $(this).click(function() { var input = $(this).parent().parent().find('input') ; var value = input.val() ; if(value) value ++ ; else value = 1 ; input.val(value) ; }) ; }) ; $('.btn-moins').each(function() { $(this).click(function() { var input = $(this).parent().parent().find('input') ; var value = input.val() ; if(value && value > 1) value -- ; else value = '' ; input.val(value) ; }) ; }) ; } function chat_index_commandes_affiche_commande(id_pv, id_commande) { var link = $("a[data-id-commande="+id_commande+"]") ; if(id_commande) { $('#point-vente-'+id_pv+' .bloc-commande').hide() ; $('#point-vente-'+id_pv+' .liste-commandes a').removeClass('active') ; link.addClass('active') ; var commande = link.attr('data-commande') ; if(!$.isPlainObject(link.attr('data-commande'))) { commande = JSON.parse(link.attr('data-commande')) ; } // maj ligne commande $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').removeClass('paye') ; $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant .glyphicon').remove() ; $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').html() ; $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').html(commande.str_montant) ; if(commande.montant_paye >= commande.montant) { $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').addClass('paye') ; if(commande.montant_paye > commande.montant) { $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').append(' ') ; } } // commentaire if(commande.commentaire && commande.commentaire.length) { if(!$('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .glyphicon-comment').size()) { $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+']').append(' ') ; } console.log(id_pv+' '+commande.commentaire) ; $('#point-vente-'+id_pv+' .commentaire').html(chat_nl2br(commande.commentaire)).show() ; } else { $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .glyphicon-comment').remove() ; $('#point-vente-'+id_pv+' .commentaire').hide() ; } // set id_commande $('#point-vente-'+id_pv+' .btn-cancel').data('id-commande',id_commande) ; $('#point-vente-'+id_pv+' .btn-save').data('id-commande',id_commande) ; $('#point-vente-'+id_pv+' .btn-remove').data('id-commande',id_commande) ; $('#point-vente-'+id_pv+' .btn-create').removeClass('is-create') ; $('#point-vente-'+id_pv+' .buttons-edit-remove').show() ; $('#point-vente-'+id_pv+' .buttons-save-cancel').hide() ; $('#point-vente-'+id_pv+' .choix-user').hide() ; $('#point-vente-'+id_pv+' .the-title').show() ; $('#point-vente-'+id_pv+' .textarea-commentaire').hide() ; $('#point-vente-'+id_pv+' .td-commande').html('') ; $('#point-vente-'+id_pv+' .td-total').html('') ; $('#point-vente-'+id_pv+' tr').removeClass('active') ; $.each(commande.produits, function(i, item) { $('#point-vente-'+id_pv+' .produit-'+i+' .td-commande').html(item) ; $('#point-vente-'+id_pv+' .produit-'+i).addClass('active') ; }) ; $('#point-vente-'+id_pv+' .td-total').html(''+commande.str_montant+'') ; $('#point-vente-'+id_pv+' .tr-total').show() ; /*var commentaire = link.data('commentaire') ; if(commentaire) { $('#point-vente-'+id_pv+' .commentaire').html(commentaire).show() ; } else { $('#point-vente-'+id_pv+' .commentaire').hide() ; }*/ $('#point-vente-'+id_pv+' .title-user span.the-title').html(link.find('.user').html()+" "+link.data('date')+"") ; $('#point-vente-'+id_pv+' .bloc-commande').fadeIn() ; $('#point-vente-'+id_pv+' .title-user').show() ; $('#point-vente-'+id_pv+' .tr-total').show() ; // paiement $.get('index.php',{ r: 'commande/statut-paiement', id_commande: id_commande }, function(data) { $('#point-vente-'+id_pv+' .bloc-commande .td-paiement').html(data.html_statut_paiement) ; $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+']').attr('data-commande',data.json_commande) ; chat_index_commandes_boutons_paiement(id_pv, id_commande) ; },'json') ; } else { $('#point-vente-'+id_pv+' .bloc-commande').hide() ; } } function chat_index_commandes_boutons_paiement(id_pv, id_commande) { // boutons paiement/remboursement $('#point-vente-'+id_pv+' .payer, #point-vente-'+id_pv+' .rembourser').click(function() { $.get('index.php',{ r: 'commande/paiement', id_commande: id_commande, type: $(this).data('type'), montant: $(this).data('montant') }, function(data) { $('#point-vente-'+id_pv+' .bloc-commande .td-paiement').html(data.html_statut_paiement) ; $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+']').attr('data-commande',data.json_commande) ; chat_index_commandes_affiche_commande(id_pv, id_commande) ; chat_index_commandes_boutons_paiement(id_pv, id_commande) ; }, 'json') ; }) ; } function chat_index_commandes_liste_produits() { $('#produits-production .td-max input').click(function() { $(this).select() ; }) ; $('#produits-production .td-actif input').change(function() { if($(this).prop('checked')) { $(this).parent().parent().addClass('active') ; } else { $(this).parent().parent().removeClass('active') ; } }) ; } function chat_alert(type, message) { var id = 'alert-'+$('#alerts-fixed .alert').size() + 1 ; $('#alerts-fixed').append('
'+message+'
') ; setTimeout('$("#'+id+'").fadeOut();',3000) ; } function chat_ordre_produits() { var fixHelper = function(e, ui) { ui.children().each(function() { $(this).width($(this).width()); }); return ui; }; $(".produit-index table tbody").sortable({ items: "> tr", appendTo: "parent", cursor: "move", placeholder: "ui-state-highlight", handle: '.btn-order', //helper: "clone" helper: fixHelper, stop: function(event, ui) { var tab_ordre = {} ; var ordre = 1 ; $(".produit-index table tbody tr").each(function() { tab_ordre[$(this).attr('data-key')] = ordre ; ordre++ ; }) ; console.log(tab_ordre) ; $.get('index.php',{ r: 'produit/ordre', tab: JSON.stringify(tab_ordre) }) ; } }).disableSelection(); } function chat_email_masse() { $('#ids-users .label').click(function() { if($(this).hasClass('label-default')) { $(this).removeClass('label\-default') ; $(this).addClass('label-danger') ; } else if($(this).hasClass('label-danger')) $(this).removeClass('label-danger').addClass('label-default') ; }) ; $('#email-masse-form button[type=submit]').click(function() { $(this).attr('disabled','disabled').html('Envoyer ...') ; chat_email_masse_send() ; return false ; }) ; } function chat_email_masse_send() { var user = $('#ids-users .label-default:first') ; if(user.size()) { $('input[name=id_user]').val(user.data('id')) ; $.post('index.php?r=user/mail',$('#email-masse-form').serialize(), function(retour) { user.removeClass('label-default').addClass('label-success') ; setTimeout("chat_email_masse_send()",30000) ; }) ; } else { alert('Fini !') ; } } function chat_vrac() { $('.edit-vrac').click(function() { if($('.vrac').css('display') == 'none') $('.vrac').show() ; else $('.vrac').hide() ; }) ; } function chat_datepicker() { $('.datepicker').datepicker({dateFormat:'dd/mm/yy'}) ; } function chat_calendar() { if($('#page-commande').size()) { var events = new Array ; $('ul#jours-production li').each(function() { var date = $(this).html() ; events.push({ title: 'Production', start: date, allDay: true }) ; }) ; jQuery('#calendar').fullCalendar({ header: { left:"prev,next", center: "title", //right:"month,agendaWeek,agendaDay" right:"" }, lang:"fr-fr", loading:function loading(bool) { if (bool) $('#loading').show(); else $('#loading').hide(); }, dayClick: function(date, jsEvent, view) { var url = $(location).attr('href') ; var tab_url = url.split('?') ; $(location).attr('href',tab_url[0]+'?r=commande/index&date='+date.format()); }, eventRender: function (event, element) { var dataToFind = moment(event.start).format('YYYY-MM-DD'); $("td[data-date='"+dataToFind+"']").addClass('dayWithEvent'); }, //eventBackgroundColor: '#000000', events: events, id:"calendar" }); if($('#current-date').val()) $('td[data-date='+$('#current-date').val()+']').addClass('current-date') ; } } /* 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 */ (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']; }));