Actualizar contabilidad.html

This commit is contained in:
2026-03-01 20:45:34 +00:00
parent 08c5d5d796
commit 9377072b3f

View File

@@ -480,10 +480,21 @@
const date = new Date(b.created_at).toLocaleDateString('es-ES'); const date = new Date(b.created_at).toLocaleDateString('es-ES');
let bStatus = ''; let bStatus = '';
// Comprobamos si nos viene el estado del servicio como anulado desde el backend
let isAnulado = b.linked_service_status_name && b.linked_service_status_name.toLowerCase().includes('anulado');
if(b.status === 'pending') bStatus = `<span class="bg-amber-100 text-amber-700 px-2 py-1 rounded text-[10px] font-black uppercase"><i data-lucide="clock" class="w-3 h-3 inline"></i> Pte. Resolver</span>`; if(b.status === 'pending') bStatus = `<span class="bg-amber-100 text-amber-700 px-2 py-1 rounded text-[10px] font-black uppercase"><i data-lucide="clock" class="w-3 h-3 inline"></i> Pte. Resolver</span>`;
if(b.status === 'rejected') bStatus = `<span class="bg-red-100 text-red-700 px-2 py-1 rounded text-[10px] font-black uppercase"><i data-lucide="x" class="w-3 h-3 inline"></i> Rechazado</span>`; else if(b.status === 'rejected') bStatus = `<span class="bg-red-100 text-red-700 px-2 py-1 rounded text-[10px] font-black uppercase"><i data-lucide="x" class="w-3 h-3 inline"></i> Rechazado</span>`;
if(b.status === 'accepted') bStatus = `<span class="bg-blue-100 text-blue-700 px-2 py-1 rounded text-[10px] font-black uppercase"><i data-lucide="check" class="w-3 h-3 inline"></i> Aceptado</span>`; else if(b.status === 'accepted') bStatus = `<span class="bg-blue-100 text-blue-700 px-2 py-1 rounded text-[10px] font-black uppercase"><i data-lucide="check" class="w-3 h-3 inline"></i> Aceptado</span>`;
if(b.status === 'converted') bStatus = `<span class="bg-emerald-100 text-emerald-700 px-2 py-1 rounded text-[10px] font-black uppercase"><i data-lucide="briefcase" class="w-3 h-3 inline"></i> Es Servicio</span>`; else if(b.status === 'converted') {
if (isAnulado) {
bStatus = `<span class="bg-red-100 text-red-700 px-2 py-1 rounded text-[10px] font-black uppercase shadow-sm"><i data-lucide="x-circle" class="w-3 h-3 inline"></i> Servicio Anulado</span>`;
} else {
// Si está convertido y NO está anulado, mostramos el estado real del panel operativo
const sName = b.linked_service_status_name || 'En gestión';
bStatus = `<span class="bg-emerald-100 text-emerald-700 px-2 py-1 rounded text-[10px] font-black uppercase shadow-sm" title="Estado del Servicio en Operativa"><i data-lucide="briefcase" class="w-3 h-3 inline"></i> ${sName}</span>`;
}
}
let actions = ''; let actions = '';
if(b.status === 'pending') { if(b.status === 'pending') {
@@ -494,12 +505,16 @@
} else if(b.status === 'accepted') { } else if(b.status === 'accepted') {
actions = `<button onclick="openConvertModal(${b.id})" class="bg-emerald-500 text-white px-3 py-1.5 rounded font-black text-[10px] uppercase tracking-widest shadow-md hover:bg-emerald-600">Crear Servicio</button>`; actions = `<button onclick="openConvertModal(${b.id})" class="bg-emerald-500 text-white px-3 py-1.5 rounded font-black text-[10px] uppercase tracking-widest shadow-md hover:bg-emerald-600">Crear Servicio</button>`;
} }
actions += `<button onclick="deleteBudget(${b.id}, '${b.status}')" class="text-slate-300 hover:text-red-500 p-2 ml-2 transition-colors" title="Borrar Presupuesto"><i data-lucide="trash-2" class="w-4 h-4"></i></button>`;
// La papelera de borrar se muestra siempre, y le pasamos a la función si está anulado
actions += `<button onclick="deleteBudget(${b.id}, '${b.status}', ${isAnulado})" class="text-slate-300 hover:text-red-500 p-2 ml-2 transition-colors" title="Borrar Presupuesto"><i data-lucide="trash-2" class="w-4 h-4"></i></button>`;
list.innerHTML += ` list.innerHTML += `
<div class="grid grid-cols-12 gap-4 p-4 items-center hover:bg-slate-50 transition-colors"> <div class="grid grid-cols-12 gap-4 p-4 items-center hover:bg-slate-50 transition-colors">
<div class="col-span-4 pl-2 min-w-0"> <div class="col-span-4 pl-2 min-w-0">
<p class="text-xs font-black text-slate-800 uppercase truncate">${b.client_name}</p> <p class="text-xs font-black text-slate-800 uppercase truncate">
<span class="text-blue-500 mr-1 tracking-widest">#PRE-${b.id}</span> ${b.client_name}
</p>
<p class="text-[10px] font-bold text-slate-400 mt-0.5"><i data-lucide="calendar" class="w-3 h-3 inline"></i> ${date} - 📞 ${b.client_phone}</p> <p class="text-[10px] font-bold text-slate-400 mt-0.5"><i data-lucide="calendar" class="w-3 h-3 inline"></i> ${date} - 📞 ${b.client_phone}</p>
</div> </div>
<div class="col-span-3 min-w-0"><p class="text-[10px] text-slate-500 truncate">${b.client_address}</p></div> <div class="col-span-3 min-w-0"><p class="text-[10px] text-slate-500 truncate">${b.client_address}</p></div>