1import{da as c,L as It,d0 as e,a8 as Xt,b6 as ve,bb as We,bU as z,m as r,cg as G,a3 as pe,bO as fe,bN as ie,bH as Q,I as Zt,bq as v,K as st,by as re,J as Ye,R as se,an as he,q as $,c as V,bW as en,d1 as tn,bo as Fe,b7 as nn,bR as ye,cm as Ie,cN as an,Z as _e,cK as St,cJ as Et,dD as Be,dT as K,ar as J,bs as l,Y as S,aY as Se,c8 as Tt,dY as Qe,b3 as ee,S as Ge,X as w,W as U,c9 as j,y as Ke,cI as Dt,cH as At,dp as rn,aE as Ot,a6 as sn,aR as ln,aC as on,ci as R,aa as ae,bz as je,h as Je,ax as ze,b4 as Ee,bd as cn,A as Z,F as Mt,dS as Te,ay as ne,bL as Oe,aG as lt,dB as we,a1 as dn,bp as W,bK as un,dQ as Pt,dz as Xe,T as ke,bY as Nt,dA as kt,bn as ot,a9 as Lt,aH as hn,cz as mn,cC as He,cD as pn,cA as ct,dy as fn,d4 as gn,aj as xn,dt as Pe,bf as Rt,b1 as Ne,d3 as bn,dW as Cn,dU as jn,bc as vn,cR as Ze,cQ as et,cP as yn,cO as In,cM as Ft,cL as _t,bt as Le,ds as Sn,dV as En,dr as be}from"./index-SW_ThLYf.js";import{S as Tn}from"./SectionSwitcher-GtCUh2k9.js";import{p as Re,Y as te,a as tt,W as Bt,P as dt,L as ut}from"./WithListFilters-8Xf3LctL.js";import{C as me}from"./ColumnRender-BKP3ybfb.js";import{S as De}from"./ServerSideTable-BmESDTCh.js";import{C as ht}from"./ClientsModalActions-CDNmRs8y.js";import{S as nt}from"./spinner-DT_AlmYt.js";import{u as wt,M as Dn,B as An}from"./ModalAddBankConnection-BTW7EeKh.js";import{M as Ut}from"./ModalIAE-hG2apzDf.js";import"./Renders-DdmINkR2.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"bec1de57eae065682d34a4d342eab128bf62b115"}}catch{}})();try{(function(){var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new t.Error().stack;
1n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="27118373-fad3-4561-9f21-f1bb4af98714",t._sentryDebugIdIdentifier="sentry-dbid-27118373-fad3-4561-9f21-f1bb4af98714")})()}catch{}const On=e.jsx(e.Fragment,{children:"Debes seleccionar un"}),Mn=({label:t,operator:n,options:i,value:a,onChange:s})=>e.jsx(z,{label:t,id:"select-section",placeholder:`Seleccione un ${n}`,clearable:!1,value:a,options:i,onChange:o=>s(o)});class Pn extends c.Component{constructor(n){super(n),this.clientTableV2Repository=new It,this.state={loading:!0,operators:[],errorOperators:""}}componentDidUpdate(n){this.props.id!==n.id&&this.props.id!==null&&this.loadOperators()}loadOperators=()=>{this.props.operator==="Cliente"&&(this.setState({loading:!0}),this.clientTableV2Repository.clientsList(this.props.id,this.props.type).then(n=>{this.setState({operators:n.data})}).finally(()=>this.setState({loading:!1})))};isValidated(){const n=this._validateData(),i=this._validationErrors(n);return this.setState({errorOperators:i.operators}),n.operators}_validateData(){return{operators:this.props.name!==""}}_validationErrors(n){return{operators:n.operators?"":e.jsx(Xt,{text:On+" "+this.props.operator})}}getOperatorsModal=()=>e.jsxs(ve,{id:this.props.modalId,handleCancel:this.props.handleCloseModal,isOpen:this.props.modalIsOpen,title:this.props.bodyTitle,labelAction:e.jsx(e.Fragment,{children:"Asignar"}),handleAction:()=>this.props.handleConfirmModal(this.props.id,this.props.count,this.props.name),labelCancel:e.jsx(e.Fragment,{children:"Cancelar"}),children:[e.jsx("p",{children:this.props.bodyText}),e.jsxs("div",{className:"form-group",children:[e.jsx(Mn,{label:this.props.operator,operator:this.props.operator,options:this.state.operators,value:this.props.name,onChange:this.props.updateName}),this.state.errorOperators]})]});getNoOperatorsModal=()=>e.jsxs(We,{id:this.props.modalId,isOpen:this.props.modalIsOpen,title:this.props.bodyTitle,labelAction:e.jsx(e.Fragment,{children:"Entendido"}),handleClose:()=>{this.props.handleCloseModal()},children:[e.jsx("p",{children:this.props.bodyText}),e.jsx("p",{children:e.jsx(e.Fragment,{children:"Actualmente no existe nadie con el mismo tipo de facturas."})})]});render(){return this.state.loading?null:this.state.operators!=null?this.getOperatorsModal():this.getNoOperatorsModal()}}class Nn extends c.Component{render(){return e.jsx(r,{display:"flex",gap:"xxs",justifyContent:"end",children:e.jsx(G,{text:"Más acciones",placement:"top",children:e.jsx(pe,{id:"actions-"+this.props.row.id,triggerType:"action-link",triggerProps:{variant:"main",isIconOnly:!0,icon:"ellipsis-h",size:"M"},position:"right",options:[{icon:"edit",onClick:()=>this.props.handlerUpdateClient(this.props.row),children:"Editar",value:"Editar"},{icon:"trash-alt",onClick:()=>this.props.handlerDeleteClient(this.props.row),children:"Borrar",value:"Borrar"}],forceContentToBottomOnMobile:!0})})})}}const mt=({id:t="buscador-lista",value:n,handleFilterChange:i})=>e.jsx(ye,{id:t,name:"filter",value:n,placeholder:"Buscar por cliente o identificador fiscal",onChange:a=>i(a.target.value)}),Ce="Todos";class kn extends c.Component{static contextType=fe;constructor(n){super(n),this.clientsRepository=ie.instance.getClientsTableRepository(),this.clientsTableV2Repository=new It,this.clientRef=null,this.state={forceUpdate:!1,isLoading:!1,filter:"",filterIae:"all",filterYear:"all",filterTrimester:Q.all,typeClient:"all",country:"all",deleteModalIsOpen:!1,deleteClientId:null,deletePClientType:null,deleteClientHasInvoice:null,deleteModalListIsOpen:!1,clientModalOpen:!1,clientModalAction:null,clientModalId:null,client:{id:null,nombre:"",cif:"",type:null,country_id:null,provincia_id:null,poblacion_id:null,direccion:"",cp:null,nif_iva:null}}}applyDefaultFilters(){this.setState({isLoading:!0,filter:"",filterIae:"all",filterYear:"all",filterTrimester:Q.all,typeClient:"all",country:"all"})}hasDefaultFilters(){return this.state.filter===""&&this.state.filterIae==="all"&&this.state.filterYear==="all"&&this.state.filterTrimester===Q.all&&this.state.typeClient==="all"&&this.state.country==="all"}resetClient(){this.setState({client:{id:null,nombre:"",cif:"",type:null,country_id:null,provincia_id:null,poblacion_id:null,direccion:"",cp:null,nif_iva:null},errorMessage:""})}handleIaeChange=n=>{this.setState({filterIae:n,isLoading:!0})};handleYearChange=n=>{this.setState({filterYear:n,isLoading:!0})};handleTrimesterChange=n=>{this.setState({filterTrimester:n,isLoading:!0})};handleClientChange=n=>{this.setState({typeClient:n,isLoading:!0})};handleCountreChange=n=>{this.setState({country:n,isLoading:!0})};handleFilterChange=n=>{this.setState({filter:n,isLoading:!0})};setForceUpdate=n=>{this.setState({forceUpdate:n})};updateName=n=>{this.setState({client:{...this.state.client,nombre:n}})};updateCif=n=>{this.setState({client:{...this.state.client,cif:n}})};updateType=n=>{this.setState({client:{...this.state.client,type:n}})};updateCountryId=n=>{this.setState({client:{...this.state.client,country_id:n}})};updateProvinceId=(n,i)=>{this.setState({client:{...this.state.client,provincia_id:n}},i)};updateTownId=n=>{this.setState({client:{...this.state.client,poblacion_id:n}})};updateCp=(n,i=()=>null)=>{this.setState({client:{...this.state.client,cp:n}},i)};updateDirection=n=>{this.setState({client:{...this.state.client,direccion:n}})};handleAddClient=()=>{this.resetClient(),this.setState({clientModalAction:ht.ADD,clientModalOpen:!0})};
1handleUpdateClient=n=>new Zt().getCliente(n.id).then(i=>{this.setState({clientModalAction:ht.EDIT,clientModalId:n.id,client:i.data},()=>{this.setState({clientModalOpen:!0})})});handleDeleteClient=n=>{parseInt(n.count)===0?this.setState({deleteModalIsOpen:!0,deleteClientId:n.id,deleteClientType:null,deleteClientCount:null}):this.setState({deleteModalListIsOpen:!0,deleteClientId:n.id,deleteClientType:n.type,deleteClientCount:n.count})};handleDeleteClientWithInvoice=(n,i,a)=>{this.clientRef.isValidated()&&(this.closeModal(),this.setState({deleteModalIsOpen:!0,deleteClientId:n,deleteClientCount:i,deleteClientNewId:a}))};closeModal=()=>{this.setState({clientModalOpen:!1,clientModalId:null,clientModalAction:null,addModalIsOpen:!1,editModalIsOpen:!1,deleteModalIsOpen:!1,deleteModalListIsOpen:!1,deleteClientId:null})};addClient=()=>{this.clientsRepository.addClient(this.state.client).then(()=>{this.closeModal(),this.resetClient(),this.setForceUpdate(!0),v.notifySuccess()})};updateClient=()=>{this.clientsRepository.updateClient(this.state.client).then(()=>{this.closeModal(),this.setForceUpdate(!0),v.notifySuccess()})};deleteClient=()=>{this.state.deleteClientCount!=null?this.clientsTableV2Repository.changeInvoicesClientOwner(this.state.deleteClientId,this.state.deleteClientNewId).then(()=>{this.closeModal(),this.setForceUpdate(!0),v.success({title:"Cliente borrado correctamente"})}).catch(()=>v.error({title:"No ha sido posible borrar el cliente",message:"Por favor, vuelve a intentarlo."})):this.clientsTableV2Repository.deleteClient(this.state.deleteClientId).then(()=>{this.closeModal(),this.setForceUpdate(!0),v.success({title:"Cliente borrado correctamente"})}).catch(()=>v.error({title:"No ha sido posible borrar el cliente",message:"Por favor, vuelve a intentarlo."}))};setRowClass=n=>n.count===0?"client-without":"client-with";replaceStringAllToEmpty(n){return n==="all"?"":n}handlePrintList=n=>{const i=this.state;this.setState({showPopupHasInvoice:!0}),window.location=new st().getUrlPrintList(n,i.filterYear,i.filterTrimester,i.typeClient,i.country,i.filterIae,i.filter)};clientHandler=(n,i)=>e.jsx(re,{label:Ye[i.type],type:"icon"});render(){return e.jsxs("div",{style:{height:"100%"},children:[e.jsxs(se,{height:"100%",children:[e.jsxs(he,{mb:"lg",justifyContent:"space-between",gridTemplateColumns:["1fr","max-content max-content"],children:[e.jsx("div",{children:e.jsx($,{label:"Añadir Cliente",icon:"plus",onClick:this.handleAddClient})}),e.jsx(r,{children:e.jsx(r,{display:{_:"none",largeScreen:"block"},width:"370px",children:e.jsx(mt,{value:this.state.filter,handleFilterChange:this.handleFilterChange})})})]}),e.jsxs(r,{display:"flex",flexWrap:{_:"wrap",largeScreen:"nowrap"},gap:"xs",mb:"md",children:[e.jsxs(r,{gap:"sm",display:{_:"flex",largeScreen:"none"},flex:"1 1 100%",children:[e.jsx(r,{flex:"5",children:e.jsx(mt,{id:"buscador-lista-movil",value:this.state.filter,handleFilterChange:this.handleFilterChange})}),!this.hasDefaultFilters()&&e.jsx(V,{size:"L",label:"Borrar filtros",onClick:()=>this.applyDefaultFilters()}),Re(this.handlePrintList,!1)]}),e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por año",name:"year",id:"year",value:this.replaceStringAllToEmpty(this.state.filterYear),options:te.getOptionsList(),clearable:!1,placeholder:Ce,onChange:n=>this.handleYearChange(n)})}),e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por trimestre",name:"trimester",id:"trimester",value:this.replaceStringAllToEmpty(this.state.filterTrimester),options:Q.getOptionsList(),clearable:!1,placeholder:Ce,onChange:n=>this.handleTrimesterChange(n)})}),this.context.userStatus.iaes.length>1?e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(tt,{label:"Por IAE",ref:n=>{this.refInvoiceIae=n},section:"ingresos",tab:"clientes",id:"select-iae",placeholder:Ce,iae:this.replaceStringAllToEmpty(this.state.filterIaevalue),updateIae:this.handleIaeChange,...this.props})}):null,e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por tipo cliente",name:"cliente",id:"cliente",value:this.replaceStringAllToEmpty(this.state.typeClient),options:[{label:"Todos los clientes",value:"all"},...Object.keys(Ye).map(n=>({label:Ye[n],value:n}))],clearable:!1,placeholder:Ce,onChange:n=>this.handleClientChange(n)})}),e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(en,{allItem:{label:"Todos los paises",value:"all"},label:"Por paÃs cliente",name:"country",id:"country",value:this.replaceStringAllToEmpty(this.state.country),placeholder:Ce,onChange:n=>this.handleCountreChange(n)})}),e.jsxs(r,{display:{_:"none",largeScreen:"flex"},gap:"xs",alignItems:"flex-end",children:[!this.hasDefaultFilters()&&e.jsx(V,{size:"L",label:"Borrar filtros",onClick:()=>this.applyDefaultFilters()}),Re(this.handlePrintList,!1)]})]}),e.jsx(r,{children:e.jsx(De,{id:"incomes-operators-list-table",handleGet:(n,i,a,s)=>new st().listaClientes(n,i,a,s),updateStatus:this.state.forceUpdate,setForceUpdate:this.setForceUpdate,setRowClass:this.setRowClass,getData:()=>this.setState({isLoading:!1}
1),CustomEmptyData:n=>e.jsx(e.Fragment,{children:this.state.isLoading?e.jsx(nt,{}):this.hasDefaultFilters()?n():e.jsx(Fe,{resetSearch:()=>this.applyDefaultFilters()})}),filters:{filter:this.state.filter,filterIae:this.state.filterIae,year:this.state.filterYear,period:this.state.filterTrimester,type:this.state.typeClient,country:this.state.country},orders:[{data:"nombre",order:"asc"}],cols:[{name:"NOMBRE DE CLIENTE",data:"nombre",md:2},{name:"ID FISCAL",data:"cif",md:2},{name:"TIPO",data:null,md:2,handler:this.clientHandler},{name:"PAÃS",data:"country",md:2,handler:(n,i)=>{const a=tn.find(s=>s.code===i.country);if(a?.code&&a?.name)return e.jsx(re,{label:a?.name,type:"flag",value:a?.code})}},{name:"Nº DE FACTURAS",data:"count",md:2,class:"text-right"},{name:"TOTAL FACTURADO",data:"total",md:2,class:"text-right",handler:me.renderCurrency},{name:"",data:null,md:2,handler:(n,i)=>e.jsx(Nn,{setForceUpdate:this.setForceUpdate,row:i,handlerUpdateClient:this.handleUpdateClient,handlerDeleteClient:this.handleDeleteClient,...this.props})}],...this.props})})]}),e.jsx(nn,{cliente:this.state.client,open:this.state.clientModalOpen,closeModal:this.closeModal,onSuccess:()=>this.setForceUpdate(!0)}),e.jsx(ve,{id:"modalDeleteCall",isOpen:this.state.deleteModalIsOpen,onHide:this.closeModal,title:e.jsx(e.Fragment,{children:"Borrar cliente"}),labelAction:e.jsx(e.Fragment,{children:"Borrar cliente"}),handleAction:this.deleteClient,labelCancel:e.jsx(e.Fragment,{children:"Cancelar"}),handleCancel:this.closeModal,destructiveAction:!0,children:e.jsx(r,{mb:"15px",children:e.jsx("p",{children:e.jsx(e.Fragment,{children:"¿Estás seguro que quieres borrar este cliente?"})})})}),e.jsx(Pn,{modalIsOpen:this.state.deleteModalListIsOpen,handleConfirmModal:this.handleDeleteClientWithInvoice,handleCloseModal:this.closeModal,updateName:this.updateName,operator:"Cliente",id:this.state.deleteClientId,type:this.state.deleteClientType,count:this.state.deleteClientCount,name:this.state.client.nombre,bodyTitle:e.jsx(e.Fragment,{children:"IMPORTANTE"}),bodyText:e.jsx(e.Fragment,{children:"No puedes borrar este cliente porque tiene facturas. Tienes que asignar las facturas del tipo de este cliente a otro cliente."}),ref:n=>this.clientRef=n,...this.props})]})}}class Ln extends Ie{getList(n){const i=an(n);return this.get(`/inv/bank-transactions${i}`)}getById(n){return this.get(`/inv/bank-transactions/${n}`)}matchInvoice(n,i){return this.patch(`/inv/bank-transactions/${n}`,JSON.stringify({matchingInvoice:{id:i}}))}dismissSuggestions(n,i){return this.patch(`/inv/bank-transactions/${n}/suggestions`,JSON.stringify({suggestions:i}))}}const ge=()=>new Ln;class Rn extends _e{constructor(n){super(),this.repository=n}getTransactionsList(n){return this.execute(()=>this.repository.getList(n),{shouldThrowError:!0,bodyAsData:!0})}getTransactionById(n){return this.execute(()=>this.repository.getById(n),{shouldThrowError:!0,bodyAsData:!0})}getTotalCountSuggestions(){return this.execute(()=>this.repository.getList({limit:0,suggestionsOnly:1}),{shouldThrowError:!0,bodyAsData:!0})}matchInvoice(n,i){return this.execute(()=>this.repository.matchInvoice(n,i),{shouldThrowError:!0})}dismissSuggestions(n,i){return this.execute(()=>this.repository.dismissSuggestions(n,i),{shouldThrowError:!0})}}const xe=t=>new Rn(t);function Fn(t){return{id:t.id,documentNumber:t.documentNumber,date:t.issueDate,clientName:t.client.name,total:t.total}}function _n(t){return{id:t.id,date:t.date,concept:t.concept,bankAccountName:t.bankAccountName,amount:t.amount,documentNumber:t.matchingInvoice?.documentNumber,documentId:t.matchingInvoice?.id,hasSuggestions:t.hasSuggestions}}function Bn(t){return{id:t.id,date:t.date,concept:t.concept,bankAccountName:t.bankAccountName,amount:t.amount,documentNumber:t.matchingInvoice?.documentNumber,documentId:t.matchingInvoice?.id,hasSuggestions:t.suggestions.length>0,suggestions:t.suggestions.map(Fn)}}const Ue=async t=>{try{const i=await St(Et()).getSalesDocumentPDF(t),a=URL.createObjectURL(i?.data);window.open(a,"_blank","noopener,noreferrer"),setTimeout(()=>URL.revokeObjectURL(a),1e3)}catch{v.error({title:"No se ha podido abrir la factura",message:"Por favor, vuelve a intentarlo."})}},wn=()=>{const t=xe(ge()),n=Be({queryKey:["bank-transactions","suggestions-count"],fetchFn:()=>t.getTotalCountSuggestions()});return{suggestionsCount:n.data?.data?.count??0,isLoading:n.isLoading}},Un=()=>{const{push:t}=K();return e.jsxs(r,{alignCenter:!0,maxWidth:800,m:"auto",children:[e.jsx(J,{fontSize:64,name:"wind",mb:"md",textColor:"semantic.text.status.emptyDisabled"}),e.jsxs(r,{mb:"md",children:[e.jsx(l,{bold:!0,size5:!0,mb:"xs",children:"No hay movimientos bancarios para mostrar"}),e.jsx(l,{textColor:"semantic.text.general.text2",children:"Es posible que tus conexiones bancarias no estén actualizadas."})]}),e.jsx($,{label:"Ir a Inicio y actualizar mis conexiones",onClick:()=>t("/inicio"),variant:"secondary",size:"L"})]})},qn=({onShowAll:t})=>e.jsxs(r,{alignCenter:!0,maxWidth:800,m:"auto",children:[e.jsx(J,{fontSize:64,name:"check-circle",mb:"md",textColor:"semantic.text.status.link"}),e.jsxs(r,{mb:"md",children:[e.jsx(l,{bold:!0,size5:!0,mb:"xs",children:"No hay sugerencias pendientes de validar"}),e.jsx(l,{textColor:"semantic.text.general.text2",children:"Ya has revisado todas las sugerencias de cobros disponibles."})]}),e.jsx($,{label:"Ver todos los cobros",onClick:t,variant:"secondary",size:"L"})]}),Vn=({suggestionsOnly:t,suggestionsCount:n,handleChange:i})=>e.jsx(r,{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"sm",mb:"sm",children:e.jsx(Tt,{id:"suggestions-only-toggle",label:`Sugerencias para validar (${n})`,labelPosition:"left",checked:t,onChange:a=>i(a.target.checked)})}),Yn=({suggestionsOnly:t,onSuggestionsOnlyChange:n,forceUpdate:i,setForceUpdate:a,onValidar:s,onRelacionar:o})=>{const{suggestionsCount:d}=wn(),[u,h]=c.useState(null),[f,m]=c.useState(!1),b=g=>{m(!0),n(g)},p=!f&&u===0&&!t,C=!f&&u===0&&t;return e.jsxs(r,{children:[!p&&e.jsx(Vn,{suggestionsOnly:t,suggestionsCount:d,handleChange:b}),e.jsx(De,{id:"bank-movements-table",CustomEmptyData:e.jsx(e.Fragment,{children:!f&&(p?e.jsx(Un,{}):C?e.jsx(qn,{onShowAll:()=>b(!1)}):void 0)}),handleGet:async(g,x,E,I)=>{const A=xe(ge());try{const y=I?.length>0?`${I[0].order==="asc"?"+":"-"}${I[0].data}`:void 0,O=await A.getTransactionsList({limit:x,offset:g*x,sort:y||void 0,suggestionsOnly:E.suggestionsOnly?1:void 0}),T=O?.data?.data?.map(_n)??[],N=O?.data?.count??0;return h(N),{data:{rows:T,totalRows:N}}}catch{v.error({title:"Error al cargar los movimientos",message:"Por favor, vuelve a intentarlo."}),h(null)}finally{m(!1)}},filters:{suggestionsOnly:t},updateStatus:i,setForceUpdate:a,cols:[{name:"FECHA",data:"date",width:"10%",handler:(g,x)=>
1S.convertDateFormatType(x.date,{formatFrom:"yyyy-MM-dd",formatTo:"dd-MM-yyyy"})},{name:"CONCEPTO",data:"concept",width:"40%"},{name:"BANCO",data:"bankAccountName",width:"15%"},{name:"IMPORTE",data:"amount",width:"10%",handler:(g,x)=>e.jsx(r,{style:{textAlign:"right"},children:me.renderCurrency(void 0,void 0,x.amount)})},{name:"Nº DOCUMENTO",data:"documentNumber",titlePosition:"text-center",width:"15%",orderable:!1,handler:(g,x)=>x.documentNumber?e.jsx(r,{display:"flex",justifyContent:"center",children:e.jsx(Se,{underline:!0,styles:{fontWeight:400},onClick:()=>Ue(x.documentId),children:x.documentNumber})}):x.hasSuggestions?e.jsx(r,{display:"flex",justifyContent:"center",children:e.jsx(V,{size:"M",isIconOnly:!0,icon:"smart","aria-label":"Validar sugerencia",onClick:()=>s(x.id),tooltip:{placement:"top",text:"Validar sugerencia"}})}):null},{name:"",data:null,width:"1%",md:2,handler:(g,x)=>x.documentNumber?e.jsx(r,{minHeight:"32px"}):e.jsx(G,{text:"Más acciones",placement:"top",children:e.jsx(pe,{id:"actions-"+x.id,triggerType:"action-link",triggerProps:{variant:"main",isIconOnly:!0,icon:"ellipsis-h",size:"M"},position:"right",forceContentToBottomOnMobile:!0,options:[!x.documentNumber&&x.hasSuggestions?{icon:"smart",onClick:()=>s(x.id),children:"Validar sugerencia",value:"validar"}:void 0,{icon:"exchange-alt",onClick:()=>o(x.id),children:"Relacionar con un ingreso",value:"relacionar"}].filter(E=>!!E)})})}]})]})},at=()=>{const t=xe(ge());return{matchBankTransaction:Qe({queryKey:["bank-transactions"],mutationFn:({transactionId:i,matchingInvoiceId:a})=>t.matchInvoice(i,a)})}},Hn=()=>{const t=xe(ge());return{dismissSuggestions:Qe({queryKey:["bank-transactions"],mutationFn:({transactionId:i,suggestions:a})=>t.dismissSuggestions(i,a)})}},qt=t=>{const n=xe(ge()),i=Be({queryKey:["bank-transactions",t],fetchFn:()=>n.getTransactionById(t),config:{enabled:!!t,select:a=>({...a,data:a?.data?Bn(a.data):null})}});return{transaction:i.data?.data??null,isLoading:i.isLoading,isError:i.error}},zn=({transactionId:t,onClose:n,onSuccess:i})=>{const{transaction:a,isLoading:s}=qt(t),[o,d]=c.useState(a?.suggestions[0]?.id??""),{matchBankTransaction:u}=at(),{dismissSuggestions:h}=Hn(),f=()=>{o&&u.mutate({transactionId:t,matchingInvoiceId:o},{onSuccess:()=>{v.success({title:"Sugerencia de ingreso validada",message:"El movimiento bancario se ha vinculado con el ingreso seleccionado."}),i()},onError:()=>{v.error({title:"No ha sido posible validar la sugerencia",message:"Por favor, vuelve a intentarlo."})}})},m=()=>{if(!a)return;const C=a.suggestions.map(g=>({id:g.id,dismissed:!0}));h.mutate({transactionId:t,suggestions:C},{onSuccess:()=>{v.notifyFeedBack({title:"Sugerencia de ingreso descartada",message:"Seguiremos buscando nuevos posibles ingresos para este movimiento. "}),i()},onError:()=>{v.error({title:"No ha sido posible descartar la sugerencia",message:"Por favor, vuelve a intentarlo."})}})},b=u.isPending||h.isPending,p=a?S.convertDateFormatType(a.date,{formatFrom:"yyyy-MM-dd",formatTo:"dd-MM-yyyy"}):"";return e.jsx(ee,{id:"ValidateSuggestionModal",title:"Validar sugerencia de ingreso",isOpen:!0,onClose:n,onAction:()=>{},variant:"medium",customFooter:e.jsxs(r,{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",children:[e.jsx(V,{size:"M",label:"Cancelar",onClick:n,isDisabled:b}),e.jsxs(r,{display:"flex",gap:"sm",children:[e.jsx($,{variant:"secondary",label:"Descartar",onClick:m,isLoading:h.isPending,isDisabled:b||s||!a}),e.jsx($,{label:"Validar",icon:"check",iconPosition:"left",onClick:f,isLoading:u.isPending,isDisabled:b||s||!o})]})]}),children:s||!a?e.jsx(r,{minHeight:200,display:"flex",alignItems:"center",justifyContent:"center",children:e.jsx(Ge,{text:"Cargando..."})}):e.jsxs(e.Fragment,{children:[e.jsxs(r,{mb:"md",children:[e.jsx(l,{fontSize:"md",bold:!0,mb:"sm",children:"Cobro pendiente:"}),e.jsxs(w,{fluid:!0,children:[e.jsxs(w.Header,{children:[e.jsx(w.Icon,{name:"money-withdraw"}),e.jsx(w.Title,{children:e.jsxs(r,{flex:1,display:"flex",justifyContent:"space-between",children:[e.jsx("div",{children:a.concept}),e.jsx("div",{children:U(a.amount)})]})})]}),e.jsxs(w.Content,{children:[e.jsx(l,{textColor:"semantic.text.status.entered",children:a.bankAccountName}),e.jsx(l,{textColor:"semantic.text.status.entered",children:p})]})]})]}),e.jsxs(r,{children:[e.jsx(l,{fontSize:"md",bold:!0,mb:"sm",children:"Sugerencia de ingresos:"}),e.jsxs(j,{noMarginTop:!0,withBorder:!0,type:"simple-table",children:[e.jsxs(j.Head,{children:[e.jsx(j.Heading,{title:""}),e.jsx(j.Heading,{title:"Nº DOCUMENTO"}),e.jsx(j.Heading,{title:"FECHA"}),e.jsx(j.Heading,{title:"CLIENTE"}),e.jsx(j.Heading,{title:"TOTAL",titlePosition:"text-right"})]}),e.jsx(j.Body,{children:a.suggestions.map(C=>
1{const g=o===C.id,x=S.convertDateFormatType(C.date,{formatFrom:"yyyy-MM-dd",formatTo:"dd-MM-yyyy"});return e.jsxs(j.SelectableRow,{selected:g,onSelect:()=>d(C.id),children:[e.jsx(Ke,{checked:g,name:"selectable-table"}),e.jsx(j.Element,{children:e.jsx(Se,{underline:!0,styles:{fontWeight:400},onClick:()=>Ue(C.id),children:C.documentNumber})}),e.jsx(j.Element,{children:x}),e.jsx(j.Element,{children:e.jsx(l,{truncate:!0,maxWidth:"350px",children:C.clientName})}),e.jsx(j.Element,{align:"right",children:e.jsx(r,{children:e.jsx(l,{small:!0,bold:!0,children:U(C.total)})})})]},C.id)})})]})]})]})})};class $n{constructor(n){this.invoicesService=n}getAvailableIncomesList(n){return this.invoicesService.getInvoicesList({...n,paymentStatus:"PENDING",invoiceType:"STANDARD"})}}const Wn=(t=Dt(At()))=>new $n(t),Qn=t=>{const n=Wn(),i=Be({queryKey:["available-incomes",t.search??"",`${t.limit??""}`,`${t.offset??""}`],fetchFn:()=>n.getAvailableIncomesList(t),config:{select:a=>({...a,data:a?.data?{...a.data,data:a.data.data.map(rn)}:null})}});return{incomes:i.data?.data?.data??[],count:i.data?.data?.count??0,isLoading:i.isLoading,isError:i.error}},Gn=({onResetSearch:t})=>e.jsxs(r,{flexDirection:"column",display:"flex",justifyContent:"center",alignItems:"center",py:"xxl",children:[e.jsxs(r,{display:"flex",flexDirection:"column",alignItems:"center",gap:"xxs",alignSelf:"stretch",children:[e.jsx(J,{name:"search",fontSize:"48px",color:"semantic.text.general.text1"}),e.jsx(l,{fontSize:"sm",fontWeight:"700",textColor:"semantic.text.general.text1",textAlign:"center",children:"No se han encontrado resultados"}),e.jsx(l,{fontSize:"sm",lineHeight:"24px",textAlign:"center",textColor:"semantic.text.general.text2",children:"Prueba a usar otros criterios de búsqueda."})]}),e.jsx(r,{mt:"sm",children:e.jsx($,{type:"button",variant:"secondary",label:"Reiniciar búsqueda",onClick:t})})]}),pt=t=>S.convertDateFormatType(t,{formatFrom:"yyyy-MM-dd",formatTo:"dd-MM-yyyy"}),Kn=25,Jn=({transactionId:t,onClose:n,onSuccess:i})=>{const{transaction:a,isLoading:s}=qt(t),[o,d]=c.useState(""),[u,h]=c.useState(""),{incomes:f,isLoading:m}=Qn({search:o,limit:Kn}),{matchBankTransaction:b}=at(),p=b.isPending,C=()=>{u&&b.mutate({transactionId:t,matchingInvoiceId:u},{onSuccess:()=>{v.success({title:"Cobro relacionado manualmente",message:"El movimiento bancario se ha vinculado con el ingreso seleccionado."}),i()},onError:()=>{v.error({title:"No ha sido posible relacionar el cobro",message:"Por favor, vuelve a intentarlo."})}})};return e.jsx(ee,{id:"RelateIncomeModal",title:"Relacionar con un ingreso",isOpen:!0,onClose:n,onAction:C,isLoading:b.isPending,isActionDisabled:p||s||!u,variant:"medium",actionLabel:"Relacionar",children:e.jsx(r,{height:"616px",children:s||!a?e.jsx(r,{minHeight:200,display:"flex",alignItems:"center",justifyContent:"center",children:e.jsx(Ge,{text:"Cargando..."})}):e.jsxs(e.Fragment,{children:[e.jsxs(r,{mb:"md",children:[e.jsx(l,{fontSize:"md",bold:!0,mb:"sm",children:"Cobro pendiente:"}),e.jsxs(w,{fluid:!0,children:[e.jsxs(w.Header,{children:[e.jsx(w.Icon,{name:"money-withdraw"}),e.jsx(w.Title,{children:e.jsxs(r,{flex:1,display:"flex",justifyContent:"space-between",children:[e.jsx("div",{children:a.concept}),e.jsx("div",{children:U(a.amount)})]})})]}),e.jsxs(w.Content,{children:[e.jsx(l,{textColor:"semantic.text.status.entered",children:a.bankAccountName}),e.jsx(l,{textColor:"semantic.text.status.entered",children:pt(a.date)})]})]})]}),e.jsxs(r,{children:[e.jsxs(r,{display:"flex",justifyContent:"space-between",alignItems:"center",mb:"sm",children:[e.jsx(l,{fontSize:"md",bold:!0,children:"Listado de ingresos:"}),e.jsx(r,{width:"280px",children:e.jsx(ye,{id:"search-ingresos",name:"search","aria-label":"Buscar ingresos",value:o,placeholder:"Buscar...",onChange:g=>d(g.target.value)})})]}),o&&!m&&f.length===0?e.jsx(Gn,{onResetSearch:()=>d("")}):e.jsxs(j,{noMarginTop:!0,withBorder:!0,type:"simple-table",children:[e.jsxs(j.Head,{children:[e.jsx(j.Heading,{title:""}),e.jsx(j.Heading,{title:"Nº DOCUMENTO"}),e.jsx(j.Heading,{title:"FECHA"}),e.jsx(j.Heading,{title:"CLIENTE"}),e.jsx(j.Heading,{title:"TOTAL",titlePosition:"text-right"})]}),e.jsx(j.Body,{children:f.map(g=>{const x=u===g.id;return e.jsxs(j.SelectableRow,{selected:x,onSelect:()=>
1h(g.id),children:[e.jsx(Ke,{checked:x,name:"selectable-income",value:g.id,label:`Relacionar con el ingreso ${g.documentNumber} de ${g.clientName}`,onChange:()=>h(g.id)}),e.jsx(j.Element,{children:e.jsx(Se,{underline:!0,styles:{fontWeight:400},onClick:()=>Ue(g.id),children:g.documentNumber})}),e.jsx(j.Element,{children:pt(g.issueDate)}),e.jsx(j.Element,{children:e.jsx(l,{truncate:!0,maxWidth:"350px",children:g.clientName})}),e.jsx(j.Element,{align:"right",children:e.jsx(r,{children:e.jsx(l,{small:!0,bold:!0,children:U(g.total)})})})]},g.id)})})]})]})]})})})},Xn=()=>{const{modal:t}=wt();return e.jsxs(se,{children:[e.jsx(Dn,{}),e.jsxs(r,{alignCenter:!0,maxWidth:800,m:"auto",minHeight:500,children:[e.jsx(J,{fontSize:64,name:"money-stack",mb:"xl",textColor:"semantic.text.status.link"}),e.jsxs(r,{my:"md",children:[e.jsx(l,{bold:!0,size5:!0,mb:"xs",children:"Conecta tu banco para ver tus movimientos"}),e.jsx(l,{textColor:"semantic.text.general.text2",children:"Cuando añadas tu banco, podrás revisar cobros, validar sugerencias y mantener tus ingresos al dÃa."})]}),e.jsx($,{label:"Añadir banco",icon:"plus",onClick:t.showModal,variant:"main",size:"L"})]})]})},Zn=()=>{const{banks:t,isLoading:n}=wt(),[i,a]=c.useState(!1),[s,o]=c.useState(null),[d,u]=c.useState(null),[h,f]=c.useState(!1);return n?e.jsx(se,{minHeight:600,children:e.jsx(Ge,{text:"Cargando..."})}):t?.length?e.jsxs(se,{minHeight:600,children:[e.jsx(Yn,{suggestionsOnly:i,onSuggestionsOnlyChange:a,forceUpdate:h,setForceUpdate:f,onValidar:o,onRelacionar:u}),s&&e.jsx(zn,{transactionId:s,onClose:()=>o(null),onSuccess:()=>{o(null),f(!0)}}),d&&e.jsx(Jn,{transactionId:d,onClose:()=>u(null),onSuccess:()=>{u(null),f(!0)}})]}):e.jsx(Xn,{})},ea=()=>e.jsx(An,{children:e.jsx(Zn,{})}),ue="Todos",_={filter:"",filterIae:"all",filterYear:te.all,filterTrimester:Q.all,filterPaid:"all",typeClient:"all",filterAccountingSource:"all",orders:null},ta=t=>t==="all"?"":t,na=({filters:t,setFilters:n,previousPath:i})=>{const a=i?.startsWith("/ingreso/")?t:{},[s,o]=c.useState(a.filter??_.filter),[d,u]=c.useState(a.filterIae??_.filterIae),[h,f]=c.useState(a.filterYear??_.filterYear),[m,b]=c.useState(a.filterTrimester??_.filterTrimester),[p,C]=c.useState(a.filterAccountingSource??_.filterAccountingSource),[g,x]=c.useState(a.filterPaid??_.filterPaid),[E,I]=c.useState(a.typeClient??_.typeClient),[A,y]=c.useState(a.orders??_.orders),[O,T]=c.useState(!1);return c.useEffect(()=>{(!t||Object.keys(t).length===0)&&n(_)},[]),c.useEffect(()=>{n({filter:s,filterIae:d,filterYear:h,filterTrimester:m,filterPaid:g,typeClient:E,filterAccountingSource:p,orders:A})},[s,d,h,m,g,E,p,A]),{filter:s,filterIae:d,filterYear:h,filterTrimester:m,filterAccountingSource:p,filterPaid:g,typeClient:E,orders:A,isLoading:O,handleFilterChange:L=>{o(L),T(!0)},handleIaeChange:L=>{u(L),T(!0)},handleYearChange:L=>{f(L),T(!0)},handleTrimesterChange:L=>{b(L),T(!0)},handleClientChange:L=>{I(L),T(!0)},handleAccountingSourceChange:L=>{C(L),T(!0)},handleStateChange:L=>{x(L),T(!0)},hasDefaultFilters:()=>s===""&&d==="all"&&h===te.all&&m===Q.all&&g==="all"&&E==="all"&&p==="all",applyDefaultFilters:()=>{o(_.filter),u(_.filterIae),f(_.filterYear),b(_.filterTrimester),x(_.filterPaid),I(_.typeClient),C(_.filterAccountingSource),y(_.orders),T(!0)},getFilters:()=>({filter:s,filterIae:d,filterYear:h,filterTrimester:m,filterPaid:g,typeClient:E,filterAccountingSource:p,orders:A}),replaceStringAllToEmpty:ta,setIsLoading:T}},aa=({filterYear:t,filterTrimester:n,typeClient:i,filterPaid:a,filterIae:s,filter:o,filterAccountingSource:d})=>{const[u,h]=c.useState(!1);return{showPopup:u,setShowPopup:h,handlePrintList:async m=>{if(t===te.all)h(!0);else try{const b=await new Ot().getUrlPrintList(m,t,n,i,a,s,o,d),p=URL.createObjectURL(b),C=document.createElement("a");C.href=p,C.download=`ingresos.${m.toLowerCase()}`,document.body.appendChild(C),C.click(),document.body.removeChild(C),URL.revokeObjectURL(p)}catch{v.error({message:"No se ha podido descargar el archivo"})}}}},ia=()=>{const t=K(),{userStatus:n,openPopUpContrata:i,planHelper:a}=c.useContext(fe),s=c.useRef(null),[o,d]=c.useState(!1),u=(f,m,b)=>{if(R.option({option_label:`Añade ingreso ${String(f).toLowerCase()}`}),a.isBaja())i();else if(n.iaes.length===0)s.current?.handleAddIae();else{if(m==="/ingreso/con-factura")return b?.shouldShowModalDatePicker?d(!0):b?.triggerModalVerifactuInfo(()=>t.push("/ingreso/factura"),{extraValidations:ae.enabledVerifactuInformation()&&
1!je.instance.isFree()});Je.goToPath(m)}};return{getActionButtons:({shouldShowModalDatePicker:f,triggerModalVerifactuInfo:m})=>{const b=[];b.push({icon:"file-check-alt",value:"/ingreso/con-factura",children:"Con factura",onClick:x=>u(x.children,x.value,{shouldShowModalDatePicker:f,triggerModalVerifactuInfo:m})}),(n.equivalence!==sn.NINGUNO||n.ivaExempt!==ln.NINGUNO)&&b.push({icon:"file-times-alt",value:"/ingreso/sin-factura",children:"Sin factura",onClick:x=>u(x.children,x.value)});const p=new on;return(n.iaes||[]).filter(x=>p.validateIAE(x)).length&&b.push({icon:"file-check",value:"/ingreso/simplificado",children:"Con factura simplificada",description:"Solo para ingresos inferiores a 400â¬",onClick:x=>u(x.children,x.value)}),b.push({icon:"file-bookmark-alt",value:"/ingreso/subvencion",children:"Subvención",onClick:x=>u(x.children,x.value)}),b},showModalPickDate:o,setShowModalPickDate:d,refModalIA:s}},ra=({invoiceData:t})=>{const n=t?.invoice?.rectification??t?.invoice?.rectifiedBy,a=(()=>{if(t?.invoice?.rectification)return{title:`Rectificativa de ${t?.invoice?.rectification.rectifies.documentNumber}`,text:"Esta factura se ha emitido para rectificar la factura original.",link:{text:"Ver factura original",href:new ze().getPreviewInvoice(t.invoice?.rectification.rectifies.id),openInNewTab:!1},pillCell:{text:"Rectificativa",bg:"info"}};if(t?.invoice?.rectifiedBy)return{title:`Rectificada por la ${t?.invoice?.rectifiedBy.documentNumber}`,text:"Esta factura se ha corregido tras emitir la factura rectificativa.",link:{text:"Ver factura rectificativa",href:new ze().getPreviewInvoice(t.invoice?.rectifiedBy.id),openInNewTab:!1},pillCell:{text:"Rectificada",bg:"neutral"}}})();return e.jsxs(r,{display:"flex",gap:"sm",children:[e.jsx(l,{maxWidth:{_:"400px",largeScreen:"250px"},fontSize:"14px",truncate:!0,children:t?.num_factura}),n?e.jsx(G,{title:a?.title,text:a?.text,link:a?.link,placement:"top",children:e.jsx(re,{bg:a?.pillCell.bg,label:a?.pillCell.text??""})}):null]})},sa=()=>{const t=xe(ge());return{dismissMultipleSuggestions:Qe({queryKey:["bank-transactions"],mutationFn:({transactionIds:i,suggestionId:a})=>Promise.all(i.map(s=>t.dismissSuggestions(s,[{id:a,dismissed:!0}])))})}},Vt=({incomeData:t,refreshData:n,isModalOpen:i,setIsModalOpen:a,TriggerAction:s})=>{const[o,d]=c.useState(t?.bankTransactionSuggestions?.[0]?.id??null),{matchBankTransaction:u}=at(),{dismissMultipleSuggestions:h}=sa(),f=u.isPending||h.isPending,m=()=>{h.mutate({transactionIds:t.bankTransactionSuggestions.map(C=>C.id),suggestionId:t?.invoiceId},{onSuccess:()=>{v.notifyFeedBack({title:"Sugerencia de cobro descartada",message:"Seguiremos buscando nuevos posibles cobros para este ingreso. También puedes marcarlo como cobrado de forma manual."}),a(!1),n()},onError:()=>{v.error({title:"No ha sido posible descartar la sugerencia",message:"Por favor, vuelve a intentarlo."})}})},b=()=>{o&&u.mutate({transactionId:o,matchingInvoiceId:t.invoiceId},{onSuccess:()=>{v.success({title:"Sugerencia de cobro validada",message:"El ingreso se ha marcado como cobrado."}),a(!1),n()},onError:()=>{v.error({title:"No ha sido posible validar la sugerencia",message:"Por favor, vuelve a intentarlo."})}})},p=f;return e.jsxs(e.Fragment,{children:[s||null,e.jsxs(Ee,{variant:"medium",isOpen:i,onClose:()=>a(!1),title:"Validar sugerencia de cobro",onAction:()=>{},customFooter:e.jsxs(r,{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",children:[e.jsx(V,{size:"M",label:"Cancelar",onClick:()=>a(!1),isDisabled:f}),e.jsxs(r,{display:"flex",gap:"sm",children:[e.jsx($,{variant:"secondary",label:"Descartar",onClick:m,isLoading:p,isDisabled:p}),e.jsx($,{label:"Validar",icon:"check",iconPosition:"left",onClick:b,isLoading:u.isPending,isDisabled:p||!o})]})]}),children:[e.jsxs(r,{mb:"md",children:[e.jsx(l,{fontSize:"md",bold:!0,mb:"sm",children:"Ingreso pendiente:"}),e.jsxs(w,{fluid:!0,children:[e.jsxs(w.Header,{children:[e.jsx(w.Icon,{name:"file-alt"}),e.jsx(w.Title,{children:e.jsxs(r,{flex:1,display:"flex",justifyContent:"space-between",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Ingreso con factura"})," ",e.jsx(Se,{underline:!0,onClick:()=>Ue(t.id),children:t.num_factura})]}),e.jsx("div",{children:t.invoice?.total&&U(t.invoice.total)})]})})]}),e.jsxs(w.Content,{children:[e.jsx(l,{textColor:"semantic.text.status.entered",children:t.invoice?.client.name}),e.jsx(l,{textColor:"semantic.text.status.entered",children:t.date})]})]})]}),e.jsxs(r,{children:[e.jsx(l,{fontSize:"md",bold:!0,mb:"sm",children:"Sugerencias de cobro:"}),e.jsxs(j,{noMarginTop:!0,withBorder:!0,type:"simple-table",children:[e.jsxs(j.Head,{children:[e.jsx(j.Heading,{title:""}),e.jsx(j.Heading,{title:"FECHA"}),e.jsx(j.Heading,{title:"CONCEPTO"}),e.jsx(j.Heading,{title:"BANCO"}),e.jsx(j.Heading,{title:"IMPORTE",titlePosition:"text-right"})]}),e.jsx(j.Body,{children:t.bankTransactionSuggestions?.map(C=>
1{const g=o===C.id,x=S.convertDateFormatType(C.date,{formatFrom:"yyyy-MM-dd",formatTo:"dd-MM-yyyy"});return e.jsxs(j.SelectableRow,{selected:g,onSelect:()=>d(C.id),children:[e.jsx(Ke,{checked:g,name:"selectable-table"}),e.jsx(j.Element,{children:x}),e.jsx(j.Element,{children:e.jsx(l,{truncate:!0,maxWidth:"350px",children:C.concept})}),e.jsx(j.Element,{children:C.bankAccountName}),e.jsx(j.Element,{align:"right",children:e.jsx(r,{children:e.jsx(l,{small:!0,bold:!0,children:U(C.amount)})})})]},C.id)})})]})]})]})]})},la=({row:t,refreshData:n})=>{const i=t?.bankTransactionSuggestions?.length>0,[a,s]=c.useState(!1),o=()=>i&&!t?.invoice?.isPaid&&!t?.previousToDeclarando?e.jsx(e.Fragment,{children:e.jsx(Vt,{incomeData:t,isModalOpen:a,refreshData:n,setIsModalOpen:s,TriggerAction:e.jsx(V,{size:"M",isIconOnly:!0,icon:"smart","aria-label":"Validar sugerencia",onClick:()=>s(!0),tooltip:{placement:"top",text:"Validar sugerencia de cobro"}})})}):me.renderIncomeStatus(null,t,t.estado);return e.jsx(r,{display:"flex",justifyContent:"center",children:o()})},oa=({setIsModalOpen:t})=>e.jsx(r,{display:"flex",gridGap:"xxs",justifyContent:"center",alignItems:"center",children:e.jsx(V,{size:"M",isIconOnly:!0,icon:"envelope",onClick:()=>t(!0),tooltip:{placement:"top",text:"Enviar factura"}})}),Yt=({incomeData:t,refreshData:n,isModalOpen:i,setIsModalOpen:a,TriggerAction:s})=>t.invoice?e.jsxs(e.Fragment,{children:[s||null,e.jsx(cn,{clientEmail:t.invoice.client.email,isOpen:i,onClose:()=>a(!1),salesDocumentType:"invoice",salesDocumentId:t.invoiceId,salesDocumentNumber:t?.num_factura??"",clientName:t.invoice.client.name,callbacks:{onSuccess:()=>n()}})]}):null,ca=({incomeData:t,refreshData:n})=>{const i=t?.invoice?.isSentByEmail,[a,s]=c.useState(!1);return i?e.jsx(r,{paddingX:"6px",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(J,{name:"check",fontSize:"lg",color:"semantic.text.alerts.success"})}):e.jsx(Yt,{TriggerAction:e.jsx(oa,{setIsModalOpen:s}),incomeData:t,refreshData:n,isModalOpen:a,setIsModalOpen:s})},da=({data:t})=>{const{push:n}=K();if(!t?.invoice||Z.isNotApplicable(t?.invoice?.verifactuStatus))return null;const a=(()=>{if(Z.isPending(t?.invoice?.verifactuStatus))return{tooltipText:"Aún no hemos recibido respuesta de Hacienda.",pillCell:{text:"Pendiente",variant:"warning",type:"status"}};if(Z.isVerified(t?.invoice?.verifactuStatus))return{tooltipText:"Hacienda ha validado esta factura.",pillCell:{text:"Aceptada",variant:"success",type:"status"}};if(Z.isRejected(t?.invoice?.verifactuStatus))return{tooltipText:e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Hacienda ha rechazado esta factura."}),e.jsx(Se,{underline:!0,onClick:()=>n(`/ingreso/factura-previsualizar/${t?.invoiceId}`),children:"Ver error"})]}),pillCell:{text:"Rechazada",bg:"danger",type:"icon",onAction:()=>n(`/ingreso/factura-previsualizar/${t?.invoiceId}`),iconName:"info-circle"}}})();return e.jsx(r,{display:"flex",justifyContent:"flex-start",alignItems:"center",children:e.jsx(re,{tooltipProps:{text:a?.tooltipText,placement:"top"},label:a?.pillCell.text??"",type:a?.pillCell?.type,onAction:a?.pillCell?.onAction,iconName:a?.pillCell?.iconName,bg:a?.pillCell?.bg,value:a?.pillCell?.variant??"neutral"})})},ua=({isOpen:t,onCancel:n,onConfirm:i,dontShowAgain:a,onDontShowAgainChange:s})=>e.jsxs(ee,{isOpen:t,onClose:n,title:"Antes de crear una factura rectificativa",variant:"small",actionLabel:"Continuar",iconActionLabel:"path",onAction:i,children:[e.jsx(r,{display:"flex",justifyContent:"start",flexDirection:"column",alignItems:"start",children:e.jsxs(r,{display:"flex",flexDirection:"column",gap:"md",children:[e.jsxs(l,{children:["Esta opción es solo para ",e.jsx("strong",{children:"corregir facturas que ya has enviado a tu cliente"})," y necesitas corregir. Se generará una factura rectificativa para dejar constancia del cambio, como exige Hacienda."]}),e.jsxs("div",{children:[e.jsx(l,{children:e.jsx("strong",{children:"¿Para qué sirve una rectificativa?"})}),e.jsxs(l,{as:"span",children:["â
",e.jsx("strong",{children:"Devoluciones:"})," te ha devuelto el producto o cancelado el servicio."]}),e.jsxs(l,{as:"span",children:["â
",e.jsx("strong",{children:"Errores:"})," te has equivocado en el importe, unidades o IVA."," "]}),e.jsxs(l,{as:"span",children:["â
",e.jsx("strong",{children:"Cambios de cliente:"})," debes anular la factura entera y crear una nueva."," "]}),e.jsxs(l,{as:"span",children:["â
",e.jsx("strong",{children:"Incobrables:"})," si sabes que no vas a cobrarla, puedes declararla como tal."," "]})]})]})}),e.jsx(r,{marginTop:"md",children:e.jsx(Mt,{label:"Todo claro, no hace falta volver a verlo",id:"dont-show-again-rectification-info",checked:a,onChange:o=>s(o.target.checked)})})]}),ha=({isOpen:t,onCancel:n,onConfirm:i,dontShowAgain:a,onDontShowAgainChange:s,onTriggerAction:o})=>{const d=()=>{i(),o?.()};return e.jsxs(Ee,{isOpen:t,onClose:n,title:"Antes de crear la factura del ingreso",variant:"small",actionLabel:"Continuar",onAction:d,children:[e.jsxs(r,{display:"flex",justifyContent:"start",flexDirection:"column",alignItems:"start",ga
1p:"md",children:[e.jsx(l,{children:"Vas a crear una factura a partir de un ingreso ya registrado."}),e.jsxs("div",{children:[e.jsx(l,{children:e.jsx("strong",{children:"Ten en cuenta que:"})}),e.jsx(l,{as:"span",children:"â
El ingreso sin factura original se eliminará."}),e.jsx(l,{as:"span",children:"â
Algunos datos se rellenarán automáticamente pero podrás modificarlos."}),e.jsx(l,{as:"span",children:"â
Solo se puede facturar este tipo de ingresos a clientes particulares."}),e.jsx(l,{as:"span",children:"â
El total de la factura debe coincidir con el del ingreso original."})]})]}),e.jsx(r,{marginTop:"md",children:e.jsx(Mt,{label:"Todo claro, no hace falta volver a verlo",id:"dont-show-again-create-invoice-from-income-info",checked:a,onChange:u=>s(u.target.checked)})})]})},ma=t=>{const{planHelper:n,userStatus:i}=Te(),a=!n.isBaja(),s=t.invoiceId!==null,o=!!t.invoice?.rectification?.rectifies,d=!!t.invoice?.rectifiedBy,u=Z.isPending(t.invoice?.verifactuStatus)||Z.isRejected(t.invoice?.verifactuStatus),h=!!t.idRecurrence||!!t.recurrenceConfiguration||!!t.createdByRecurrenceConfiguration?.isActive,f=!t.contabilidadPresentadaBloqueada&&!(s&&!t.canDeleteInvoice)&&!d,m=!(s&&d),b=s&&!t.invoice?.isAutoInvoice&&!d&&!o&&!u,p=i?.fechaBajaAutonomo?S.convertDateFormatType(i?.fechaBajaAutonomo):null;return{isAllowed:a,canDelete:f,canEdit:m,canRectify:b,isCreatedByNewInvoiceForm:s,hasActiveRecurrence:h,isRectificationInvoice:o,isRectifiedByAnotherInvoice:d,selfEmployedTerminationDay:p}},pa=t=>{const n=c.useCallback(()=>{if(t.invoiceId!==null){R.clickDetail({event_label:"Abre edición ingreso con factura"});return}if(t.type==="IREN"){R.clickDetail({event_label:"Abre edición ingreso sin factura"});return}if(t.isSimplificado){R.clickDetail({event_label:"Abre edición ingreso factura simplificada"});return}t.type===ne.SUBVENCION&&R.clickDetail({event_label:"Abre edición ingreso subvención"})},[t]),i=c.useCallback(()=>{R.clickElement({event_label:"Abre modal borrar ingreso"})},[]),a=c.useCallback(()=>{R.clickElement({event_label:"Abre modal marcar ingreso como cobrado"})},[]),s=c.useCallback(()=>{R.clickElement({event_label:"Descarga documento factura"})},[]),o=c.useCallback(()=>{if(t.isSimplificado){R.clickElement({event_label:"Descarga documento factura
1simplificada"});return}R.clickElement({event_label:"Descarga documento sin factura"})},[t.isSimplificado]),d=c.useCallback(()=>{R.clickElement({event_label:"Abre modal programar factura recurrente"})},[]);return{trackEdit:n,trackDelete:i,trackPay:a,trackPrint:s,trackPrintUninvoiced:o,trackProgramRecurrence:d}},fa=({row:t})=>{const{push:n}=K(),i=ie.instance.getIncomesLocations(),a=c.useMemo(()=>new ze,[]),s=c.useCallback(()=>{const{invoiceId:p,id:C,type:g,invoice:x}=t;if(p!==null){if(x?.rectification?.rectifies){if(Oe.isPartialRectification(x.rectification.type))return n(a.getPartialRectificationEdition({invoiceId:p,invoiceNumber:t.num_factura}));if(Oe.isCompleteRectification(x.rectification.type))return n(a.getTotalRectificationEdition({invoiceId:p,invoiceNumber:t.num_factura}))}return x?.uninvoicedIncome?n(a.getEditionInvoiceFromIncomeUrl(p)):x?.isAutoInvoice?n(ae.shouldNewInvoiceFormBeEnabled().getInvoiceEditionFormURL(p)):()=>n(ae.shouldNewInvoiceFormBeEnabled().getInvoiceEditionFormURL(p))}return n(i.gotoModifyIncome(C,g,t.isSimplificado))},[t,n,i,a]),o=c.useCallback(()=>{n(a.getPreviewInvoice(t.invoiceId))},[t.invoiceId,n,a]),d=c.useCallback(()=>{n("/ingreso/factura-duplicar/"+t.invoiceId)},[t.invoiceId,n]),u=c.useCallback(({rectificationType:p})=>{Oe.isPartialRectification(p)&&n(a.getPartialRectificationInvoice({invoiceId:t.invoiceId,invoiceNumber:t.num_factura})),Oe.isCompleteRectification(p)&&n(a.getTotalRectificationInvoice({invoiceId:t.invoiceId,invoiceNumber:t.num_factura}))},[t.invoiceId,t.num_factura,n,a]),h=c.useCallback(()=>{n(a.getCreateInvoiceFromIncomeUrl(t.id))},[t.id,n,a]),f=c.useCallback(p=>{p.preventDefault(),Je.goProfile()},[]),m=c.useCallback(p=>i.getUrlIncomePdf(p),[i]),b=c.useCallback(p=>i.getUrlUninvoicedIncomePdf(p),[i]);return{navigateToEdit:s,navigateToPreview:o,navigateToDuplicate:d,navigateToRectification:u,navigateToCreateInvoiceFromIncome:h,navigateToProfile:f,getIncomePdfUrl:m,getUninvoicedIncomePdfUrl:b}},ga={isDeleteModalOpen:!1,isDeleteInvoicedModalOpen:!1,isDeleteRecurrenceModalOpen:!1,isCollectedModalOpen:!1,isSendByEmailModalOpen:!1,isDuplicateModalOpen:!1,isNoAutoInvoiceModalOpen:!1,isRectificationTypeModalOpen:!1,isConciliationModalOpen:!1},xa=(t,n)=>{switch(n.type){case"OPEN_DELETE":return{...t,isDeleteModalOpen:!0};case"CLOSE_DELETE":return{...t,isDeleteModalOpen:!1};case"OPEN_DELETE_INVOICED":return{...t,isDeleteInvoicedModalOpen:!0};case"CLOSE_DELETE_INVOICED":return{...t,isDeleteInvoicedModalOpen:!1};case"OPEN_DELETE_RECURRENCE":return{...t,isDeleteRecurrenceModalOpen:!0};case"CLOSE_DELETE_RECURRENCE":return{...t,isDeleteRecurrenceModalOpen:!1};case"OPEN_COLLECTED":return{...t,isCollectedModalOpen:!0};case"CLOSE_COLLECTED":return{...t,isCollectedModalOpen:!1};case"OPEN_SEND_BY_EMAIL":return{...t,isSendByEmailModalOpen:!0};case"CLOSE_SEND_BY_EMAIL":return{...t,isSendByEmailModalOpen:!1};case"OPEN_DUPLICATE":return{...t,isDuplicateModalOpen:!0};case"CLOSE_DUPLICATE":return{...t,isDuplicateModalOpen:!1};case"OPEN_NO_AUTO_INVOICE":return{...t,isNoAutoInvoiceModalOpen:!0};case"CLOSE_NO_AUTO_INVOICE":return{...t,isNoAutoInvoiceModalOpen:!1};case"OPEN_RECTIFICATION_TYPE":return{...t,isRectificationTypeModalOpen:!0};case"CLOSE_RECTIFICATION_TYPE":return{...t,isRectificationTypeModalOpen:!1};case"OPEN_CONCILIATION":return{...t,isConciliationModalOpen:!0};case"CLOSE_CONCILIATION":return{...t,isConciliationModalOpen:!1};default:return t}},ba=()=>{const[t,n]=c.useReducer(xa,ga);return{state:t,openDeleteModal:c.useCallback(()=>n({type:"OPEN_DELETE"}),[]),closeDeleteModal:c.useCallback(()=>n({type:"CLOSE_DELETE"}),[]),openDeleteInvoicedModal:c.useCallback(()=>n({type:"OPEN_DELETE_INVOICED"}),[]),closeDeleteInvoicedModal:c.useCallback(()=>n({type:"CLOSE_DELETE_INVOICED"}),[]),openDeleteRecurrenceModal:c.useCallback(()=>n({type:"OPEN_DELETE_RECURRENCE"}),[]),closeDeleteRecurrenceModal:c.useCallback(()=>n({type:"CLOSE_DELETE_RECURRENCE"}),[]),openCollectedModal:c.useCallback(()=>n({type:"OPEN_COLLECTED"}),[]),closeCollectedModal:c.useCallback(()=>n({type:"CLOSE_COLLECTED"}),[]),openSendByEmailModal:c.useCallback(()=>n({type:"OPEN_SEND_BY_EMAIL"}),[]),closeSendByEmailModal:c.useCallback(()=>n({type:"CLOSE_SEND_BY_EMAIL"}),[]),openDuplicateModal:c.useCallback(()=>n({type:"OPEN_DUPLICATE"}),[]),closeDuplicateModal:c.useCallback(()=>n({type:"CLOSE_DUPLICATE"}),[]),openNoAutoInvoiceModal:c.useCallback(()=>n({type:"OPEN_NO_AUTO_INVOICE"}),[]),closeNoAutoInvoiceModal:c.useCallback(()=>n({type:"CLOSE_NO_AUTO_INVOICE"}),[]),openRectificationTypeModal:c.useCallback(()=>n({type:"OPEN_RECTIFICATION_TYPE"}),[]),closeRectificationTypeModal:c.useCallback(()=>n({type:"CLOSE_RECTIFICATION_TYPE"}),[]),openConciliationModal:c.useCallback(()=>n({type:"OPEN_CONCILIATION"}),[]),closeConciliationModal:c.useCallback(()=>n({type:"CLOSE_CONCILIATION"}),[])}},Ca=({row:t,autoNumInvoice:n,setForceUpdate:i,showVerifactuModal:a,showRectificationModal:s,showModalCreateInvoiceFromIncome:o})=>{const d=Te(),u=ma(t),h=pa(t),f=fa({row:t}),m=ba(),b=ie.instance.getIncomesLocations(),p=c.useCallback(M=>{if(!u.isAllowed){d.openPopUpContrata();return}M()},[u.isAllowed,d]),C=c.useCallback(()=>{p(()=>{h.trackEdit();const M=f.navigateToEdit();typeof M=="function"&&a(M,{extraValidations:ae.enabledVerifactuInformation()&&
1!je.instance.isFree()})})},[p,h,f,a]),g=c.useCallback(()=>{p(()=>{if(h.trackDelete(),t.isInvoiced){if(t.invoice?.isAutoInvoice||t.invoice===null){m.openDeleteInvoicedModal();return}a(()=>m.openDeleteInvoicedModal(),{extraValidations:ae.enabledVerifactuInformation()&&!je.instance.isFree()});return}m.openDeleteModal()})},[p,h,t,m,a]),x=c.useCallback(async()=>{try{await new lt().borrarIngreso(t.id),v.success({title:"Ingreso borrado correctamente"}),i(!0)}catch{v.error({title:"No ha sido posible borrar el ingreso",message:"Por favor, vuelve a intentarlo."})}},[t.id,i]),E=c.useCallback(()=>{p(()=>{h.trackPay(),m.openCollectedModal()})},[p,h,m]),I=c.useCallback(async()=>{m.closeCollectedModal();const{error:M}=new lt().pagarIngreso(t.id);if(M){v.error({title:"No ha sido posible marcar el ingreso como cobrado",message:"Por favor, vuelve a intentarlo."});return}v.success({title:"Ingreso marcado como cobrado correctamente"}),i(!0)},[m,t.id,i]),A=c.useCallback(async()=>{if(h.trackPrint(),!u.isCreatedByNewInvoiceForm){window.location=b.getUrlIncomePdf(t.id);return}try{const Y=await St(Et()).getSalesDocumentPDF(t.invoiceId),D=URL.createObjectURL(Y?.data),k=document.createElement("a");k.href=D,k.download=`Factura_${t.num_factura}.pdf`,document.body.appendChild(k),k.click(),document.body.removeChild(k),URL.revokeObjectURL(D)}catch{v.error({title:"No se ha podido descargar la factura",message:""})}},[h,u.isCreatedByNewInvoiceForm,t,b]),y=c.useCallback(()=>{h.trackPrintUninvoiced(),window.location=b.getUrlUninvoicedIncomePdf(t.id)},[h,t.id,b]),O=c.useCallback(()=>{p(()=>{if(!n){m.openNoAutoInvoiceModal();return}h.trackProgramRecurrence(),m.openDuplicateModal()})},[p,n,m,h]),T=c.useCallback(()=>{m.openDeleteRecurrenceModal()},[m]),N=c.useCallback(()=>{s(()=>{a(()=>m.openRectificationTypeModal(),{extraValidations:ae.enabledVerifactuInformation()&&!je.instance.isFree()})})},[s,a,m]),F=c.useCallback(()=>{o(()=>{f.navigateToCreateInvoiceFromIncome()})},[o,f]),q=c.useCallback(()=>{p(()=>{m.openConciliationModal()})},[m,p]);return{modals:m,permissions:u,navigation:f,handleEdit:C,handleDelete:g,handleDeleteIncome:x,handlePay:E,handlePayIncome:I,handlePrint:A,handlePrintUninvoiced:y,handleDuplicate:O,handleDeleteRecurrence:T,handleRectification:N,handleCreateInvoiceFromIncome:F,handleOpenConciliation:q}},ja=({row:t,permissions:n,onEdit:i,onDelete:a,onPay:s,onPrint:o,onDuplicate:d,onDeleteRecurrence:u,onRectification:h,onSendByEmail:f,onCreateInvoiceFromIncome:m,onPreview:b,onDuplicateInvoice:p,onOpenConciliation:C})=>{const{isCreatedByNewInvoiceForm:g,canDelete:x,canEdit:E,canRectify:I,hasActiveRecurrence:A,isRectificationInvoice:y,isRectifiedByAnotherInvoice:O,selfEmployedTerminationDay:T}=n,N=Z.isPending(t.invoice?.verifactuStatus)||Z.isRejected(t.invoice?.verifactuStatus),F=g?t.invoice?.isPaid:t.pagado,q=g?t.type!==ne.SUBVENCION&&!t.isClienteEU&&t.type!=="IREN"&&!t.isSimplificado&&!t.idRecurrence&&!t.recurrenceConfiguration&&!t.createdByRecurrenceConfiguration?.isActive&&!y:!1,M=()=>{if(!T)return!1;const ce=S.formatNativeDateToString(new Date,"yyyy-MM-dd");return S.isAfterCustom(ce,T)},Y=t.type!==ne.SUBVENCION&&A,D=g&&!t?.invoice?.isPaid&&t?.bankTransactionSuggestions?.length>0,k=g||t.type!==ne.SUBVENCION&&(t.hasConcepts&&Number(t.cliente_id)>0||t.cliente_id===0||t.isSimplificado),le=()=>{if(t.contabilidadPresentadaBloqueada)return{placement:"top",text:"Este ingreso no puede ser borrado ya que pertenece a un trimestre cerrado"};if(g&&y&&!t.canDeleteInvoice)return{placement:"top",title:"No es posible borrar el ingreso con factura",text:e.jsx(r,{width:"350px",children:e.jsx(l,{small:!0,children:"Ya que podrÃa provocar un salto en la correlación de fechas y numeración."})}),link:{href:"https://ayuda.declarando.es/es/articles/10099108-por-que-no-puedo-borrar-un-ingreso-con-factura",text:"Saber más"},appendTo:document.body};if(g&&O)return{placement:"top",title:"No disponible para facturas rectificadas",text:e.jsx(r,{width:"350px",children:e.jsx(l,{small:!0,children:"No puedes borrar una factura que se ha rectificado porque tienes una factura rectificativa asociada a esta."})})};if(g&&!t.canDeleteInvoice)return{placement:"top",title:"No es posible borrar el ingreso con factura",text:e.jsxs(r,{maxWidth:"450px",children:[e.jsx(l,{small:!0,children:"Ya que podrÃas provocar un salto en la correlación de fechas y numeración. En su lugar, te recomendamos:"}),e.jsxs(l,{paddingLeft:"8px",small:!0,children:[e.jsx("strong",{children:"⢠Si pertenece a un trimestre abierto,"})," edita la factura para corregir un error o crea una rectificativa para anularla."]}),e.jsxs(l,{paddingLeft:"8px",small:!0,children:[e.jsx("strong",{children:"⢠Si pertenece a un trimestre cerrado,"})," habla con tu mentor."]})]}),link:{href:"https://ayuda.declarando.es/es/articles/10099108-por-que-no-puedo-borrar-un-ingreso-con-factura",text:"Saber más"},appendTo:document.body}},B=()=>O?{placement:"top",title:"No disponible para facturas rectificadas",text:e.jsx(r,{width:"350px",children:e.jsx(l,{small:!0,children:"No puedes rectificar una factura que se ha rectificado porque tienes una factura rectificativa asociada a esta."})})}:N?{placement:"top",title:"No es posible rectificar esta factura",text:e.jsx(r,{width:"350px",children:e.jsx(l,{small:!0,children:"Cuando Hacienda la acepte, podrás rectificarla."})})}:{placement:"top",title:"Usa esta opción si ya has enviado la factura a tu cliente y necesitas corregirla",text:e.jsxs(r,{width:"350px",children:[e.jsxs(l,{small:!0,children:["Se
1creará una ",e.jsx("strong",{children:"factura rectificativa"})," para dejar constancia del cambio. Puedes usarla para:"]}),e.jsxs(l,{paddingLeft:"8px",small:!0,children:[e.jsx("strong",{children:"⢠Justificar una devolución:"})," el cliente ha devuelto el producto o cancelado el servicio."]}),e.jsxs(l,{paddingLeft:"8px",small:!0,children:[e.jsx("strong",{children:"⢠Corregir un error:"})," importe, unidades, IVA."]}),e.jsxs(l,{paddingLeft:"8px",small:!0,children:[e.jsx("strong",{children:"⢠Cambiar el cliente:"})," debes rectificar toda la factura y crear una nueva."]}),e.jsxs(l,{paddingLeft:"8px",small:!0,children:[e.jsx("strong",{children:"⢠Declarar una factura como incobrable:"})," comunicar que no podrás cobrar la factura."]})]})},oe=()=>{if(g&&O)return{placement:"top",title:"No disponible para facturas rectificadas",text:e.jsx(r,{width:"350px",children:e.jsx(l,{small:!0,children:"No puedes editar una factura que se ha rectificado porque ya tienes una factura rectificativa asociada a esta."})})}};return[g?{children:"Ver factura",value:"previsualizar",icon:"eye",onClick:b}:void 0,k?{children:t.isSimplificado||!t.isInvoiced?"Descargar recibo":"Descargar factura",value:"descargar",icon:"file-download",onClick:o}:void 0,t.type===ne.SINFACTURA?{children:"Crear factura",value:"crear-factura",isDisabled:!!t.contabilidadPresentadaBloqueada,tooltipOptions:t.contabilidadPresentadaBloqueada?{placement:"top",text:"No se puede crear factura de un ingreso de un trimestre ya presentado."}:void 0,icon:"plus",onClick:m}:void 0,g?{divider:"bottom",children:"Enviar factura",value:"send-mail",icon:"envelope",onClick:f}:void 0,q?{divider:"bottom",isDisabled:M(),children:"Programar factura recurrente",value:"programar-recurrente",icon:"calender",tooltipOptions:M()?{placement:"top",title:"No puedes crear facturas recurrentes",text:"Como ya te has dado de baja de autónomo, está opción ya no está disponible."}:void 0,onClick:d}:void 0,Y?{divider:"bottom",children:"Parar recurrente",value:"parar-recurrente",icon:"calendar-slash",onClick:u}:void 0,D?{children:"Validar sugerencia de cobro",value:"conciliation",icon:"smart",onClick:C}:void 0,F?void 0:{divider:"bottom",children:"Marcar como cobrado",value:"marcar-cobrado",icon:"euro-circle",onClick:s},g&&!y?{children:"Duplicar factura",value:"copy",icon:"copy-alt",onClick:p}:void 0,O||N?{children:"Rectificar factura",isDisabled:!0,value:"rectificativa",icon:"file-times",tooltipOptions:B()}:void 0,I?{children:"Rectificar factura",isDisabled:O||N,value:"rectificativa",icon:"file-times",tooltipOptions:B(),onClick:h}:void 0,{children:"Editar",value:"editar",isDisabled:!E,icon:"edit",tooltipOptions:oe(),onClick:i},{isDisabled:!x,children:"Borrar",value:"borrar",icon:"trash-alt",onClick:a,tooltipOptions:le()}].filter(Boolean)},va=({row:t,onClick:n})=>t.type===ne.SUBVENCION?null:e.jsx(G,{text:"Parar recurrente",placement:"top",children:e.jsx(V,{size:"M",onClick:n,label:e.jsx(J,{name:"calendar-slash",button:!0,alt:"Parar recurrencia",title:"Parar recurrencia","data-test":"borrar-recurrente"})})}),ft=({row:t,onClick:n})=>{if(t.type===ne.SUBVENCION)return null;const i=t.isSimplificado||!t.isInvoiced?"Descargar recibo":"Descargar factura";return e.jsx(G,{text:i,placement:"top",children:e.jsx(V,{size:"M",label:e.jsx(J,{name:"file-download",onClick:()=>n(t.id),button:!0,"data-test":"imprimir-pdf"})})})},ya=()=>{const t=Dt(At());return{deleteInvoice:we({queryKey:["invoices"],mutationFn:i=>t.deleteInvoice(i)})}},$e=({canActivate303Complementary:t})=>t?e.jsxs("div",{children:[e.jsx(r,{marginY:"sm",children:e.jsx(dn,{})}),e.jsx(W,{full:!0,title:"El ingreso pertenece a un Modelo 303 ya presentado",message:"Si lo borras, puede haber cambios en tus impuestos o en tu contabilidad. "})]}):null,Ia=({isOpen:t,closeModal:n,invoiceId:i,updateIngresosList:a,incomeData:s})=>{const{deleteInvoice:o}=ya(),d=()=>{R.clickElement({event_label:"Borra ingreso"}),o.mutate(i,{onError:()=>{v.error({title:"No ha sido posible borrar la factura",message:"Por favor, vuelve a intentarlo."}),n()},onSuccess:()=>
1{v.success({title:"La factura se ha borrado correctamente"}),a(),n()}})},u=!!s?.invoice?.rectification?.rectifies?.id;return e.jsx(Ee,{id:"modal-delete-ingreso",title:"Acción permanente",actionLabel:"Borrar factura",onAction:()=>d(),isLoading:o.isPending,closeLabel:"Cancelar",variant:"small",onClose:n,isOpen:t,destructiveAction:!0,iconActionLabel:"trash-alt",children:u?e.jsx(Sa,{incomeData:s}):e.jsx(Ea,{incomeData:s})})},Sa=({incomeData:t})=>e.jsxs(e.Fragment,{children:[e.jsx(l,{children:"¿Seguro que quieres borrar esta factura rectificativa?"}),e.jsx(r,{marginTop:"xs",children:e.jsx(W,{full:!0,tone:"info",title:"Detalles de la factura rectificativa:",message:e.jsxs(r,{children:[e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Cliente:"})," ",e.jsx(l,{small:!0,inline:!0,children:t?.cliente})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Nº de factura:"})," ",e.jsx(l,{small:!0,inline:!0,children:t?.num_factura})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Fecha:"})," ",e.jsx(l,{small:!0,inline:!0,children:t?.date})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Total:"})," ",e.jsx(l,{small:!0,inline:!0,children:U(t?.invoice?.total??0)})]}),t?.invoice?.rectification?.reason?e.jsxs(r,{children:[e.jsxs(l,{small:!0,bold:!0,inline:!0,children:["Motivo:"," "]})," ",e.jsx(l,{small:!0,inline:!0,children:un[t?.invoice?.rectification?.reason]??null})]}):null]})})}),e.jsx(l,{marginTop:"xs",children:"Si la borras, la factura original dejará de estar rectificada."}),e.jsx(r,{marginTop:"xs",children:e.jsx(W,{full:!0,tone:"info",title:"Detalles de la factura original:",message:e.jsxs(r,{children:[e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Nº de factura:"})," ",e.jsx(l,{small:!0,inline:!0,children:t?.invoice?.rectification?.rectifies?.documentNumber})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Fecha:"})," ",e.jsx(l,{small:!0,inline:!0,children:S.convertDateFormatType(t?.invoice?.rectification?.rectifies?.issueDate,{formatFrom:"yyyy-MM-dd",formatTo:"dd-MM-yyyy"})})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Total:"})," ",e.jsx(l,{small:!0,inline:!0,children:U(t.invoice?.rectification?.rectifies?.total??0)})]})]})})})]}),Ea=({incomeData:t})=>e.jsxs(e.Fragment,{children:[e.jsx(l,{children:"¿Seguro que quieres borrar esta factura?"}),e.jsx(r,{marginTop:"xs",children:e.jsx(W,{full:!0,tone:"info",title:"Detalles de la factura:",message:e.jsxs(r,{children:[e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Cliente:"})," ",e.jsx(l,{small:!0,inline:!0,children:t?.cliente})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Nº de factura:"})," ",e.jsx(l,{small:!0,inline:!0,children:t?.num_factura})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Fecha:"})," ",e.jsx(l,{small:!0,inline:!0,children:t?.date})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Total:"})," ",e.jsx(l,{small:!0,inline:!0,children:U(t?.invoice?.total??0)})]})]})})}),e.jsx($e,{canActivate303Complementary:t.canActivate303Complementary})]});class Ta extends Ie{markAsPaid(n){return this.post(`/invoices/${n}/mark-as-paid`)}}const Da=()=>new Ta;class Aa extends _e{constructor(n){super(),this.repository=n}markAsPaid(n){return this.execute(()=>this.repository.markAsPaid(n),{shouldThrowError:!0})}}const Oa=t=>new Aa(t),Ma=()=>{const t=Oa(Da());return{invoiceMarkAsPaid:Pt({queryKey:["invoices"],mutationFn:i=>t.markAsPaid(i)})}},Pa=({isOpen:t,closeModal:n,invoiceId:i,updateIngresosList:a})=>{const{invoiceMarkAsPaid:s}=Ma(),o=()=>{R.clickElement({event_label:"Marca ingreso con factura como cobrado"}),s.mutate(i,{onError:()=>{v.error({title:"No ha sido posible marcar el ingreso como cobrado",message:"Por favor, vuelve a intentarlo."}),n()},onSuccess:()=>{v.success({title:"Ingreso marcado como cobrado correctamente"}),a(),n()}})};return e.jsxs(Ee,{id:"modal-mark-as-paid",title:"¿Ya has cobrado este ingreso?",actionLabel:"Marcar como cobrado",onAction:o,isLoading:s.isPending,closeLabel:"Cancelar",variant:"small",onClose:n,isOpen:t,children:[e.jsx(l,{children:"Marca este ingreso como cobrado para actualizar su estado y llevar un control total sobre tu c
1ontabilidad."}),e.jsx(r,{marginTop:"md",children:e.jsx(W,{full:!0,tone:"info",title:"Asegúrate de haber cobrado tu ingreso antes de continuar",message:"No podrás volver a marcar este ingreso como pendiente"})})]})},Na={daily:"DAILY",weekly:"WEEKLY",monthly:"MONTHLY"},ka={DAILY:"Diaria",WEEKLY:"Semanal",MONTHLY:"Mensual"};function La(t){return{invoiceId:t.invoiceId,frequency:Na[t.recurrenciaType],startDate:S.formatNativeDateToString(t.startDate,"yyyy-MM-dd"),endDate:t.endDate?S.formatNativeDateToString(t.endDate,"yyyy-MM-dd"):null,clientEmail:t.email?t.email:null}}class Ra extends _e{constructor(n){super(),this.repository=n}programRecurrencia(n){return this.execute(()=>this.repository.programRecurrencia(n),{shouldThrowError:!0})}deleteRecurrencia(n){return this.execute(()=>this.repository.deleteRecurrencia(n),{shouldThrowError:!0})}}const Ht=t=>new Ra(t);class Fa extends Ie{programRecurrencia(n){const i=La(n);return this.post("/recurring-invoices-configurations",JSON.stringify(i))}deleteRecurrencia(n){return this.delete(`/recurring-invoices-configurations/${n}`)}}const zt=()=>new Fa,_a=()=>{const t=Ht(zt());return{deleteRecurrencia:we({queryKey:["recurrencia-program"],mutationFn:i=>t.deleteRecurrencia(i)})}},Ba=({total:t,clientEmail:n,endDate:i,frequency:a,startDate:s,clientName:o})=>{const d=ka[a]??"No definido";return e.jsx(W,{title:"Detalles de la recurrente programada:",tone:"info",full:!0,message:e.jsxs(r,{children:[e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Cliente:"})," ",e.jsx(l,{small:!0,inline:!0,children:o})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Tipo:"})," ",e.jsxs(l,{small:!0,inline:!0,children:[" ","Ingreso con factura"]})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Total:"})," ",e.jsx(l,{small:!0,inline:!0,children:U(t)})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Recurrencia:"})," ",e.jsx(l,{small:!0,inline:!0,children:d})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Fecha inicio:"})," ",e.jsx(l,{small:!0,inline:!0,children:S.convertDateFormatType(s,{formatFrom:"yyyy-MM-dd",formatTo:"dd-MM-yyyy"})})]}),i?e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Fecha fin:"})," ",e.jsx(l,{small:!0,inline:!0,children:S.convertDateFormatType(i,{formatFrom:"yyyy-MM-dd",formatTo:"dd-MM-yyyy"})})]}):null,n?e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Enviar facturas a:"})," ",e.jsx(l,{small:!0,inline:!0,children:n})]}):null]})})},wa=({isOpen:t,closeModal:n,recurrenciaData:i,updateIngresosList:a})=>{const{deleteRecurrencia:s}=_a(),o=()=>{R.clickElement({event_label:"Para recurrencia"}),s.mutate(i?.id??"",{onError:()=>{v.error({title:"No ha sido posible parar la factura recurrente",message:"Por favor, vuelve a intentarlo."}),n(),a()},onSuccess:()=>{v.success({title:"Factura recurrente parada correctamente",message:"No se crearán automáticamente más facturas como esta."}),n(),a()}})};return e.jsxs(ee,{id:"modal-delete-recurrencia",title:"Parar factura recurrente",actionLabel:"Parar recurrente",iconActionLabel:"calendar-slash",onAction:()=>o(),isLoading:s.isPending,closeLabel:"Cancelar",variant:"small",onClose:()=>n(),isOpen:t,children:[e.jsx(l,{children:"¿Quieres detener esta factura recurrente programada?"}),e.jsx(r,{marginTop:"xs",children:i?e.jsx(Ba,{...i}):null})]})},X={DAILY:"daily",WEEKLY:"weekly",MONTHLY:"monthly"},Ua={[X.DAILY]:{label:"Diaria",id:"1"},[X.WEEKLY]:{label:"Semanal",id:"7"},[X.MONTHLY]:{label:"Mensual",id:"31"}},qa={1:X.DAILY,7:X.WEEKLY,31:X.MONTHLY},Va=()=>{const{control:t}=Xe();return e.jsx(ke,{control:t,name:"recurrenciaType",Component:({field:n})=>{const i=Object.entries(Ua).map(([a,{label:s,id:o}])=>({label:s,id:o,checked:a===n.value}));return e.jsx(Nt,{label:"Recurrencia",required:!0,variant:"radio",id:"type-recurrencia",onChange:a=>{const s=qa[a[0]];if(s){n.onChange(s);const o={[X.DAILY]:"diaria",[X.WEEKLY]:"semanal",[X.MONTHLY]:"mensual"};R.option({option_label:`Factura recurrente ${o[s]}`})}},selectors:i})}})},Ya=()=>{const{userStatus:t}=Te(),{control:n}=Xe(),i=kt({control:n,name:"startDate"});return e.jsx(e.Fragment,{children:e.jsxs(he,{gridTemplateColumns:"1fr 1fr",gridTemplateAreas:` 2 "start end" 3 "notification notification" 4 `,gridColumnGap:"md",children:[e.jsx(ke,{control:n,name:"startDate",Component:({field:a,fieldState:{error:s}})=>e.jsx(ot,{value:a.value,required:!0,disabledDate:o=>{const d=S.formatNativeDateToString(o,"yyyy-MM-dd"),u=S.formatNativeDateToString(new Date,"yyyy-MM-dd");return S.isAfterCustom(u,d)},id:"start-date-recurrency",label:"Fecha inicio",helperText:s?.message,error:!!s?.message,onChange:o=>{a.onChange(o)}})}),e.jsx(ke,{control:n,name:"endDate",Component:({field:a,fieldState:{error:s}})=>e.jsx(ot,{value:a.value??null,placeholder:"Sin final",disabledDate:o=>{const d=S.formatNativeDateToString(o,"yyyy-MM-dd"),u=S.formatNativeDateToString(S.addDays(i,1),"yyyy-MM-dd");return S.isAfterCustom(u,d)},id:"end-date-recurrency",label:"Fecha fin",error:!!s?.message,helperText:s?.message?s?.message:t?.fechaBajaAutonomo?`Tu fecha de baja como autónomo es el ${t?.fechaBajaAutonomo}, puedes emitir facturas hasta ese dÃa`:"",onChange:o=>a.onChange(o)})}),e.jsx(r,{gridArea:"notification",children:e.jsx(Lt,{shouldExpand:!!i,children:e.jsx(r,{marginTop:"md",children:e.jsx(W,{full:!0,title:`La primera factura
4se creará con fecha del ${i?S.formatNativeDateToString(i,"dd-MM-yyyy"):""}`,tone:"info"})})})})]})})},Ha=()=>{const{control:t,register:n,formState:{errors:i},setValue:a}=Xe(),s=kt({control:t,name:"isSendEmailChecked"});return e.jsxs(r,{display:"flex",flexDirection:"column",gap:"sm",children:[e.jsx(ke,{control:t,name:"isSendEmailChecked",Component:({field:o})=>e.jsx(Tt,{id:"checker-send-automatically-email",checked:o.value,onChange:()=>{a("email",""),o.onChange(!o.value),o.value||R.fillField({item_id:"EnvÃo factura recurrente",event_label:"Marca enviar factura recurrente por mail"})},label:"Enviar automáticamente las facturas por mail"})}),e.jsx(Lt,{shouldExpand:s,children:e.jsx(hn,{...n("email"),required:!0,label:"Para",id:"email",error:!!i?.email?.message,helperText:i?.email?.message??"Solo puedes indicar una dirección de correo electrónico",type:"email"})})]})},za=()=>{const t=Ht(zt());return{programRecurrencia:Pt({queryKey:["recurrencia-program"],mutationFn:i=>t.programRecurrencia(i)})}},gt="Este campo es requerido";function xt(t,n){if(!n||!t)return!0;const i=S.convertDateFormatType(n),a=S.formatNativeDateToString(t,"yyyy-MM-dd");return S.isDateSameOrAfter(i,a)}function bt(t){return t?`Tu fecha de baja como autónomo es el ${t}, selecciona una fecha igual o anterior`:""}const $a=({selfEmployedTerminationDay:t})=>mn({invoiceId:He().required(),recurrenciaType:He().oneOf(["daily","weekly","monthly"]).required(),startDate:ct().required(gt).test("start-date-valid",bt(t),n=>xt(n,t)).test("start-date-before-end-date","La fecha de inicio debe ser anterior a la fecha de fin de recurrencia",function(n){const{endDate:i}=this.parent;if(!n||!i)return!0;const a=S.formatNativeDateToString(n,"yyyy-MM-dd"),s=S.formatNativeDateToString(i,"yyyy-MM-dd");return S.isAfterCustom(s,a)}),endDate:ct().nullable().test("end-date-valid",bt(t),n=>xt(n,t)),isSendEmailChecked:pn().required(),email:He().when("isSendEmailChecked",{is:n=>n,then:n=>n.email("El formato de mail no es correcto").required(gt),otherwise:n=>n.nullable()})}),Wa=t=>({invoiceId:t.invoiceId,recurrenciaType:null,startDate:null,endDate:t.endD
4ate,isSendEmailChecked:!1,email:""}),Qa=({isOpen:t,closeModal:n,invoiceId:i,hasReimbursableExpenses:a,updateIngresosList:s})=>{const{userStatus:o}=Te(),{programRecurrencia:d}=za(),u=fn({mode:"onChange",defaultValues:Wa({invoiceId:i,endDate:o.fechaBajaAutonomo?S.formatStringToNativeDate(o.fechaBajaAutonomo):null}),resolver:gn($a({selfEmployedTerminationDay:o?.fechaBajaAutonomo}))}),h=f=>{R.clickElement({event_label:"Programa la factura recurrente"}),d.mutate(f,{onSuccess:()=>{v.success({title:"Factura recurrente programada correctamente"}),n(),s()},onError:()=>{v.error({title:"No ha sido posible programar la factura recurrente",message:"Por favor, vuelve a intentarlo."}),n(),s()}})};return e.jsx(ee,{id:"modal-delete-ingreso",title:"Programar factura recurrente",actionLabel:"Programar recurrente",onAction:u.handleSubmit(h),isActionDisabled:!u.formState.isValid,closeLabel:"Cancelar",variant:"small",isLoading:d.isPending,onClose:()=>{u.reset(),n()},isOpen:t,children:e.jsx(xn,{form:u,onSubmit:h,children:e.jsxs(r,{display:"flex",flexDirection:"column",gap:"sm",children:[a?e.jsx(W,{title:"Este ingreso tiene gastos suplidos que no se incluirán",message:"Al programar la recurrente, los suplidos no se copiarán, ya que son gastos puntuales que normalmente no se repiten."}):null,e.jsx(Va,{}),e.jsx(Ya,{}),e.jsx(Ha,{})]})})})},Ga=({isOpen:t,onClose:n,onAction:i})=>{const[a,s]=c.useState(null);return e.jsx(ee,{isOpen:t,variant:"small",onClose:n,onAction:()=>a&&i({rectificationType:a}),title:"¿Qué parte de la factura quieres rectificar?",actionLabel:"Continuar",isActionDisabled:!a,children:e.jsx(r,{display:"flex",width:"100%",children:e.jsx(Nt,{fill:!0,onChange:o=>s(o[0]),selectors:[{fullWidth:!0,id:"COMPLETE",label:"Toda la factura",helperText:"Quiero anularla por completo.",checked:a==="COMPLETE",iconName:"file-times"},{fullWidth:!0,id:"PARTIAL",label:"Solo una parte",helperText:"Productos, unidades o importes.",checked:a==="PARTIAL",iconName:"file-edit-alt"}]})})})},Ka=({row:t,modals:n,isLoadingDelete:i,onDeleteIncome:a,onPayIncome:s,onRectificationTypeSelected:o,setForceUpdate:d})=>{const{push:u}=K(),h=t.invoiceId!==null;return e.jsxs(e.Fragment,{children:[h&&e.jsx(wa,{isOpen:n.state.isDeleteRecurrenceModalOpen,closeModal:n.closeDeleteRecurrenceModal,recurrenciaData:t.recurrenceConfiguration||t.createdByRecurrenceConfiguration,updateIngresosList:()=>d(!0)}),e.jsxs(ee,{id:"deleteIncomeModal",title:"Acción permanente",actionLabel:"Borrar ingreso",onAction:a,isLoading:i,destructiveAction:!0,onClose:n.closeDeleteModal,isOpen:n.state.isDeleteModalOpen,variant:"small",iconActionLabel:"trash-alt",children:[e.jsx(l,{children:"¿Seguro que quieres borrar este ingreso?"}),e.jsx(r,{marginTop:"xs",children:e.jsx(W,{full:!0,tone:"info",title:"Detalles del ingreso:",message:e.jsxs(r,{children:[t.num_factura&&e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Nº de factura:"})," ",e.jsx(l,{small:!0,inline:!0,children:t.num_factura})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Fecha:"})," ",e.jsx(l,{small:!0,inline:!0,children:t.date})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Total:"})," ",e.jsx(l,{small:!0,inline:!0,children:U(t.total)})]})]})})}),e.jsx($e,{canActivate303Complementary:t.canActivate303Complementary})]}),e.jsx(We,{isOpen:n.state.isNoAutoInvoiceModalOpen,title:"Debes activar la numeración de factura automática",labelAction:e.jsx(e.Fragment,{children:"Entendido"}),handleClose:n.closeNoAutoInvoiceModal,children:e.jsxs(r,{children:[e.jsx("p",{children:"Para crear facturas de ingreso recurrentes o duplicar una factura ya creada tienes que usar la numeración automática en tus ingresos."}),e.jsx("p",{children:e.jsx($,{onClick:f=>{f.preventDefault(),u("/user/profile/estilos-facturas")},label:"Puedes cambiarlo en la sección de estilo de factura en tu perfil"})})]})}),h&&t?.invoiceId&&e.jsx(Qa,{isOpen:n.state.isDuplicateModalOpen,closeModal:n.closeDuplicateModal,invoiceId:t.invoiceId,hasReimbursableExpenses:!!t.invoice?.hasReimbursableExpenses,updateIngresosList:()=>d(!0)}),h&&t?.invoiceId?e.jsx(Ia,{incomeData:t,isOpen:n.state.isDeleteInvoicedModalOpen,closeModal:n.closeDeleteInvoicedModal,invoiceId:t.invoiceId,updateIngresosList:()=>d(!0)}):e.jsxs(ve,{id:"modalDeleteCall",title:e.jsx(e.Fragment,{children:"Borrar ingreso"}),labelAction:e.jsx(e.Fragment,{children:"Borrar ingreso"}),handleAction:()=>{n.closeDeleteInvoicedModal(),a()},variant:"small",iconAction:"trash-alt",destructiveAction:!0,labelCancel:e.jsx(e.Fragment,{children:"Cancelar"}),handleCancel:n.closeDeleteInvoicedModal,isOpen:n.state.isDeleteInvoicedModalOpen,children:[e.jsx(l,{children:"¿Seguro que quieres borrar este ingreso?"}),e.jsx(r,{marginTop:"xs",children:e.jsx(W,{full:!0,tone:"info",title:"Detalles del ingreso:",message:e.jsxs(r,{children:[t.cliente&&e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Cliente:"})," ",e.jsx(l,{small:!0,inline:!0,children:t.cliente})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Fecha:"})," ",e.jsx(l,{small:!0,inline:!0,children:t.date})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Total:"})," ",e.jsx(l,{small:!0,inline:!0,children:U(t.total)})]})]})})}),e.jsx($e,{canActivate303Complementary:t.canActivate303Complementary})]}),h&&t?.invoiceId?e.jsx(Pa,{isOpen:n.state.isCollectedModalOpen,closeModal:n.closeCollectedModal,invoiceId:t.invoiceId,updateIngresosList:()=>d(!0)}):e.jsx(ve,{id:"modalPayCall",title:e.jsx(e.Fragment,{children:"Marcar como cobrada la factura"}),labelAction:e.jsx(e.Fragment,{children:"Estoy seguro"}),handleAction:s,labelCancel:e.jsx(e.Fragment,{children:"No estoy seguro"}),handleCancel:n.closeCollectedModal,isOpen:n.state.isCollectedModalOpen,children:e.jsxs("p",{children:["¿",e.jsx("strong",{children:"Estás seguro"})," que ya has cobrado esta factura de tu cliente?"]})}),n.state.isSendByEmailModalOpen&&e.jsx(Yt,{refreshData:()=>d(!0),incomeData:t,isModalOpen:n.state.isSendByEmailModalOpen,setIsModalOpen:f=>f?n.openSendByEmailModal():n.closeSendByEmailModal()}),n.state.isConciliationModalOpen&&e.jsx(Vt,{incomeData:t,refreshData:()=>d(!0),isModalOpen:n.state.isConciliationModalOpen,setIsModalOpen:f=>f?n.openConciliationModal():n.closeConciliationModal()}),e.jsx(Ga,{isOpen:n.state.isRectificationTypeModalOpen,onClose:n.closeRectificationTypeModal,onAction:o})]})},Ja=({row:t,setForceUpdate:n,autoNumInvoice:i})=>{const[a,s]=c.useState(!1),o=Pe({actionType:"verifactu-info",userPreferencesRepo:new Ne}),d=Pe({actionType:"rectification-info",userPreferencesRepo:new Ne}),u=Pe({actionType:"create-invoice-from-income-info",userPreferencesRepo:new Ne}),{modals:h,permissions:f,navigation:m,handleEdit:b,handleDelete:p,handleDeleteIncome:C,handlePay:g,handlePayIncome:x,handlePrint:E,handlePrintUninvoiced:I,handleDuplicate:A,handleDeleteRecurrence:y,handleRectification:O,handleCreateInvoiceFromIncome:T,handleOpenConciliation:N}=Ca({row:t,autoNumInvoice:i,setForceUpdate:n,showVerifactuModal:o.showModal,showRectificationModal:d.showModal,showModalCreateInvoiceFromIncome:u.showModal}),F=c.useCallback(async()=>{s(!0),await C(),s(!1)},[C]),q=c.useCallback(({rectificationType:k})=>{m.navigateToRectification({rectificationType:k})},[m]),M=t.hasConcepts&&Number(t.cliente_id)>0||f.isCreatedByNewInvoiceForm,Y=!M&&(t.cliente_id===0||t.isSimplificado),D=ja({row:t,permissions:f,onEdit:b,onDelete:p,onPay:g,onPrint:E,onDuplicate:A,onDeleteRecurrence:y,onRectification:O,onSendByEmail:h.openSendByEmailModal,onCreateInvoiceFromIncome:T,onPreview:m.navigateToPreview,onDuplicateInvoice:m.navigateToDuplicate,onOpenConciliation:N});return e.jsxs("div",{className:"table-element-actions",children:[e.jsxs(r,{display:"flex",gridGap:"xxs",
4justifyContent:"end",alignItems:"center",children:[f.hasActiveRecurrence&&e.jsx(va,{row:t,onClick:y}),M&&e.jsx(ft,{row:t,onClick:()=>E()}),Y&&e.jsx(ft,{row:t,onClick:I}),e.jsx(G,{text:"Más acciones",placement:"top",children:e.jsx(pe,{id:"actions-"+t.num_factura,className:"actions",triggerType:"action-link",triggerProps:{"aria-label":"Más acciones","data-test":"actions-"+t.num_factura,variant:"main",isIconOnly:!0,icon:"ellipsis-h",size:"M"},position:"right",options:D,forceContentToBottomOnMobile:!0})})]}),e.jsx(Ka,{row:t,modals:h,isLoadingDelete:a,onDeleteIncome:F,onPayIncome:x,onRectificationTypeSelected:q,setForceUpdate:n}),e.jsx(Rt,{isOpen:o.isVisible,dontShowAgain:o.dontShowAgain,onCancel:o.cancel,onConfirm:o.confirm,onDontShowAgainChange:o.setDontShowAgain}),e.jsx(ua,{isOpen:d.isVisible,dontShowAgain:d.dontShowAgain,onCancel:d.cancel,onConfirm:d.confirm,onDontShowAgainChange:d.setDontShowAgain}),e.jsx(ha,{isOpen:u.isVisible,onCancel:u.cancel,onConfirm:u.confirm,dontShowAgain:u.dontShowAgain,onDontShowAgainChange:u.setDontShowAgain})]})},Xa=({setForceUpdate:t,componentProps:n})=>{const{userStatus:i}=c.useContext(fe);return[{name:e.jsx(e.Fragment,{children:"Nº DE DOCUMENTO"}),data:"num_factura",md:2,width:"10%",handler:(a,s)=>e.jsx(ra,{invoiceData:s})},{name:e.jsx(e.Fragment,{children:"FECHA"}),width:"1%",data:"date",md:2},{name:e.jsx(e.Fragment,{children:"CLIENTE"}),data:"cliente",handler:(a,s,o)=>e.jsx(l,{maxWidth:"400px",truncate:!0,fontSize:"14px",children:o}),md:3},{name:e.jsx(e.Fragment,{children:"BASE IMPONIBLE"}),data:"base",width:"15%",titlePosition:"text-right",md:1,handler:(a,s,o)=>e.jsx(r,{style:{textAlign:"right"},children:me.renderCurrency(a,s,o)})},{name:e.jsx(e.Fragment,{children:"TOTAL"}),data:"total",width:"15%",titlePosition:"text-right",md:1,handler:(a,s,o)=>e.jsxs(r,{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"xs",children:[me.renderCurrency(a,s,o)," "]})},{name:e.jsx(e.Fragment,{children:"COBRO"}),titlePosition:"text-center",data:"estado",md:1,orderable:!1,handler:(a,s)=>e.jsx(la,{row:s,refreshData:()=>t(!0)})},{name:e.jsx(e.Fragment,{children:"ENVÃO"}),orderable:!1,titlePosition:"text-center",md:1,handler:(a,s)=>{const o=s?.invoiceId;return s?.previousToDeclarando||!o?null:e.jsx(ca,{incomeData:s,refreshData:()=>t(!0)})}},ae.enabledVerifactuInformation()&&!je.instance.isFree()?{width:"1%",md:1,name:e.jsxs(r,{display:"flex",alignItems:"center",children:["VERIFACTU"," ",e.jsx(r,{marginBottom:"3px",children:e.jsx(G,{style:{lineHeight:"20px"},title:"¿Qué es Verifactu?",text:"Tus facturas se envÃan automáticamente a la Agencia Tributaria para verificarlas a través de la normativa Verifactu.",link:{href:"https://ayuda.declarando.es/es/articles/11503839-lo-que-nadie-mas-te-ha-contado-sobre-verifactu",text:"Saber más"},placement:"top",appendTo:document.body,children:e.jsx(J,{marginLeft:"xxs",name:"question-circle",fontSize:"sm",color:"primary.Main"})})})]}),handler:(a,s)=>e.jsx(da,{data:s})}:void 0,{name:"",data:null,md:2,handler:(a,s)=>s?.previousToDeclarando?null:e.jsx(Ja,{setForceUpdate:t,autoNumInvoice:i.autoNumInvoice,row:s,...n})}]},Ct=({id:t="buscador-lista",value:n,handleFilterChange:i})=>e.jsx(ye,{id:t,name:"filter",value:n,placeholder:"Buscar por cliente o identificador fiscal",onChange:a=>i(a.target.value)});class Za extends _e{constructor(n){super(),this.repository=n}getAvailableFilters(){return this.execute(()=>this.repository.getAvailableFilters(),{shouldThrowError:!0})}}const ei=t=>new Za(t),ti={ACCOUNTING_SOURCE:{propertyName:"accountingSource",label:"Fuente de Contabilidad"}},jt={ONLINE_SHOP:{translation:"Tienda online",value:"onlineShop"}};function ni(t){const n={};return t.forEach(i=>{const a=ti[i.name];a&&(n[a.propertyName]={label:a.label,options:i.options.map(s=>({value:jt[s].value,label:jt[s].translation||s}))})}),n}class ai extends Ie{async getAvailableFilters(){return this.get("/incomes/available-filters")}}const ii=()=>new ai,ri=()=>{const t=ei(ii()),n=Be({queryKey:["available-incomes-filters"],fetchFn:()=>t.getAvailableFilters(),config:{select:i=>({...i,data:ni(i.data)}),...bn,refetchOnMount:!0}});return{availableFilters:n.data?.data,isLoading:n.isLoading}},si=({handleChange:t,value:n})=>{const{availableFilters:i,isLoading:a}=ri();if(a||!i||!i.accountingSource?.options?.length)return null;const s=()=>{const o=i.accountingSource.options.map(d=>({value:d.value,label:d.label.charAt(0).toUpperCase()+d.label.slice(1)}));return[{value:"all",label:"Todos los orÃgenes"},...o]};return e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por origen ingreso",name:"accounting-source",id:"accounting-source",value:n,options:s(),clearable:!1,placeholder:ue,onChange:o=>t(o)})})},li=({getOptions:t})=>{const{shouldShowModalDatePicker:n}=Cn(),{cancel:i,confirm:a,dontShowAgain:s,setDontShowAgain:o,isVisible:d,showModal:u}=Pe({actionType:"verifactu-info",userPreferencesRepo:new Ne});return e.jsxs(e.Fragment,{children:[e.jsx(pe,{options:t({shouldShowModalDatePicker:n(),triggerModalVerifactuInfo:u}),triggerType:"button",triggerProps:{label:"Añadir ingreso",icon:"plus",iconPosition:"left"}}),e.jsx(Rt,{dontShowAgain:s,isOpen:d,onCancel:i,onConfirm:a,onDontShowAgainChange:o})]})},oi=t=>{const n=K(),i=jn(),{userStatus:a}=c.useContext(fe),s=c.useRef(null),o=ie.instance.getIncomesLocations(),[d,u]=c.useState(!1),h=P=>u(P),{filter:f,filterIae:m,filterYear:b,filterTrimester:p,filterAccountingSource:C,filterPaid:g,typeClient:x,orders:E,isLoading:I,handleFilterChange:A,handleIaeChange:y,handleYearChange:O,handleTrimesterChange:T,handleClientChange:N,handleAccountingSourceChange:F,handleStateChange:q,hasDefaultFilters:M,applyDefaultFilters:Y,getFilters:D,replaceStringAllToEmpty:k,setIsLoading:le}=na({filters:t.filters,setFilters:t.setFilters,previousPath:t.previousPath}),{showPopup:B,setShowPopup:oe,handlePrintList:L}=aa({filterYear:b,filterTrimester:p,typeClient:x,filterPaid:g,filterIae:m,filter:f,filterAccountingSource:C}),{getActionButtons:ce,showModalPickDate:qe,setShowModalPickDate:Ve,refModalIA:Ae}=ia(),it=Xa({setForceUpdate:h,componentProps:t});c.useEffect(()=>{!new RegExp(/action=noIAE/).test(i.hash)&&new RegExp(/action=noIAE/).test(window.location.href)&&setTimeout(()=>{n.push(o.getNewInvoicedIncomeUrl())},100)},[i]);const de=P=>P.type!=="IREN"?"invoiced":"uninvoiced",Wt=[{value:"all",label:e.jsx(e.Fragment,{children:"Todos los clientes"})},{value:"esp",label:e.jsx(e.Fragment,{children:"Españoles"})},{value:"eur",label:e.jsx(e.Fragment,{children:"Extranjeros"})}],Qt=[{value:"all",label:e.jsx(e.Fragment,{children:"Todos los estados"})},{value:"NO",label:e.jsx(e.Fragment,{children:"No cobrado"})},{value:"YES",label:e.jsx(e.Fragment,{children:"Cobrado"})}];return e.jsxs("div",{style:{height:"100%"},children:[e.jsxs(We,{isOpen:B,title:"Error al imprimir listado: selecciona un año",handleClose:()=>{oe(!1)},children:["Debes ",e.jsx("strong",{children:"seleccionar un año"})," para poder generar el listado."]}),e.jsx(vn,{isOpen:qe,onClose:()=>Ve(!1)}),e.jsx(Ut,{ref:P=>Ae.current=P,redirect:()=>{n.push(o.getNewIncomeWithInvoiceUrl())}}),e.jsxs(se,{height:"100%",children:[e.jsx(he,{mb:"lg",children:e.jsxs(he,{justifyContent:"space-between",gridTemplateColumns:["1fr","max-content max-content"],
4children:[e.jsx(r,{display:"inline",className:"add-ingresos",children:e.jsx(li,{getOptions:P=>ce(P)})}),e.jsx(r,{children:e.jsx(r,{display:{_:"none",largeScreen:"block"},width:"370px",children:e.jsx(Ct,{value:f,handleFilterChange:A})})})]})}),e.jsxs(r,{display:"flex",flexWrap:{_:"wrap",largeScreen:"nowrap"},gap:"xs",mb:"md",children:[e.jsxs(r,{gap:"sm",display:{_:"flex",largeScreen:"none"},flex:"1 1 100%",children:[e.jsx(r,{flex:"5",children:e.jsx(Ct,{id:"buscador-lista-movil",value:f,handleFilterChange:A})}),!M()&&e.jsx(V,{size:"L",label:"Borrar filtros",onClick:()=>Y()}),e.jsx(r,{display:"inline",className:"download-gastos","data-intercom-target":"download-gastos",children:e.jsx(dt,{handlePrint:L,showLabel:!1})})]}),e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por año",name:"year",id:"year",value:k(b),options:te.getOptionsList(),clearable:!1,placeholder:ue,onChange:P=>O(P)})}),e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por trimestre",name:"trimester",id:"trimester",value:k(p),options:Q.getOptionsList(),clearable:!1,placeholder:ue,onChange:P=>T(P)})}),a.iaes.length>1?e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(tt,{placeholder:ue,label:"Por IAE",ref:P=>{s.current=P},section:"ingresos",tab:"listado",id:"select-iae",iae:k(m),updateIae:y,...t})}):null,e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por estado",name:"paid",id:"paid",value:k(g),options:Qt,clearable:!1,placeholder:ue,onChange:P=>q(P)})}),e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por origen cliente",name:"cliente",id:"cliente",value:k(x),options:Wt,clearable:!1,placeholder:ue,onChange:P=>N(P)})}),e.jsx(si,{value:k(C),handleChange:F}),e.jsxs(r,{display:{_:"none",largeScreen:"flex"},gap:"xs",alignItems:"flex-end",children:[!M()&&e.jsx(V,{size:"L",label:"Borrar filtros",onClick:()=>Y()}),e.jsx(r,{display:"inline",className:"download-ingresos","data-intercom-target":"download-ingresos",children:e.jsx(dt,{handlePrint:L,showLabel:!1})})]})]}),e.jsx(r,{children:e.jsx(De,{id:"incomes-list-table",handleGet:(P,Gt,Kt,rt,Jt)=>(t.setFilters({...D(),orders:rt}),new Ot().getData(P,Gt,Kt,rt,Jt)),updateStatus:d,setForceUpdate:h,setRowClass:de,getData:()=>{le(!1)},filters:{filter:f,filterIae:m,year:b,period:p,paid:g,type:x,accountingSource:C},CustomEmptyData:P=>e.jsx(e.Fragment,{children:I?e.jsx(nt,{}):M()?P():e.jsx(Fe,{resetSearch:()=>Y()})}),orders:E??[{data:"date",order:"desc"},{data:"num_factura",order:"desc"}],cols:it})})]})]})},ci=Bt(oi,"incomesList"),H={filterYear:te.all,filterIae:"all",typeClient:"all",filterTrimester:Q.all,filter:"",orders:[{data:"issueDate",order:"desc"}]},di=({filters:t,setFilters:n,previousPath:i})=>{const a=i?.startsWith("/ingreso/")?t??{}:{},[s,o]=c.useState(a.filter??H.filter),[d,u]=c.useState(a.filterYear??H.filterYear),[h,f]=c.useState(a.filterIae??H.filterIae),[m,b]=c.useState(a.typeClient??H.typeClient),[p,C]=c.useState(a.filterTrimester??H.filterTrimester),[g,x]=c.useState(a.orders??H.orders),[E,I]=c.useState(!1);return c.useEffect(()=>{(!t||Object.keys(t).length===0)&&n({...H})},[]),c.useEffect(()=>{n({filter:s,filterIae:h,filterYear:d,filterTrimester:p,typeClient:m,orders:g})},[s,h,d,p,m,g]),{filter:s,filterIae:h,filterYear:d,filterTrimester:p,typeClient:m,orders:g,setOrders:x,isLoading:E,setIsLoading:I,hasDefaultFilters:()=>s===""&&h==="all"&&d===te.all&&p===Q.all&&m==="all",applyDefaultFilters:()=>{I(!0),o(H.filter),u(H.filterYear),f(H.filterIae),b(H.typeClient),C(H.filterTrimester),x([...H.orders])},getFilters:()=>({filter:s,filterIae:h,filterYear:d,filterTrimester:p,typeClient:m,orders:g}),handleFilterChange:D=>{o(D),I(!0)},handleYearChange:D=>{u(D),I(!0)},handleIaeChange:D=>{f(D),I(!0)},handleTrimesterChange:D=>{C(D),I(!0)},handleClientChange:D=>{b(D),I(!0)},replaceStringAllToEmpty:D=>D==="all"?"":D}},ui={all:void 0,esp:"spanish",eur:"foreign"},$t=({filters:t,orders:n,rows:i,page:a})=>({limit:i,offset:a!==void 0&&i!==void 0?a*i:void 0,search:t?.filter,clientOrigin:t?.type?ui[t.type]:void 0,activityId:t?.filterIae==="all"?void 0:t?.filterIae,year:t?.year,quarter:t?.period==="all"?void 0:t?.period,sort:n&&n.length>0?`${n[0].order==="asc"?"+":"-"}${n[0].data==="issueDate"||n[0].data==="documentNumber"?"series":n[0].data}`:void 0}),vt={[ut.LIST_PDF]:"PDF",[ut.LIST_CSV]:"CSV"},hi=({filter:t,filterIae:n,filterTrimester:i,filterYear:a})=>({handlePrintList:async o=>{const d=Ze(et()),u=$t({filters:{filterIae:n,filter:t,period:i,year:a},orders:[]});try{const h=await d.getPrintedList({...u,offset:0,limit:0,sort:"-series",printType:vt[o]}),f=URL.createObjectURL(h?.data),m=document.createElement("a");m.href=f,m.download=`Presupuestos.${vt[o].toLowerCase()}`,document.body.appendChild(m),m.click(),document.body.removeChild(m),URL.revokeObjectURL(f)}catch{}}});class mi extends Ie{deleteQuotation(n){return this.delete("/presupuesto/"+n)}}const pi=()=>{const t=Ze(et());return{deleteQuote:we({queryKey:["quotes"],mutationFn:i=>t.deleteQuote(i)})}},fi=({isOpen:t,closeModal:n,updateQuotesList:i,quoteData:a})=>{const{deleteQuote:s}=pi(),o=()=>{R.clickElement({event_label:"Borra presupuesto"}),s.mutate(a.id,{onError:()=>{v.error({title:"No ha sido posible borrar el presupuesto",message:"Por favor, vuelve a intentarlo."}),n()},onSuccess:()=>{v.success({title:"El presupuesto se ha borrado correctamente"}),i(),n()}})};return e.jsxs(Ee,{id:"modal-delete-quote",title:"Acción permanente",actionLabel:"Borrar presupuesto",onAction:()=>o(),isLoading:s.isPending,closeLabel:"Cancelar",variant:"small",onClose:n,isOpen:t,destructiveAction:!0,iconActionLabel:"trash-alt",children:[e.jsx(l,{children:"¿Seguro que quieres borrar este presupuesto?"}),e.jsx(r,{marginTop:"xs",children:e.jsx(W,{full:!0,tone:"info",title:"Detalles del presupuesto:",message:e.jsxs(r,{children:[e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Cliente:"})," ",e.jsx(l,{small:!0,inline:!0,children:a?.clientName})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Nº de presupuesto:"})," ",e.jsx(l,{small:!0,inline:!0,children:a?.documentNumber})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Fecha emisión:"})," ",e.jsx(l,{small:!0,inline:!0,children:a.issueDate})]}),a.dueDate?e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Fecha vencimiento:"})," ",e.jsx(l,{small:!0,inline:!0,children:a.dueDate})]}):null,e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"Total:"})," ",e.jsx(l,{small:!0,inline:!0,children:U(a?.total)})]})]})})})]})},gi=({row:t,onClick:n})=>e.jsx(G,{text:"Descargar presupuesto",placement:"top",children:e.jsx(V,{size:"M",label:e.jsx(J,{name:"file-download","data-test":"print-quotation",onClick:()=>n(t.id),button:!0})})}),xi=({row:t,isCreatedByNewQuotesForm:n,setForceUpdate:i})=>{const a=K(),s=c.useContext(fe),o=c.useRef(ie.instance.getQuotationsLocations()),d=c.useRef(new mi),u=c.useRef(ie.instance.getIncomesLocations()),[h,f]=c.useState(!1),m=()=>f(!1),b=()=>s.planHelper.isBaja()?(s.openPopUpContrata(),!1):!0,p=y=>{if(b()){if(n)return a.push(`/ingreso/presupuesto-editar/${y}`);a.push(o.current.gotoModifyQuotation(y))}},C=async y=>{if(b())return n?a.push(`/ingreso/presupuesto-convertir/${y.id}`):Je.gotoConvertirPresupuesto(y.id)},g=()=>{b()&&f(!0)},x=()=>{f(!1),d.current.deleteQuotation(t.id).then(()=>{i(!0),v.success({title:"Presupuesto borrado correctamente"})}).catch(()=>{v.error({title:"No ha sido posible borrar el presupuesto",message:"Por favor, vuelve a intentarlo."})})},E=async y=>{if(!n){window.location.href=u.current.getUrlQuotationPdf(y);return}try{const T=await yn(In()).getSalesDocumentPDF(y),N=URL.createObjectURL(T?.data),F=document.createElement("a");F.href=N,F.download=`Presupuesto${y}.pdf`,document.body.appendChild(F),F.click(),document.body.removeChild(F),URL.revokeObjectURL(N)}catch{v.error({title:"No ha sido posible iniciar la descarga",message:"Por favor, vuelve a intentarlo"})}},I=()=>({isDisabled:t.transformedInvoiceId&&n,icon:"trash-alt",onClick:g,children:"Borrar",value:"Borrar",tooltipOptions:(()=>
4{if(n&&t.transformedInvoiceId)return{title:"No es posible borrar un presupuesto convertido a ingreso",text:"Conservar el detalle del presupuesto inicial te ayudará a tener una referencia de la cotización aprobada por tu cliente",appendTo:document.body}})()}),A=()=>n?{icon:"copy",children:"Duplicar presupuesto",value:"Duplicar",onClick:()=>{b()&&a.push(`/ingreso/presupuesto-duplicar/${t.id}`)}}:void 0;return e.jsxs("div",{className:"table-element-actions",children:[e.jsxs(r,{display:"flex",gap:"xxs",justifyContent:"end",children:[e.jsx(gi,{row:t,onClick:E}),e.jsx(G,{text:"Más acciones",placement:"top",children:e.jsx(pe,{id:"actions-"+t.documentNumber,triggerType:"action-link",triggerProps:{variant:"main",isIconOnly:!0,icon:"ellipsis-h",size:"M"},position:"right",forceContentToBottomOnMobile:!0,options:[{icon:"file-download",onClick:()=>E(t.id),children:"Descargar presupuesto",value:"Imprimir"},t.transformedInvoiceId?void 0:{icon:"money-withdraw",onClick:()=>C(t),children:"Convertir en ingreso",value:"transformar"},A(),{divider:"top",icon:"edit",onClick:()=>p(t.id),children:"Editar",value:"Editar"},{...I()}].filter(y=>!!y)})})]}),n?e.jsx(fi,{isOpen:h,closeModal:m,quoteData:t,updateQuotesList:()=>i(!0)}):e.jsx(ve,{id:"modalDeleteCall",isOpen:h,title:e.jsx(e.Fragment,{children:"Borrar presupuesto"}),labelAction:e.jsx(e.Fragment,{children:"Estoy seguro"}),handleAction:x,destructiveAction:!0,labelCancel:e.jsx(e.Fragment,{children:"No lo estoy"}),handleCancel:m,children:e.jsx("p",{children:e.jsxs(e.Fragment,{children:["¿Estás seguro que quieres ",e.jsx("strong",{children:"borrar este presupuesto?"})]})})})]})},bi=({setForceUpdate:t,componentProps:n})=>[{name:"Nº DOCUMENTO",data:"documentNumber",md:3},{name:"FECHA",data:"issueDate",md:3},{name:"NOMBRE CLIENTE",data:"clientName",md:4},{name:"TOTAL",data:"total",md:2,handler:me.renderCurrency},{name:"ESTADO",data:"transformedInvoiceId",orderable:!1,handler:(i,a,s)=>s===null?e.jsx(re,{label:"No convertido a ingreso",type:"status",value:"warning"}):e.jsx(re,{label:"Convertido a ingreso",type:"status",value:"success"}),md:1},{name:"",data:null,md:2,handler:(i,a)=>e.jsx(xi,{setForceUpdate:t,row:a,isCreatedByNewQuotesForm:a?.documentNumber,...n})}],Me="Todos",yt=({id:t="buscador-lista",value:n,handleFilterChange:i})=>e.jsx(ye,{id:t,name:"filter",value:n,placeholder:"Buscar por cliente o identificador fiscal",onChange:a=>i(a.target.value)}),Ci=t=>{const n=K(),i=c.useContext(fe),a=c.useRef(null),s=c.useRef(null),o=ie.instance.getQuotationsLocations(),[d,u]=c.useState(!1),{filter:h,filterIae:f,filterYear:m,filterTrimester:b,typeClient:p,orders:C,setOrders:g,isLoading:x,setIsLoading:E,hasDefaultFilters:I,applyDefaultFilters:A,handleFilterChange:y,handleYearChange:O,handleIaeChange:T,handleTrimesterChange:N,handleClientChange:F,replaceStringAllToEmpty:q}=di({filters:t.filters,setFilters:t.setFilters,previousPath:t.previousPath}),{handlePrintList:M}=hi({filter:h,filterIae:f,filterTrimester:b,filterYear:m}),Y=bi({setForceUpdate:u,componentProps:t}),D=()=>{i.planHelper.isBaja()?i.openPopUpContrata():i.userStatus.iaes.length===0?a.current.handleAddIae():n.push(o.getNewQuotationUrl())},k=()=>"quotation",le=[{value:"all",label:e.jsx(e.Fragment,{children:"Clientes"})},{value:"esp",label:e.jsx(e.Fragment,{children:"Españoles"})},{value:"eur",label:e.jsx(e.Fragment,{children:"Extranjeros"})}];return e.jsxs("div",{style:{height:"100%"},children:[e.jsxs(se,{height:"100%",children:[e.jsxs(he,{justifyContent:"space-between",gridTemplateColumns:["1fr","max-content max-content"],marginBottom:"lg",children:[e.jsx(r,{children:e.jsx($,{id:"btn-add-quotation",onClick:D,icon:"plus",label:"Añadir presupuesto"},"btn-add-quotation")}),e.jsx(r,{children:e.jsx(r,{display:{_:"none",largeScreen:"block"},width:"370px",children:e.jsx(yt,{value:h,handleFilterChange:y})})})]}),e.jsxs(r,{display:"flex",flexWrap:{_:"wrap",largeScreen:"nowrap"},gap:"xs",mb:"md",children:[e.jsxs(r,{gap:"sm",display:{_:"flex",largeScreen:"none"},flex:"1 1 100%",children:[e.jsx(r,{flex:5,children:e.jsx(yt,{id:"buscador-lista-movil",value:h,handleFilterChange:y})}),!I()&&e.jsx(V,{size:"L",label:"Borrar filtros",onClick:A}),Re(M,!1)]}),e.jsxs(r,{gap:"xs",display:"flex",flexWrap:{mobile:"wrap",largeScreen:"nowrap"},flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:[e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por año",name:"year",id:"year",value:q(m),options:te.getOptionsList(),clearable:!1,placeholder:Me,onChange:B=>O(B)})}),e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por trimestre",name:"trimester",id:"trimester",value:q(b),options:Q.getOptionsList(),clearable:!1,placeholder:Me,onChange:B=>N(B)})}),i.userStatus.iaes.length>1?e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(tt,{placeholder:Me,ref:s,label:"Por IAE",section:"ingresos",tab:"presupuestos",id:"select-iae",iae:q(f),updateIae:T,...t})}):null,e.jsx(r,{flex:{mobile:"1 1 100%",largeScreen:"1 1 0"},children:e.jsx(z,{label:"Por origen cliente",name:"cliente",id:"cliente",value:q(p),options:le,clearable:!1,placeholder:Me,onChange:B=>F(B)})}),e.jsxs(r,{display:{_:"none",largeScreen:"flex"},gap:"xs",alignItems:"flex-end",children:[!I()&&e.jsx(V,{size:"L",label:"Borrar filtros",onClick:A}),Re(M,!1)]})]})]}),e.jsx(r,{children:e.jsx(De,{id:"quotations-list-table",handleGet:async(B,oe,L,ce)=>{g(ce);const qe=Ze(et()),Ve=$t({filters:L,orders:ce,rows:oe,page:B});try{const Ae=await qe.getQuotesList({...Ve});return{data:{rows:Ae?.data?.data.map(de=>({...de,issueDate:S.formatNativeDateToString(de?.issueDate),dueDate:de?.dueDate?S.formatNativeDateToString(de?.dueDate):null})),totalRows:Ae?.data?.count}}}catch{}},updateStatus:d,setForceUpdate:u,setRowClass:k,getData:()=>E(!1),CustomEmptyData:B=>e.jsx(e.Fragment,{children:x?e.jsx(nt,{}):I()?B():e.jsx(Fe,{resetSearch:A})}),filters:{filter:h,year:m,filterIae:f,period:b,type:p},orders:C??[{data:"issueDate",order:"desc"}],cols:Y})})]}),e.jsx(Ut,{ref:a,redirect:()=>n.push(o.getNewQuotationUrl())})]})},ji=Bt(Ci,"quotationsList"),vi=()=>{const t=Ft(_t());return{deleteProduct:we({queryKey:["products"],mutationFn:i=>t.deleteProduct(i)})}},yi=({resetSearch:t})=>e.jsx(Fe,{resetSearch:t});function Ii({filters:t,orders:n,rows:i,page:a}){return{type:t.type==="ALL"?void 0:t.type,search:t.search,limit:i,offset:a*i,sort:n?.length>0?`${n[0].order==="asc"?"+":"-"}${n[0].data}`:void 0}}const Si=()=>{const{push:t}=K(),[n,i]=c.useState(!1),[a,s]=c.useState(""),[o,d]=c.useState(void 0),[u,h]=c.useState(!1),f=()=>{h(!0),s(""),d(void 0)},m=()=>a!==""||o!==void 0;return e.jsx("div",{style:{height:"100%"},children:e.jsxs(se,{height:"100%",children:[e.jsxs(he,{justifyContent:"space-between",gridTemplateColumns:["1fr","max-content max-content"],marginBottom:"md",gap:"sm",children:[e.jsx($,{label:"Añadir producto",onClick:()=>t(Le.CREATION),icon:"plus"}),e.jsx(r,{children:e.jsx(r,{width:{_:"100%",tablet:"370px"},children:e.jsx(ye,{id:"search-productos",name:"search",value:a,placeholder:"Buscar...",onChange:b=>s(b.target.value)})})})]}),e.jsx(r,{display:"flex",flexWrap:{_:"wrap",tablet:"nowrap"},gap:"xs",mb:"md",children:e.jsx(r,{gap:"xs",flex:1,display:"flex",children:e.jsx(r,{width:{_:"100%",tablet:"370px"},children:e.jsx(z,{"aria-label":"Filtrar por tipo de producto",name:"type",id:"filter-type",value:o,options:[{value:"ALL",label:"Todos los tipos"},{value:"SERVICES",label:"Servicios"},{value:"GOODS",label:"Bienes"}],clearable:!1,placeholder:"Todos los tipos",onChange:b=>d(b)})})})}),e.jsx(r,{children:e.jsx(De,{id:"products-list-table",handleGet:async(b,p,C,g)=>{const x=Ft(_t()),E=Ii({filters:C,orders:g,rows:p,page:b});try{const I=await x.getProductsList({...E});return{data:{rows:I?.data?.data.map(y=>Sn(y)),totalRows:I?.data?.count}}}catch{}finally{h(!1)}},updateStatus:n,setForceUpdate:i,filters:{search:a,type:o},orders:[{data:"description",order:"asc"}],CustomEmptyData:e.jsx(e.Fragment,{children:!u&&e.jsx(e.Fragment,{children:m()?e.jsx(yi,{resetSearch:()=>f()}):e.jsxs(r,{display:"flex",justifyContent:"center",flexDirection:"column",alignCenter:!0,maxWidth:800,mx:"auto",children:[e.jsx(r,{mb:"sm",maxWidth:"fit-content",mx:"auto",textColor:"semantic.text.status.link",children:e.jsx(J,{name:"clipboard-notes",fontSize:64,color:"inerit"})}),e.jsx(l,{inline:!0,bold:!0,large:!0,mb:"xs",children:"Guarda tus productos y crea ingresos más rápido"}),e.jsx(l,{inline:!0,textColor:"semantic.text.general.text2",mb:"lg",children:"Añade lo que vendes para reutilizarlo cada vez que registres un ingreso con factura. Asà ahorrarás tiempo, evitarás errores y lo tendrás todo más organizado."}),e.jsx("div",{children:e.jsx($,{label:"Añade tu primer producto",onClick:()=>t(Le.CREATION)})})]})})}),cols:[{name:"DESCRIPCIÃN",data:"description",width:"50%",md:5},{name:"REFERENCIA",width:"15%",data:"reference",md:2},{name:"TIPO",width:"10%",data:"type",md:2,handler:(b,p)=>e.jsx(re,{value:"default",type:"icon",iconName:p.type==="GOODS"?"box":"user-nurse",label:p.type==="GOODS"?"Bienes":"Servicios"})},{name:"IMPORTE",data:"price",width:"15%",titlePosition:"text-right",md:2,handler:(b,p)=>e.jsx(r,{style:{textAlign:"right"},children:U(p.price,{minimumFractionDigits:2,maximumFractionDigits:5})})},{name:"",data:null,md:2,width:"1%",handler:(b,p)=>e.jsx(Ei,{product:p,refreshList:()=>i(C=>!C)})}]})})]})})},Ei=({product:t,refreshList:n})=>{const{push:i}=K(),[a,s]=c.useState(!1),{deleteProduct:o}=vi(),d=()=>{o.mutate(t.id,{onSuccess:()=>{v.success({title:"Producto borrado correctamente"}),s(!1),n()},onError:()=>{v.error({title:"No ha sido posible borrar el producto",message:"Por favor, vuelve a intentarlo."}),s(!1)}})};return e.jsxs(e.Fragment,{children:[e.jsx(G,{text:"Más acciones",placement:"top",children:e.jsx(pe,{id:"actions-"+t.id,className:"actions",triggerType:"action-link",triggerProps:{"aria-label":"Más acciones","data-test":"actions-"+t.id,variant:"main",isIconOnly:!0,icon:"ellipsis-h",size:"M"},position:"right",options:[{children:"Duplicar",icon:"copy",onClick:()=>i(Le.DUPLICATION(t.id))},{children:"Editar",icon:"edit",onClick:()=>i(Le.EDITION(t.id))},{children:"Borrar",icon:"trash-alt",onClick:()=>s(!0)}],forceContentToBottomOnMobile:!0})}),e.jsxs(ee,{title:"Acción permanente",isOpen:a,onClose:()=>s(!1),variant:"small",destructiveAction:!0,onAction:()=>d(),actionLabel:"Borrar producto",iconActionLabel:"trash-alt",children:[e.jsx(l,{children:"¿Seguro que quieres borrar este producto?"}),e.jsx(r,{marginTop:"xs",children:e.jsx(W,{full:!0,tone:"info",title:"Detalles del producto:",message:e.jsxs(r,{children:[e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Tipo:"})," ",e.jsx(l,{small:!0,inline:!0,children:t.type==="GOODS"?"Bien":"Servicio"})]}),e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Descripción:"})," ",e.jsx(l,{small:!0,inline:!0,children:t.description})]}),t.reference?e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Referencia:"})," ",e.jsx(l,{small:!0,inline:!0,children:t.reference})]}):null,e.jsxs(r,{children:[e.jsx(l,{small:!0,bold:!0,inline:!0,children:"⢠Importe unitario:"})," ",e.jsx(l,{small:!0,inline:!0,children:U(t.price,{minimumFractionDigits:2,maximumFractionDigits:5})})]})]})})})]})]})},Fi=t=>{const n=En(),{rolesHelper:i}=Te(),[a,s]=c.useState(0),o="/ingresos/",d=[{name:"Ingresos",track_params:be.listado_ingresos,section:e.jsx(ci,{...t}),enabled:!0,path:`${o}ingresos`,tabSelector:"tab-ingresos"},{name:"Presupuestos",track_params:be.presupuestos,section:e.jsx(ji,{...t}),enabled:!0,path:`${o}presupuestos`,tabSelector:"tab-presupuestos"},{name:"Clientes",track_params:be.clientes,section:e.jsx(kn,{...t}),enabled:!0,path:`${o}clientes`,tabSelector:"tab-clientes"},{name:"Catálogo",track_params:be.productos,section:e.jsx(Si,{}),enabled:!0,path:`${o}productos`,tabSelector:"tab-productos"},{name:"Cobros bancarios",track_params:be.movimientos_bancarios_ingresos,section:e.jsx(ea,{}),enabled:i.isConciliacionEnabled(),path:`${o}cobros-bancarios`,tabSelector:"tab-cobros-bancarios"}];c.useEffect(()=>{const h=d.filter(m=>m.enabled).findIndex(m=>m.path===o+n?.tab),f=h>=0?h:0;s(f)},[d]);const u=d.filter(h=>h.enabled);return e.jsx(Tn,{activeSection:a,setActiveSection:s,tabs:u,title:"Tus ingresos",...t})};export{Fi 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.