diff --git a/contabilidad.html b/contabilidad.html
index 7e9d80d..ea01c9e 100644
--- a/contabilidad.html
+++ b/contabilidad.html
@@ -481,18 +481,23 @@
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');
+ let isAnulado = false;
+ if (b.linked_service_status_name && b.linked_service_status_name.toLowerCase().includes('anulado')) {
+ isAnulado = true;
+ }
- if(b.status === 'pending') bStatus = ` Pte. Resolver`;
- else if(b.status === 'rejected') bStatus = ` Rechazado`;
- else if(b.status === 'accepted') bStatus = ` Aceptado`;
- else if(b.status === 'converted') {
+ if(b.status === 'pending') {
+ bStatus = ` Pte. Resolver`;
+ } else if(b.status === 'rejected') {
+ bStatus = ` Rechazado`;
+ } else if(b.status === 'accepted') {
+ bStatus = ` Aceptado`;
+ } else if(b.status === 'converted') {
if (isAnulado) {
- bStatus = ` Servicio Anulado`;
+ bStatus = ` Servicio Anulado`;
} 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 = ` ${sName}`;
+ bStatus = ` ${sName}`;
}
}
@@ -506,7 +511,7 @@
actions = ``;
}
- // La papelera de borrar se muestra siempre, y le pasamos a la función si está anulado
+ // La papelera de borrar se muestra siempre, y le pasamos el estado 'isAnulado'
actions += ``;
list.innerHTML += `
@@ -526,17 +531,10 @@
lucide.createIcons();
}
- async function updateBudgetStatus(id, status) {
- if(!confirm("¿Actualizar estado?")) return;
- await fetch(`${API_URL}/budgets/${id}/status`, { method: 'PATCH', headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` }, body: JSON.stringify({status}) });
- loadBudgets();
- }
-
-
- async function deleteBudget(id, status) {
- // Protección en el lado del cliente (Frontend)
- if (status === 'accepted' || status === 'converted') {
- return showToast("⚠️ Para borrar el presupuesto, primero debes rechazarlo/anularlo.");
+ async function deleteBudget(id, status, isAnulado) {
+ // Si está convertido/aceptado, Y NO ESTÁ anulado, bloqueamos
+ if ((status === 'accepted' || status === 'converted') && !isAnulado) {
+ return showToast("⚠️ Para borrar el presupuesto, el servicio vinculado debe estar Anulado.");
}
if (!confirm("¿Seguro que quieres borrar este presupuesto definitivamente?")) return;