feat(bookings): add transaction document uploads for bank payments
Add payment method selection (Cash/Bank) to booking details Support uploading, downloading, and deleting transaction documents Update database schema and API endpoints to handle file storage
This commit is contained in:
@@ -7,9 +7,11 @@ import {
|
||||
getBookingInventorySummary,
|
||||
getActiveBookingModeOptionByCode,
|
||||
getActiveTicketCatalogItemByCode,
|
||||
clearBookingTransactionDocument,
|
||||
updateBookingDetails
|
||||
} from '../../utils/booking-repository'
|
||||
import { parseUpdateBookingDetailsInput } from '../../utils/bookings'
|
||||
import { deleteTransactionDocument } from '../../utils/transaction-documents'
|
||||
import { getRequiredRouteParam, httpError } from '../../utils/http'
|
||||
|
||||
export default defineEventHandler(async (event): Promise<UpdateBookingDetailsResponse> => {
|
||||
@@ -21,6 +23,7 @@ export default defineEventHandler(async (event): Promise<UpdateBookingDetailsRes
|
||||
bookingMode?: string | null
|
||||
quantity?: number
|
||||
ticketType?: string
|
||||
paymentMethod?: string | null
|
||||
remark?: string | null
|
||||
}>(event)
|
||||
|
||||
@@ -74,6 +77,7 @@ export default defineEventHandler(async (event): Promise<UpdateBookingDetailsRes
|
||||
ticketType: ticket.value,
|
||||
unitPrice: ticket.price,
|
||||
totalPrice,
|
||||
paymentMethod: input.paymentMethod,
|
||||
remark: input.remark,
|
||||
personInChargeId: auth.user.role === 'super_admin' ? undefined : auth.user.id
|
||||
})
|
||||
@@ -82,6 +86,21 @@ export default defineEventHandler(async (event): Promise<UpdateBookingDetailsRes
|
||||
httpError(404, 'Booking not found')
|
||||
}
|
||||
|
||||
if (input.paymentMethod === 'cash') {
|
||||
const cleared = await clearBookingTransactionDocument({
|
||||
bookingId,
|
||||
personInChargeId: auth.user.role === 'super_admin' ? undefined : auth.user.id
|
||||
})
|
||||
|
||||
if (cleared) {
|
||||
await deleteTransactionDocument(cleared.previousStorageName)
|
||||
|
||||
return {
|
||||
booking: cleared.booking
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
booking
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user