import{a as e}from"./chunk-BNv3lrIs.js";import{n as t,t as n}from"./jsx-runtime-pmtNMKr4.js";import{a as r,t as i}from"./auth-BMqSpi21.js";import{i as a}from"./usuarios-uLfQbCp9.js";import{n as o}from"./toast-hrvP3G3Q.js";import{t as s}from"./Button-_yTP2B6J.js";import{t as c}from"./Modal-Bcsx2gm1.js";import{t as l}from"./DropdownActions-DPd7qitt.js";import{t as u}from"./useMediaQuery-C_7KdS3g.js";import{t as d}from"./load-HIf6x4Qy.js";import{t as f}from"./dayjs.min-CvL7oEs_.js";import{t as p}from"./es-B8cbrmO0.js";import{t as m}from"./localizedFormat-CVLUt9Cf.js";import{A as h,Hn as g,Rn as _,Vi as v,Wt as y,b,li as x,u as S,ui as C}from"./index-CBXvBSuP.js";import{t as w}from"./withRouter-BfV3B9Vo.js";import{t as T}from"./PageHeader-C3X_ZaAc.js";import{t as E}from"./DataTable-BuE1Zp8A.js";import{t as D}from"./useTheme-D5mB3Mad.js";import{t as O}from"./query-string-B0XJl1mO.js";import{p as k}from"./servicios-CcQlTFEQ.js";import{O as A,S as j,a as M,b as N,v as ee,x as te}from"./ordenesServicio-CEn64RyV.js";import{r as P}from"./diasFestivos-0gfe8HKU.js";import{r as F}from"./facturacion-BdsMsq6l.js";import{n as I,t as L}from"./facturas-LE51C-Mn.js";var R=e(t(),1),z=e(f(),1);p();var ne=e(m(),1),B=n(),re=({id:e,pdf:t,xml:n,factura:r,tipoUsuario:i,history:a})=>{let[s,c]=(0,R.useState)(),u=()=>{try{A(e).then(e=>{let{data:t}=e;console.log(t),c(t)}).catch(e=>{e.message===`Network Error`&&o.error(`Conexión al servidor no disponible`)})}catch(e){console.log(e)}};(0,R.useEffect)(()=>{u()},[e]),console.log(s);let[d,f]=(0,R.useState)([0]);console.log(s?.correoDoctor);let p=()=>{try{F().then(e=>{let{data:t}=e;console.log(t),f(H(t.filter(e=>e.idUsuarioDatos==s?.correoDoctor)))}).catch(e=>{console.error(`Error al obtener la facturación`,e)})}catch(e){console.error(`Error en obtenerFacturacion`,e)}};(0,R.useEffect)(()=>{p()},[s?.correoDoctor]),console.log(d);let[m,h]=(0,R.useState)(),g=()=>{try{S(s?.correoDoctor).then(e=>{let{data:t}=e;console.log(t),h(t)}).catch(e=>{e.message===`Network Error`&&o.error(`Conexión al servidor no disponible`)})}catch(e){console.log(e)}};(0,R.useEffect)(()=>{g()},[s]),console.log(m);let[_,v]=(0,R.useState)([]),y=()=>{try{k(s?.folio).then(e=>{let{data:t}=e;console.log(t),v(V(t))}).catch(e=>{e.message===`Network Error`&&o.error(`Conexión al servidor no disponible`)})}catch(e){console.log(e)}};(0,R.useEffect)(()=>{y()},[s?.folio]);function b(e){return e?.trim().replace(/\s+/g,` `).toUpperCase()}let x=_.map(e=>`
  <cfdi:Concepto 
      NoIdentificacion="${e?.id}" 
      Cantidad="${e?.dientes.length}" 
      Unidad="PIEZA" 
      Descripcion="${e?.descripcionAdicional}" 
      ValorUnitario="${(Number(e?.precio)/e?.dientes.length).toFixed(2)}" 
      Importe="${Number(e?.precio).toFixed(2)}" 
      ClaveProdServ="42151500"
      ClaveUnidad="H87" 
      ObjetoImp="02" 
  >
  <cfdi:Impuestos>
        <cfdi:Traslados>
          <cfdi:Traslado 
            Base="${Number(e?.precio)}" 
            Impuesto="002" 
            TipoFactor="Tasa" 
            TasaOCuota="0.160000" 
            Importe="${(Number(e?.precio)*.16).toFixed(6)}"
          />
        </cfdi:Traslados>
      </cfdi:Impuestos>
  </cfdi:Concepto>
`).join(``),C=`
  <cfdi:Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cfdi="http://www.sat.gob.mx/cfd/4"
      xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd"
      Version="4.0" Fecha="${s?.fecha.replace(` `,`T`)}" Serie="A" Folio="A${s?.folio?.split(`-`)[1]}" LugarExpedicion="76804"
      Moneda="MXN" SubTotal="${Number(s?.precioTotal).toFixed(2)}" Total="${(Number(s?.precioTotal)*1.16).toFixed(2)}" TipoDeComprobante="I" Exportacion="01" 
      TipoCambio="1" MetodoPago="PUE" FormaPago="01">
      <cfdi:Emisor Rfc="HCD230213587" Nombre="HERFRAN CORPORATIVO DENTAL" RegimenFiscal="601" />
      <cfdi:Receptor Rfc="${d[0]?.rfc}" Nombre="${b(d[0]?.razonSocial)}" UsoCFDI="${d[0]?.usoCfdi}" DomicilioFiscalReceptor="${d[0]?.codigoPostal}" RegimenFiscalReceptor="${d[0]?.regimenFiscal}" />
      <cfdi:Conceptos>
          ${x}
      </cfdi:Conceptos>
      <cfdi:Impuestos TotalImpuestosTrasladados="${(Number(s?.precioTotal)*.16).toFixed(2)}">
          <cfdi:Traslados>
              <cfdi:Traslado Base="${Number(s?.precioTotal).toFixed(2)}" Impuesto="002" TipoFactor="Tasa" 
                  TasaOCuota="0.160000" Importe="${(Number(s?.precioTotal)*.16).toFixed(2)}" />
          </cfdi:Traslados>
      </cfdi:Impuestos>
      <cfdi:Complemento>
          <tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital"
              xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd"
              Version="1.1" UUID="" FechaTimbrado="" RfcProvCertif="" SelloCFD="" NoCertificadoSAT="" SelloSAT="" />
      </cfdi:Complemento>
  </cfdi:Comprobante>
`,w=e=>btoa(unescape(encodeURIComponent(e))),T=async()=>{try{let e=await I(w(C),`A`+s?.folio?.split(`-`)[1]);o.success(e.data.mensaje),e.data.archivoXml&&e.data.archivoPdf&&(await M(s?._id,{facturacion:`1`}),a({search:O.stringify(``)}))}catch(e){o.error(`Error al enviar el XML`),console.log(e)}};async function E(e,t){try{let n=await L(e,t);if(n.data.success){let r=n.data.file,i=e+`.`+t,a=atob(r),o=Array(a.length);for(let e=0;e<a.length;e++)o[e]=a.charCodeAt(e);let s=new Uint8Array(o),c=new Blob([s],{type:t===`pdf`?`application/pdf`:`application/xml`}),l=document.createElement(`a`);l.href=URL.createObjectURL(c),l.download=i,l.click()}else console.error(`Error al obtener el archivo:`,n.data.error)}catch(e){console.error(`Error al hacer la solicitud:`,e.message)}}function D(e){E(e,`pdf`)}function j(e){E(e,`xml`)}return(0,B.jsx)(l,{buttonColor:`minimal`,icon:`fas fa-ellipsis-v`,children:r==`0`?(0,B.jsx)(l.Button,{onClick:T,icon:`fas fa-file-excel`,color:`text-yellow-500`,children:`Facturar`}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(l.Button,{onClick:()=>j(`A`+s?.folio?.split(`-`)[1]),icon:`fas fa-file-excel`,color:`text-blue-500`,children:`Descargar XML`}),(0,B.jsx)(l.Button,{onClick:()=>D(`A`+s?.folio?.split(`-`)[1]),icon:`fas fa-file-pdf`,color:`text-red-500`,children:`Descargar PDF`})]})})};function V(e){let t=[];return e.forEach(e=>{t.push({id:e._id,folio:e.folio,folioODS:e.ODT,fecha:e.fechaHora,pieza:e.pieza,sistemaColor:e.sistemaColor,tipoDentadura:e.distencion,tonos:e.tonoInferior+`, `+e.tonoMedio+`, `+e.tonoSuperior,dientes:e.diente,departamento:e.departamento,imagenDiente:e.imagenDiente,imagenEsquema:e.imagenEsquema,prioridad:e.prioridad,estado:e.estado,direccionConsultorio:e.municipio,dia:e.dia,numeroProceso:e.numeroProceso,nombreProceso:e.nombreProceso,motivoPausa:e.motivoPausa,imagenResultadoFinal:e.imagenResultadoFinal?e.imagenResultadoFinal:`Sin Imagen`,garantia:e.garantia?e.garantia:`1`,descripcionAdicional:e.descripcionAdicional,precio:e.precio})}),t}function H(e){let t=[];return e.forEach(e=>{t.push({id:e._id,rfc:e.rfc,razonSocial:e.razonSocial,regimenFiscal:e?.regimenFiscal?.split(`-`)[0],usoCfdi:e?.usoCfdi?.split(`-`)[0],calle:e.calle,numeroExterior:e.numeroExterior,numeroInterior:e.numeroInterior,codigoPostal:e.codigoPostal,colonia:e.colonia,municipio:e.municipio,estadoPais:e.estadoPais,observaciones:e.observaciones,estado:e.estado})}),t}function U(e){let{location:t,history:n}=e;z.default.locale(`es`),z.default.extend(ne.default);let[l,f]=(0,R.useState)([]),p=async()=>{try{let{data:e}=await P();f(K(e))}catch(e){console.error(`Error al obtener las órdenes de servicio:`,e)}};(0,R.useEffect)(()=>{p()},[]);let[m,S]=(0,R.useState)(!0),[w,O]=(0,R.useState)(``),[A,M]=(0,R.useState)(``),F=()=>{try{a(r(i())).then(e=>{let{data:t}=e;O(t.tipo),M(t.email)}).catch(e=>{e.message===`Network Error`&&o.error(`Conexión al servidor no disponible`)})}catch(e){console.log(e)}};(0,R.useEffect)(()=>{F()},[]),(0,R.useEffect)(()=>{setTimeout(()=>{S(!1)},500)},[]);let[I,L]=(0,R.useState)([]),V=()=>{if(w==`administrador`||w==`mesa de control`||w==`contabilidad`)try{ee().then(e=>{let{data:t}=e;L(W(t.filter(e=>e.estado==5)))}).catch(e=>{})}catch{}else if(w==`consultorio`)try{N(A).then(e=>{let{data:t}=e;L(W(t.filter(e=>e.estado==5)))}).catch(e=>{})}catch{}else if(w==`doctor`)try{te(A).then(e=>{let{data:t}=e;L(W(t.filter(e=>e.estado==5)))}).catch(e=>{})}catch{}else if(w==`mensajero`)try{j(A).then(e=>{let{data:t}=e;L(W(t.filter(e=>e.estado==5)))}).catch(e=>{})}catch{}};(0,R.useEffect)(()=>{V()},[t,A]);let[H,U]=(0,R.useState)(!0),[q,J]=(0,R.useState)([]),Y=()=>{let e=setTimeout(()=>{J(I),U(!1)},0);return()=>clearTimeout(e)};(0,R.useEffect)(()=>{Y()},[]);let[ie,X]=(0,R.useState)(!1),[ae,oe]=(0,R.useState)(null),[se,ce]=(0,R.useState)(null),[Z,le]=(0,R.useState)(!0),[ue,de]=(0,R.useState)(``),fe=e=>{if(e&&e.rowData){let t=e.rowData[0];de(t),console.log(`Valor de la primera columna:`,t)}else console.error(`tableMeta o tableMeta.rowData es undefined`);le(!Z)};console.log(w);let[pe,me]=(0,R.useState)([]),he=e=>{try{k(e).then(e=>{let{data:t}=e;console.log(t),me(G(t))}).catch(e=>{})}catch{}},[ge,Q]=(0,R.useState)(!1),$=e=>new Intl.NumberFormat(`es-MX`,{style:`currency`,currency:`MXN`,minimumFractionDigits:2}).format(e);return u(D().breakpoints.down(`sm`)),(0,B.jsx)(B.Fragment,{children:(0,B.jsx)(`div`,{children:Z?(0,B.jsxs)(`div`,{children:[m&&(0,B.jsx)(d,{}),(0,B.jsx)(T,{title:`Facturación`,icon:g}),w==`doctor`&&(0,B.jsx)(`h5`,{style:{textAlign:`center`,fontStyle:`italic`,fontWeight:`bold`,color:`red`},children:`Si tienes cambios pendientes por confirmar, hazlo antes de las 12:00PM o las entregas se reprogramaran a la segunda visita`}),(0,B.jsx)(`div`,{className:`divTabla`,children:(0,B.jsx)(E,{title:`Lista de facturaciones`,datos:I,columnas:[{name:`ID`,selector:e=>e.id,omit:!0},{name:`FOLIO`,selector:e=>e.folio,sortable:!0},{name:`CLIENTE`,selector:e=>e.nombreDoctor,sortable:!0},{name:`RFC`,selector:e=>e.rfcDoctor,sortable:!0},{name:`FECHA DE RECEPCION`,selector:e=>e.fechaEntrada,sortable:!0,cell:e=>(0,B.jsx)(B.Fragment,{children:b(e.fechaEntrada)})},{name:`SUBTOTAL`,selector:e=>e.precioTotal,sortable:!0,cell:e=>$(e.precioTotal==null?0:e.precioTotal)},{name:`IMPUESTOS`,selector:e=>e.precioTotal,sortable:!0,cell:e=>$(e.precioTotal*.16)},{name:`TOTAL`,selector:e=>e.precioTotal,sortable:!0,cell:e=>{let t=e.precioTotal,n=t*.16;return $(Number(t)+parseFloat(n))}},{name:`SERVICIOS`,cell:e=>(0,B.jsx)(s,{variant:`link`,onClick:()=>{he(e.folio),Q(!0)},children:(0,B.jsx)(x,{icon:_,style:{color:`#000080`}})})},{name:`FECHA FINALIZACION`,selector:e=>e.fechaFinalizacion,sortable:!0,cell:e=>(0,B.jsx)(B.Fragment,{children:e.fechaFinalizacion?b(e.fechaFinalizacion):`Aun no finaliza`})},{name:`FACTURACION`,selector:e=>e.facturacion,sortable:!0,cell:e=>{let t=e.facturacion;return(0,B.jsx)(v,{bg:t==`1`?`success`:`warning`,children:t==`0`?`Pendiente`:`Facturado`})}},{name:`PDFFACTURACION`,selector:e=>e.pdfFacturacion,omit:!0},{name:`XMLFACTURACION`,selector:e=>e.xmlFacturacion,omit:!0},{name:`ACCIONES`,cell:e=>e.facturacion==`0`&&w==`doctor`?`No disponibles`:(0,B.jsx)(re,{id:e.id,pdf:e.pdfFacturacion,xml:e.xmlFacturacion,factura:e.facturacion,tipoUsuario:w,history:n})}]})}),(0,B.jsxs)(h,{show:ie,onClose:()=>X(!1),maxWidth:`xl`,children:[(0,B.jsx)(h.Header,{closeButton:!0,onClose:()=>X(!1),children:se}),(0,B.jsx)(h.Body,{children:ae})]}),(0,B.jsxs)(c,{show:ge,onHide:()=>Q(!1),size:`xl`,children:[(0,B.jsx)(c.Header,{closeButton:!0,children:(0,B.jsx)(c.Title,{children:`Información detallada`})}),(0,B.jsx)(c.Body,{children:(0,B.jsx)(`div`,{children:(0,B.jsxs)(C,{striped:!0,bordered:!0,hover:!0,children:[(0,B.jsx)(`thead`,{children:(0,B.jsxs)(`tr`,{children:[(0,B.jsx)(`th`,{children:`Departamento`}),(0,B.jsx)(`th`,{children:`Pieza`}),(0,B.jsx)(`th`,{children:`Sistema de color`}),(0,B.jsx)(`th`,{children:`Diente`}),(0,B.jsx)(`th`,{children:`Tono Inferior`}),(0,B.jsx)(`th`,{children:`Tono Medio`}),(0,B.jsx)(`th`,{children:`Tono Superior`}),(0,B.jsx)(`th`,{children:`Descripción de protesis`}),(0,B.jsx)(`th`,{children:`Audio`})]})}),(0,B.jsx)(`tbody`,{children:pe.map((e,t)=>(0,B.jsxs)(`tr`,{children:[(0,B.jsx)(`td`,{children:e.clasificacion}),(0,B.jsx)(`td`,{children:e.pieza}),(0,B.jsx)(`td`,{children:e.sistemaColor}),(0,B.jsx)(`td`,{children:e.diente}),(0,B.jsx)(`td`,{children:e.tonoInferior}),(0,B.jsx)(`td`,{children:e.tonoMedio}),(0,B.jsx)(`td`,{children:e.tonoSuperior}),(0,B.jsx)(`td`,{children:e.descripcionAdicional}),(0,B.jsx)(`td`,{children:e.audio?(0,B.jsx)(`audio`,{controls:!0,src:e.audio}):(0,B.jsx)(`span`,{children:`No disponible`})})]},t))})]})})}),(0,B.jsx)(c.Footer,{children:(0,B.jsx)(s,{variant:`secondary`,onClick:()=>Q(!1),children:`Cerrar`})})]})]}):(0,B.jsxs)(`div`,{style:{position:`relative`},children:[(0,B.jsx)(`div`,{style:{position:`absolute`,top:`2px`,left:`10px`},children:(0,B.jsx)(s,{variant:`primary`,style:{color:`#fff`,textDecoration:`none`},onClick:fe,children:(0,B.jsx)(x,{icon:y})})}),(0,B.jsx)(`h2`,{style:{textAlign:`center`,marginTop:`2%`},children:`Imagenes de orden de cliente`})]})})})}function W(e){let t=[];return e.forEach(e=>{t.push({id:e._id,folio:e.folio,fecha:e.fecha,localidad:e.localidad,nombreDoctor:e.nombreDoctor,nombrePaciente:e.nombrePaciente,tipoDentadura:e.tipoDentadura,servicios:e.servicios,otros:e.otros,recibio:e.recibio,fechaEntrada:e.fechaEntrada,correoDoctor:e.correoDoctor,correoConsultorio:e.correoConsultorio,estado:e.estado,telefonoDoctor:e.telefonoDoctor,cancelacion:e.cancelacion,cargo:e.cargoOrden,cambios:e.cambios?e.cambios:`0`,aprobado:e.aprobado?e.aprobado:`No disponible`,direccionConsultorio:e?.direccionConsultorio?.municipio,precioTotal:e.precioTotal,fechaFinalizacion:e.fechaFinalizacion,rfcDoctor:e.rfcDoctor,facturacion:e.facturacion?e.facturacion:`0`,pdfFacturacion:e.pdfFacturacion,xmlFacturacion:e.xmlFacturacion})}),t}function G(e){return e.map(e=>{let t=e.diente,n=``;return Array.isArray(t)&&(n=t.map(e=>e.match(/\d+/)).filter(Boolean).join(`, `)),{id:e._id,folio:e.folio,clasificacion:e.clasificacion,material:e.material,pieza:e.pieza,precio:e.precio,descripcionAdicional:e.descripcionAdicional,sistemaColor:e.sistemaColor,distencion:e.distencion,diente:n,tonoInferior:e.tonoInferior,tonoMedio:e.tonoMedio,tonoSuperior:e.tonoSuperior,imagenEsquema:e.imagenEsquema,imagenDiente:e.imagenDiente,audio:e.audio}})}function K(e){return e.map(e=>({id:e._id,fecha:e.fecha,descripcion:e.descripcion,estado:e.estado}))}var q=w(U);export{q as default};