diff --git a/frontend/src/components/pages/Estimate.vue b/frontend/src/components/pages/Estimate.vue
index e056785..706392c 100644
--- a/frontend/src/components/pages/Estimate.vue
+++ b/frontend/src/components/pages/Estimate.vue
@@ -92,6 +92,9 @@
:disabled="selectedItems.length === 0"
/>
+
+
+
@@ -187,6 +190,27 @@
+
+
+
+ Submit Estimate and Email {{ selectedContact.firstName }} {{
+ selectedContact.lastName}}?
+ This cannot be undone, please make sure all information is correct.
+
+
+
+
+
+
@@ -230,6 +254,7 @@ const selectedItems = ref([]);
const showAddressModal = ref(false);
const showAddItemModal = ref(false);
const showConfirmationModal = ref(false);
+const showSubmitEstimateModal = ref(false);
const addressSearchResults = ref([]);
const itemSearchTerm = ref("");
@@ -402,7 +427,7 @@ onMounted(async () => {
} catch (error) {
console.error("Error loading quotation items:", error);
}
-
+
if (addressQuery && isNew) {
// Creating new estimate - pre-fill address
await selectAddress(addressQuery);
@@ -411,13 +436,13 @@ onMounted(async () => {
try {
estimate.value = await Api.getEstimateFromAddress(addressQuery);
console.log("DEBUG: Loaded estimate:", estimate.value);
-
+
if (estimate.value) {
await selectAddress(addressQuery);
// Set the contact from the estimate
formData.contact = estimate.value.partyName;
selectedContact.value = contacts.value.find((c) => c.name === estimate.value.partyName) || null;
-
+
// Populate items from the estimate
if (estimate.value.items && estimate.value.items.length > 0) {
selectedItems.value = estimate.value.items.map(item => {