@voyantjs/availability 0.62.3 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -19,6 +19,7 @@ export declare const availabilityAllocationRoutes: import("hono/hono-base").Hono
|
|
|
19
19
|
id: string;
|
|
20
20
|
bookingNumber: string;
|
|
21
21
|
status: string;
|
|
22
|
+
paymentStatus: import("./service-allocation.js").AllocationPaymentStatus;
|
|
22
23
|
contactFirstName: string | null;
|
|
23
24
|
contactLastName: string | null;
|
|
24
25
|
contactEmail: string | null;
|
|
@@ -30,6 +31,7 @@ export declare const availabilityAllocationRoutes: import("hono/hono-base").Hono
|
|
|
30
31
|
bookingId: string;
|
|
31
32
|
bookingNumber: string;
|
|
32
33
|
bookingStatus: string;
|
|
34
|
+
paymentStatus: import("./service-allocation.js").AllocationPaymentStatus;
|
|
33
35
|
firstName: string;
|
|
34
36
|
lastName: string;
|
|
35
37
|
fullName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-allocation.d.ts","sourceRoot":"","sources":["../src/routes-allocation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAsC7C,eAAO,MAAM,4BAA4B
|
|
1
|
+
{"version":3,"file":"routes-allocation.d.ts","sourceRoot":"","sources":["../src/routes-allocation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAsC7C,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDA2LrC,CAAA"}
|
|
@@ -25,6 +25,8 @@ export interface AllocationManifestTraveler {
|
|
|
25
25
|
bookingId: string;
|
|
26
26
|
bookingNumber: string;
|
|
27
27
|
bookingStatus: string;
|
|
28
|
+
/** Aggregated payment status of the parent booking (see derivePaymentStatus). */
|
|
29
|
+
paymentStatus: AllocationPaymentStatus;
|
|
28
30
|
firstName: string;
|
|
29
31
|
lastName: string;
|
|
30
32
|
fullName: string;
|
|
@@ -45,6 +47,8 @@ export interface AllocationManifestBooking {
|
|
|
45
47
|
id: string;
|
|
46
48
|
bookingNumber: string;
|
|
47
49
|
status: string;
|
|
50
|
+
/** Aggregated payment status of the booking (see derivePaymentStatus). */
|
|
51
|
+
paymentStatus: AllocationPaymentStatus;
|
|
48
52
|
contactFirstName: string | null;
|
|
49
53
|
contactLastName: string | null;
|
|
50
54
|
contactEmail: string | null;
|
|
@@ -221,5 +225,6 @@ export declare function recordAllocationAudit(db: SqlExecutor, input: {
|
|
|
221
225
|
before?: Record<string, unknown> | null;
|
|
222
226
|
after?: Record<string, unknown> | null;
|
|
223
227
|
}): Promise<void>;
|
|
228
|
+
export type AllocationPaymentStatus = "paid" | "partial" | "unpaid";
|
|
224
229
|
export {};
|
|
225
230
|
//# sourceMappingURL=service-allocation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-allocation.d.ts","sourceRoot":"","sources":["../src/service-allocation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"service-allocation.d.ts","sourceRoot":"","sources":["../src/service-allocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,7 @@ export async function getSlotAllocationManifest(db, slotId) {
|
|
|
51
51
|
bookingId: row.booking_id,
|
|
52
52
|
bookingNumber: booking?.booking_number ?? "",
|
|
53
53
|
bookingStatus: booking?.status ?? "unknown",
|
|
54
|
+
paymentStatus: booking ? derivePaymentStatus(booking) : "unpaid",
|
|
54
55
|
firstName: row.first_name,
|
|
55
56
|
lastName: row.last_name,
|
|
56
57
|
fullName: [row.first_name, row.last_name].filter(Boolean).join(" "),
|
|
@@ -75,6 +76,7 @@ export async function getSlotAllocationManifest(db, slotId) {
|
|
|
75
76
|
id: row.id,
|
|
76
77
|
bookingNumber: row.booking_number,
|
|
77
78
|
status: row.status,
|
|
79
|
+
paymentStatus: derivePaymentStatus(row),
|
|
78
80
|
contactFirstName: row.contact_first_name,
|
|
79
81
|
contactLastName: row.contact_last_name,
|
|
80
82
|
contactEmail: row.contact_email,
|
|
@@ -679,25 +681,99 @@ function serializeSlot(slot) {
|
|
|
679
681
|
endsAt: slot.endsAt ? slot.endsAt.toISOString() : null,
|
|
680
682
|
};
|
|
681
683
|
}
|
|
684
|
+
/**
|
|
685
|
+
* Roll up a booking's invoices into a single paid / partial / unpaid
|
|
686
|
+
* status for the allocation chip's color coding.
|
|
687
|
+
*
|
|
688
|
+
* - No invoices issued → `unpaid` (booking exists but hasn't been
|
|
689
|
+
* billed yet; operator has charged no money).
|
|
690
|
+
* - Free booking (sell amount 0) → `paid` (nothing owed).
|
|
691
|
+
* - All invoices fully paid → `paid`.
|
|
692
|
+
* - Some paid, some still due → `partial`.
|
|
693
|
+
* - Nothing paid → `unpaid`.
|
|
694
|
+
*/
|
|
695
|
+
function derivePaymentStatus(row) {
|
|
696
|
+
const sellAmount = row.sell_amount_cents ?? 0;
|
|
697
|
+
if (sellAmount <= 0)
|
|
698
|
+
return "paid";
|
|
699
|
+
const invoiceTotal = row.invoice_total_cents ?? 0;
|
|
700
|
+
const invoicePaid = row.invoice_paid_cents ?? 0;
|
|
701
|
+
if (invoiceTotal === 0)
|
|
702
|
+
return "unpaid";
|
|
703
|
+
if (invoicePaid <= 0)
|
|
704
|
+
return "unpaid";
|
|
705
|
+
if (invoicePaid >= invoiceTotal)
|
|
706
|
+
return "paid";
|
|
707
|
+
return "partial";
|
|
708
|
+
}
|
|
682
709
|
async function loadSlotBookingRows(db, slotId) {
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
710
|
+
// `invoice_totals` is a LEFT JOIN aggregation that may reference a
|
|
711
|
+
// missing `invoices` table in catalog-less / finance-less deploys —
|
|
712
|
+
// we'd want to silently fall back to `unpaid` for every booking
|
|
713
|
+
// rather than crash the manifest fetch. Hence the try / catch on
|
|
714
|
+
// `undefined_table` (Postgres 42P01) with a non-aggregating retry.
|
|
715
|
+
try {
|
|
716
|
+
return await executeRows(db, sql `
|
|
717
|
+
SELECT DISTINCT
|
|
718
|
+
b.id,
|
|
719
|
+
b.booking_number,
|
|
720
|
+
b.status,
|
|
721
|
+
b.contact_first_name,
|
|
722
|
+
b.contact_last_name,
|
|
723
|
+
b.contact_email,
|
|
724
|
+
b.contact_phone,
|
|
725
|
+
b.sell_currency,
|
|
726
|
+
b.pax,
|
|
727
|
+
b.sell_amount_cents,
|
|
728
|
+
COALESCE(inv.total_cents, 0) AS invoice_total_cents,
|
|
729
|
+
COALESCE(inv.paid_cents, 0) AS invoice_paid_cents
|
|
730
|
+
FROM bookings b
|
|
731
|
+
JOIN booking_allocations ba ON ba.booking_id = b.id
|
|
732
|
+
LEFT JOIN (
|
|
733
|
+
SELECT
|
|
734
|
+
booking_id,
|
|
735
|
+
SUM(total_cents) AS total_cents,
|
|
736
|
+
SUM(paid_cents) AS paid_cents
|
|
737
|
+
FROM invoices
|
|
738
|
+
WHERE status <> 'void'
|
|
739
|
+
GROUP BY booking_id
|
|
740
|
+
) inv ON inv.booking_id = b.id
|
|
741
|
+
WHERE ba.availability_slot_id = ${slotId}
|
|
742
|
+
AND b.status IN ('draft', 'on_hold', 'confirmed', 'in_progress', 'completed')
|
|
743
|
+
AND ba.status IN ('held', 'confirmed', 'fulfilled')
|
|
744
|
+
ORDER BY b.booking_number
|
|
745
|
+
`);
|
|
746
|
+
}
|
|
747
|
+
catch (error) {
|
|
748
|
+
if (!isUndefinedTableError(error))
|
|
749
|
+
throw error;
|
|
750
|
+
const rows = await executeRows(db, sql `
|
|
751
|
+
SELECT DISTINCT
|
|
752
|
+
b.id,
|
|
753
|
+
b.booking_number,
|
|
754
|
+
b.status,
|
|
755
|
+
b.contact_first_name,
|
|
756
|
+
b.contact_last_name,
|
|
757
|
+
b.contact_email,
|
|
758
|
+
b.contact_phone,
|
|
759
|
+
b.sell_currency,
|
|
760
|
+
b.pax,
|
|
761
|
+
b.sell_amount_cents
|
|
762
|
+
FROM bookings b
|
|
763
|
+
JOIN booking_allocations ba ON ba.booking_id = b.id
|
|
764
|
+
WHERE ba.availability_slot_id = ${slotId}
|
|
765
|
+
AND b.status IN ('draft', 'on_hold', 'confirmed', 'in_progress', 'completed')
|
|
766
|
+
AND ba.status IN ('held', 'confirmed', 'fulfilled')
|
|
767
|
+
ORDER BY b.booking_number
|
|
768
|
+
`);
|
|
769
|
+
return rows.map((row) => ({ ...row, invoice_total_cents: 0, invoice_paid_cents: 0 }));
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
function isUndefinedTableError(error) {
|
|
773
|
+
return (typeof error === "object" &&
|
|
774
|
+
error !== null &&
|
|
775
|
+
"code" in error &&
|
|
776
|
+
error.code === "42P01");
|
|
701
777
|
}
|
|
702
778
|
async function loadSlotTravelerRows(db, bookingIds) {
|
|
703
779
|
return executeRows(db, sql `
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/availability",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.63.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -44,13 +44,13 @@
|
|
|
44
44
|
"drizzle-orm": "^0.45.2",
|
|
45
45
|
"hono": "^4.12.10",
|
|
46
46
|
"zod": "^4.3.6",
|
|
47
|
-
"@voyantjs/core": "0.
|
|
48
|
-
"@voyantjs/db": "0.
|
|
49
|
-
"@voyantjs/hono": "0.
|
|
47
|
+
"@voyantjs/core": "0.63.0",
|
|
48
|
+
"@voyantjs/db": "0.63.0",
|
|
49
|
+
"@voyantjs/hono": "0.63.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"typescript": "^6.0.2",
|
|
53
|
-
"@voyantjs/products": "0.
|
|
53
|
+
"@voyantjs/products": "0.63.0",
|
|
54
54
|
"@voyantjs/voyant-typescript-config": "0.1.0"
|
|
55
55
|
},
|
|
56
56
|
"files": [
|