@happyvertical/smrt-expenses 0.57.3 → 0.57.5
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/AGENTS.md +42 -3
- package/README.md +129 -9
- package/agents/financial-facts-test-matrix.md +57 -0
- package/agents/supplier-payable-test-matrix.md +24 -0
- package/dist/actions/expense-actions.d.ts +2 -0
- package/dist/actions/expense-actions.d.ts.map +1 -1
- package/dist/chunks/Expense-C_WC5VLF.js +1364 -0
- package/dist/chunks/Expense-C_WC5VLF.js.map +1 -0
- package/dist/chunks/{ExpenseReceiptCollection-y1SlmnBS.js → ExpenseReceiptCollection-BO5yvJLm.js} +2 -2
- package/dist/chunks/{ExpenseReceiptCollection-y1SlmnBS.js.map → ExpenseReceiptCollection-BO5yvJLm.js.map} +1 -1
- package/dist/chunks/{expense-actions-Ce5CBaBE.js → expense-actions-Bxzeb4s2.js} +8 -3
- package/dist/chunks/expense-actions-Bxzeb4s2.js.map +1 -0
- package/dist/collections/ExpenseCollection.d.ts +17 -1
- package/dist/collections/ExpenseCollection.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -7
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +304 -7
- package/dist/models/Expense.d.ts +35 -1
- package/dist/models/Expense.d.ts.map +1 -1
- package/dist/recipes.d.ts +9 -0
- package/dist/recipes.d.ts.map +1 -1
- package/dist/refund-position.d.ts +11 -0
- package/dist/refund-position.d.ts.map +1 -0
- package/dist/reimbursement-position.d.ts +20 -0
- package/dist/reimbursement-position.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +267 -10
- package/dist/supplier-payable.d.ts +128 -0
- package/dist/supplier-payable.d.ts.map +1 -0
- package/dist/types.d.ts +46 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +9 -9
- package/dist/chunks/Expense-7afLcUTn.js +0 -681
- package/dist/chunks/Expense-7afLcUTn.js.map +0 -1
- package/dist/chunks/expense-actions-Ce5CBaBE.js.map +0 -1
package/dist/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"version": "1.0.0",
|
|
3
3
|
"timestamp": 0,
|
|
4
4
|
"packageName": "@happyvertical/smrt-expenses",
|
|
5
|
-
"packageVersion": "0.57.
|
|
5
|
+
"packageVersion": "0.57.5",
|
|
6
6
|
"objects": {
|
|
7
7
|
"@happyvertical/smrt-expenses:ExpenseCollection": {
|
|
8
8
|
"name": "expensecollection",
|
|
@@ -14,6 +14,113 @@
|
|
|
14
14
|
"packageName": "@happyvertical/smrt-expenses",
|
|
15
15
|
"fields": {},
|
|
16
16
|
"methods": {
|
|
17
|
+
"recordSupplierPayable": {
|
|
18
|
+
"name": "recordSupplierPayable",
|
|
19
|
+
"async": true,
|
|
20
|
+
"parameters": [
|
|
21
|
+
{
|
|
22
|
+
"name": "expenseId",
|
|
23
|
+
"type": "string",
|
|
24
|
+
"optional": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "input",
|
|
28
|
+
"type": "RecordSupplierPayableInput",
|
|
29
|
+
"optional": false
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"returnType": "Promise<SupplierPayablePosition>",
|
|
33
|
+
"isStatic": false,
|
|
34
|
+
"isPublic": true
|
|
35
|
+
},
|
|
36
|
+
"recordSupplierPayableEvent": {
|
|
37
|
+
"name": "recordSupplierPayableEvent",
|
|
38
|
+
"async": true,
|
|
39
|
+
"parameters": [
|
|
40
|
+
{
|
|
41
|
+
"name": "expenseId",
|
|
42
|
+
"type": "string",
|
|
43
|
+
"optional": false
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "input",
|
|
47
|
+
"type": "RecordSupplierPayableEventInput",
|
|
48
|
+
"optional": false
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"returnType": "Promise<SupplierPayablePosition>",
|
|
52
|
+
"isStatic": false,
|
|
53
|
+
"isPublic": true
|
|
54
|
+
},
|
|
55
|
+
"completeSupplierPayableBasis": {
|
|
56
|
+
"name": "completeSupplierPayableBasis",
|
|
57
|
+
"async": true,
|
|
58
|
+
"parameters": [
|
|
59
|
+
{
|
|
60
|
+
"name": "expenseId",
|
|
61
|
+
"type": "string",
|
|
62
|
+
"optional": false
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "input",
|
|
66
|
+
"type": "CompleteSupplierPayableBasisInput",
|
|
67
|
+
"optional": false
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"returnType": "Promise<SupplierPayablePosition>",
|
|
71
|
+
"isStatic": false,
|
|
72
|
+
"isPublic": true
|
|
73
|
+
},
|
|
74
|
+
"supplierPayablePosition": {
|
|
75
|
+
"name": "supplierPayablePosition",
|
|
76
|
+
"async": true,
|
|
77
|
+
"parameters": [
|
|
78
|
+
{
|
|
79
|
+
"name": "expenseId",
|
|
80
|
+
"type": "string",
|
|
81
|
+
"optional": false
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "input",
|
|
85
|
+
"type": "object",
|
|
86
|
+
"optional": true,
|
|
87
|
+
"memberTypes": [
|
|
88
|
+
"string"
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"returnType": "Promise<SupplierPayablePosition | null>",
|
|
93
|
+
"isStatic": false,
|
|
94
|
+
"isPublic": true
|
|
95
|
+
},
|
|
96
|
+
"reimbursementPosition": {
|
|
97
|
+
"name": "reimbursementPosition",
|
|
98
|
+
"async": true,
|
|
99
|
+
"parameters": [
|
|
100
|
+
{
|
|
101
|
+
"name": "sourceId",
|
|
102
|
+
"type": "string",
|
|
103
|
+
"optional": false
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
"returnType": "Promise<ExpenseReimbursementPosition>",
|
|
107
|
+
"isStatic": false,
|
|
108
|
+
"isPublic": true
|
|
109
|
+
},
|
|
110
|
+
"refundPosition": {
|
|
111
|
+
"name": "refundPosition",
|
|
112
|
+
"async": true,
|
|
113
|
+
"parameters": [
|
|
114
|
+
{
|
|
115
|
+
"name": "sourceId",
|
|
116
|
+
"type": "string",
|
|
117
|
+
"optional": false
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"returnType": "Promise<ExpenseRefundPosition>",
|
|
121
|
+
"isStatic": false,
|
|
122
|
+
"isPublic": true
|
|
123
|
+
},
|
|
17
124
|
"record": {
|
|
18
125
|
"name": "record",
|
|
19
126
|
"async": true,
|
|
@@ -193,7 +300,7 @@
|
|
|
193
300
|
"collectionExportName": "ExpenseCollectionCollection",
|
|
194
301
|
"schema": {
|
|
195
302
|
"tableName": "expenses",
|
|
196
|
-
"ddl": "CREATE TABLE IF NOT EXISTS \"expenses\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"cost_object_type\" TEXT,\n \"cost_object_id\" TEXT,\n \"category\" TEXT,\n \"description\" TEXT,\n \"amount\" INTEGER,\n \"currency\" TEXT,\n \"financial_breakdown\" TEXT,\n \"paid_by_name\" TEXT,\n \"refund_of_id\" UUID,\n \"incurred_on\" TEXT,\n \"recorded_at\" TIMESTAMP,\n \"recorded_by_profile_id\" UUID,\n \"paid_by\" TEXT,\n \"paid_by_profile_id\" UUID,\n \"vendor_id\" UUID,\n \"commitment_id\" UUID,\n \"commitment_line_id\" UUID,\n \"review_status\" TEXT,\n \"reviewed_by_profile_id\" UUID,\n \"reviewed_at\" TIMESTAMP,\n \"review_note\" TEXT,\n \"duplicate_of_id\" UUID,\n \"reimbursable\" BOOLEAN,\n \"reimbursed_at\" TIMESTAMP,\n \"reimbursement_reference\" TEXT\n);",
|
|
303
|
+
"ddl": "CREATE TABLE IF NOT EXISTS \"expenses\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"cost_object_type\" TEXT,\n \"cost_object_id\" TEXT,\n \"category\" TEXT,\n \"description\" TEXT,\n \"amount\" INTEGER,\n \"currency\" TEXT,\n \"financial_breakdown\" TEXT,\n \"supplier_payable_json\" TEXT,\n \"paid_by_name\" TEXT,\n \"refund_of_id\" UUID,\n \"refund_recipient\" TEXT,\n \"incurred_on\" TEXT,\n \"recorded_at\" TIMESTAMP,\n \"recorded_by_profile_id\" UUID,\n \"paid_by\" TEXT,\n \"paid_by_profile_id\" UUID,\n \"vendor_id\" UUID,\n \"commitment_id\" UUID,\n \"commitment_line_id\" UUID,\n \"review_status\" TEXT,\n \"reviewed_by_profile_id\" UUID,\n \"reviewed_at\" TIMESTAMP,\n \"review_note\" TEXT,\n \"duplicate_of_id\" UUID,\n \"reimbursable\" BOOLEAN,\n \"reimbursed_amount\" INTEGER,\n \"reimbursed_at\" TIMESTAMP,\n \"reimbursement_reference\" TEXT\n);",
|
|
197
304
|
"columns": {
|
|
198
305
|
"id": {
|
|
199
306
|
"type": "UUID",
|
|
@@ -261,6 +368,11 @@
|
|
|
261
368
|
"notNull": false,
|
|
262
369
|
"unique": false
|
|
263
370
|
},
|
|
371
|
+
"supplier_payable_json": {
|
|
372
|
+
"type": "TEXT",
|
|
373
|
+
"notNull": false,
|
|
374
|
+
"unique": false
|
|
375
|
+
},
|
|
264
376
|
"paid_by_name": {
|
|
265
377
|
"type": "TEXT",
|
|
266
378
|
"notNull": false,
|
|
@@ -278,6 +390,11 @@
|
|
|
278
390
|
"onUpdate": "CASCADE"
|
|
279
391
|
}
|
|
280
392
|
},
|
|
393
|
+
"refund_recipient": {
|
|
394
|
+
"type": "TEXT",
|
|
395
|
+
"notNull": false,
|
|
396
|
+
"unique": false
|
|
397
|
+
},
|
|
281
398
|
"incurred_on": {
|
|
282
399
|
"type": "TEXT",
|
|
283
400
|
"notNull": false,
|
|
@@ -361,6 +478,11 @@
|
|
|
361
478
|
"notNull": false,
|
|
362
479
|
"unique": false
|
|
363
480
|
},
|
|
481
|
+
"reimbursed_amount": {
|
|
482
|
+
"type": "INTEGER",
|
|
483
|
+
"notNull": false,
|
|
484
|
+
"unique": false
|
|
485
|
+
},
|
|
364
486
|
"reimbursed_at": {
|
|
365
487
|
"type": "TIMESTAMP",
|
|
366
488
|
"notNull": false,
|
|
@@ -464,7 +586,7 @@
|
|
|
464
586
|
]
|
|
465
587
|
}
|
|
466
588
|
],
|
|
467
|
-
"version": "
|
|
589
|
+
"version": "dc99ff87"
|
|
468
590
|
},
|
|
469
591
|
"importPath": "@happyvertical/smrt-expenses"
|
|
470
592
|
},
|
|
@@ -837,6 +959,15 @@
|
|
|
837
959
|
"required": false,
|
|
838
960
|
"_meta": {}
|
|
839
961
|
},
|
|
962
|
+
"supplierPayableJson": {
|
|
963
|
+
"type": "text",
|
|
964
|
+
"required": false,
|
|
965
|
+
"_meta": {
|
|
966
|
+
"nullable": true,
|
|
967
|
+
"readonly": true
|
|
968
|
+
},
|
|
969
|
+
"readonly": true
|
|
970
|
+
},
|
|
840
971
|
"paidByName": {
|
|
841
972
|
"type": "text",
|
|
842
973
|
"required": false,
|
|
@@ -850,6 +981,11 @@
|
|
|
850
981
|
"onDelete": "RESTRICT"
|
|
851
982
|
}
|
|
852
983
|
},
|
|
984
|
+
"refundRecipient": {
|
|
985
|
+
"type": "text",
|
|
986
|
+
"required": false,
|
|
987
|
+
"_meta": {}
|
|
988
|
+
},
|
|
853
989
|
"incurredOn": {
|
|
854
990
|
"type": "text",
|
|
855
991
|
"required": false,
|
|
@@ -945,15 +1081,30 @@
|
|
|
945
1081
|
"required": false,
|
|
946
1082
|
"_meta": {}
|
|
947
1083
|
},
|
|
1084
|
+
"reimbursedAmount": {
|
|
1085
|
+
"type": "integer",
|
|
1086
|
+
"required": false,
|
|
1087
|
+
"_meta": {
|
|
1088
|
+
"nullable": true,
|
|
1089
|
+
"readonly": true
|
|
1090
|
+
},
|
|
1091
|
+
"readonly": true
|
|
1092
|
+
},
|
|
948
1093
|
"reimbursedAt": {
|
|
949
1094
|
"type": "datetime",
|
|
950
1095
|
"required": false,
|
|
951
|
-
"_meta": {
|
|
1096
|
+
"_meta": {
|
|
1097
|
+
"readonly": true
|
|
1098
|
+
},
|
|
1099
|
+
"readonly": true
|
|
952
1100
|
},
|
|
953
1101
|
"reimbursementReference": {
|
|
954
1102
|
"type": "text",
|
|
955
1103
|
"required": false,
|
|
956
|
-
"_meta": {
|
|
1104
|
+
"_meta": {
|
|
1105
|
+
"readonly": true
|
|
1106
|
+
},
|
|
1107
|
+
"readonly": true
|
|
957
1108
|
}
|
|
958
1109
|
},
|
|
959
1110
|
"methods": {
|
|
@@ -987,6 +1138,36 @@
|
|
|
987
1138
|
"isStatic": false,
|
|
988
1139
|
"isPublic": true
|
|
989
1140
|
},
|
|
1141
|
+
"getRefundRecipient": {
|
|
1142
|
+
"name": "getRefundRecipient",
|
|
1143
|
+
"async": false,
|
|
1144
|
+
"parameters": [],
|
|
1145
|
+
"returnType": "ExpenseRefundRecipient | null",
|
|
1146
|
+
"isStatic": false,
|
|
1147
|
+
"isPublic": true
|
|
1148
|
+
},
|
|
1149
|
+
"setRefundRecipient": {
|
|
1150
|
+
"name": "setRefundRecipient",
|
|
1151
|
+
"async": false,
|
|
1152
|
+
"parameters": [
|
|
1153
|
+
{
|
|
1154
|
+
"name": "value",
|
|
1155
|
+
"type": "ExpenseRefundRecipient | null",
|
|
1156
|
+
"optional": false,
|
|
1157
|
+
"unionBranches": [
|
|
1158
|
+
{
|
|
1159
|
+
"type": "ExpenseRefundRecipient"
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
"type": "null"
|
|
1163
|
+
}
|
|
1164
|
+
]
|
|
1165
|
+
}
|
|
1166
|
+
],
|
|
1167
|
+
"returnType": "void",
|
|
1168
|
+
"isStatic": false,
|
|
1169
|
+
"isPublic": true
|
|
1170
|
+
},
|
|
990
1171
|
"getCostBasis": {
|
|
991
1172
|
"name": "getCostBasis",
|
|
992
1173
|
"async": false,
|
|
@@ -1096,6 +1277,98 @@
|
|
|
1096
1277
|
"returnType": "Promise<this>",
|
|
1097
1278
|
"isStatic": false,
|
|
1098
1279
|
"isPublic": true
|
|
1280
|
+
},
|
|
1281
|
+
"recordSupplierPayable": {
|
|
1282
|
+
"name": "recordSupplierPayable",
|
|
1283
|
+
"async": true,
|
|
1284
|
+
"parameters": [
|
|
1285
|
+
{
|
|
1286
|
+
"name": "input",
|
|
1287
|
+
"type": "RecordSupplierPayableInput",
|
|
1288
|
+
"optional": false
|
|
1289
|
+
}
|
|
1290
|
+
],
|
|
1291
|
+
"returnType": "Promise<SupplierPayablePosition>",
|
|
1292
|
+
"isStatic": false,
|
|
1293
|
+
"isPublic": true
|
|
1294
|
+
},
|
|
1295
|
+
"recordSupplierPayableEvent": {
|
|
1296
|
+
"name": "recordSupplierPayableEvent",
|
|
1297
|
+
"async": true,
|
|
1298
|
+
"parameters": [
|
|
1299
|
+
{
|
|
1300
|
+
"name": "input",
|
|
1301
|
+
"type": "RecordSupplierPayableEventInput",
|
|
1302
|
+
"optional": false
|
|
1303
|
+
}
|
|
1304
|
+
],
|
|
1305
|
+
"returnType": "Promise<SupplierPayablePosition>",
|
|
1306
|
+
"isStatic": false,
|
|
1307
|
+
"isPublic": true
|
|
1308
|
+
},
|
|
1309
|
+
"completeSupplierPayableBasis": {
|
|
1310
|
+
"name": "completeSupplierPayableBasis",
|
|
1311
|
+
"async": true,
|
|
1312
|
+
"parameters": [
|
|
1313
|
+
{
|
|
1314
|
+
"name": "input",
|
|
1315
|
+
"type": "CompleteSupplierPayableBasisInput",
|
|
1316
|
+
"optional": false
|
|
1317
|
+
}
|
|
1318
|
+
],
|
|
1319
|
+
"returnType": "Promise<SupplierPayablePosition>",
|
|
1320
|
+
"isStatic": false,
|
|
1321
|
+
"isPublic": true
|
|
1322
|
+
},
|
|
1323
|
+
"getSupplierPayablePosition": {
|
|
1324
|
+
"name": "getSupplierPayablePosition",
|
|
1325
|
+
"async": true,
|
|
1326
|
+
"parameters": [
|
|
1327
|
+
{
|
|
1328
|
+
"name": "input",
|
|
1329
|
+
"type": "object",
|
|
1330
|
+
"optional": true,
|
|
1331
|
+
"memberTypes": [
|
|
1332
|
+
"string"
|
|
1333
|
+
]
|
|
1334
|
+
}
|
|
1335
|
+
],
|
|
1336
|
+
"returnType": "Promise<SupplierPayablePosition | null>",
|
|
1337
|
+
"isStatic": false,
|
|
1338
|
+
"isPublic": true
|
|
1339
|
+
},
|
|
1340
|
+
"delete": {
|
|
1341
|
+
"name": "delete",
|
|
1342
|
+
"async": true,
|
|
1343
|
+
"parameters": [
|
|
1344
|
+
{
|
|
1345
|
+
"name": "options",
|
|
1346
|
+
"type": "object",
|
|
1347
|
+
"optional": true,
|
|
1348
|
+
"memberTypes": [
|
|
1349
|
+
"Date | string"
|
|
1350
|
+
]
|
|
1351
|
+
}
|
|
1352
|
+
],
|
|
1353
|
+
"returnType": "Promise<void>",
|
|
1354
|
+
"isStatic": false,
|
|
1355
|
+
"isPublic": true
|
|
1356
|
+
},
|
|
1357
|
+
"getReimbursementPosition": {
|
|
1358
|
+
"name": "getReimbursementPosition",
|
|
1359
|
+
"async": true,
|
|
1360
|
+
"parameters": [],
|
|
1361
|
+
"returnType": "Promise<ExpenseReimbursementPosition>",
|
|
1362
|
+
"isStatic": false,
|
|
1363
|
+
"isPublic": true
|
|
1364
|
+
},
|
|
1365
|
+
"getRefundPosition": {
|
|
1366
|
+
"name": "getRefundPosition",
|
|
1367
|
+
"async": true,
|
|
1368
|
+
"parameters": [],
|
|
1369
|
+
"returnType": "Promise<ExpenseRefundPosition>",
|
|
1370
|
+
"isStatic": false,
|
|
1371
|
+
"isPublic": true
|
|
1099
1372
|
}
|
|
1100
1373
|
},
|
|
1101
1374
|
"decoratorConfig": {
|
|
@@ -1153,7 +1426,7 @@
|
|
|
1153
1426
|
"collectionExportName": "ExpenseCollection",
|
|
1154
1427
|
"schema": {
|
|
1155
1428
|
"tableName": "expenses",
|
|
1156
|
-
"ddl": "CREATE TABLE IF NOT EXISTS \"expenses\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"cost_object_type\" TEXT,\n \"cost_object_id\" TEXT,\n \"category\" TEXT,\n \"description\" TEXT,\n \"amount\" INTEGER,\n \"currency\" TEXT,\n \"financial_breakdown\" TEXT,\n \"paid_by_name\" TEXT,\n \"refund_of_id\" UUID,\n \"incurred_on\" TEXT,\n \"recorded_at\" TIMESTAMP,\n \"recorded_by_profile_id\" UUID,\n \"paid_by\" TEXT,\n \"paid_by_profile_id\" UUID,\n \"vendor_id\" UUID,\n \"commitment_id\" UUID,\n \"commitment_line_id\" UUID,\n \"review_status\" TEXT,\n \"reviewed_by_profile_id\" UUID,\n \"reviewed_at\" TIMESTAMP,\n \"review_note\" TEXT,\n \"duplicate_of_id\" UUID,\n \"reimbursable\" BOOLEAN,\n \"reimbursed_at\" TIMESTAMP,\n \"reimbursement_reference\" TEXT\n);",
|
|
1429
|
+
"ddl": "CREATE TABLE IF NOT EXISTS \"expenses\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"cost_object_type\" TEXT,\n \"cost_object_id\" TEXT,\n \"category\" TEXT,\n \"description\" TEXT,\n \"amount\" INTEGER,\n \"currency\" TEXT,\n \"financial_breakdown\" TEXT,\n \"supplier_payable_json\" TEXT,\n \"paid_by_name\" TEXT,\n \"refund_of_id\" UUID,\n \"refund_recipient\" TEXT,\n \"incurred_on\" TEXT,\n \"recorded_at\" TIMESTAMP,\n \"recorded_by_profile_id\" UUID,\n \"paid_by\" TEXT,\n \"paid_by_profile_id\" UUID,\n \"vendor_id\" UUID,\n \"commitment_id\" UUID,\n \"commitment_line_id\" UUID,\n \"review_status\" TEXT,\n \"reviewed_by_profile_id\" UUID,\n \"reviewed_at\" TIMESTAMP,\n \"review_note\" TEXT,\n \"duplicate_of_id\" UUID,\n \"reimbursable\" BOOLEAN,\n \"reimbursed_amount\" INTEGER,\n \"reimbursed_at\" TIMESTAMP,\n \"reimbursement_reference\" TEXT\n);",
|
|
1157
1430
|
"columns": {
|
|
1158
1431
|
"id": {
|
|
1159
1432
|
"type": "UUID",
|
|
@@ -1221,6 +1494,11 @@
|
|
|
1221
1494
|
"notNull": false,
|
|
1222
1495
|
"unique": false
|
|
1223
1496
|
},
|
|
1497
|
+
"supplier_payable_json": {
|
|
1498
|
+
"type": "TEXT",
|
|
1499
|
+
"notNull": false,
|
|
1500
|
+
"unique": false
|
|
1501
|
+
},
|
|
1224
1502
|
"paid_by_name": {
|
|
1225
1503
|
"type": "TEXT",
|
|
1226
1504
|
"notNull": false,
|
|
@@ -1238,6 +1516,11 @@
|
|
|
1238
1516
|
"onUpdate": "CASCADE"
|
|
1239
1517
|
}
|
|
1240
1518
|
},
|
|
1519
|
+
"refund_recipient": {
|
|
1520
|
+
"type": "TEXT",
|
|
1521
|
+
"notNull": false,
|
|
1522
|
+
"unique": false
|
|
1523
|
+
},
|
|
1241
1524
|
"incurred_on": {
|
|
1242
1525
|
"type": "TEXT",
|
|
1243
1526
|
"notNull": false,
|
|
@@ -1321,6 +1604,11 @@
|
|
|
1321
1604
|
"notNull": false,
|
|
1322
1605
|
"unique": false
|
|
1323
1606
|
},
|
|
1607
|
+
"reimbursed_amount": {
|
|
1608
|
+
"type": "INTEGER",
|
|
1609
|
+
"notNull": false,
|
|
1610
|
+
"unique": false
|
|
1611
|
+
},
|
|
1324
1612
|
"reimbursed_at": {
|
|
1325
1613
|
"type": "TIMESTAMP",
|
|
1326
1614
|
"notNull": false,
|
|
@@ -1424,7 +1712,7 @@
|
|
|
1424
1712
|
]
|
|
1425
1713
|
}
|
|
1426
1714
|
],
|
|
1427
|
-
"version": "
|
|
1715
|
+
"version": "dc99ff87"
|
|
1428
1716
|
},
|
|
1429
1717
|
"importPath": "@happyvertical/smrt-expenses"
|
|
1430
1718
|
},
|
|
@@ -1776,6 +2064,15 @@
|
|
|
1776
2064
|
"financialBreakdown": {
|
|
1777
2065
|
"visibility": "hidden"
|
|
1778
2066
|
},
|
|
2067
|
+
"supplierPayableJson": {
|
|
2068
|
+
"visibility": "hidden"
|
|
2069
|
+
},
|
|
2070
|
+
"refundRecipient": {
|
|
2071
|
+
"visibility": "hidden"
|
|
2072
|
+
},
|
|
2073
|
+
"reimbursedAmount": {
|
|
2074
|
+
"help": "The recorded amount paid back to the person who paid."
|
|
2075
|
+
},
|
|
1779
2076
|
"refundOfId": {
|
|
1780
2077
|
"visibility": "hidden"
|
|
1781
2078
|
},
|
package/dist/models/Expense.d.ts
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* @packageDocumentation
|
|
6
6
|
*/
|
|
7
7
|
import { SmrtObject } from '@happyvertical/smrt-core';
|
|
8
|
-
import { type
|
|
8
|
+
import { type CompleteSupplierPayableBasisInput, type RecordSupplierPayableEventInput, type RecordSupplierPayableInput, type SupplierPayablePosition } from '../supplier-payable.js';
|
|
9
|
+
import { type ExpenseCostBasis, type ExpenseFinancialBreakdown, type ExpenseOptions, type ExpensePayer, type ExpenseRefundPosition, type ExpenseRefundRecipient, type ExpenseReimbursementPosition, type ExpenseReviewStatus, type MarkDuplicateExpenseInput, type MarkReimbursedInput, type RejectExpenseInput, type ReopenExpenseInput, type ReviewExpenseInput } from '../types.js';
|
|
9
10
|
/**
|
|
10
11
|
* A cost someone incurred.
|
|
11
12
|
*
|
|
@@ -56,10 +57,14 @@ export declare class Expense extends SmrtObject {
|
|
|
56
57
|
currency: string;
|
|
57
58
|
/** Optional supplier facts as guarded JSON text; null or empty means unknown. */
|
|
58
59
|
financialBreakdown: string | null;
|
|
60
|
+
/** Command-owned immutable supplier payable/retention evidence; no cash execution. */
|
|
61
|
+
supplierPayableJson: string | null;
|
|
59
62
|
/** Name of the third party who paid; no employee reimbursement is implied. */
|
|
60
63
|
paidByName: string | null;
|
|
61
64
|
/** Positive source expense reversed by this negative refund; no settlement. */
|
|
62
65
|
refundOfId: string | null;
|
|
66
|
+
/** Explicit cash recipient of a refund; absent legacy direction is unknown. */
|
|
67
|
+
refundRecipient: string | null;
|
|
63
68
|
/** Calendar date the cost was incurred, `YYYY-MM-DD`. Required. */
|
|
64
69
|
incurredOn: string;
|
|
65
70
|
/** When the expense was recorded; set on first save when empty. */
|
|
@@ -94,6 +99,8 @@ export declare class Expense extends SmrtObject {
|
|
|
94
99
|
duplicateOfId: string | null;
|
|
95
100
|
/** Whether the person who paid is owed the amount back. */
|
|
96
101
|
reimbursable: boolean;
|
|
102
|
+
/** Exact historical reimbursement cash; null on legacy payment markers. */
|
|
103
|
+
reimbursedAmount: number | null;
|
|
97
104
|
/** When the person was paid back; set by {@link Expense.markReimbursed}. */
|
|
98
105
|
reimbursedAt: Date | null;
|
|
99
106
|
/** Payroll line, payables reference, or transfer id of the payback. */
|
|
@@ -103,6 +110,9 @@ export declare class Expense extends SmrtObject {
|
|
|
103
110
|
getFinancialBreakdown(): ExpenseFinancialBreakdown | null;
|
|
104
111
|
/** Set complete supplier facts; null explicitly clears facts on an unreviewed row. */
|
|
105
112
|
setFinancialBreakdown(value: ExpenseFinancialBreakdown | null): void;
|
|
113
|
+
/** Explicit recipient, independent of this expense's payer facts. */
|
|
114
|
+
getRefundRecipient(): ExpenseRefundRecipient | null;
|
|
115
|
+
setRefundRecipient(value: ExpenseRefundRecipient | null): void;
|
|
106
116
|
/** Return exact retained purchase cost; legacy unknown tax facts return null. */
|
|
107
117
|
getCostBasis(): ExpenseCostBasis | null;
|
|
108
118
|
/** True when the person who paid has been paid back. */
|
|
@@ -166,6 +176,25 @@ export declare class Expense extends SmrtObject {
|
|
|
166
176
|
save(): Promise<this>;
|
|
167
177
|
/** Keep both directions of refund validation and the write on one executor. */
|
|
168
178
|
private saveValidated;
|
|
179
|
+
/** Record original supplier authority without creating approval, cash or journals. */
|
|
180
|
+
recordSupplierPayable(input: RecordSupplierPayableInput): Promise<SupplierPayablePosition>;
|
|
181
|
+
/** Append explicit dated hold, release, supplier settlement or refund interpretation. */
|
|
182
|
+
recordSupplierPayableEvent(input: RecordSupplierPayableEventInput): Promise<SupplierPayablePosition>;
|
|
183
|
+
/** Complete a previously unknown basis once with independent current review evidence. */
|
|
184
|
+
completeSupplierPayableBasis(input: CompleteSupplierPayableBasisInput): Promise<SupplierPayablePosition>;
|
|
185
|
+
/** Read exact dated supplier position; null means no authority exists or the source is not yet effective. */
|
|
186
|
+
getSupplierPayablePosition(input?: {
|
|
187
|
+
asOfDate?: string;
|
|
188
|
+
}): Promise<SupplierPayablePosition | null>;
|
|
189
|
+
private assertSupplierPayableContext;
|
|
190
|
+
private loadSupplierPayableSource;
|
|
191
|
+
private supplierRefunds;
|
|
192
|
+
private mutateSupplierPayable;
|
|
193
|
+
private assertSupplierPayable;
|
|
194
|
+
/** Managed supplier evidence cannot be erased through ordinary model/collection deletion. */
|
|
195
|
+
delete(options?: {
|
|
196
|
+
expectedUpdatedAt?: Date | string;
|
|
197
|
+
}): Promise<void>;
|
|
169
198
|
private normalize;
|
|
170
199
|
private validateShape;
|
|
171
200
|
/**
|
|
@@ -208,6 +237,11 @@ export declare class Expense extends SmrtObject {
|
|
|
208
237
|
/** Refuse source corrections that invalidate any same-owner refund. */
|
|
209
238
|
private assertInboundRefunds;
|
|
210
239
|
private assertRefund;
|
|
240
|
+
private assertReimbursementFields;
|
|
241
|
+
/** Remaining person cash claim and separate company receivable; null is unknown. */
|
|
242
|
+
getReimbursementPosition(): Promise<ExpenseReimbursementPosition>;
|
|
243
|
+
/** Exact source cash capacity and optional complete signed financial position. */
|
|
244
|
+
getRefundPosition(): Promise<ExpenseRefundPosition>;
|
|
211
245
|
private transition;
|
|
212
246
|
}
|
|
213
247
|
//# sourceMappingURL=Expense.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expense.d.ts","sourceRoot":"","sources":["../../src/models/Expense.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAOL,UAAU,EAEX,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Expense.d.ts","sourceRoot":"","sources":["../../src/models/Expense.ts"],"names":[],"mappings":"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"}
|
package/dist/recipes.d.ts
CHANGED
|
@@ -80,6 +80,15 @@ export declare class ExpensesRecipe extends SmrtRecipe {
|
|
|
80
80
|
readonly financialBreakdown: {
|
|
81
81
|
readonly visibility: "hidden";
|
|
82
82
|
};
|
|
83
|
+
readonly supplierPayableJson: {
|
|
84
|
+
readonly visibility: "hidden";
|
|
85
|
+
};
|
|
86
|
+
readonly refundRecipient: {
|
|
87
|
+
readonly visibility: "hidden";
|
|
88
|
+
};
|
|
89
|
+
readonly reimbursedAmount: {
|
|
90
|
+
readonly help: "The recorded amount paid back to the person who paid.";
|
|
91
|
+
};
|
|
83
92
|
readonly refundOfId: {
|
|
84
93
|
readonly visibility: "hidden";
|
|
85
94
|
};
|
package/dist/recipes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,+EAA+E;AAC/E,qBAAa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,EAAE,SAAuB;IAChC,MAAM,CAAC,IAAI,SAA0B;IACrC,MAAM,CAAC,KAAK,SAAc;IAC1B,MAAM,CAAC,OAAO,SACqD;IACnE,MAAM,CAAC,QAAQ,WAAuD;IACtE,MAAM,CAAC,OAAO;;;;;MAKZ;IACF,MAAM,CAAC,MAAM,6CAA6B;IAC1C,MAAM,CAAC,GAAG;;;;;QAOR;IACF,MAAM,CAAC,OAAO
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,+EAA+E;AAC/E,qBAAa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,EAAE,SAAuB;IAChC,MAAM,CAAC,IAAI,SAA0B;IACrC,MAAM,CAAC,KAAK,SAAc;IAC1B,MAAM,CAAC,OAAO,SACqD;IACnE,MAAM,CAAC,QAAQ,WAAuD;IACtE,MAAM,CAAC,OAAO;;;;;MAKZ;IACF,MAAM,CAAC,MAAM,6CAA6B;IAC1C,MAAM,CAAC,GAAG;;;;;QAOR;IACF,MAAM,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmDH;CACZ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ExpenseFinancialBreakdown, type ExpenseRefundPosition } from './types.js';
|
|
2
|
+
interface RefundFact {
|
|
3
|
+
id: string;
|
|
4
|
+
amount: number;
|
|
5
|
+
currency: string;
|
|
6
|
+
getFinancialBreakdown(): ExpenseFinancialBreakdown | null;
|
|
7
|
+
}
|
|
8
|
+
/** Validate known reversals even when other financial facts remain unknown. */
|
|
9
|
+
export declare function calculateRefundPosition(source: RefundFact, refunds: RefundFact[]): ExpenseRefundPosition;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=refund-position.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refund-position.d.ts","sourceRoot":"","sources":["../src/refund-position.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AAEpB,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,IAAI,yBAAyB,GAAG,IAAI,CAAC;CAC3D;AAYD,+EAA+E;AAC/E,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EAAE,GACpB,qBAAqB,CAuGvB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Explicit cash direction, without inferring tax basis or historical payments. */
|
|
2
|
+
import { type ExpenseRefundRecipient, type ExpenseReimbursementPosition } from './types.js';
|
|
3
|
+
export declare function parseRefundRecipient(stored: string | null): ExpenseRefundRecipient | null;
|
|
4
|
+
interface Source {
|
|
5
|
+
id: string;
|
|
6
|
+
currency: string;
|
|
7
|
+
amount: number;
|
|
8
|
+
paidBy: string;
|
|
9
|
+
paidByProfileId: string | null;
|
|
10
|
+
reimbursable: boolean;
|
|
11
|
+
reimbursedAt: Date | null;
|
|
12
|
+
reimbursedAmount: number | null;
|
|
13
|
+
}
|
|
14
|
+
interface Refund {
|
|
15
|
+
amount: number;
|
|
16
|
+
getRefundRecipient(): ExpenseRefundRecipient | null;
|
|
17
|
+
}
|
|
18
|
+
export declare function calculateReimbursementPosition(source: Source, refunds: Refund[]): ExpenseReimbursementPosition;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=reimbursement-position.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reimbursement-position.d.ts","sourceRoot":"","sources":["../src/reimbursement-position.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EAClC,MAAM,YAAY,CAAC;AASpB,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,sBAAsB,GAAG,IAAI,CAkC/B;AAED,UAAU,MAAM;IACd,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AACD,UAAU,MAAM;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,IAAI,sBAAsB,GAAG,IAAI,CAAC;CACrD;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,GAChB,4BAA4B,CAqD9B"}
|