$(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_btn_plus_moins() ;
chat_commandeauto() ;
chat_points_vente_acces() ;
chat_tooltip() ;
// admin
chat_select_etablissement() ;
}) ;
function chat_tooltip() {
$('[data-toggle="tooltip"]').tooltip();
}
function chat_points_vente_acces() {
$('#pointvente-acces_restreint').change(function() {
chat_points_vente_acces_event() ;
}) ;
chat_points_vente_acces_event() ;
}
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_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(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() ;
chat_index_commandes_affiche_commande($(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)
}, 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(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()
}, 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_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+' .liste-commandes li').size() == 0) {
$('#point-vente-'+id_pv+' .btn-cancel').hide() ;
}
else {
$('#point-vente-'+id_pv+' .btn-cancel').show() ;
}
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() ;
}
else if(nb_commandes == 1) {
$('#point-vente-'+id_pv+' .recap-pv .commandes').html('1 commande') ;
$('#point-vente-'+id_pv+' .recap-pv .recettes').show() ;
}
else {
$('#point-vente-'+id_pv+' .recap-pv .commandes').html(nb_commandes+' commandes') ;
$('#point-vente-'+id_pv+' .recap-pv .recettes').show() ;
}
$('#btn-point-vente-'+id_pv+' .badge').html(nb_commandes) ;
}
function chat_index_commandes_inputs_commande(id_pv, use_quantite) {
$('#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_commande) {
var link = $("a[data-id-commande="+id_commande+"]") ;
var id_pv = link.data('pv-id') ;
$('#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(' ') ;
}
}
// 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+' .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') ;
}
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_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'];
}));