Actualizar index.html
This commit is contained in:
37
index.html
37
index.html
@@ -179,7 +179,7 @@
|
|||||||
<i data-lucide="credit-card" class="w-5 h-5"></i> Pagar Presupuesto
|
<i data-lucide="credit-card" class="w-5 h-5"></i> Pagar Presupuesto
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="flex gap-3">
|
<div id="qmAcceptRejectGroup" class="flex gap-3">
|
||||||
<button onclick="openSignatureArea()" class="flex-1 bg-emerald-50 text-emerald-600 border border-emerald-200 font-black py-4 rounded-2xl flex flex-col items-center justify-center gap-1 uppercase tracking-widest text-[10px] active:scale-95 transition-all hover:bg-emerald-500 hover:text-white">
|
<button onclick="openSignatureArea()" class="flex-1 bg-emerald-50 text-emerald-600 border border-emerald-200 font-black py-4 rounded-2xl flex flex-col items-center justify-center gap-1 uppercase tracking-widest text-[10px] active:scale-95 transition-all hover:bg-emerald-500 hover:text-white">
|
||||||
<i data-lucide="pen-tool" class="w-5 h-5"></i> Firmar y Aceptar
|
<i data-lucide="pen-tool" class="w-5 h-5"></i> Firmar y Aceptar
|
||||||
</button>
|
</button>
|
||||||
@@ -436,10 +436,10 @@
|
|||||||
let statusBadge = "";
|
let statusBadge = "";
|
||||||
if (!q.status || q.status === 'pending') {
|
if (!q.status || q.status === 'pending') {
|
||||||
statusBadge = `<span class="bg-amber-100 text-amber-700 px-2 py-1 rounded-md text-[8px] font-black uppercase tracking-widest flex items-center gap-1 w-fit mt-1.5"><i data-lucide="clock" class="w-3 h-3"></i> Pte. Resolver</span>`;
|
statusBadge = `<span class="bg-amber-100 text-amber-700 px-2 py-1 rounded-md text-[8px] font-black uppercase tracking-widest flex items-center gap-1 w-fit mt-1.5"><i data-lucide="clock" class="w-3 h-3"></i> Pte. Resolver</span>`;
|
||||||
} else if (q.status === 'accepted') {
|
} else if (q.status === 'accepted' || q.status === 'converted') {
|
||||||
statusBadge = `<span class="bg-blue-100 text-blue-600 px-2 py-1 rounded-md text-[8px] font-black uppercase tracking-widest flex items-center gap-1 w-fit mt-1.5"><i data-lucide="check" class="w-3 h-3"></i> Aceptado</span>`;
|
statusBadge = `<span class="bg-blue-100 text-blue-600 px-2 py-1 rounded-md text-[8px] font-black uppercase tracking-widest flex items-center gap-1 w-fit mt-1.5 border border-blue-200"><i data-lucide="clock" class="w-3 h-3"></i> Aceptado (Pte. Pago)</span>`;
|
||||||
} else if (q.status === 'converted') {
|
} else if (q.status === 'paid') {
|
||||||
statusBadge = `<span class="bg-emerald-100 text-emerald-700 px-2 py-1 rounded-md text-[8px] font-black uppercase tracking-widest flex items-center gap-1 w-fit mt-1.5"><i data-lucide="briefcase" class="w-3 h-3"></i> Finalizado</span>`;
|
statusBadge = `<span class="bg-emerald-100 text-emerald-700 px-2 py-1 rounded-md text-[8px] font-black uppercase tracking-widest flex items-center gap-1 w-fit mt-1.5 shadow-sm border border-emerald-200"><i data-lucide="badge-check" class="w-3 h-3"></i> Pagado Online</span>`;
|
||||||
} else if (q.status === 'rejected') {
|
} else if (q.status === 'rejected') {
|
||||||
statusBadge = `<span class="bg-rose-100 text-rose-700 px-2 py-1 rounded-md text-[8px] font-black uppercase tracking-widest flex items-center gap-1 w-fit mt-1.5"><i data-lucide="x" class="w-3 h-3"></i> Rechazado</span>`;
|
statusBadge = `<span class="bg-rose-100 text-rose-700 px-2 py-1 rounded-md text-[8px] font-black uppercase tracking-widest flex items-center gap-1 w-fit mt-1.5"><i data-lucide="x" class="w-3 h-3"></i> Rechazado</span>`;
|
||||||
}
|
}
|
||||||
@@ -523,19 +523,20 @@
|
|||||||
}
|
}
|
||||||
document.getElementById('qmItemsList').innerHTML = itemsHtml;
|
document.getElementById('qmItemsList').innerHTML = itemsHtml;
|
||||||
|
|
||||||
// CONTROL DE ESTADOS (ACEPTADO / RECHAZADO)
|
// CONTROL DE ESTADOS (ACEPTADO / RECHAZADO / PAGADO)
|
||||||
const btnContainer = document.getElementById('qmDecisionButtons');
|
const btnContainer = document.getElementById('qmDecisionButtons');
|
||||||
const msgContainer = document.getElementById('qmStatusMessage');
|
const msgContainer = document.getElementById('qmStatusMessage');
|
||||||
const sigArea = document.getElementById('qmSignatureArea');
|
const sigArea = document.getElementById('qmSignatureArea');
|
||||||
const btnStripe = document.getElementById('btnStripePay');
|
const btnStripe = document.getElementById('btnStripePay');
|
||||||
|
const acceptRejectGroup = document.getElementById('qmAcceptRejectGroup');
|
||||||
|
|
||||||
sigArea.classList.add('hidden');
|
sigArea.classList.add('hidden');
|
||||||
|
|
||||||
// 🛑 LÓGICA STRIPE: Evaluar si se debe mostrar el botón de pago
|
// 1. Lógica Stripe: Solo si está configurado Y el presupuesto NO está pagado
|
||||||
let bSet = globalCompanyData?.billing_settings || {};
|
let bSet = globalCompanyData?.billing_settings || {};
|
||||||
if (typeof bSet === 'string') { try { bSet = JSON.parse(bSet); } catch(e) {} }
|
if (typeof bSet === 'string') { try { bSet = JSON.parse(bSet); } catch(e) {} }
|
||||||
|
|
||||||
if (bSet.stripe_enabled && bSet.stripe_pk) {
|
if (bSet.stripe_enabled && bSet.stripe_pk && q.status !== 'paid') {
|
||||||
btnStripe.classList.remove('hidden');
|
btnStripe.classList.remove('hidden');
|
||||||
btnStripe.classList.add('flex');
|
btnStripe.classList.add('flex');
|
||||||
} else {
|
} else {
|
||||||
@@ -543,15 +544,29 @@
|
|||||||
btnStripe.classList.remove('flex');
|
btnStripe.classList.remove('flex');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 2. Control de qué botones y mensajes se ven
|
||||||
if (!q.status || q.status === 'pending') {
|
if (!q.status || q.status === 'pending') {
|
||||||
btnContainer.classList.remove('hidden');
|
btnContainer.classList.remove('hidden');
|
||||||
|
if(acceptRejectGroup) { acceptRejectGroup.classList.remove('hidden'); acceptRejectGroup.classList.add('flex'); }
|
||||||
msgContainer.classList.add('hidden');
|
msgContainer.classList.add('hidden');
|
||||||
} else if (q.status === 'accepted' || q.status === 'converted') {
|
}
|
||||||
|
else if (q.status === 'accepted' || q.status === 'converted') {
|
||||||
|
// Ya firmó, ocultamos botones de firma, pero dejamos el contenedor para que se vea el botón de Stripe
|
||||||
|
btnContainer.classList.remove('hidden');
|
||||||
|
if(acceptRejectGroup) { acceptRejectGroup.classList.add('hidden'); acceptRejectGroup.classList.remove('flex'); }
|
||||||
|
|
||||||
|
msgContainer.classList.remove('hidden');
|
||||||
|
msgContainer.className = "text-center p-4 rounded-xl font-black text-xs uppercase tracking-widest bg-blue-50 text-blue-600 border border-blue-100";
|
||||||
|
msgContainer.innerHTML = '<i data-lucide="info" class="w-5 h-5 inline mb-1"></i><br>Presupuesto Firmado (Pendiente de pago)';
|
||||||
|
}
|
||||||
|
else if (q.status === 'paid') {
|
||||||
|
// Pagado: Ocultamos todo tipo de botón
|
||||||
btnContainer.classList.add('hidden');
|
btnContainer.classList.add('hidden');
|
||||||
msgContainer.classList.remove('hidden');
|
msgContainer.classList.remove('hidden');
|
||||||
msgContainer.className = "text-center p-4 rounded-xl font-black text-xs uppercase tracking-widest bg-emerald-50 text-emerald-600 border border-emerald-100";
|
msgContainer.className = "text-center p-4 rounded-xl font-black text-xs uppercase tracking-widest bg-emerald-50 text-emerald-600 border border-emerald-100";
|
||||||
msgContainer.innerHTML = '<i data-lucide="check-circle-2" class="w-5 h-5 inline mb-1"></i><br>Presupuesto Aceptado';
|
msgContainer.innerHTML = '<i data-lucide="check-circle-2" class="w-5 h-5 inline mb-1"></i><br>Abonado Correctamente';
|
||||||
} else if (q.status === 'rejected') {
|
}
|
||||||
|
else if (q.status === 'rejected') {
|
||||||
btnContainer.classList.add('hidden');
|
btnContainer.classList.add('hidden');
|
||||||
msgContainer.classList.remove('hidden');
|
msgContainer.classList.remove('hidden');
|
||||||
msgContainer.className = "text-center p-4 rounded-xl font-black text-xs uppercase tracking-widest bg-rose-50 text-rose-600 border border-rose-100";
|
msgContainer.className = "text-center p-4 rounded-xl font-black text-xs uppercase tracking-widest bg-rose-50 text-rose-600 border border-rose-100";
|
||||||
|
|||||||
Reference in New Issue
Block a user