PageSourceSearch

https://app.djoubo.eu/assets/index-BpiEw7c0.js

js djoubo.eu collected 2026-09-24 15:00:56 UTC 16,197 bytes, 1 lines download raw bytes

1import{j as e}from"./vendor-maps-BkFXKbVz.js";import{u as ye,O as ve}from"./OrganizationPaginationBar-D8aEPE7X.js";import{af as J,ag as Y,s as ee,ah as ae,b as ie,ai as fe,aj as xe}from"./index-BlFipuMK.js";import{B as v}from"./button-V0mDOfGe.js";import{r as u,u as be}from"./vendor-react-iB9ODP_1.js";import{u as A}from"./vendor-i18n-Cw8D5MCt.js";import{X as je,r as R,t as ze,j as D,k as Ne,S as ke,u as Ce}from"./vendor-utils-iY4jI3ms.js";import{I as Se}from"./Input-vASYtAX7.js";import{f as H,p as Ie,i as Pe,l as Me}from"./vendor-date-Ci4948aI.js";import{l as we}from"./index-iHW1xgYN.js";import"./vendor-state-BcIU6khZ.js";import"./vendor-antd-CuXAe93C.js";import"./vendor-forms-j-705dr2.js";import"./vendor-phone-VSINlmNE.js";import"./vendor-animation-DsbV8uj4.js";import"./vendor-realtime-ByZp_ck7.js";import"./clsx-B-dksMZM.js";function Q(a,n,t){const l=(n||"EUR").toUpperCase();try{return new Intl.NumberFormat(t==="en"?"en-GB":"fr-FR",{style:"currency",currency:l.length===3?l:"EUR",minimumFractionDigits:2,maximumFractionDigits:2}).format(a)}catch{return`${a} ${l}`}}const $e=({invoices:a,isOpen:n,onOpenChange:t,onPaid:l})=>{const{t:r,i18n:g}=A(),{showError:I}=ie(),{data:p=[],isLoading:U}=J({enabled:n}),z=Y(),[x,N]=u.useState(null),d=z.isPending,h=a[0]??null,y=a.length>1;u.useEffect(()=>{if(!n){N(null);return}const s=p.find(_=>_.is_default)?.id??p[0]?.id??null;N(s)},[n,p]);const F=u.useMemo(()=>{if(a.length===0)return"";if(!y&&typeof h?.total_formatted=="string"&&h.total_formatted.trim())return h.total_formatted;const s=a.reduce((_,M)=>_+(Number(M.total)||0),0);return Q(s,h?.currency,g.language)},[g.language,h,a,y]),b=()=>{d||t(!1)},k=async s=>{if(a.length===0)return;const _=await z.mutateAsync({invoiceIds:a.map(M=>M.id),method:s,redirectUrl:`${window.location.origin}/organization/invoices?payment=success`});if(_.checkout_url){window.location.href=_.checkout_url;return}throw new Error(r("organization.invoices_pay_error"))},w=async()=>{if(a.length===0||x===null)return;const s=await z.mutateAsync({invoiceIds:a.map(_=>_.id),method:"saved_card",paymentMethodId:x});if(s.checkout_url){window.location.href=s.checkout_url;return}l(s.status==="paid"),t(!1)},j=async s=>{try{await s()}catch(_){I(ae(_,r("organization.invoices_pay_error")))}};if(a.length===0)return null;const P=p.length>0;return e.jsx(ee,{isOpen:n,setIsOpen:s=>{s||b()},overlayClassName:"modal-overlay--soft",children:e.jsxs("div",{className:"org-pay-modal",role:"dialog","aria-modal":"true","aria-labelledby":"org-pay-modal-title",children:[e.jsx(v,{type:"button",variant:"ghost",size:"icon-sm",className:"org-pay-modal__close",onClick:b,"aria-label":r("organization.invoices_pay_cancel"),disabled:d,children:e.jsx(je,{className:"size-5",strokeWidth:2,"aria-hidden":!0})}),e.jsxs("div",{className:"org-pay-modal__head",children:[e.jsx("h2",{id:"org-pay-modal-title",className:"org-pay-modal__title",children:r(y?"organization.invoices_pay_batch_modal_title":"organization.invoices_pay_modal_title")}),e.jsx("p",{className:"org-pay-modal__lead",children:y?r("organization.invoices_pay_batch_modal_subtitle",{count:a.length}):`${r("organization.invoices_pay_modal_invoice")} ${h?.invoice_number??""}`})]}),e.jsxs("div",{className:"org-pay-modal__amount",children:[e.jsx("p",{className:"org-pay-modal__amount-label",children:r("organization.invoices_pay_modal_amount")}),e.jsx("p",{className:"org-pay-modal__amount-value",children:F}),y?e.jsx("ul",{className:"org-pay-modal__batch-list",children:a.map(s=>e.jsxs("li",{className:"org-pay-modal__batch-item",children:[e.jsx("span",{children:s.invoice_number}),e.jsx("span",{children:s.total_formatted?.trim()||Q(Number(s.total)||0,s.currency,g.language)})]},s.id))}):h?.ride_number?e.jsxs("p",{className:"org-pay-modal__ride",children:[r("organization.invoices_pay_modal_ride")," ",h.ride_number]}):null]}),U?e.jsx("p",{className:"org-pay-modal__hint",children:r("organization.invoices_pay_loading_cards")}):P?e.jsxs("div",{className:"org-pay-modal__cards",role:"radiogroup","aria-label":r("organization.invoices_pay_select_card"),children:[e.jsx("p",{className:"org-pay-modal__section-title",children:r("organization.invoices_pay_select_card")}),p.map(s=>{const _=x===s.id;return e.jsxs("button",{type:"button",role:"radio","aria-checked":_,className:`org-pay-modal__card${_?" org-pay-modal__card--selected":""}`,disabled:d,onClick:()=>N(s.id),children:[e.jsx("span",{className:"org-pay-modal__card-icon","aria-hidden":!0,
1children:e.jsx(R,{className:"size-5"})}),e.jsxs("span",{className:"org-pay-modal__card-copy",children:[e.jsx("span",{className:"org-pay-modal__card-brand",children:s.brand?.trim()||r("organization.settings_cards_fallback")}),e.jsxs("span",{className:"org-pay-modal__card-meta",children:[s.masked_number??"****",s.expiry_date?` · ${s.expiry_date}`:""]})]}),e.jsx("span",{className:`org-pay-modal__check${_?" org-pay-modal__check--on":""}`,children:e.jsx(ze,{className:"size-3.5","aria-hidden":!0})})]},s.id)}),e.jsxs(v,{type:"button",className:"org-pay-modal__primary",disabled:d||x===null,onClick:()=>{j(w)},children:[d?e.jsx(D,{className:"size-4 animate-spin","aria-hidden":!0}):e.jsx(R,{className:"size-4","aria-hidden":!0}),r(d?"organization.invoices_pay_paying":"organization.invoices_pay_with_card")]})]}):e.jsx("p",{className:"org-pay-modal__hint",children:r("organization.invoices_pay_no_card_hint")}),e.jsxs("div",{className:"org-pay-modal__alt",children:[e.jsxs(v,{type:"button",variant:P?"outline":"default",className:P?"org-pay-modal__secondary":"org-pay-modal__primary",disabled:d,onClick:()=>{j(()=>k("register_and_pay"))},children:[d?e.jsx(D,{className:"size-4 animate-spin","aria-hidden":!0}):e.jsx(R,{className:"size-4","aria-hidden":!0}),r(d?"organization.invoices_pay_paying":"organization.invoices_pay_and_save")]}),e.jsx(v,{type:"button",variant:"outline",className:"org-pay-modal__secondary",disabled:d,onClick:()=>{j(()=>k("payment_link"))},children:r(d?"organization.invoices_pay_paying":"organization.invoices_pay_without_save")})]})]})})},Oe=({isOpen:a,onOpenChange:n})=>{const{t}=A();return e.jsx(ee,{isOpen:a,setIsOpen:n,overlayClassName:"modal-overlay--soft",children:e.jsxs("div",{className:"org-payment-success",role:"status","aria-labelledby":"org-payment-success-title",children:[e.jsx("span",{className:"org-payment-success__icon","aria-hidden":!0,children:e.jsx(Ne,{className:"size-8",strokeWidth:1.8})}),e.jsx("h2",{id:"org-payment-success-title",className:"org-payment-success__title",children:t("organization.invoices_pay_success_title")}),e.jsx("p",{className:"org-payment-success__message",children:t("organization.invoices_pay_success_message")}),e.jsx(v,{type:"button",className:"org-payment-success__confirm",onClick:()=>n(!1),children:t("organization.invoices_pay_success_confirm")})]})})};function Ee(a){return a.find(n=>n.is_default)?.id??a[0]?.id??null}const X=50;function B(a){return a.filter(n=>String(n.status??"").toLowerCase()!=="paid")}function Le(a,n){return n==="all"?a:n==="paid"?a.filter(t=>String(t.status??"").toLowerCase()==="paid"):a.filter(t=>String(t.status??"").toLowerCase()!=="paid")}function Re(a){return new Set(a.map(t=>String(t.currency||"EUR").toUpperCase())).size<=1}function Ae(a,n){return a.includes(n)?a.filter(t=>t!==n):[...a,n]}function Ue(a,n,t){return t?a.filter(l=>!n.includes(l)):[...new Set([...a,...n])]}function Fe(a){if(!a)return null;const n=Ie(a,"yyyy-MM-dd HH:mm:ss",new Date);if(Pe(n))return n;const t=new Date(a.replace(" ","T"));return Number.isNaN(t.getTime())?null:t}function q(a,n){const t=Fe(a);if(!t)return"-";const l=n.toLowerCase().startsWith("en"),r=l?Me:we;return l?H(t,"MMMM d, yyyy",{locale:r}):H(t,"d MMMM yyyy",{locale:r})}function Z(a){return String(a??"").toLowerCase()==="proforma"?"proforma":"invoice"}function K(a){return String(a??"").toLowerCase()==="paid"?"paid":"pending"}const Te=({row:a,viewingId:n,payingId:t,onViewPdf:l,onPay:r})=>{const{t:g}=A(),I=K(a.status)==="paid",p=t===a.id;return e.jsxs("div",{className:"org-invoices-page__actions",children:[e.jsxs(v,{type:"button",variant:"outline",size:"sm",className:"org-invoices-page__action-btn",disabled:n===a.id,onClick:()=>l(a),"aria-label":g("organization.invoices_view_aria",{number:a.invoice_number}),children:[e.jsx(Ce,{className:"size-3.5","aria-hidden":!0}),g("organization.invoices_view_pdf")]}),e.jsxs(v,{type:"button",size:"sm",className:"org-invoices-page__action-btn org-invoices-page__pay-btn",disabled:I||t!==null,onClick:()=>r(a),"aria-label":g("organization.invoices_pay_aria",{number:a.invoice_number}),children:[p?e.jsx(D,{className:"size-3.5 animate-spin","aria-hidden":!0}):e.jsx(R,{className:"size-3.5","aria-hidden":!0}),g(p?"organization.invoices_pay_paying":"organization.invoices_pay")]})]})},ta=()=>{const{t:a,i18n:n}=A(),{showError:t}=ie(),[l,r]=be(),[g,I]=u.useState(""),[p,U]=u.useState("all"),[z,x]=u.useState(null),[N,d]=u.useState([]),[h,y]=u.useState([]),[F,b]=u.useState(!1),[k,w]=u.useState(null),j=J(),P=Y(),{data:s,isLoading:_,isError:M,refetch:$}=fe({page:1,per_page:100}),O=u.useMemo(()=>Array.isArray(s?.data)?s.data:[],[s?.data]),ne=u.useMemo(()=>{const i=Le(O,p),o=g.trim().toLowerCase();return o?i.filter(c=>{const f=Z(c.document_type),m=K(c.status);return[c.invoice_number,c.ride_number,q(c.issued_at,n.language),a(`organization.invoices_type_${f}`),a(`organization.invoices_status_${m}`)].join(" ").toLowerCase().includes(o)}):i},[g,n.language,O,p,a]),{page:te,setPage:T,pageSize:se,setPageSize:oe,total:re,lastPage:ce,pageItems:E,from:le,to:de}=ye(ne,{initialPageSize:10});u.useEffect(()=>{T(1)},[g,p,T]),u.useEffect(()=>{if(l.get("payment")!=="success")return;b(!0),$();const i=new URLSearchParams(l);i.delete("payment"),r(i,{replace:!0})},[$,l,r]);const L=u.useMemo(()=>B(E),[E]),C=u.useMemo(()=>B(O).filter(i=>h.includes(i.id)),[O,h]),V=L.length>0&&L.every(i=>h.includes(i.id)),_e=C.reduce((i,o)=>i+(Number(o.total)||0),0),ue=C[0]?.currency||"EUR",W=(i,o)=>{const c=(o||"EUR").toUpperCase();try{return new Intl.NumberFormat(n.language==="en"?"en-GB":"fr-FR",{style:"currency",currency:c.length===3?c:"EUR",minimumFractionDigits:2,maximumFractionDigits:2}).format(i)}catch{return`${i} ${c}`}},ge=i=>
1typeof i.total_formatted=="string"&&i.total_formatted.trim()?i.total_formatted:W(Number(i.total)||0,i.currency),me=i=>{if(!i.ride_number)return"-";const o=(i.rides_count??1)>1?a("organization.invoices_rides_more",{count:(i.rides_count??1)-1}):"";return`${i.ride_number}${o}`},pe=i=>{if(z!==null)return;if(!i.has_pdf){t(a("organization.invoices_download_unavailable"));return}const o=window.open("about:blank","_blank");x(i.id),xe(i.id).then(c=>{const f=c.type.includes("pdf")?c:new Blob([c],{type:"application/pdf"}),m=window.URL.createObjectURL(f);o&&!o.closed?o.location.href=m:window.open(m,"_blank","noopener")}).catch(()=>{o?.close(),t(a("organization.invoices_download_error"))}).finally(()=>{x(null)})},G=async i=>{const o=B(i);if(k!==null||o.length===0)return;if(o.length>X){t(a("organization.invoices_pay_batch_limit",{max:X}));return}if(!Re(o)){t(a("organization.invoices_pay_currency_mismatch"));return}let c=j.data??[];if(j.isLoading||c.length===0)try{c=(await j.refetch()).data??[]}catch{c=[]}const f=Ee(c);if(f===null){d(o);return}w(o[0].id);try{const m=await P.mutateAsync({invoiceIds:o.map(S=>S.id),method:"saved_card",paymentMethodId:f});if(m.checkout_url){window.location.href=m.checkout_url;return}if($(),m.status==="paid"){y([]),b(!0);return}t(a("organization.invoices_pay_error")),d(o)}catch(m){t(ae(m,a("organization.invoices_pay_error"))),d(o)}finally{w(null)}},he=a(_?"organization.invoices_loading":M?"organization.invoices_load_error":"organization.invoices_empty_filter");return e.jsxs("div",{className:"org-data-page org-invoices-page",children:[e.jsxs("header",{className:"org-courses-page__toolbar",children:[e.jsx("div",{className:"org-data-page__toolbar-filter",children:e.jsx("label",{className:"org-data-page__filter-label",htmlFor:"org-invoices-filter",children:e.jsx(Se,{id:"org-invoices-filter",type:"search",value:g,onChange:i=>I(i.target.value),placeholder:a("organization.invoices_filter_placeholder"),"aria-label":a("organization.invoices_filter_aria"),autoComplete:"off",icon:e.jsx(ke,{className:"size-[22px] shrink-0",strokeWidth:1.6,"aria-hidden":!0})})})}),e.jsx("div",{className:"org-invoices-page__status-filters",role:"group","aria-label":a("organization.invoices_status_filter_aria"),children:["all","pending","paid"].map(i=>{const o=p===i;return e.jsx(v,{type:"button",size:"sm",variant:o?"default":"outline",className:`org-invoices-page__status-btn${o?" org-invoices-page__status-btn--active":""}`,"aria-pressed":o,onClick:()=>U(i),children:a(`organization.invoices_status_filter_${i}`)},i)})})]}),C.length>0?e.jsxs("div",{className:"org-invoices-page__batch-bar",children:[e.jsxs("div",{children:[e.jsx("p",{className:"org-invoices-page__batch-label",children:a(C.length===1?"organization.invoices_batch_label_one":"organization.invoices_batch_label_many",{count:C.length})}),e.jsxs("p",{className:"org-invoices-page__batch-total",children:[a("organization.invoices_batch_total")," ",W(_e,ue)]})]}),e.jsxs("div",{className:"org-invoices-page__batch-actions",children:[e.jsx(v,{type:"button",variant:"ghost",size:"sm",onClick:()=>y([]),children:a("organization.invoices_clear_selection")}),e.jsx(v,{type:"button",size:"sm",className:"org-invoices-page__pay-btn",disabled:k!==null,onClick:()=>{G(C)},children:a("organization.invoices_pay_selected")})]})]}):null,e.jsx("div",{className:"org-data-page__table-wrap",children:e.jsxs("table",{className:"org-data-page__table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:"org-invoices-page__th-check",children:e.jsx("input",{type:"checkbox",className:"org-invoices-page__checkbox",checked:V,disabled:L.length===0,"aria-label":a("organization.invoices_select_all_pending"),onChange:()=>{y(i=>Ue(i,L.map(o=>o.id),V))}})}),e.jsx("th",{scope:"col",children:a("organization.invoices_col_number")}),e.jsx("th",{scope:"col",children:a("organization.invoices_col_type")}),e.jsx("th",{scope:"col",children:a("organization.invoices_col_ride")}),e.jsx("th",{scope:"col",children:a("organization.invoices_col_date")}),e.jsx("th",{scope:"col",className:"org-data-page__th-num",children:a("organization.invoices_col_amount")}),e.jsx("th",{scope:"col",children:a("organization.invoices_col_status")}),e.jsx("th",{scope:"col",className:"org-data-page__th-actions",children:a("organization.invoices_col_actions")})]})}),e.jsx("tbody",{children:E.length===0?e.jsx("tr",{children:e.jsx("td",{className:"org-data-page__empty-cell",colSpan:8,children:he})}):E.map(i=>{const o=Z(i.document_type),c=K(i.status),f=h.includes(i.id),m=c==="pending";return e.jsxs("tr",{className:f?"org-invoices-page__row--selected":void 0,children:[e.jsx("td",{className:"org-invoices-page__td-check",children:e.jsx("input",{type:"checkbox",className:"org-invoices-page__checkbox",checked:f,disabled:!m,"aria-label":a("organization.invoices_select_aria",{number:i.invoice_number}),onChange:()=>{m&&y(S=>Ae(S,i.id))}})}),e.jsx("td",{className:"org-data-page__ref",children:i.invoice_number}),e.jsx("td",{children:e.jsx("span",{className:`org-course-badge org-course-badge--payment-${o==="proforma"?"proforma_issued":"invoice_issued"}`,children:a(`organization.invoices_type_${o}`)})}),e.jsx("td",{className:"org-data-page__cell-muted",children:me(i)}),e.jsx("td",{className:"org-data-page__cell-muted org-courses-page__date",children:q(i.issued_at,n.language)}),e.jsx("td",{className:"org-data-page__cell-num",children:ge(i)}),e.jsx("td",{children:e.jsx("span",{className:`org-course-badge org-course-badge--payment-${c==="paid"?"paid":"proforma_issued"}`,children:a(`organization.invoices_status_${c}`)})}),e.jsx("td",{className:"org-data-page__cell-actions",children:e.jsx(Te,{row:i,viewingId:z,payingId:k,onViewPdf:pe,onPay:S=>{G([S])}})})]},i.id)})})]})}),e.jsx(ve,{total:re,page:te,lastPage:ce,pageSize:se,from:le,to:de,onPageChange:T,onPageSizeChange:oe}),e.jsx($e,{invoices:N,isOpen:N.length>0,onOpenChange:i=>{i||d([])},onPaid:i=>{$(),y([]),i&&b(!0)}}),e.jsx(Oe,{isOpen:F,onOpenChange:b})]})};export{ta as default};

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.