Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

lechatdesnoisettes.js 29KB

vor 8 Jahren
vor 8 Jahren
vor 8 Jahren
vor 8 Jahren
vor 8 Jahren
vor 8 Jahren
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. /**
  2. Copyright La boîte à pain (2018)
  3. contact@laboiteapain.net
  4. Ce logiciel est un programme informatique servant à aider les producteurs
  5. à distribuer leur production en circuits courts.
  6. Ce logiciel est régi par la licence CeCILL soumise au droit français et
  7. respectant les principes de diffusion des logiciels libres. Vous pouvez
  8. utiliser, modifier et/ou redistribuer ce programme sous les conditions
  9. de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
  10. sur le site "http://www.cecill.info".
  11. En contrepartie de l'accessibilité au code source et des droits de copie,
  12. de modification et de redistribution accordés par cette licence, il n'est
  13. offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
  14. seule une responsabilité restreinte pèse sur l'auteur du programme, le
  15. titulaire des droits patrimoniaux et les concédants successifs.
  16. A cet égard l'attention de l'utilisateur est attirée sur les risques
  17. associés au chargement, à l'utilisation, à la modification et/ou au
  18. développement et à la reproduction du logiciel par l'utilisateur étant
  19. donné sa spécificité de logiciel libre, qui peut le rendre complexe à
  20. manipuler et qui le réserve donc à des développeurs et des professionnels
  21. avertis possédant des connaissances informatiques approfondies. Les
  22. utilisateurs sont donc invités à charger et tester l'adéquation du
  23. logiciel à leurs besoins dans des conditions permettant d'assurer la
  24. sécurité de leurs systèmes et ou de leurs données et, plus généralement,
  25. à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
  26. Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
  27. pris connaissance de la licence CeCILL, et que vous en avez accepté les
  28. termes.
  29. */
  30. $(document).ready(function() {
  31. chat_calendar() ;
  32. chat_datepicker() ;
  33. chat_vrac() ;
  34. chat_email_masse() ;
  35. $('button[data-toggle=popover]').popover() ;
  36. chat_ordre_produits() ;
  37. chat_index_commandes_liste_produits() ;
  38. chat_index_commandes_points_vente() ;
  39. chat_index_commandes_points_vente_livraison() ;
  40. chat_btn_plus_moins() ;
  41. chat_commandeauto() ;
  42. chat_points_vente_acces() ;
  43. chat_tooltip() ;
  44. chat_points_vente_jours_livraison() ;
  45. chat_index_commandes_maj_points_vente() ;
  46. // admin
  47. chat_select_etablissement() ;
  48. }) ;
  49. var UrlManager = {
  50. getBaseUrl: function() {
  51. return $('meta[name=baseurl]').attr('content')+'/' ;
  52. },
  53. getBaseUrlAbsolute: function() {
  54. return $('meta[name=baseurl-absolute]').attr('content')+'/' ;
  55. }
  56. };
  57. function chat_tooltip() {
  58. $('[data-toggle="tooltip"]').tooltip({container:'body'});
  59. }
  60. function chat_nl2br(str, is_xhtml) {
  61. var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
  62. return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2');
  63. }
  64. function chat_index_commandes_points_vente_livraison() {
  65. $('#pointsaledistribution-points_sale_distribution input[type=checkbox]').change(function() {
  66. var nb = $('#pointsaledistribution-points_sale_distribution input[type=checkbox]:checked').size() ;
  67. if(nb == 0) {
  68. $(this).prop('checked',true) ;
  69. chat_alert('danger','Vous devez avoir au moins un point de vente activé') ;
  70. }
  71. else {
  72. var val = $(this).val() ;
  73. var arr_val = val.split('-') ;
  74. var livraison = 0 ;
  75. if($(this).prop('checked'))
  76. livraison = 1 ;
  77. $.get(UrlManager.getBaseUrl()+'order/ajax-point-sale-delivery',{
  78. idDistribution: arr_val[0],
  79. idPointSale: arr_val[1],
  80. boolDelivery: livraison
  81. }, function(data) {
  82. chat_alert('success','Point de vente modifié') ;
  83. }) ;
  84. chat_index_commandes_maj_points_vente() ;
  85. }
  86. }) ;
  87. }
  88. function chat_index_commandes_maj_points_vente() {
  89. if($('#productions-point-vente').size()) {
  90. var nb = $('#pointsaledistribution-points_sale_distribution input[type=checkbox]:checked').size() ;
  91. if(nb == 0)
  92. {
  93. $('#panel-commandes #tabs-points-vente, #panel-commandes #commandes-points-vente').hide() ;
  94. $('#panel-commandes .alert-danger').show();
  95. }
  96. else {
  97. $('#panel-commandes #tabs-points-vente, #panel-commandes #commandes-points-vente').show() ;
  98. $('#panel-commandes .alert-danger').hide();
  99. }
  100. }
  101. var id_production = $('#id-production').val() ;
  102. if(id_production) {
  103. $('#tabs-points-vente li').each(function() {
  104. var id_point_vente = $(this).find('a').attr('id').replace('btn-point-vente-','') ;
  105. var nb_commandes = parseInt($(this).find('.badge-success').html()) ;
  106. var checked = $('#pointsaledistribution-points_sale_distribution input[value='+id_production+'-'+id_point_vente+']').prop('checked') ;
  107. if(checked || nb_commandes > 0)
  108. {
  109. $(this).show() ;
  110. }
  111. else {
  112. $(this).hide() ;
  113. }
  114. }) ;
  115. $('#tabs-points-vente li:visible:first a').click() ;
  116. }
  117. }
  118. function chat_points_vente_jours_livraison() {
  119. $('#pointvente-point_fabrication').change(function() {
  120. chat_points_vente_jours_livraison_event() ;
  121. }) ;
  122. chat_points_vente_jours_livraison_event();
  123. }
  124. function chat_points_vente_jours_livraison_event() {
  125. if($('#pointvente-point_fabrication').prop('checked')) {
  126. $('#jours-livraison').hide() ;
  127. }
  128. else {
  129. $('#jours-livraison').fadeIn() ;
  130. }
  131. }
  132. function chat_points_vente_acces() {
  133. // affichage du bloc acces restreint
  134. $('#pointsale-restricted_access').change(function() {
  135. chat_points_vente_acces_event() ;
  136. }) ;
  137. chat_points_vente_acces_event() ;
  138. // affichage du champs commentaire
  139. $('#pointsale-users input[type=checkbox]').change(function() {
  140. chat_points_vente_commentaire_event() ;
  141. }) ;
  142. chat_points_vente_commentaire_event() ;
  143. }
  144. function chat_points_vente_commentaire_event() {
  145. $('#pointsale-users input[type=checkbox]').each(function() {
  146. if($(this).prop('checked')) {
  147. $(this).parent().find('.commentaire').fadeIn() ;
  148. }
  149. else {
  150. $(this).parent().find('.commentaire').hide() ;
  151. }
  152. }) ;
  153. }
  154. function chat_points_vente_acces_event() {
  155. if($('#pointsale-restricted_access').prop('checked')) {
  156. $('#pointsale-users').fadeIn() ;
  157. }
  158. else {
  159. $('#pointsale-users').hide() ;
  160. }
  161. }
  162. function chat_select_etablissement() {
  163. $('select[name="select_producer"]').change(function() {
  164. window.location.href = UrlManager.getBaseUrlAbsolute()+'/site/change-producer?id='+$(this).val() ;
  165. }) ;
  166. }
  167. function chat_commandeauto() {
  168. // dates
  169. $('#subscriptionform-date_begin, #subscriptionform-date_end').datepicker() ;
  170. }
  171. function chat_index_commandes_points_vente() {
  172. $('#commandes-points-vente .liste-commandes a').unbind('click').click(function() {
  173. var id_pv = $(this).data('pv-id') ;
  174. // affiche la commande
  175. var id_commande = $(this).data('id-commande') ;
  176. chat_index_commandes_affiche_commande(id_pv, id_commande) ;
  177. }) ;
  178. $('#commandes-points-vente .bloc-point-vente').each(function() {
  179. var id_pv = $(this).data('id-pv') ;
  180. // edit
  181. $('#point-vente-'+id_pv+' .btn-edit').unbind('click').click(function() {
  182. // boutons
  183. $('#point-vente-'+id_pv+' .buttons-edit-remove').hide() ;
  184. $('#point-vente-'+id_pv+' .buttons-save-cancel').show() ;
  185. $('#point-vente-'+id_pv+' .tr-total').hide() ;
  186. // inputs
  187. chat_index_commandes_inputs_commande(id_pv, true) ;
  188. }) ;
  189. // remove
  190. $('#point-vente-'+id_pv+' .btn-remove').unbind('click').click(function() {
  191. var id_commande = $(this).data('id-commande') ;
  192. $(this).attr('disabled', 'disabled') ;
  193. $.get(UrlManager.getBaseUrl()+'order/ajax-delete',{
  194. date: $('#date-production').val(),
  195. idOrder: id_commande
  196. }, function(data) {
  197. $('#point-vente-'+id_pv+' .btn-remove').removeAttr('disabled') ;
  198. if($('#point-vente-'+id_pv+' .liste-commandes li').size()) {
  199. if($('#point-vente-'+id_pv+' .liste-commandes li:last-child a').is('.active')) {
  200. var commande_next = $('#point-vente-'+id_pv+' .liste-commandes a.active').parent().prev().find('a') ;
  201. }
  202. else {
  203. var commande_next = $('#point-vente-'+id_pv+' .liste-commandes a.active').parent().next().find('a') ;
  204. }
  205. $('#point-vente-'+id_pv+' .liste-commandes a.active').parent().remove() ;
  206. if($('#point-vente-'+id_pv+' .liste-commandes li').size()) {
  207. chat_index_commandes_affiche_commande(id_pv, commande_next.data('id-commande')) ;
  208. }
  209. else {
  210. $('#point-vente-'+id_pv+' .liste-commandes').hide() ;
  211. $('#point-vente-'+id_pv+' .creer-commande').trigger('click') ;
  212. }
  213. }
  214. chat_index_commandes_maj_recap_pv(id_pv, data.total_point_sale) ;
  215. chat_index_commandes_maj_total_commandes() ;
  216. chat_alert('success','Commande supprimée') ;
  217. }, 'json') ;
  218. });
  219. // cancel
  220. $('#point-vente-'+id_pv+' .btn-cancel').unbind('click').click(function() {
  221. $('#point-vente-'+id_pv+' .buttons-edit-remove').show() ;
  222. $('#point-vente-'+id_pv+' .buttons-save-cancel').hide() ;
  223. $('#point-vente-'+id_pv+' .btn-save').removeClass('is-create') ;
  224. chat_index_commandes_affiche_commande(id_pv, $(this).data('id-commande')) ;
  225. }) ;
  226. // save
  227. $('#point-vente-'+id_pv+' .btn-save').unbind('click').click(function() {
  228. var tab_produits = {} ;
  229. var cpt_produits = 0 ;
  230. $('#point-vente-'+id_pv+' .table-produits tr').each(function() {
  231. tab_produits[$(this).data('id-produit')] = $(this).find('.quantite').val() ;
  232. if($(this).find('.quantite').val())
  233. cpt_produits ++ ;
  234. }) ;
  235. if(cpt_produits) {
  236. // création
  237. if($(this).hasClass('is-create')) {
  238. if($('#point-vente-'+id_pv+' .user-id').val() || $('#point-vente-'+id_pv+' .username').val().length) {
  239. $(this).attr('disabled', 'disabled') ;
  240. $.get(UrlManager.getBaseUrl()+'order/ajax-create',{
  241. date: $('#date-production').val(),
  242. idPointSale: id_pv,
  243. idUser: $('#point-vente-'+id_pv+' .user-id').val(),
  244. username: $('#point-vente-'+id_pv+' .username').val(),
  245. products: JSON.stringify(tab_produits),
  246. comment: $('#point-vente-'+id_pv+' .textarea-commentaire').val()
  247. }, function(data) {
  248. $('#point-vente-'+id_pv+' .btn-save').removeAttr('disabled') ;
  249. $('#point-vente-'+id_pv+' .btn-save').removeClass('is-create') ;
  250. $('#point-vente-'+id_pv+' .liste-commandes').append(data.order) ;
  251. chat_index_commandes_points_vente() ;
  252. chat_index_commandes_maj_recap_pv(id_pv, data.total_point_sale) ;
  253. $('#point-vente-'+id_pv+' .buttons-edit-remove').show() ;
  254. $('#point-vente-'+id_pv+' .buttons-save-cancel').hide() ;
  255. $('#point-vente-'+id_pv+' .btn-create').removeClass('is-create') ;
  256. $('#point-vente-'+id_pv+' .user-id').val(0) ;
  257. $('#point-vente-'+id_pv+' .user-id').val('') ;
  258. chat_index_commandes_affiche_commande(id_pv, data.id_commande) ;
  259. chat_alert('success', 'Commande créée') ;
  260. }, 'json') ;
  261. }
  262. else {
  263. chat_alert('danger', 'Veuillez choisir ou saisir un nom d\'utilisateur') ;
  264. }
  265. }
  266. // modification
  267. else {
  268. var id_commande = $(this).data('id-commande') ;
  269. $(this).attr('disabled', 'disabled') ;
  270. $.get(UrlManager.getBaseUrl()+'order/ajax-update',{
  271. idOrder: id_commande,
  272. products: JSON.stringify(tab_produits),
  273. date: $('#date-production').val(),
  274. comment: $('#point-vente-'+id_pv+' .textarea-commentaire').val()
  275. }, function(data) {
  276. $('#point-vente-'+id_pv+' .btn-save').removeAttr('disabled') ;
  277. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+']').attr('data-commande',data.json_order);
  278. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').html(data.json_order.str_amount) ;
  279. chat_index_commandes_affiche_commande(id_pv, id_commande) ;
  280. chat_index_commandes_maj_recap_pv(id_pv, data.total_point_sale) ;
  281. $('#point-vente-'+id_pv+' .buttons-edit-remove').show() ;
  282. $('#point-vente-'+id_pv+' .buttons-save-cancel').hide() ;
  283. chat_alert('success','Commande modifiée') ;
  284. }, 'json') ;
  285. }
  286. }
  287. else {
  288. chat_alert('danger', 'Veuillez saisir au moins un produit') ;
  289. }
  290. chat_index_commandes_maj_total_commandes() ;
  291. }) ;
  292. // create
  293. $('.creer-commande').unbind('click').click(function() {
  294. var id_pv = $(this).data('pv-id') ;
  295. $('#point-vente-'+id_pv+' .bloc-commande').fadeIn() ;
  296. $('#point-vente-'+id_pv+' .liste-commandes a.active').removeClass('active') ;
  297. $('#point-vente-'+id_pv+' .tr-total').hide() ;
  298. $('#point-vente-'+id_pv+' .buttons-edit-remove').hide() ;
  299. $('#point-vente-'+id_pv+' .the-title').hide() ;
  300. $('#point-vente-'+id_pv+' .buttons-save-cancel').show() ;
  301. $('#point-vente-'+id_pv+' .choix-user').show() ;
  302. $('#point-vente-'+id_pv+' .choix-user .user-id').val(0) ;
  303. $('#point-vente-'+id_pv+' .choix-user .username').val('') ;
  304. $('#point-vente-'+id_pv+' .commentaire').hide() ;
  305. $('#point-vente-'+id_pv+' .btn-save').addClass('is-create');
  306. $('#point-vente-'+id_pv+' .btn-save').data('id-commande',0) ;
  307. chat_index_commandes_inputs_commande(id_pv, false) ;
  308. $('#point-vente-'+id_pv+' .title-user').show() ;
  309. }) ;
  310. }) ;
  311. $('#commandes-points-vente .liste-commandes').each(function() {
  312. //$(this).find('a:first').trigger('click') ;
  313. }) ;
  314. }
  315. function chat_index_commandes_maj_total_commandes() {
  316. $.get(UrlManager.getBaseUrl()+'order/ajax-total-orders',{
  317. date: $('#date-production').val()
  318. }, function(data) {
  319. $('#bloc-totaux').html(data.html_totals) ;
  320. }, 'json') ;
  321. }
  322. function chat_index_commandes_maj_recap_pv(id_pv, total) {
  323. $('#point-vente-'+id_pv+' .recap-pv .recettes').html(total) ;
  324. var nb_commandes = $('#point-vente-'+id_pv+' .liste-commandes li').size() ;
  325. if(nb_commandes == 0) {
  326. $('#point-vente-'+id_pv+' .recap-pv .commandes').html('Aucune commande') ;
  327. $('#point-vente-'+id_pv+' .recap-pv .recettes').hide() ;
  328. $('#point-vente-'+id_pv+' .liste-commandes').addClass('no-commande') ;
  329. }
  330. else if(nb_commandes == 1) {
  331. $('#point-vente-'+id_pv+' .recap-pv .commandes').html('1 commande') ;
  332. $('#point-vente-'+id_pv+' .recap-pv .recettes').show() ;
  333. $('#point-vente-'+id_pv+' .liste-commandes').removeClass('no-commande') ;
  334. }
  335. else {
  336. $('#point-vente-'+id_pv+' .recap-pv .commandes').html(nb_commandes+' commandes') ;
  337. $('#point-vente-'+id_pv+' .recap-pv .recettes').show() ;
  338. $('#point-vente-'+id_pv+' .liste-commandes').removeClass('no-commande') ;
  339. }
  340. $('#btn-point-vente-'+id_pv+' .badge').html(nb_commandes) ;
  341. }
  342. function chat_index_commandes_inputs_commande(id_pv, use_quantite) {
  343. // commentaire
  344. $('#point-vente-'+id_pv+' .commentaire').hide() ;
  345. $('#point-vente-'+id_pv+' .textarea-commentaire').show() ;
  346. var id_commande = $('#point-vente-'+id_pv+' .btn-save').data('id-commande') ;
  347. if(id_commande) {
  348. var link = $('a[data-id-commande='+id_commande+']') ;
  349. if(!$.isPlainObject(link.attr('data-commande'))) {
  350. var commande = JSON.parse(link.attr('data-commande')) ;
  351. if(commande.commentaire && commande.commentaire.length)
  352. $('#point-vente-'+id_pv+' .textarea-commentaire').val(commande.commentaire) ;
  353. }
  354. }
  355. else {
  356. $('#point-vente-'+id_pv+' .textarea-commentaire').val('') ;
  357. }
  358. // produits
  359. $('#point-vente-'+id_pv+' .table-produits tr').each(function() {
  360. var quantite = '' ;
  361. if(use_quantite)
  362. quantite = $(this).find('.td-commande').html() ;
  363. var id_produit = $(this).data('id-produit') ;
  364. $(this).find('.td-commande').html('<div class="input-group">'+
  365. '<span class="input-group-btn">'+
  366. '<button class="btn btn-default btn-moins" type="button"><span class="glyphicon glyphicon-minus"></span></button>'+
  367. '</span>'+
  368. '<input type="text" class="form-control quantite" value="'+quantite+'" name="produit_'+id_produit+'">'+
  369. '<span class="input-group-btn">'+
  370. '<button class="btn btn-default btn-plus" type="button"><span class="glyphicon glyphicon-plus"></span></button>'+
  371. '</span>'+
  372. '</div>') ;
  373. }) ;
  374. // plus / moins
  375. chat_btn_plus_moins() ;
  376. }
  377. function chat_btn_plus_moins() {
  378. $('.btn-plus').each(function() {
  379. $(this).click(function() {
  380. var input = $(this).parent().parent().find('input') ;
  381. var value = input.val() ;
  382. if(value)
  383. value ++ ;
  384. else
  385. value = 1 ;
  386. input.val(value) ;
  387. }) ;
  388. }) ;
  389. $('.btn-moins').each(function() {
  390. $(this).click(function() {
  391. var input = $(this).parent().parent().find('input') ;
  392. var value = input.val() ;
  393. if(value && value > 1)
  394. value -- ;
  395. else
  396. value = '' ;
  397. input.val(value) ;
  398. }) ;
  399. }) ;
  400. }
  401. function chat_index_commandes_affiche_commande(id_pv, id_commande) {
  402. var link = $("a[data-id-commande="+id_commande+"]") ;
  403. if(id_commande) {
  404. $('#point-vente-'+id_pv+' .bloc-commande').hide() ;
  405. $('#point-vente-'+id_pv+' .liste-commandes a').removeClass('active') ;
  406. link.addClass('active') ;
  407. var commande = link.attr('data-commande') ;
  408. if(!$.isPlainObject(link.attr('data-commande'))) {
  409. commande = JSON.parse(link.attr('data-commande')) ;
  410. }
  411. // maj ligne commande
  412. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').removeClass('paye') ;
  413. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant .glyphicon').remove() ;
  414. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').html() ;
  415. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').html(commande.str_amount) ;
  416. if(commande.paid_amount >= commande.amount) {
  417. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').addClass('paye') ;
  418. if(commande.paid_amount > commande.amount) {
  419. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .montant').append(' <span class="glyphicon glyphicon-warning-sign"></span>') ;
  420. }
  421. }
  422. // commentaire
  423. if(commande.comment && commande.comment.length) {
  424. if(!$('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .glyphicon-comment').size()) {
  425. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+']').append(' <span class="glyphicon glyphicon-comment"></span>') ;
  426. }
  427. $('#point-vente-'+id_pv+' .commentaire').html(chat_nl2br(commande.comment)).show() ;
  428. }
  429. else {
  430. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+'] .glyphicon-comment').remove() ;
  431. $('#point-vente-'+id_pv+' .commentaire').hide() ;
  432. }
  433. // set id_commande
  434. $('#point-vente-'+id_pv+' .btn-cancel').data('id-commande',id_commande) ;
  435. $('#point-vente-'+id_pv+' .btn-save').data('id-commande',id_commande) ;
  436. $('#point-vente-'+id_pv+' .btn-remove').data('id-commande',id_commande) ;
  437. $('#point-vente-'+id_pv+' .btn-create').removeClass('is-create') ;
  438. $('#point-vente-'+id_pv+' .buttons-edit-remove').show() ;
  439. $('#point-vente-'+id_pv+' .buttons-save-cancel').hide() ;
  440. $('#point-vente-'+id_pv+' .choix-user').hide() ;
  441. $('#point-vente-'+id_pv+' .the-title').show() ;
  442. $('#point-vente-'+id_pv+' .textarea-commentaire').hide() ;
  443. $('#point-vente-'+id_pv+' .td-commande').html('') ;
  444. $('#point-vente-'+id_pv+' .td-total').html('') ;
  445. $('#point-vente-'+id_pv+' tr').removeClass('active') ;
  446. $.each(commande.products, function(i, item) {
  447. $('#point-vente-'+id_pv+' .produit-'+i+' .td-commande').html(item) ;
  448. $('#point-vente-'+id_pv+' .produit-'+i).addClass('active') ;
  449. }) ;
  450. $('#point-vente-'+id_pv+' .td-total').html('<span>'+commande.str_amount+'</span>') ;
  451. $('#point-vente-'+id_pv+' .tr-total').show() ;
  452. $('#point-vente-'+id_pv+' .title-user span.the-title').html(link.find('.user').html()+" <small>"+link.data('date')+"</small>") ;
  453. $('#point-vente-'+id_pv+' .bloc-commande').fadeIn() ;
  454. $('#point-vente-'+id_pv+' .title-user').show() ;
  455. $('#point-vente-'+id_pv+' .tr-total').show() ;
  456. // paiement
  457. $.get(UrlManager.getBaseUrl()+'order/payment-status',{
  458. idOrder: id_commande
  459. }, function(data) {
  460. $('#point-vente-'+id_pv+' .bloc-commande .td-paiement').html(data.html_payment_status) ;
  461. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+']').attr('data-commande',data.json_order) ;
  462. chat_index_commandes_boutons_paiement(id_pv, id_commande) ;
  463. },'json') ;
  464. }
  465. else {
  466. $('#point-vente-'+id_pv+' .bloc-commande').hide() ;
  467. }
  468. }
  469. function chat_index_commandes_boutons_paiement(id_pv, id_commande) {
  470. // boutons paiement/remboursement
  471. $('#point-vente-'+id_pv+' .payer, #point-vente-'+id_pv+' .rembourser').click(function() {
  472. $(this).attr('disabled','disabled') ;
  473. $.get(UrlManager.getBaseUrl()+'order/payment',{
  474. idOrder: id_commande,
  475. type: $(this).data('type'),
  476. amount: $(this).data('montant')
  477. }, function(data) {
  478. $('#point-vente-'+id_pv+' .bloc-commande .td-paiement').html(data.html_payment_status) ;
  479. $('#point-vente-'+id_pv+' a[data-id-commande='+id_commande+']').attr('data-commande',data.json_order) ;
  480. chat_index_commandes_affiche_commande(id_pv, id_commande) ;
  481. chat_index_commandes_boutons_paiement(id_pv, id_commande) ;
  482. }, 'json') ;
  483. }) ;
  484. }
  485. function chat_index_commandes_liste_produits() {
  486. $('#produits-production .td-max input').click(function() {
  487. $(this).select() ;
  488. }) ;
  489. $('#produits-production .td-actif input').change(function() {
  490. if($(this).prop('checked')) {
  491. $(this).parent().parent().addClass('active') ;
  492. }
  493. else {
  494. $(this).parent().parent().removeClass('active') ;
  495. }
  496. }) ;
  497. }
  498. function chat_alert(type, message) {
  499. var id = 'alert-'+$('#alerts-fixed .alert').size() + 1 ;
  500. $('#alerts-fixed').append('<div id="'+id+'" class="alert alert-'+type+'">'+message+'</div>') ;
  501. setTimeout('$("#'+id+'").fadeOut();',3000) ;
  502. }
  503. function chat_ordre_produits() {
  504. var fixHelper = function(e, ui) {
  505. ui.children().each(function() {
  506. $(this).width($(this).width());
  507. });
  508. return ui;
  509. };
  510. $(".produit-index table tbody").sortable({
  511. items: "> tr",
  512. appendTo: "parent",
  513. cursor: "move",
  514. placeholder: "ui-state-highlight",
  515. handle: '.btn-order',
  516. //helper: "clone"
  517. helper: fixHelper,
  518. stop: function(event, ui) {
  519. var tab_ordre = {} ;
  520. var ordre = 1 ;
  521. $(".produit-index table tbody tr").each(function() {
  522. tab_ordre[$(this).attr('data-key')] = ordre ;
  523. ordre++ ;
  524. }) ;
  525. console.log(tab_ordre) ;
  526. $.get(UrlManager.getBaseUrl()+'produit/ordre',{
  527. tab: JSON.stringify(tab_ordre)
  528. }) ;
  529. }
  530. }).disableSelection();
  531. }
  532. function chat_email_masse() {
  533. $('#ids-users .label').click(function() {
  534. if($(this).hasClass('label-default')) {
  535. $(this).removeClass('label\-default') ;
  536. $(this).addClass('label-danger') ;
  537. }
  538. else if($(this).hasClass('label-danger'))
  539. $(this).removeClass('label-danger').addClass('label-default') ;
  540. }) ;
  541. $('#email-masse-form button[type=submit]').click(function() {
  542. $(this).attr('disabled','disabled').html('Envoyer ...') ;
  543. chat_email_masse_send() ;
  544. return false ;
  545. }) ;
  546. }
  547. function chat_email_masse_send() {
  548. var user = $('#ids-users .label-default:first') ;
  549. if(user.size()) {
  550. $('input[name=id_user]').val(user.data('id')) ;
  551. $.post(UrlManager.getBaseUrl()+'user/mail',$('#email-masse-form').serialize(), function(retour) {
  552. user.removeClass('label-default').addClass('label-success') ;
  553. setTimeout("chat_email_masse_send()",30000) ;
  554. }) ;
  555. }
  556. else {
  557. alert('Fini !') ;
  558. }
  559. }
  560. function chat_vrac() {
  561. $('.edit-vrac').click(function() {
  562. if($('.vrac').css('display') == 'none')
  563. $('.vrac').show() ;
  564. else
  565. $('.vrac').hide() ;
  566. }) ;
  567. }
  568. function chat_datepicker() {
  569. $('.datepicker').datepicker({dateFormat:'dd/mm/yy'}) ;
  570. }
  571. function chat_calendar() {
  572. if($('#page-order').size()) {
  573. var events = new Array ;
  574. $('ul#jours-production li').each(function() {
  575. var date = $(this).html() ;
  576. events.push({
  577. title: 'Production',
  578. start: date,
  579. allDay: true
  580. }) ;
  581. }) ;
  582. jQuery('#calendar').fullCalendar({
  583. header: {
  584. left:"prev,next",
  585. center: "title",
  586. //right:"month,agendaWeek,agendaDay"
  587. right:""
  588. },
  589. lang:"fr-fr",
  590. loading:function loading(bool) {
  591. if (bool) $('#loading').show();
  592. else $('#loading').hide();
  593. },
  594. dayClick: function(date, jsEvent, view) {
  595. var url = $(location).attr('href') ;
  596. var tab_url = url.split('?') ;
  597. $(location).attr('href',tab_url[0]+'?r=order/index&date='+date.format());
  598. },
  599. eventRender: function (event, element) {
  600. var dataToFind = moment(event.start).format('YYYY-MM-DD');
  601. $("td[data-date='"+dataToFind+"']").addClass('dayWithEvent');
  602. },
  603. //eventBackgroundColor: '#000000',
  604. events: events,
  605. id:"calendar"
  606. });
  607. if($('#current-date').val())
  608. $('td[data-date='+$('#current-date').val()+']').addClass('current-date') ;
  609. }
  610. }
  611. /* French initialisation for the jQuery UI date picker plugin. */
  612. /* Written by Keith Wood (kbwood{at}iinet.com.au),
  613. Stéphane Nahmani (sholby@sholby.net),
  614. Stéphane Raimbault <stephane.raimbault@gmail.com> */
  615. (function( factory ) {
  616. if ( typeof define === "function" && define.amd ) {
  617. // AMD. Register as an anonymous module.
  618. define([ "../jquery.ui.datepicker" ], factory );
  619. } else {
  620. // Browser globals
  621. factory( jQuery.datepicker );
  622. }
  623. }(function( datepicker ) {
  624. datepicker.regional['fr'] = {
  625. closeText: 'Fermer',
  626. prevText: 'Précédent',
  627. nextText: 'Suivant',
  628. currentText: 'Aujourd\'hui',
  629. monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
  630. 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
  631. monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin',
  632. 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
  633. dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
  634. dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
  635. dayNamesMin: ['D','L','M','M','J','V','S'],
  636. weekHeader: 'Sem.',
  637. dateFormat: 'dd/mm/yy',
  638. firstDay: 1,
  639. isRTL: false,
  640. showMonthAfterYear: false,
  641. yearSuffix: ''};
  642. datepicker.setDefaults(datepicker.regional['fr']);
  643. return datepicker.regional['fr'];
  644. }));