PageSourceSearch

https://genesissa.com/_nuxt/ClUiUsvm.js

js genesissa.com collected 2026-10-02 01:32:08 UTC 25,867 bytes, 1 lines download raw bytes

1import{_ as ae}from"./DD0bMvq5.js";import{x as l,u as e,bc as i,M as K,cd as R,bS as ie,bm as f,co as he,b7 as te,H as g,bO as t,B as w,bE as n,w as h,b as P,bo as F,v as re,e as oe,cr as X,T as ge,s as D,a_ as U,cu as Z,bt as ye,cs as H,cj as Q,cf as we,bQ as se,bp as ke,bV as $e}from"./BqRK_f-2.js";/* empty css        *//* empty css        *//* empty css        */import{u as le}from"./vDsoNGR7.js";import{u as Be}from"./BDIZ2f6c.js";import{r as Ce}from"./CeyAskHA.js";import{r as Te}from"./DZurrT1J.js";import{r as Ne}from"./D514lIRJ.js";import{r as Se}from"./DftyShu9.js";import{r as Ee}from"./Btsr2atu.js";import{r as De}from"./DJOCsDZD.js";import{E as Me}from"./nlMPApAa.js";import{u as Ie}from"./BzfP4aJY.js";import{r as qe}from"./2eavgsaj.js";import{r as ze}from"./Bozzgdra.js";import"./BhFJ2G4y.js";import"./e5v6qK9R.js";import"./DXek99um.js";function ne(c,r){return i(),l("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 7.5 7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5"})])}const Ae={class:"space-y-4"},je={class:"flex items-center justify-end mb-4"},Ve={key:0,class:"flex items-center justify-center py-8 rounded-xl border border-[var(--border)] bg-[var(--surface-2)]"},Pe={class:"ml-3 text-sm text-[var(--muted)]"},Oe={key:1,class:"rounded-xl border border-[var(--border)] bg-[var(--surface-2)] p-8 text-center"},Le={class:"text-sm text-[var(--muted)]"},Ue={key:0},Fe={key:2,class:"overflow-x-auto rounded-xl border border-[var(--border)] bg-[var(--surface-2)]"},He={class:"w-full border-collapse"},Ge={class:"border-b border-[var(--border)] bg-[var(--surface-2)]"},Qe={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)] w-12"},Xe={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Je={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Ke={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Re={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},We={key:0,class:"px-4 py-3 text-right text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Ye={class:"divide-y divide-[var(--border)]"},Ze=["draggable","onDragstart","onDragover","onDrop"],ea={class:"px-4 py-3 text-sm text-[var(--subtle)] cursor-move"},aa={class:"px-4 py-3 text-sm font-medium text-[var(--text)]"},ta={class:"px-4 py-3 text-sm text-[var(--text)]"},ra={class:"px-4 py-3 text-sm text-[var(--text)]"},oa={class:"px-4 py-3 text-sm"},sa={key:0,class:"px-4 py-3 text-sm text-right"},na={class:"flex items-center justify-end gap-2"},ia=["onClick","title"],la=["onClick","title"],da=["onClick","title"],ca={class:"flex items-center justify-between px-6 py-4 border-b border-[var(--border)]"},ua={class:"text-lg font-bold text-[var(--text)]"},va={class:"px-6 py-4 space-y-4"},pa={class:"space-y-2"},ba={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},ma=["placeholder"],xa={key:0,class:"text-xs text-red-500"},fa={class:"space-y-2"},_a={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},ha={class:"relative"},ga=["placeholder"],ya={key:0,class:"text-xs text-red-500"},wa={class:"space-y-2"},ka={class:"block text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},$a={class:"relative"},Ba=["placeholder"],Ca={key:0,class:"text-xs text-red-500"},Ta={class:"flex items-center gap-3 cursor-pointer"},Na={class:"text-sm font-medium text-[var(--text)]"},Sa={class:"modal-bandeira-footer px-6 py-4 border-t border-[var(--border)] bg-[var(--surface-2)]/50"},Ea={class:"flex items-center justify-end gap-3"},Da=["disabled"],Ma=["disabled"],Ia={key:0,class:"animate-spin h-4 w-4 border-2 border-white border-t-transparent rounded-full"},qa=K({__name:"BandeirasCartaoManager",props:{barbeariaId:{},readonly:{type:Boolean,default:!1}},setup(c){const{tn:r}=R(),o=c,x=le(),u=ie(),{formatarTaxa:b,formatarTaxaParaInput:_,converterTaxaDeInput:$,validarPercentual:B}=Be(),O=f(!1),C=f(!1),y=f(!1),M=f(!1),z=f(null),T=f(""),N=f(""),k=f(""),S=f(null),A=f(null),j=f([]),d=f({barbearia_id:o.barbeariaId,nome:"",percentual_credito:0,percentual_debito:0,ativo:!0,ordem:0}),m=D({get:()=>_(d.value.percentual_credito),set:s=>{d.value.percentual_credito=$(s||0),N.value=""}}),V=D({get:()=>_(d.value.percentual_debito),set:s=>{d.value.percentual_debito=$(s||0),k.value=""}}),v=D(()=>x.bandeirasPorBarbearia(o.barbeariaId)),I=D(()=>j.value.length>0?j.value:[...v.value].sort((s,a)=>s.ordem-a.ordem||s.nome.localeCompare(a.nome))),W=D(()=>d.value.nome.trim()!==""&&B(m.value)&&B(V.value)),L=async()=>{O.value=!0;try{await x.loadBandeiras(o.barbeariaId,!1),j.value=[]}catch(s){console.error("Erro ao carregar bandeiras:",s),u.addNotification({type:"error",message:r("Erro ao carregar bandeiras")})}finally{O.value=!1}},de=()=>{y.value=!1,z.value=null,d.value={barbearia_id:o.barbeariaId,nome:"",percentual_credito:0,percentual_debito:0,ativo:!0,ordem:v.value.length>0?Math.max(...v.value.map(s=>s.ordem))+1:0},T.value="",N.value="",k.value="",C.value=!0},ce=s=>{y.value=!0,z.value=s,d.value={barbearia_id:s.barbearia_id,nome:s.nome,percentual_credito:s.percentual_credito,percentual_debito:s.percentual_debito,ativo:s.ativo,ordem:s.ordem},T.value="",N.value="",k.value="",C.value=!0},J=()=>{C.value=!1,y.value=!1,z.value=null,T.value="",N.value="",k.value="",d.value={barbearia_id:o.barbeariaId,nome:"",percentual_credito:0,percentual_debito:0,ativo:!0,ordem:0}},ue=()=>{T.value="",N.value="",k.value="";let s=!0;return d.value.nome.trim()||(T.value="Nome é obrigatório",s=!1),B(m.value)||(N.value="Taxa deve estar entre 0% e 100%",s=!1),B(V.value)||(k.value="Taxa deve estar entre 0% e 100%",s=!1),s},ve=async()=>
1{if(ue()){M.value=!0;try{y.value&&z.value?(await x.updateBandeira(z.value.id,d.value),u.addNotification({type:"success",message:r("Bandeira atualizada com sucesso!")})):(await x.createBandeira(d.value),u.addNotification({type:"success",message:r("Bandeira criada com sucesso!")})),J(),await L()}catch(s){if(console.error("Erro ao salvar bandeira:",s),s?.response?.data?.message){const a=s.response.data.message;a.includes("nome")||a.includes("Nome")?T.value=a:a.includes("credito")||a.includes("crédito")?N.value=a:a.includes("debito")||a.includes("débito")?k.value=a:u.addNotification({type:"error",message:a||"Erro ao salvar bandeira"})}else u.addNotification({type:"error",message:r("Erro ao salvar bandeira")})}finally{M.value=!1}}},pe=async s=>{try{await x.updateBandeira(s.id,{ativo:!s.ativo}),u.addNotification({type:"success",message:`Bandeira ${s.ativo?"desativada":"ativada"} com sucesso!`}),await L()}catch(a){console.error("Erro ao atualizar status da bandeira:",a),u.addNotification({type:"error",message:r("Erro ao atualizar status da bandeira")})}},be=async s=>{try{await Me.confirm(`Tem certeza que deseja deletar a bandeira "${s.nome}"? Esta ação não pode ser desfeita.`,"Confirmar Exclusão",{confirmButtonText:r("Sim, deletar"),cancelButtonText:r("Cancelar"),type:"warning"}),await x.deleteBandeira(s.id),u.addNotification({type:"success",message:r("Bandeira deletada com sucesso!")}),await L()}catch(a){if(a!=="cancel"){console.error("Erro ao deletar bandeira:",a);const p=a?.response?.data?.message||"Erro ao deletar bandeira. A bandeira pode estar em uso.";u.addNotification({type:"error",message:p})}}},me=(s,a)=>{o.readonly||(S.value=a,s.dataTransfer&&(s.dataTransfer.effectAllowed="move",s.dataTransfer.setData("text/html","")),j.value=[...I.value])},xe=(s,a)=>{o.readonly||S.value===null||(s.preventDefault(),s.dataTransfer&&(s.dataTransfer.dropEffect="move"),A.value=a)},fe=async(s,a)=>{if(o.readonly||S.value===null)return;s.preventDefault();const p=S.value;if(p===a){A.value=null,S.value=null;return}const E=[...j.value],[q]=E.splice(p,1);E.splice(a,0,q),E.forEach((G,Y)=>{G.ordem=Y}),j.value=E;try{const G=E.map(Y=>Y.id);await x.updateBandeiraOrder(o.barbeariaId,G),await L()}catch(G){console.error("Erro ao atualizar ordem:",G),u.addNotification({type:"error",message:r("Erro ao atualizar ordem das bandeiras")}),await L()}A.value=null,S.value=null},_e=()=>{S.value=null,A.value=null};return he(()=>o.barbeariaId,L,{immediate:!0}),te(L),(s,a)=>(i(),l("div",Ae,[e("div",je,[c.readonly?h("",!0):(i(),l("button",{key:0,type:"button",onClick:de,class:"inline-flex items-center justify-center gap-2 px-4 py-2 rounded-xl btn-primary-gradient text-sm font-semibold transition duration-200 hover:brightness-110 dark:hover:shadow-[var(--glow)]"},[g(t(Ce),{class:"h-4 w-4"}),w(" "+n(t(r)("Adicionar Bandeira")),1)]))]),O.value?(i(),l("div",Ve,[a[5]||(a[5]=e("div",{class:"animate-spin h-6 w-6 border-2 border-[var(--border)] border-t-[var(--accent)] rounded-full"},null,-1)),e("span",Pe,n(t(r)("Carregando bandeiras...")),1)])):v.value.length===0?(i(),l("div",Oe,[e("p",Le,[w(n(t(r)("Nenhuma bandeira cadastrada.")),1),c.readonly?h("",!0):(i(),l("span",Ue,n(t(r)('Clique em "Adicionar Bandeira" para começar.')),1))])])):(i(),l("div",Fe,[e("table",He,[e("thead",null,[e("tr",Ge,[e("th",Qe,[g(t(ne),{class:"h-4 w-4 inline"})]),e("th",Xe,n(t(r)("Nome")),1),e("th",Je,n(t(r)("Taxa Crédito")),1),e("th",Ke,n(t(r)("Taxa Débito")),1),e("th",Re,n(t(r)("Status")),1),c.readonly?h("",!0):(i(),l("th",We,n(t(r)("Ações")),1))])]),e("tbody",Ye,[(i(!0),l(P,null,F(I.value,(p,E)=>(i(),l("tr",{key:p.id,draggable:!c.readonly&&p.ativo,onDragstart:q=>me(q,E),onDragover:Z(q=>xe(q,E),["prevent"]),onDrop:q=>fe(q,E),onDragend:_e,class:U(["transition-colors",S.value===E?"opacity-50":"",A.value===E?"bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]":"hover:bg-[color-mix(in_srgb,var(--accent)_8%,transparent)] dark:hover:bg-[rgba(255,255,255,0.06)]",p.ativo?"":"opacity-60"])},[e("td",ea,[g(t(ne),{class:"h-4 w-4"})]),e("td",aa,n(p.nome),1),e("td",ta,n(t(b)(p.percentual_credito)),1),e("td",ra,n(t(b)(p.percentual_debito)),1),e("td",oa,[e("span",{class:U(["inline-flex items-center rounded-full px-2.5 py-1 text-[11px] font-bold",p.ativo?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400":"bg-red-500/10 text-red-600 dark:text-red-400"])},n(p.ativo?"Ativa":"Inativa"),3)]),c.readonly?h("",!0):(i(),l("td",sa,[e("div",na,[e("button",{type:"button",onClick:q=>ce(p),class:"p-1.5 rounded-xl text-[var(--accent)] hover:bg-[var(--accent-soft)] transition duration-200",title:t(r)("Editar")},[g(t(Te),{class:"h-4 w-4"})],8,ia),e("button",{type:"button",onClick:q=>pe(p),class:U(["p-1.5 rounded-xl transition duration-200",p.ativo?"text-[var(--muted)] hover:bg-[var(--surface-2)]":"text-emerald-500 hover:bg-emerald-500/10"]),title:p.ativo?"Desativar":"Ativar"},[(i(),re(ye(p.ativo?t(Ne):t(Se)),{class:"h-4 w-4"}))],10,la),e("button",{type:"button",onClick:q=>be(p),class:"p-1.5 rounded-xl text-red-500 hover:bg-red-500/10 transition duration-200",title:t(r)("Deletar")},[g(t(Ee),{class:"h-4 w-4"})],8,da)])]))],42,Ze))),128))])])])),(i(),re(ge,{to:"body"},[g(oe,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-150","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:X(()=>[C.value?(i(),l("div",{key:0,class:"modal-bandeira-wrap fixed inset-0 z-50 flex items-center justify-center p-4",onClick:Z(J,["
1self"])},[a[11]||(a[11]=e("div",{class:"modal-bandeira-overlay absolute inset-0 bg-black/60 backdrop-blur-sm"},null,-1)),g(oe,{"enter-active-class":"transition-all duration-200","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-150","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:X(()=>[C.value?(i(),l("div",{key:0,class:"modal-bandeira relative w-full card-glass rounded-2xl overflow-hidden max-w-[500px]",onClick:a[4]||(a[4]=Z(()=>{},["stop"]))},[e("div",ca,[e("h3",ua,n(y.value?"Editar Bandeira":"Nova Bandeira"),1),e("button",{type:"button",onClick:J,class:"p-2 rounded-xl text-[var(--muted)] hover:text-[var(--text)] glass-inner hover:bg-[var(--accent)]/10 transition duration-200"},[g(t(De),{class:"h-5 w-5"})])]),e("div",va,[e("div",pa,[e("label",ba,[w(n(t(r)("Nome da Bandeira"))+" ",1),a[6]||(a[6]=e("span",{class:"text-red-500"},"*",-1))]),H(e("input",{"onUpdate:modelValue":a[0]||(a[0]=p=>d.value.nome=p),type:"text",class:U(["w-full max-w-[420px] px-3 py-2 rounded-xl border border-[var(--border)] bg-[var(--surface-2)] text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] dark:focus-visible:shadow-[var(--glow)] transition duration-200",{"border-red-500":T.value}]),placeholder:t(r)("Ex: Visa, Mastercard, Elo")},null,10,ma),[[Q,d.value.nome]]),T.value?(i(),l("p",xa,n(T.value),1)):h("",!0)]),e("div",fa,[e("label",_a,[w(n(t(r)("Taxa de Crédito (%)"))+" ",1),a[7]||(a[7]=e("span",{class:"text-red-500"},"*",-1))]),e("div",ha,[H(e("input",{"onUpdate:modelValue":a[1]||(a[1]=p=>m.value=p),type:"number",min:"0",max:"100",step:"0.01",class:U(["w-full max-w-[140px] px-3 py-2 rounded-xl border border-[var(--border)] bg-[var(--surface-2)] text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] dark:focus-visible:shadow-[var(--glow)] transition duration-200",{"border-red-500":N.value}]),placeholder:t(r)("Ex: 3.5")},null,10,ga),[[Q,m.value,void 0,{number:!0}]]),a[8]||(a[8]=e("div",{class:"modal-bandeira-percent absolute right-3 top-2.5 text-sm"},"%",-1))]),N.value?(i(),l("p",ya,n(N.value),1)):h("",!0)]),e("div",wa,[e("label",ka,[w(n(t(r)("Taxa de Débito (%)"))+" ",1),a[9]||(a[9]=e("span",{class:"text-red-500"},"*",-1))]),e("div",$a,[H(e("input",{"onUpdate:modelValue":a[2]||(a[2]=p=>V.value=p),type:"number",min:"0",max:"100",step:"0.01",class:U(["w-full max-w-[140px] px-3 py-2 rounded-xl border border-[var(--border)] bg-[var(--surface-2)] text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)] dark:focus-visible:shadow-[var(--glow)] transition duration-200",{"border-red-500":k.value}]),placeholder:t(r)("Ex: 2.0")},null,10,Ba),[[Q,V.value,void 0,{number:!0}]]),a[10]||(a[10]=e("div",{class:"modal-bandeira-percent absolute right-3 top-2.5 text-sm"},"%",-1))]),k.value?(i(),l("p",Ca,n(k.value),1)):h("",!0)]),e("div",null,[e("label",Ta,[H(e("input",{"onUpdate:modelValue":a[3]||(a[3]=p=>d.value.ativo=p),type:"checkbox",class:"w-5 h-5 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]"},null,512),[[we,d.value.ativo]]),e("span",Na,n(t(r)("Bandeira ativa")),1)])])]),e("div",Sa,[e("div",Ea,[e("button",{type:"button",onClick:J,disabled:M.value,class:"modal-bandeira-cancelar px-4 py-2 rounded-xl border border-[var(--border)] text-[var(--text)] text-sm font-semibold hover:bg-[var(--surface-2)] transition duration-200 disabled:opacity-45 disabled:cursor-not-allowed"},n(t(r)("Cancelar")),9,Da),e("button",{type:"button",onClick:ve,disabled:M.value||!W.value,class:"inline-flex items-center justify-center gap-2 px-4 py-2 rounded-xl btn-primary-gradient text-sm font-semibold transition duration-200 hover:brightness-110 dark:hover:shadow-[var(--glow)] disabled:opacity-45 disabled:cursor-not-allowed"},[M.value?(i(),l("div",Ia)):h("",!0),w(" "+n(M.value?"Salvando...":"Salvar"),1)],8,Ma)])])])):h("",!0)]),_:1})])):h("",!0)]),_:1})]))]))}}),za=Object.assign(qa,{__name:"BandeirasCartaoManager"}),Aa=["debito","credito_avista","credito_parcelado"],ee=c=>({debito:c,credito_avista:c,credito_parcelado:c});function ja(c){return Math.round(Number(c)*1e6)/1e4}function Va(c){return Math.round(c*100)/1e4}function Pa(c,r,o){const x={"":ee("")};for(const b of o)x[b]=ee("");const u=ee("");for(const b of c||[]){if(String(b.banco_id)!==String(r))continue;const _=b.bandeira_cartao_id?String(b.bandeira_cartao_id):"";x[_]&&(x[_][b.tipo]=ja(b.percentual),b.prazo_recebimento_dias!=null&&u[b.tipo]===""&&(u[b.tipo]=Number(b.prazo_recebimento_dias)))}return{celulas:x,prazos:u}}function Oa(c){const r=[];for(const[o,x]of Object.entries(c.celulas))for(const u of Aa){const b=x[u];if(b===""||b==null)continue;const _=Number(b);if(!Number.isFinite(_)||_<0||_>100)return{taxas:[],erro:"A taxa vai de 0% a 100%."};const $=c.prazos[u];r.push({bandeira_cartao_id:o||null,tipo:u,percentual:Va(_),prazo_recebimento_dias:$===""?null:Number($)})}return{taxas:r,erro:null}}const La={class:"space-y-4"},Ua={class:"text-base font-bold text-[var(--text)]"},Fa={class:"text-sm text-[var(--muted)] mt-1 max-w-3xl"},Ha={key:0,class:"flex items-center gap-3 py-6 text-sm text-[var(--muted)]"},Ga={key:1,class:"rounded-xl border border-[var(--border)] bg-[var(--surface-2)] p-6 text-sm text-[var(--muted)]"},Qa={class:"flex flex-wrap gap-2",role:"tablist"},Xa=["aria-selected","onClick"],Ja={key:0,class:"ml-1 text-[11px] text-[var(--subtle)]"},Ka={key:0,class:"overflow-x-auto rounded-xl border border-[var(--border)] bg-[var(--surface-2)]"},Ra={class:"w-full border-collapse min-w-[560px]"},Wa={class:"border-b border-[var(--border)]"},Ya={class:"px-4 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"},Za={class:"divide-y divide-[var(--border)]"},et={class:"px-4 py-2 text-sm text-[var(--text)]"},at={key:0,class:"text-[11px] text-[var(--subtle)]"},tt={class:"relative max-w-[120px]"},rt=["onUpdate:modelValue","disabled","aria-label"],ot={class:"px-4 py-2 text-sm text-[var(--muted)]"},st={class:"text-[11px] text-[var(--subtle)]"},nt={class:"relative max-w-[120px]"},it=["onUpdate:modelValue","disabled","aria-label"],lt={class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-[var(--subtle)]"},dt={key:1,class:"flex items-center justify-end gap-3"}
1,ct={key:0,class:"text-sm text-red-500"},ut=["disabled"],vt=K({__name:"TaxasMaquininhaManager",props:{barbeariaId:{},readonly:{type:Boolean}},setup(c){const r=c,{tn:o}=R(),x=Ie(),u=le(),b=ie(),_=f(!0),$=f(!1),B=f(""),O=f([]),C=f(null),y=f(null),M=D(()=>[{tipo:"debito",rotulo:o("Débito")??""},{tipo:"credito_avista",rotulo:o("Crédito à vista")??""},{tipo:"credito_parcelado",rotulo:o("Crédito parcelado")??""}]),z=D(()=>x.bancosAtivos),T=D(()=>u.bandeirasAtivasPorBarbearia?.(r.barbeariaId)||[]),N=D(()=>{if(!y.value)return[];const d=y.value.celulas;return[{chave:"",nome:o("Qualquer bandeira")??""},...T.value.map(m=>({chave:String(m.id),nome:m.nome}))].filter(m=>d[m.chave]).map(m=>({...m,celula:d[m.chave]}))});function k(d){return O.value.filter(m=>String(m.banco_id)===String(d)).length}function S(d){C.value=d,B.value="",y.value=Pa(O.value,d,T.value.map(m=>String(m.id)))}async function A(){const d=await se(`/taxas-maquininha?barbearia_id=${r.barbeariaId}`,"GET");O.value=Array.isArray(d)?d:[]}async function j(){if(!C.value||!y.value)return;const{taxas:d,erro:m}=Oa(y.value);if(m){B.value=o(m);return}$.value=!0,B.value="";try{await se(`/taxas-maquininha/${C.value}`,"PUT",{barbearia_id:r.barbeariaId,taxas:d}),await A(),S(C.value),b.addNotification({type:"success",message:o("Taxas da maquininha salvas.")??""})}catch(V){B.value=V?.message||o("Não foi possível salvar as taxas.")}finally{$.value=!1}}return te(async()=>{try{await Promise.all([x.listarPorBarbearia(r.barbeariaId),u.loadBandeiras(r.barbeariaId,!0),A()]);const d=z.value[0];d&&S(d.id)}catch{B.value=o("Não foi possível carregar as maquininhas.")}finally{_.value=!1}}),(d,m)=>{const V=ae;return i(),l("div",La,[e("div",null,[e("h3",Ua,n(t(o)("Taxa por maquininha")),1),e("p",Fa,n(t(o)("A mesma bandeira pode custar diferente em cada maquininha, e o parcelado costuma custar mais que o à vista. A maquininha é a conta onde o dinheiro do cartão cai — a mesma que o caixa escolhe ao concluir. Célula vazia usa a taxa da bandeira.")),1)]),_.value?(i(),l("div",Ha,[m[0]||(m[0]=e("div",{class:"animate-spin h-5 w-5 border-2 border-[var(--border)] border-t-[var(--accent)] rounded-full"},null,-1)),w(" "+n(t(o)("Carregando maquininhas...")),1)])):z.value.length===0?(i(),l("div",Ga,[w(n(t(o)("Nenhuma conta cadastrada. Cadastre a conta de cada maquininha em"))+" ",1),g(V,{to:"/financeiro/bancos",class:"font-semibold text-[var(--accent)] hover:underline"},{default:X(()=>[w(n(t(o)("Bancos")),1)]),_:1}),w(" "+n(t(o)("para configurar a taxa dela.")),1)])):(i(),l(P,{key:2},[e("div",Qa,[(i(!0),l(P,null,F(z.value,v=>(i(),l("button",{key:v.id,type:"button",role:"tab","aria-selected":v.id===C.value,class:U(["px-3 py-2 rounded-xl border text-sm font-semibold transition duration-200",v.id===C.value?"border-[var(--accent)] bg-[var(--accent)]/10 text-[var(--text)]":"border-[var(--border)] bg-[var(--surface-2)] text-[var(--muted)] hover:text-[var(--text)]"]),onClick:I=>S(v.id)},[w(n(v.nome)+" ",1),k(v.id)?(i(),l("span",Ja,"· "+n(k(v.id)),1)):h("",!0)],10,Xa))),128))]),y.value?(i(),l("div",Ka,[e("table",Ra,[e("thead",null,[e("tr",Wa,[e("th",Ya,n(t(o)("Bandeira")),1),(i(!0),l(P,null,F(M.value,v=>(i(),l("th",{key:v.tipo,class:"px-3 py-3 text-left text-[11px] font-bold tracking-[0.06em] uppercase text-[var(--muted)]"}
1,n(v.rotulo),1))),128))])]),e("tbody",Za,[(i(!0),l(P,null,F(N.value,v=>(i(),l("tr",{key:v.chave||"qualquer"},[e("td",et,[w(n(v.nome)+" ",1),v.chave?h("",!0):(i(),l("p",at,n(t(o)("vale quando a bandeira não tem a sua")),1))]),(i(!0),l(P,null,F(M.value,I=>(i(),l("td",{key:I.tipo,class:"px-3 py-2"},[e("div",tt,[H(e("input",{"onUpdate:modelValue":W=>v.celula[I.tipo]=W,type:"number",inputmode:"decimal",min:"0",max:"100",step:"0.01",disabled:c.readonly,"aria-label":`${v.nome} — ${I.rotulo}`,placeholder:"—",class:"w-full pl-3 pr-7 py-1.5 rounded-lg border border-[var(--border)] bg-[var(--surface)] text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]"},null,8,rt),[[Q,v.celula[I.tipo]]]),m[1]||(m[1]=e("span",{class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-[var(--subtle)]"},"%",-1))])]))),128))]))),128)),e("tr",null,[e("td",ot,[w(n(t(o)("Prazo de recebimento"))+" ",1),e("p",st,n(t(o)("em dias; só para consulta por enquanto")),1)]),(i(!0),l(P,null,F(M.value,v=>(i(),l("td",{key:`prazo-${v.tipo}`,class:"px-3 py-2"},[e("div",nt,[H(e("input",{"onUpdate:modelValue":I=>y.value.prazos[v.tipo]=I,type:"number",inputmode:"numeric",min:"0",max:"365",step:"1",disabled:c.readonly,"aria-label":`${t(o)("Prazo de recebimento")} — ${v.rotulo}`,placeholder:"—",class:"w-full pl-3 pr-9 py-1.5 rounded-lg border border-[var(--border)] bg-[var(--surface)] text-sm text-[var(--text)] placeholder:text-[var(--subtle)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]"},null,8,it),[[Q,y.value.prazos[v.tipo]]]),e("span",lt,n(t(o)("dias")),1)])]))),128))])])])])):h("",!0),c.readonly?h("",!0):(i(),l("div",dt,[B.value?(i(),l("p",ct,n(B.value),1)):h("",!0),e("button",{type:"button",disabled:$.value,class:"inline-flex items-center gap-2 px-4 py-2 rounded-xl btn-primary-gradient text-sm font-semibold transition duration-200 hover:brightness-110 disabled:opacity-60",onClick:j},n($.value?t(o)("Salvando..."):t(o)("Salvar taxas desta maquininha")),9,ut)]))],64))])}}}),pt=Object.assign(vt,{__name:"TaxasMaquininhaManager"}),bt={class:"flex flex-col gap-2 md:flex-row md:items-end md:justify-between"},mt={class:"flex items-center gap-3"},xt={class:"text-xl lg:text-2xl font-bold text-[var(--text)] tracking-tight"},ft={class:"text-xs lg:text-sm text-[var(--muted)] mt-1"},_t={class:"flex flex-wrap items-center gap-2"},ht=K({__name:"FinanceiroBandeirasHeader",setup(c){const{tn:r}=R();return(o,x)=>{const u=ae;return i(),l("div",bt,[e("div",mt,[g(u,{to:"/financeiro",class:"p-2 rounded-xl glass-inner border border-[var(--accent)]/25 text-[var(--text)] transition duration-200 hover:bg-[var(--accent)]/10 flex-shrink-0"},{default:X(()=>[g(t(qe),{class:"h-5 w-5 lg:h-6 lg:w-6"})]),_:1}),e("div",null,[e("h1",xt,n(t(r)("Bandeiras de Cartão")),1),e("p",ft,n(t(r)("Configure as bandeiras aceitas e suas respectivas taxas")),1)])]),e("div",_t,[ke(o.$slots,"actions")])])}}}),gt=Object.assign(ht,{__name:"FinanceiroBandeirasHeader"}),yt={class:"financeiro-page min-h-screen"},wt={class:"max-w-[1320px] mx-auto px-4 md:px-6 py-4 space-y-4"},kt={key:0,class:"dashboard-card rounded-3xl border-amber-500/30 bg-amber-500/10 p-6"},$t={class:"flex items-start gap-3"},Bt={class:"text-sm font-bold text-[var(--text)] mb-1"},Ct={class:"text-sm text-[var(--muted)] mb-4"},Tt={class:"dashboard-card rounded-3xl p-4 md:p-6"},Nt={class:"dashboard-card rounded-3xl p-4 md:p-6"},Kt=K({__name:"bandeiras",setup(c){const{tn:r}=R(),o=$e(),x=D(()=>!!o.barbeariaSelecionada),u=D(()=>{const b=o.barbeariaSelecionada?.id;return b?o.barbearias.find(_=>_.id===b)||o.barbeariaSelecionada:null});return te(async()=>{try{await o.loadBarbearias()}catch{}}),(b,_)=>{const $=ae;return i(),l("div",yt,[e("div",wt,[g(gt),x.value?u.value?(i(),l(P,{key:1},[e("div",Tt,[g(za,{"barbearia-id":u.value.id},null,8,["barbearia-id"])]),e("div",Nt,[g(pt,{"barbearia-id":u.value.id},null,8,["barbearia-id"])])],64)):h("",!0):(i(),l("div",kt,[e("div",$t,[g(t(ze),{class:"h-6 w-6 text-amber-600 dark:text-amber-400 flex-shrink-0"}),e("div",null,[e("h3",Bt,n(t(r)("Nenhum estabelecimento selecionado")),1),e("p",Ct,n(t(r)("Selecione um estabelecimento para configurar as bandeiras de cartão.")),1),g($,{to:"/barbearias",class:"inline-flex items-center gap-2 px-4 py-2 rounded-xl btn-primary-gradient text-white text-sm font-semibold transition duration-200"},{default:X(()=>[w(n(t(r)("Selecionar Estabelecimento")),1)]),_:1})])])]))])])}}});
1export{Kt 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.