diff --git a/src/lib/stores/billing.ts b/src/lib/stores/billing.ts index d4affddb6..455c1e139 100644 --- a/src/lib/stores/billing.ts +++ b/src/lib/stores/billing.ts @@ -469,6 +469,10 @@ export const upgradeURL = derived( page, ($page) => `${base}/organization-${$page.data?.organization?.$id}/change-plan` ); +export const billingURL = derived( + page, + ($page) => `${base}/organization-${$page.data?.organization?.$id}/billing` +); export const hideBillingHeaderRoutes = ['/console/create-organization', '/console/account']; diff --git a/src/routes/(console)/organization-[organization]/settings/deleteOrganizationEstimation.svelte b/src/routes/(console)/organization-[organization]/settings/deleteOrganizationEstimation.svelte index 3d6a967b9..df79ddae5 100644 --- a/src/routes/(console)/organization-[organization]/settings/deleteOrganizationEstimation.svelte +++ b/src/routes/(console)/organization-[organization]/settings/deleteOrganizationEstimation.svelte @@ -1,31 +1,19 @@ -{#if error} - - {error} - -{/if} {#if estimation} {#if estimation.unpaidInvoices?.length > 0} - You have a unpaid invoices. Please settle them first in order to delete team. + This organization has unresolved invoices that must be settled before it can be + deleted. Please review and resolve these invoices to proceed. - + {/if} {/if} - -{#if $selectedInvoice} - -{/if} diff --git a/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte b/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte index 28e43d5aa..b3c7c51e0 100644 --- a/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte +++ b/src/routes/(console)/organization-[organization]/settings/deleteOrganizationModal.svelte @@ -22,6 +22,7 @@ } from '$lib/elements/table'; import { onMount } from 'svelte'; import DeleteOrganizationEstimation from './deleteOrganizationEstimation.svelte'; + import { billingURL } from '$lib/stores/billing'; export let showDelete = false; export let invoices: InvoiceList; @@ -215,12 +216,17 @@ - + {#if estimation && estimation.unpaidInvoices.length > 0} + + {:else} + + {/if} diff --git a/src/routes/(console)/organization-[organization]/settings/invoicesTable.svelte b/src/routes/(console)/organization-[organization]/settings/invoicesTable.svelte index fccee4c6a..cbf881c3f 100644 --- a/src/routes/(console)/organization-[organization]/settings/invoicesTable.svelte +++ b/src/routes/(console)/organization-[organization]/settings/invoicesTable.svelte @@ -23,6 +23,7 @@ const endpoint = getApiEndpoint(); export let invoices: Invoice[]; + export let showActions = true; function retryPayment(invoice: Invoice) { $selectedInvoice = invoice; @@ -35,7 +36,9 @@ Due Date Status Amount Due - + {#if showActions} + + {/if} {#each invoices as invoice, i} @@ -84,53 +87,55 @@ {formatCurrency(invoice.grossAmount)} - - - - - (showDropdown[i] = !showDropdown[i])} - event="view_invoice"> - View invoice - - + + + + (showDropdown[i] = !showDropdown[i])} + event="view_invoice"> + View invoice + + { - retryPayment(invoice); showDropdown[i] = !showDropdown[i]; - trackEvent(`click_retry_payment`, { - from: 'button', - source: 'billing_invoice_menu' - }); - }}> - Retry payment - - {/if} - - - + }} + event="download_invoice"> + Download PDF + + {#if status === 'overdue' || status === 'failed'} + { + retryPayment(invoice); + showDropdown[i] = !showDropdown[i]; + trackEvent(`click_retry_payment`, { + from: 'button', + source: 'billing_invoice_menu' + }); + }}> + Retry payment + + {/if} + + + + {/if} {/each}