1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[161,536],{536(t,e,a){a.d(e,{default:()=>n});class n{constructor(t,e){this.text=t,e=e||{},this.params={type:e.type||"info",timeout:e.timeout||2500,sticky:e.sticky||!1,closeButton:e.closeButton||!1,loader:e.loader||!1,sound:e.sound||!1},this.init()}init(){var t=this.getNotificationsContainer(),e=this.renderNotification();t.appendChild(e),this.params.closeButton&&this.addCloseButton(),this.params.loader&&this.addLoader(),this.params.sound&&this.playSound(),this.params.sticky||window.setTimeout(function(){this.remove()}.bind(this),this.params.timeout)}getNotificationsContainer(){var t=document.querySelector(".notifications");return t||(t=this.createNotificationsContainer()),t}createNotificationsContainer(){var t=document.createElement("div");return t.classList.add("notifications"),document.body.appendChild(t),t}renderNotification(){return this.element=document.createElement("div"),this.element.classList.add("notification"),this.element.classList.add("alert"),this.element.classList.add("alert-"+this.params.type),this.element.innerHTML=this.text,this.element}addCloseButton(){var t=document.createElement("span");t.classList.add("fa"),t.classList.add("fa-close"),this.element.insertAdjacentElement("afterbegin",t),t.addEventListener("click",function(){this.remove()}.bind(this))}addLoader(){var t=document.createElement("span");t.classList.add("fa"),t.classList.add("fa-spinner"),t.classList.add("fa-spin"),this.element.insertAdjacentElement("afterbegin",t)}playSound(){var t=document.createElement("audio");t.style.display="none",t.autoplay=!0,t.innerHTML='<source src="/assets/sounds/'+this.params.sound+'.mp3" type="audio/mp3">',this.element.appendChild(t)}remove(){this.element.style.opacity=0,window.setTimeout(function(){this.element.parentNode.removeChild(this.element)}.bind(this),400)}}},161(t,e,a){a.d(e,{default:()=>o});var n=a(536);const s=(t,e)=>{if("short"===e){const e=t.getDate().toString().padStart(2,"0"),a=(t.getMonth()+1).toString().padStart(2,"0");return`<span title="${t.toLocaleString()}">${e}/${a}</span>`}},d=(t,e)=>Math.floor((t-e)/864e5),i=t=>{const e=t.split(/[- :]/);return new Date(Date.UTC(e[0],e[1]-1,e[2],e[3],e[4],e[5]))};class o{constructor(t){const e=this;e.data=t,e.getRow=function(){let t='<button title="Marquer comme expédiée" data-action="shipped" class="btn btn-sm btn-success"><i class="fa-solid fa-box"></i></button>';let a="";e.pick&&(t='<button title="Marquer comme à dispo. en magasin" data-action="shipped" class="btn btn-sm btn-success"><i class="fa fa-shopping-bag"></i></button>'),e.overdued&&(a=' <button title="Relancer" data-action="followup" class="btn btn-sm btn-warning"><i class="fa fa-warning"></i></button>');const d=document.createElement("tr");return d.id="order_"+e.data.id,d.className="text-center "+e.class,d.innerHTML=`<td title="${e.tooltip}" class="va-middle"><i class="fa-solid ${e.icon}"></i></td>\n <td><a href="/order/${e.data.url}">${e.data.id}</a></td>\n <td>
1${s(e.created_at,"short")}</td>\n <td class="text-left customer">${e.data.customer}</td>\n <td class="text-right">${e.data.total}</td>\n <td><a href="/order/${e.data.url}/invoice" class="btn btn-sm btn-light" title="Imprimer la facture" ><i class="fa fa-print"></i></a></td>\n <td>${e.data.payment_mode?`<img src="/assets/icons/payment_${e.data.payment_mode}.png" alt="${e.data.payment_mode}" title="${e.data.payment_mode}" width=20 />`:""}</td>\n <td>${e.payed?s(e.payed_at,"short"):'<div class="btn-group">\n <div class="dropdown">\n <button class="btn btn-sm btn-success dropdown-toggle" title="Marquée comme payée" type="button" data-toggle="dropdown" aria-expanded="false">\n <span class="fa-regular fa-money-bill-1"></span>\n </button>\n <div class="dropdown-menu">\n <a class="dropdown-item pointer" data-action="payed" data-mode="card">Carte bancaire</a>\n <a class="dropdown-item pointer" data-action="payed" data-mode="cheque">Chèque</a>\n <a class="dropdown-item pointer" data-action="payed" data-mode="cash">Espèces</a>\n <a class="dropdown-item pointer" data-action="payed" data-mode="paypal">Paypal</a>\n <a class="dropdown-item pointer" data-action="payed" data-mode="payplug">Payplug</a>\n <a class="dropdown-item pointer" data-action="payed" data-mode="transfer">Virement</a>\n <a class="dropdown-item pointer" data-action="payed" data-mode="exchange">Ãchange</a>\n </div>\n </div>'+a+"</div>"}</td>\n <td>${e.shipped?s(e.shipped_at,"short"):t}</td>\n <td><button title="Annuler la commande" data-action="cancel" class="btn btn-sm btn-danger"><i class="fa fa-trash-can"></i></button></td>`,d.addEventListener("click",function(t){const a=t.target.closest("[data-action]");if(!a)return;const s=a.getAttribute("data-action"),d=a.querySelector("i"),i=d?d.className:"";let o=null,r=null;const c=document.getElementById("order_status"),l=c?c.value:null;if("cancel"===s){if(!confirm("Voulez-vous vraiment annuler la commande n° "+e.data.id+" de "+e.data.customer+" ?"))return!1}d&&(d.className="fa fa-spinner fa-spin");if(["colissimo","mondial-relay"].includes(e.data.shipping_mode)&&"shipped"===s&&(r=window.prompt("Numéro de suivi ?"),null===r))return new n.default("La commande n'a pas été marquée comme expédiée.",{type:"warning"}),void(d&&(d.className=i));"payed"===s&&(o=a.getAttribute("data-mode")),fetch("/admin/orders/"+e.data.id+"/"+s,{method:"POST",headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:JSON.stringify({payment_mode:o,tracking_number:r})}).then(t=>t.json()).then(t=>{if(d&&(d.className=i),t.error)return void window._alert(t.error.message);e.data=t.order,e.updateStatus();const a=e.getRow(),o=document.getElementById("order_"+e.data.id);o&&o.parentNode&&o.parentNode.replaceChild(a,o);const r=document.getElementById("buttons_"+e.data.id);r&&r.parentNode&&r.parentNode.removeChild(r),t.notice&&new n.default(t.notice,{type:"success"}),("1"===l&&"payed"===s||"2"===l&&"shipped"===s||"3"===l&&"shipped"===s||"cancel"===s)&&setTimeout(function(){const t=document.getElementById("order_"+e.data.id);t&&(t.style.display="none")},1e3)}).catch(t=>{d&&(d.className=i),t&&t.response&&t.response.json?t.response.json().then(t=>{window._alert(t.error.message)}):window._alert("Erreur réseau")})}),d},e.updateStatus=function(){if(e.payed=!0,e.shipped=!0,e.overdued=!1,e.canceled=!1,e.icon="",e.class="",e.created_at=i(e.data.created),e.shipped_at=null,e.payed_at=null,null!==e.data.cancel_date)return e.canceled=!0,e.canceled_at=i(e.data.cancel_date),e.icon="fa-trash-can",e.class="canceled",e.tooltip="Annulée",e.shipped=!1,void(e.payed=!1);null===e.data.shipping_date?(e.shipped=!1,e.icon="fa-box",e.class=" table-success",e.tooltip="à expédier","magasin"===e.data.shipping_mode&&(e.icon="fa-shopping-bag",e.tooltip="à mettre à dispo. en magasin",e.pick=!0)):e.shipped_at=i(e.data.shipping_date),null===e.data.payment_date?(e.payed=!1,e.icon="fa-money",e.class=" table-warning",e.tooltip="à payer"):e.payed_at=i(e.data.payment_date);const t=d(new Date,e.created_at);if(!e.payed&&t>4&&(e.overdued=!0,e.icon="fa-warning",e.class=" table-danger",e.tooltip="à relancer",e.data.followup_date)){e.followed_up_at=i(e.data.followup_date);const t=d(new Date,e.followed_up_at);e.overdued=!1,e.icon="fa-clock",e.class="",e.tooltip="Relancée il y a "+t+" jours"}},e.updateStatus()}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.