tt-entities 0.0.43 → 0.0.45
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.
- package/dist/libs/tatayab-entities-library/entities/purchase-order.entity.d.ts +1 -0
- package/dist/libs/tatayab-entities-library/entities/purchase-order.entity.js +7 -0
- package/dist/libs/tatayab-entities-library/entities/purchase-order.entity.js.map +1 -1
- package/dist/libs/tatayab-entities-library/entities/run-sheet-order.entity.d.ts +17 -0
- package/dist/libs/tatayab-entities-library/entities/run-sheet-order.entity.js +62 -0
- package/dist/libs/tatayab-entities-library/entities/run-sheet-order.entity.js.map +1 -0
- package/dist/libs/tatayab-entities-library/entities/run-sheet.entity.d.ts +25 -0
- package/dist/libs/tatayab-entities-library/entities/run-sheet.entity.js +88 -0
- package/dist/libs/tatayab-entities-library/entities/run-sheet.entity.js.map +1 -0
- package/dist/libs/tatayab-entities-library/index.d.ts +2 -0
- package/dist/libs/tatayab-entities-library/index.js +12 -2
- package/dist/libs/tatayab-entities-library/index.js.map +1 -1
- package/dist/src/main.js +190 -3
- package/libs/tatayab-entities-library/src/entities/purchase-order.entity.ts +6 -0
- package/libs/tatayab-entities-library/src/entities/run-sheet-order.entity.ts +45 -0
- package/libs/tatayab-entities-library/src/entities/run-sheet.entity.ts +68 -0
- package/libs/tatayab-entities-library/src/entities.zip +0 -0
- package/libs/tatayab-entities-library/src/index.ts +10 -0
- package/package.json +1 -1
|
@@ -67,6 +67,12 @@ export class PurchaseOrder extends Model {
|
|
|
67
67
|
@Column({ allowNull: true })
|
|
68
68
|
declare sentBy?: number;
|
|
69
69
|
|
|
70
|
+
@Column({
|
|
71
|
+
type: DataType.ENUM('order_fulfillment', 'stock_replenishment'),
|
|
72
|
+
defaultValue: 'order_fulfillment',
|
|
73
|
+
})
|
|
74
|
+
declare poType: string;
|
|
75
|
+
|
|
70
76
|
// ─── Associations ─────────────────────────────────────────────────────────────
|
|
71
77
|
|
|
72
78
|
@BelongsTo(() => Vendor)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Table, Column, Model, ForeignKey, BelongsTo, DataType,
|
|
3
|
+
} from 'sequelize-typescript';
|
|
4
|
+
import { RunSheet } from './run-sheet.entity';
|
|
5
|
+
import { Order } from './order.entity';
|
|
6
|
+
|
|
7
|
+
export enum RunSheetOrderStatus {
|
|
8
|
+
ASSIGNED = 'assigned', // Order added to runsheet, marked shipped
|
|
9
|
+
DELIVERED = 'delivered', // Confirmed delivered on completion
|
|
10
|
+
RETURNED = 'returned', // Not delivered — returned to packed
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@Table
|
|
14
|
+
export class RunSheetOrder extends Model {
|
|
15
|
+
@ForeignKey(() => RunSheet)
|
|
16
|
+
@Column({ allowNull: false })
|
|
17
|
+
declare runSheetId: number;
|
|
18
|
+
|
|
19
|
+
@ForeignKey(() => Order)
|
|
20
|
+
@Column({ allowNull: false, unique: true }) // one order belongs to one runsheet at a time
|
|
21
|
+
declare orderId: number;
|
|
22
|
+
|
|
23
|
+
@Column({
|
|
24
|
+
type: DataType.ENUM(...Object.values(RunSheetOrderStatus)),
|
|
25
|
+
allowNull: false,
|
|
26
|
+
defaultValue: RunSheetOrderStatus.ASSIGNED,
|
|
27
|
+
})
|
|
28
|
+
declare status: RunSheetOrderStatus;
|
|
29
|
+
|
|
30
|
+
// Filled when status = returned — why was this order not delivered
|
|
31
|
+
@Column({ type: DataType.TEXT, allowNull: true })
|
|
32
|
+
declare returnReason?: string;
|
|
33
|
+
|
|
34
|
+
// Snapshot of order number for display even if order is modified
|
|
35
|
+
@Column({ allowNull: true })
|
|
36
|
+
declare orderNumber?: string;
|
|
37
|
+
|
|
38
|
+
// ── Associations ─────────────────────────────────────────────────────────────
|
|
39
|
+
|
|
40
|
+
@BelongsTo(() => RunSheet)
|
|
41
|
+
declare runSheet: RunSheet;
|
|
42
|
+
|
|
43
|
+
@BelongsTo(() => Order)
|
|
44
|
+
declare order: Order;
|
|
45
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Table, Column, Model, ForeignKey, BelongsTo,
|
|
3
|
+
HasMany, DataType,
|
|
4
|
+
} from 'sequelize-typescript';
|
|
5
|
+
import { SysUser } from './sys.user.entity';
|
|
6
|
+
import { RunSheetOrder } from './run-sheet-order.entity';
|
|
7
|
+
|
|
8
|
+
export enum RunSheetStatus {
|
|
9
|
+
OPEN = 'open', // Created, orders assigned, all moved to shipped
|
|
10
|
+
OUT_FOR_DELIVERY = 'out_for_delivery', // Driver is on the road
|
|
11
|
+
COMPLETED = 'completed', // All orders delivered
|
|
12
|
+
PARTIALLY_COMPLETED = 'partially_completed', // Some delivered, some returned to packed
|
|
13
|
+
CANCELLED = 'cancelled',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@Table
|
|
17
|
+
export class RunSheet extends Model {
|
|
18
|
+
// Auto-generated e.g. RS-2026-00001
|
|
19
|
+
@Column({ allowNull: false, unique: true })
|
|
20
|
+
declare runSheetNumber: string;
|
|
21
|
+
|
|
22
|
+
@Column({
|
|
23
|
+
type: DataType.ENUM(...Object.values(RunSheetStatus)),
|
|
24
|
+
allowNull: false,
|
|
25
|
+
defaultValue: RunSheetStatus.OPEN,
|
|
26
|
+
})
|
|
27
|
+
declare status: RunSheetStatus;
|
|
28
|
+
|
|
29
|
+
// Driver / delivery person name
|
|
30
|
+
@Column({ allowNull: true })
|
|
31
|
+
declare driverName?: string;
|
|
32
|
+
|
|
33
|
+
@Column({ allowNull: true })
|
|
34
|
+
declare driverPhone?: string;
|
|
35
|
+
|
|
36
|
+
// Vehicle / route reference
|
|
37
|
+
@Column({ allowNull: true })
|
|
38
|
+
declare vehicleRef?: string;
|
|
39
|
+
|
|
40
|
+
@Column({ type: DataType.TEXT, allowNull: true })
|
|
41
|
+
declare notes?: string;
|
|
42
|
+
|
|
43
|
+
// Timestamps for lifecycle
|
|
44
|
+
@Column({ type: DataType.DATE, allowNull: true })
|
|
45
|
+
declare dispatchedAt?: Date; // when moved to out_for_delivery
|
|
46
|
+
|
|
47
|
+
@Column({ type: DataType.DATE, allowNull: true })
|
|
48
|
+
declare completedAt?: Date;
|
|
49
|
+
|
|
50
|
+
@ForeignKey(() => SysUser)
|
|
51
|
+
@Column({ allowNull: true })
|
|
52
|
+
declare createdBy?: number;
|
|
53
|
+
|
|
54
|
+
@ForeignKey(() => SysUser)
|
|
55
|
+
@Column({ allowNull: true })
|
|
56
|
+
declare completedBy?: number;
|
|
57
|
+
|
|
58
|
+
// ── Associations ─────────────────────────────────────────────────────────────
|
|
59
|
+
|
|
60
|
+
@BelongsTo(() => SysUser, { foreignKey: 'createdBy', as: 'creator' })
|
|
61
|
+
declare creator?: SysUser;
|
|
62
|
+
|
|
63
|
+
@BelongsTo(() => SysUser, { foreignKey: 'completedBy', as: 'completer' })
|
|
64
|
+
declare completer?: SysUser;
|
|
65
|
+
|
|
66
|
+
@HasMany(() => RunSheetOrder)
|
|
67
|
+
declare runSheetOrders: RunSheetOrder[];
|
|
68
|
+
}
|
|
Binary file
|
|
@@ -75,6 +75,8 @@ import { OrderItemBundleSelection } from './entities/order-item-bundle-selection
|
|
|
75
75
|
import { OrderStatusHistory } from './entities/order-status-history.entity';
|
|
76
76
|
import { UserTransaction } from './entities/user-transaction.entity';
|
|
77
77
|
import { PurchaseOrderOrderItem } from './entities/purchase-order-order-item.entity';
|
|
78
|
+
import { RunSheet } from './entities/run-sheet.entity';
|
|
79
|
+
import { RunSheetOrder } from './entities/run-sheet-order.entity';
|
|
78
80
|
|
|
79
81
|
// =============================================================================
|
|
80
82
|
// EXPORTS
|
|
@@ -101,6 +103,11 @@ export {
|
|
|
101
103
|
BannerFilters,
|
|
102
104
|
} from './entities/banner.entity';
|
|
103
105
|
export { AppConfig } from './entities/app-config.entity';
|
|
106
|
+
export { RunSheet, RunSheetStatus } from './entities/run-sheet.entity';
|
|
107
|
+
export {
|
|
108
|
+
RunSheetOrder,
|
|
109
|
+
RunSheetOrderStatus,
|
|
110
|
+
} from './entities/run-sheet-order.entity';
|
|
104
111
|
|
|
105
112
|
// ─── Catalogue ────────────────────────────────────────────────────────────────
|
|
106
113
|
export { Category } from './entities/category.entity';
|
|
@@ -281,5 +288,8 @@ export function getDbModels(): ModelCtor[] {
|
|
|
281
288
|
Banner,
|
|
282
289
|
|
|
283
290
|
AppConfig,
|
|
291
|
+
|
|
292
|
+
RunSheet,
|
|
293
|
+
RunSheetOrder,
|
|
284
294
|
];
|
|
285
295
|
}
|