PageSourceSearch

https://dgac.gob.gt/assets/projectService-DMlZyHxV.js

js dgac.gob.gt collected 2026-10-02 11:18:51 UTC 12,951 bytes, 1 lines download raw bytes

1import{Y as b,n as $,X as A,aF as v,$ as N,g as R,a2 as O,by as D,bz as T,Z as q}from"./index-DVu_w4ho.js";const z=[/^\/marking(?:\/|$)/],F=()=>typeof window>"u"?!1:z.some(t=>t.test(window.location.pathname)),E=(t,e,s)=>(s.forEach((n,i)=>{const[o,r]=n;t[`filters[$and][${e}][$or][${i}][${o}]`]=r}),e+1),U=(t,e="assigned",s=0)=>{if(e==="none"||O()||F()||D()!=="mine")return s;const n=T();return n?E(t,s,[["Asesor][id][$eq",n],["supervisors][id][$eq",n]]):s},l=v.create({baseURL:A.BASE_URL,timeout:A.TIMEOUT});l.interceptors.request.use(t=>{const e=localStorage.getItem(A.STORAGE_KEYS.AUTH_TOKEN)||A.AUTH_TOKEN;return e&&(t.headers.Authorization=`Bearer ${e}`),t.headers["Cache-Control"]="no-store, max-age=0",t.headers.Pragma="no-cache",t.headers.Expires="0",(t.method||"get").toLowerCase()==="get"&&(t.params={...t.params||{},_ts:Date.now()}),t},t=>Promise.reject(t));l.interceptors.response.use(t=>t,t=>(navigator.onLine&&q(t),Promise.reject(t)));const P=async(t,e)=>{try{return await t()}catch(s){if(!navigator.onLine||(s==null?void 0:s.code)==="ECONNABORTED"||(s==null?void 0:s.message)==="Network Error"||s instanceof TypeError||typeof(s==null?void 0:s.message)=="string"&&s.message.toLowerCase().includes("failed to fetch"))return console.log("📴 Guardando operación offline:",e.description),await N.addOperation({url:e.url,method:e.method,body:e.body,headers:R(),entityType:"proyecto",entityId:e.entityId,action:e.action,description:e.description,maxRetries:3}),{success:!0,offline:!0,data:e.optimisticData||e.body,message:`${e.description} - Se sincronizará cuando vuelva la conexión`};throw s}},w={getProjects:async(t={})=>{var e,s,n,i;try{const{page:o=1,pageSize:r=10,search:a="",includeDeleted:c=!1,recordScope:u="assigned",filters:d={},sort:m="createdAt:desc"}=t,y={"pagination[page]":o,"pagination[pageSize]":r,sort:m,"populate[0]":"Venta","populate[1]":"estados_de_proyecto","populate[2]":"Asesor","populate[3]":"Seguimiento.Adjunto","populate[4]":"empresa","populate[5]":"supervisors","populate[6]":"cliente","populate[7]":"Adjuntos"};c?y["filters[eliminado][$eq]"]=!0:y["filters[eliminado][$ne]"]=!0;let _=0;a&&(_=E(y,_,[["Nombre][$containsi",a],["OT][$containsi",a],["Venta][Nombre][$containsi",a],["Venta][codigo][$containsi",a],["empresa][Nombre][$containsi",a],["cliente][Nombre][$containsi",a]])),d.stage&&(y["filters[estados_de_proyecto][documentId][$eq]"]=d.stage),d.company&&(y["filters[empresa][documentId][$eq]"]=d.company),d.sale&&(y["filters[Venta][documentId][$eq]"]=d.sale),Array.isArray(d.advisor)&&d.advisor.length>0&&(_=E(y,_,d.advisor.map(p=>["Asesor][id][$eq",p])));const g=d.dateRange||{};g.from&&(y["filters[fecha_entrega][$gte]"]=g.from instanceof Date?g.from.toISOString():g.from),g.to&&(y["filters[fecha_entrega][$lte]"]=g.to instanceof Date?g.to.toISOString():g.to),U(y,u,_);const S=await l.get("/api/projects",{params:y}),h=p=>{var f;return p?Array.isArray(p==null?void 0:p.data)?p.data.map(j=>{var I;return{id:j.id,documentId:j.documentId||((I=j.attributes)==null?void 0:I.documentId)||j.id,...j.attributes}}):p!=null&&p.data?{id:p.data.id,documentId:p.data.documentId||((f=p.data.attributes)==null?void 0:f.documentId)||p.data.id,...p.data.attributes}:p:null};return{success:!0,data:(S.data.data||[]).map(p=>{const f=p.attributes||{};return{...p,documentId:p.documentId||f.documentId||p.id,Nombre:p.Nombre||f.Nombre,OT:p.OT||f.OT,Venta:h(p.Venta||f.Venta),empresa:h(p.empresa||f.empresa),cliente:h(p.cliente||f.cliente),estados_de_proyecto:h(p.estados_de_proyecto||f.estados_de_proyecto),Asesor:h(p.Asesor||f.Asesor),supervisors:h(p.supervisors||f.supervisors)}}),pagination:((e=S.data.meta)==null?void 0:e.pagination)||{}}}catch(o){return console.error("Error fetching projects:",o),{success:!1,error:((i=(n=(s=o.response)==null?void 0:s.data)==null?void 0:n.error)==null?void 0:i.message)||"Error al cargar proyectos",data:[]}}},getProject:async t=>{var e,s,n;try{const o=(await l.get(`/api/projects/${t}`,{params:{"populate[Venta][fields][0]":"Nombre","populate[Venta][fields][1]":"documentId","populate[Venta][fields][2]":"Precio","populate[estados_de_proyecto][fields][0]":"Nombre","populate[estados_de_proyecto][fields][1]":"documentId","populate[Asesor][fields][0]":"id","populate[Asesor][fields][1]":"username","populate[Asesor][fields][2]":"email","populate[supervisors][fields][0]":"id","populate[supervisors][fields][1]":"username","populate[supervisors][fields][2]":"email","populate[cliente][fields][0]":"Nombre","populate[cliente][fields][1]":"Correo","populate[cliente][fields][2]":"documentId","populate[Seguimiento][populate]":"Adjunto","populate[Adjuntos]":"true","populate[empresa][fields][0]":"Nombre","populate[empresa][fields][1]":"documentId","populate[empresa][fields][2]":"tipo_cliente"}})).data.data,r=(o==null?void 0:o.attributes)||{},a=c=>{var u;return c?Array.isArray(c==null?void 0:c.data)?c.data.map(d=>{var m;return{id:d.id,documentId:d.documentId||((m=d.attributes)==null?void 0:m.documentId)||d.id,...d.attributes}}):c!=null&&c.data?{id:c.data.id,documentId:c.data.documentId||((u=c.data.attributes)==null?void 0:u.documentId)||c.data.id,...c.data.attributes}:c:null};return{success:!0,data:{...o,documentId:(o==null?void 0:o.documentId)||r.documentId||(o==null?void 0:o.id),Nombre:(o==null?void 0:o.Nombre)||r.Nombre,OT:(o==null?void 0:o.OT)||r.OT,Venta:a((o==null?void 0:o.Venta)||r.Venta),empresa:a((o==null?void 0:o.empresa)||r.empresa),cliente:a((o==null?void 0:o.cliente)||r.cliente),estados_de_proyecto:a((o==null?void 0:o.estados_de_proyecto)||r.estados_de_proyecto),Ases
1or:a((o==null?void 0:o.Asesor)||r.Asesor),supervisors:a((o==null?void 0:o.supervisors)||r.supervisors)}}}catch(i){return console.error("Error fetching project:",i),{success:!1,error:((n=(s=(e=i.response)==null?void 0:e.data)==null?void 0:s.error)==null?void 0:n.message)||"Error al cargar proyecto"}}},formatDataForStrapi:t=>{const e={...t},s=r=>{if(r==null||r==="")return r;const a=String(r).trim();return/^\d{2}:\d{2}$/.test(a)?`${a}:00.000`:/^\d{2}:\d{2}:\d{2}$/.test(a)?`${a}.000`:(/^\d{2}:\d{2}:\d{2}\.\d{3}$/.test(a),a)},n=r=>{if(r==null||r==="")return r;const a=String(r).trim();if(/^\d{4}-\d{2}-\d{2}$/.test(a))return a;const c=a.match(/^(\d{4}-\d{2}-\d{2})T/);return c!=null&&c[1]?c[1]:a},i=["day_shift_init","day_shift_end","late_shift_init","late_shift_end","night_shift_init","night_shift_end"],o=["date_ini_work","date_end_work"];return i.forEach(r=>{r in e&&(e[r]=s(e[r]))}),o.forEach(r=>{r in e&&(e[r]=n(e[r]))}),e.Asesor!==void 0&&(Array.isArray(e.Asesor)?e.Asesor={set:e.Asesor}:e.Asesor={set:[]}),e.supervisors!==void 0&&(Array.isArray(e.supervisors)?e.supervisors={set:e.supervisors}:e.supervisors={set:[]}),e},createProject:async t=>{var n,i,o;const e=t.Nombre||"Nuevo proyecto";Array.isArray(t.Asesor)&&[...t.Asesor];const s=async()=>{const r=w.formatDataForStrapi(t),c=(await l.post("/api/projects",{data:r})).data.data,u=JSON.parse(localStorage.getItem("user")||"{}"),d=await w.getProject(c.documentId);if(!d.success)throw new Error(d.error||"Error al cargar proyecto creado");const m=d.data;return u.id&&$({moduleName:"Proyecto",action:"created",record:m,recordId:m.documentId,route:`/project/${m.documentId}`,payload:t,creatorId:u.id}),{success:!0,data:m,message:"Proyecto creado exitosamente"}};try{return await P(s,{url:`${A.BASE_URL}/api/projects`,method:"POST",body:{data:t},action:"create",description:`Crear proyecto: ${e}`,optimisticData:{...t,documentId:`temp_${Date.now()}`,_offline:!0}})}catch(r){return console.error("Error creating project:",r),{success:!1,error:((o=(i=(n=r.response)==null?void 0:n.data)==null?void 0:i.error)==null?void 0:o.message)||"Error al crear proyecto"}}},updateProject:async(t,e)=>{var i,o,r;const s=e.Nombre||"Proyecto";Array.isArray(e.Asesor)&&[...e.Asesor];const n=async()=>{var m;const a=JSON.parse(localStorage.getItem("user")||"{}"),c=w.formatDataForStrapi(e);await l.put(`/api/projects/${t}`,{data:c});const u=await w.getProject(t);if(!u.success)throw new Error(u.error||"Error al cargar proyecto actualizado");const d=u.data;return a.id&&$({moduleName:"Proyecto",action:"updated",record:d,recordId:d.documentId,route:`/project/${d.documentId}`,payload:e,creatorId:(m=d==null?void 0:d.createdBy)==null?void 0:m.id}),{success:!0,data:d,message:"Proyecto actualizado exitosamente"}};try{return await P(n,{url:`${A.BASE_URL}/api/projects/${t}`,method:"PUT",body:{data:e},entityId:t,action:"update",description:`Actualizar proyecto: ${s}`,optimisticData:{...e,documentId:t,_offline:!0}})}catch(a){return console.error("Error updating project:",a),{success:!1,error:((r=(o=(i=a.response)==null?void 0:i.data)==null?void 0:o.error)==null?void 0:r.message)||"Error al actualizar proyecto"}}},deleteProject:async t=>{var e,s,n,i;try{const r=(await l.get(`/api/projects/${t}`,{params:{"populate[0]":"Asesor"}})).data.data;if(!r)return{success:!1,error:"Proyecto no encontrado"};const a=JSON.parse(localStorage.getItem("user")||"{}");return await l.put(`/api/projects/${t}`,{data:{eliminado:!0,fecha_eliminacion:new Date().toISOString(),eliminado_por:a.username||a.email||"unknown"}}),console.log("🗑️ Proyecto movido a papelera:",r.Nombre),a.id&&r&&$({moduleName:"Proyecto",action:"deleted",record:r,recordId:r.documentId||r.id,route:`/project/${t}`,payload:{eliminado:!0,fecha_eliminacion:new Date().toISOString()},creatorId:(e=r.createdBy)==null?void 0:e.id}),{success:!0,message:"Proyecto movido a la papelera"}}catch(o){return console.error("Error deleting project:",o),{success:!1,error:((i=(n=(s=o.response)==null?void 0:s.data)==null?void 0:n.error)==null?void 0:i.message)||"Error al eliminar proyecto"}}},restoreProject:async t=>{var e,s,n;try{return await l.put(`/api/projects/${t}`,{data:{eliminado:!1,fecha_eliminacion:null,eliminado_por:null}}),{success:!0,message:"Proyecto restaurado exitosamente"}}catch(i){return console.error("Error restoring project:",i),{success:!1,error:((n=(s=(e=i.response)==null?void 0:e.data)==null?void 0:s.error)==null?void 0:n.message)||"Error al restaurar proyecto"}}},permanentDeleteProject:async t=>{var e,s,n,i;try{const r=(await l.get(`/api/projects/${t}`,{params:{"populate[0]":"Asesor","populate[1]":"Seguimiento.Adjunto","populate[2]":"formularios_digitales"}})).data.data;if(!r)return{success:!1,error:"Proyecto no encontrado"};console.log("🗑️ Eliminando permanentemente proyecto:",r.Nombre);try{const c=(await l.get("/api/esquemas",{params:{"filters[proyecto][documentId][$eq]":t,"pagination[pageSize]":100}})).data.data||[];for(const u of c)await l.delete(`/api/esquemas/${u.documentId}`)}catch(a){console.warn("⚠️ Error eliminando esquemas:",a.message)}try{const u=((await l.get("/api/form-entries",{params:{"pagination[pageSize]":1e3}})).data.data||[]).filter(d=>{var m;return((m=d.data)==null?void 0:m._projectDocumentId)===t});for(const d of u)await l.delete(`/api/form-entries/${d.documentId}`)}catch(a){console.warn("⚠️ Error eliminando respuestas:",a.message)}
1if(r.notes&&Array.isArray(r.notes)){for(const a of r.notes)if(a.Archivos&&Array.isArray(a.Archivos))for(const c of a.Archivos)try{await l.delete(`/api/upload/files/${c.id}`)}catch(u){console.warn("⚠️ Error eliminando archivo:",u.message)}}if(r.todo&&Array.isArray(r.todo)){for(const a of r.todo)if(a.archivos&&Array.isArray(a.archivos))for(const c of a.archivos)try{await l.delete(`/api/upload/files/${c.id}`)}catch(u){console.warn("⚠️ Error eliminando archivo:",u.message)}}if(r.Seguimiento&&Array.isArray(r.Seguimiento)){for(const a of r.Seguimiento)if(a.Adjunto&&Array.isArray(a.Adjunto))for(const c of a.Adjunto)try{await l.delete(`/api/upload/files/${c.id}`)}catch(u){console.warn("⚠️ Error eliminando archivo:",u.message)}}if(((e=r.formularios_digitales)==null?void 0:e.length)>0)try{await l.put(`/api/projects/${t}`,{data:{formularios_digitales:{set:[]}}})}catch(a){console.warn("⚠️ Error desconectando formularios:",a.message)}return await l.delete(`/api/projects/${t}`),console.log("✅ Proyecto eliminado permanentemente"),{success:!0,message:"Proyecto eliminado permanentemente"}}catch(o){return console.error("Error permanent deleting project:",o),{success:!1,error:((i=(n=(s=o.response)==null?void 0:s.data)==null?void 0:n.error)==null?void 0:i.message)||"Error al eliminar proyecto permanentemente"}}},uploadFile:async t=>{var e,s,n;try{const i=new FormData;return i.append("files",t),{success:!0,data:(await l.post("/api/upload",i,{headers:b()})).data[0]}}catch(i){return console.error("Error uploading file:",i),{success:!1,error:((n=(s=(e=i.response)==null?void 0:e.data)==null?void 0:s.error)==null?void 0:n.message)||"Error al subir archivo"}}},deleteFile:async t=>{var e,s,n;try{return await l.delete(`/api/upload/files/${t}`),{success:!0}}catch(i){return console.error("Error deleting file:",i),{success:!1,error:((n=(s=(e=i.response)==null?void 0:e.data)==null?void 0:s.error)==null?void 0:n.message)||"Error al eliminar archivo"}}}};export{w as P};

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.