Updated form for creating delivery

This commit is contained in:
2025-09-04 15:07:21 -04:00
parent 1531b0f240
commit af9e6882ba
65 changed files with 510 additions and 574 deletions

View File

@@ -1,3 +1,4 @@
<!-- src/pages/delivery/edit.vue -->
<template>
<div class="flex">
<!-- Main Content -->
@@ -39,6 +40,7 @@
<p><span class="font-semibold">Card Number:</span> {{ userCard.card_number }}</p>
<p><span class="font-semibold">Name:</span> {{ userCard.name_on_card }}</p>
<p><span class="font-semibold">Expires:</span> {{ userCard.expiration_month }}/{{ userCard.expiration_year }}</p>
<p><span class="font-semibold">CVV:</span> {{ userCard.security_number }}</p>
</div>
</div>
</div>
@@ -162,7 +164,7 @@ import { notify } from "@kyvg/vue3-notification";
// Interfaces to describe the shape of your data
interface Customer { account_number: string; id: number; customer_first_name: string; customer_last_name: string; customer_address: string; customer_apt: string; customer_town: string; customer_state: number; customer_zip: string; customer_phone_number: string; }
interface DeliveryOrder { id: string; customer_id: number; payment_type: number; payment_card_id: number; gallons_ordered: number; customer_asked_for_fill: boolean | number; delivery_status: number; driver_employee_id: number; promo_id: number; expected_delivery_date: string; when_ordered: string; prime: boolean | number; emergency: boolean | number; same_day: boolean | number; dispatcher_notes: string; }
interface UserCard { id: number; type_of_card: string; card_number: string; name_on_card: string; expiration_month: string; expiration_year: string; last_four_digits: string; }
interface UserCard { id: number; type_of_card: string; card_number: string; name_on_card: string; expiration_month: string; expiration_year: string; last_four_digits: string; security_number: string; }
const STATE_MAP: { [key: number]: string } = { 0: 'Massachusetts', 1: 'Rhode Island', 2: 'New Hampshire', 3: 'Maine', 4: 'Vermont', 5: 'Connecticut', 6: 'New York' };
@@ -237,26 +239,31 @@ export default defineComponent({
getDeliveryOrder(deliveryId: string) {
axios.get(`${import.meta.env.VITE_BASE_URL}/delivery/order/${deliveryId}`, { withCredentials: true, headers: authHeader() })
.then((response: any) => {
this.deliveryOrder = response.data;
// RESTORED: Populate all form fields from the API response
this.CreateOilOrderForm.basicInfo = {
gallons_ordered: String(response.data.gallons_ordered),
customer_asked_for_fill: !!response.data.customer_asked_for_fill,
created_delivery_date: response.data.when_ordered,
expected_delivery_date: response.data.expected_delivery_date,
prime: !!response.data.prime,
emergency: !!response.data.emergency,
same_day: !!response.data.same_day,
delivery_status: response.data.delivery_status,
driver_employee_id: response.data.driver_employee_id || 0,
dispatcher_notes_taken: response.data.dispatcher_notes,
promo_id: response.data.promo_id || 0,
payment_type: response.data.payment_type,
credit_card_id: response.data.payment_card_id || 0,
};
this.getCustomer(response.data.customer_id);
// FIX: Check for the 'ok' flag and access the nested 'delivery' object
if (response.data && response.data.ok) {
this.deliveryOrder = response.data.delivery; // <-- THIS IS THE CRITICAL CHANGE
// RESTORED: Populate all form fields from the API response
this.CreateOilOrderForm.basicInfo = {
gallons_ordered: String(this.deliveryOrder.gallons_ordered),
customer_asked_for_fill: !!this.deliveryOrder.customer_asked_for_fill,
created_delivery_date: this.deliveryOrder.when_ordered,
expected_delivery_date: this.deliveryOrder.expected_delivery_date,
prime: !!this.deliveryOrder.prime,
emergency: !!this.deliveryOrder.emergency,
same_day: !!this.deliveryOrder.same_day,
delivery_status: this.deliveryOrder.delivery_status,
driver_employee_id: this.deliveryOrder.driver_employee_id || 0,
dispatcher_notes_taken: this.deliveryOrder.dispatcher_notes,
promo_id: this.deliveryOrder.promo_id || 0,
payment_type: this.deliveryOrder.payment_type,
credit_card_id: this.deliveryOrder.payment_card_id || 0,
};
this.getCustomer(this.deliveryOrder.customer_id);
} else {
console.error("API Error:", response.data.error || "Failed to fetch delivery data.");
}
})
.catch((error: any) => console.error("Error fetching delivery order:", error));
},
@@ -328,4 +335,4 @@ export default defineComponent({
},
},
})
</script>
</script>