storemw-core-api 1.0.29 → 1.0.31

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.
Files changed (145) hide show
  1. package/dist/controllers/document/documentController.js +240 -96
  2. package/dist/controllers/document/documentController.js.map +1 -1
  3. package/dist/lib/index.d.ts +2 -2
  4. package/dist/lib/index.js +4 -3
  5. package/dist/lib/index.js.map +1 -1
  6. package/dist/lib/model_factory/ModelFactory.d.ts +7 -0
  7. package/dist/lib/model_factory/ModelFactory.js +47 -1
  8. package/dist/lib/model_factory/ModelFactory.js.map +1 -1
  9. package/dist/lib/prisma/prisma.js +1 -1
  10. package/dist/lib/prisma/prisma.js.map +1 -1
  11. package/dist/lib/query_builder/queryBuilder.d.ts +40 -1
  12. package/dist/lib/query_builder/queryBuilder.js +104 -23
  13. package/dist/lib/query_builder/queryBuilder.js.map +1 -1
  14. package/dist/lib/query_builder/queryDocument.d.ts +24 -6
  15. package/dist/lib/query_builder/queryDocument.js +74 -30
  16. package/dist/lib/query_builder/queryDocument.js.map +1 -1
  17. package/dist/models/account/AccountModel.d.ts +29 -0
  18. package/dist/models/branch/UserBranchModel.d.ts +63 -0
  19. package/dist/models/branch_user/BranchUserModel.d.ts +29 -0
  20. package/dist/models/business/BusinessModel.d.ts +49 -0
  21. package/dist/models/document/DocumentAmountModel.d.ts +44 -11
  22. package/dist/models/document/DocumentItemModel.d.ts +47 -0
  23. package/dist/models/document/DocumentLocationModel.d.ts +31 -0
  24. package/dist/models/document/DocumentModel.d.ts +164 -2
  25. package/dist/models/document/DocumentPaymentModel.d.ts +49 -0
  26. package/dist/models/document/DocumentProfileModel.d.ts +59 -0
  27. package/dist/models/document/DocumentPropModel.d.ts +35 -0
  28. package/dist/models/document/DocumentTotalModel.d.ts +41 -0
  29. package/dist/models/group/GroupModel.d.ts +33 -0
  30. package/dist/models/group/GroupOwnerModel.d.ts +31 -0
  31. package/dist/models/injection_field/DocumentInjectionFieldModel.d.ts +111 -0
  32. package/dist/models/injection_field/InjectionFieldModel.d.ts +41 -0
  33. package/dist/models/injection_field/ItemInjectionFieldModel.d.ts +107 -0
  34. package/dist/models/injection_field/LogisticInjectionFieldModel.d.ts +33 -0
  35. package/dist/models/injection_field/RepositoryInjectionFieldModel.d.ts +43 -0
  36. package/dist/models/injection_field/UserInjectionFieldModel.d.ts +67 -0
  37. package/dist/models/item/BrandModel.d.ts +31 -0
  38. package/dist/models/item/CategoryModel.d.ts +33 -0
  39. package/dist/models/item/ItemModel.d.ts +63 -0
  40. package/dist/models/item/ProductModel.d.ts +52 -11
  41. package/dist/models/item/UomModel.d.ts +37 -0
  42. package/dist/models/location/LocationModel.d.ts +55 -0
  43. package/dist/models/location/LocationRackModel.d.ts +37 -0
  44. package/dist/models/location/LocationSlotModel.d.ts +35 -0
  45. package/dist/models/others/NumberDateSequenceModel.d.ts +37 -0
  46. package/dist/models/region/AreaModel.d.ts +33 -0
  47. package/dist/models/region/CountryModel.d.ts +33 -0
  48. package/dist/models/region/StateModel.d.ts +31 -0
  49. package/dist/models/user/AdministratorModel.d.ts +27 -0
  50. package/dist/models/user/CustomerModel.d.ts +45 -0
  51. package/dist/models/user/RetailerModel.d.ts +39 -0
  52. package/dist/models/user/UserModel.d.ts +43 -0
  53. package/dist/models/user/UserPropModel.d.ts +39 -0
  54. package/dist/models/user/UserStatusModel.d.ts +33 -0
  55. package/dist/models/user/WorkerModel.d.ts +29 -0
  56. package/dist/routes/document/documentRoutes.js.map +1 -1
  57. package/dist/schema/middleware/route/bk_schemaDocument.d.ts +2 -2
  58. package/dist/schema/middleware/route/schemaDocument.d.ts +3 -3
  59. package/dist/schema/middleware/route/schemaDocument.js +1 -1
  60. package/dist/schema/middleware/route/schemaDocument.js.map +1 -1
  61. package/dist/schema/payload/document/schemaDocument.d.ts +78 -12
  62. package/dist/schema/payload/document/schemaDocument.js +26 -5
  63. package/dist/schema/payload/document/schemaDocument.js.map +1 -1
  64. package/dist/schema/payload/document/schemaDocumentDeliveryOrder.d.ts +809 -0
  65. package/dist/schema/payload/document/schemaDocumentDeliveryOrder.js +29 -0
  66. package/dist/schema/payload/document/schemaDocumentDeliveryOrder.js.map +1 -0
  67. package/dist/schema/payload/document/schemaDocumentProformaSales.d.ts +809 -0
  68. package/dist/schema/payload/document/schemaDocumentProformaSales.js +29 -0
  69. package/dist/schema/payload/document/schemaDocumentProformaSales.js.map +1 -0
  70. package/dist/schema/payload/document/schemaDocumentReplacementDeliveryOrder.d.ts +809 -0
  71. package/dist/schema/payload/document/schemaDocumentReplacementDeliveryOrder.js +29 -0
  72. package/dist/schema/payload/document/schemaDocumentReplacementDeliveryOrder.js.map +1 -0
  73. package/dist/schema/payload/document/schemaDocumentSalesOrder.d.ts +142 -76
  74. package/dist/schema/payload/document/schemaDocumentSalesOrder.js +6 -8
  75. package/dist/schema/payload/document/schemaDocumentSalesOrder.js.map +1 -1
  76. package/dist/schema/payload/index.d.ts +8 -0
  77. package/dist/schema/payload/index.js +13 -1
  78. package/dist/schema/payload/index.js.map +1 -1
  79. package/dist/schema/payload/item/schemaItemProduct.d.ts +12 -12
  80. package/dist/services/account/AccountService.js +1 -1
  81. package/dist/services/account/AccountService.js.map +1 -1
  82. package/dist/services/branch/UserBranchService.js +1 -1
  83. package/dist/services/branch/UserBranchService.js.map +1 -1
  84. package/dist/services/document/DeliveryOrderService.d.ts +30 -7
  85. package/dist/services/document/DeliveryOrderService.js +185 -193
  86. package/dist/services/document/DeliveryOrderService.js.map +1 -1
  87. package/dist/services/document/DocumentDocumentService.d.ts +147 -9
  88. package/dist/services/document/DocumentDocumentService.js +202 -65
  89. package/dist/services/document/DocumentDocumentService.js.map +1 -1
  90. package/dist/services/document/DocumentItemService.d.ts +7 -2
  91. package/dist/services/document/DocumentItemService.js +39 -50
  92. package/dist/services/document/DocumentItemService.js.map +1 -1
  93. package/dist/services/document/DocumentProfileService.d.ts +36 -71
  94. package/dist/services/document/DocumentProfileService.js +274 -87
  95. package/dist/services/document/DocumentProfileService.js.map +1 -1
  96. package/dist/services/document/DocumentService.d.ts +21 -58
  97. package/dist/services/document/DocumentService.js +155 -103
  98. package/dist/services/document/DocumentService.js.map +1 -1
  99. package/dist/services/document/DocumentTotalService.d.ts +8 -4
  100. package/dist/services/document/DocumentTotalService.js +42 -37
  101. package/dist/services/document/DocumentTotalService.js.map +1 -1
  102. package/dist/services/document/ProformaSalesService.d.ts +30 -7
  103. package/dist/services/document/ProformaSalesService.js +181 -189
  104. package/dist/services/document/ProformaSalesService.js.map +1 -1
  105. package/dist/services/document/ReplacementDeliveryService.d.ts +81 -0
  106. package/dist/services/document/ReplacementDeliveryService.js +309 -0
  107. package/dist/services/document/ReplacementDeliveryService.js.map +1 -0
  108. package/dist/services/document/SalesOrderService.d.ts +27 -14
  109. package/dist/services/document/SalesOrderService.js +146 -206
  110. package/dist/services/document/SalesOrderService.js.map +1 -1
  111. package/dist/services/injection_field/InjectionFieldService.d.ts +4 -1
  112. package/dist/services/injection_field/InjectionFieldService.js +6 -3
  113. package/dist/services/injection_field/InjectionFieldService.js.map +1 -1
  114. package/dist/services/item/ItemBrandService.js +1 -1
  115. package/dist/services/item/ItemBrandService.js.map +1 -1
  116. package/dist/services/item/ItemCategoryService.js +1 -1
  117. package/dist/services/item/ItemCategoryService.js.map +1 -1
  118. package/dist/services/item/ItemItemService.js +1 -1
  119. package/dist/services/item/ItemItemService.js.map +1 -1
  120. package/dist/services/item/ItemProductService.d.ts +3 -3
  121. package/dist/services/item/ItemProductService.js +1 -1
  122. package/dist/services/item/ItemProductService.js.map +1 -1
  123. package/dist/services/item/ItemUomService.js +1 -1
  124. package/dist/services/item/ItemUomService.js.map +1 -1
  125. package/dist/services/location/LocationLocationService.js +5 -2
  126. package/dist/services/location/LocationLocationService.js.map +1 -1
  127. package/dist/services/location/LocationRackService.js +1 -1
  128. package/dist/services/location/LocationRackService.js.map +1 -1
  129. package/dist/services/location/LocationSlotService.js +1 -1
  130. package/dist/services/location/LocationSlotService.js.map +1 -1
  131. package/dist/services/region/AreaService.js +1 -1
  132. package/dist/services/region/AreaService.js.map +1 -1
  133. package/dist/services/region/CountryService.js +1 -1
  134. package/dist/services/region/CountryService.js.map +1 -1
  135. package/dist/services/region/StateService.js +1 -1
  136. package/dist/services/region/StateService.js.map +1 -1
  137. package/dist/services/user/AdministratorService.js +1 -1
  138. package/dist/services/user/AdministratorService.js.map +1 -1
  139. package/dist/services/user/CustomerService.js +1 -1
  140. package/dist/services/user/CustomerService.js.map +1 -1
  141. package/dist/services/user/RetailerService.js +1 -1
  142. package/dist/services/user/RetailerService.js.map +1 -1
  143. package/dist/services/user/WorkerService.js +1 -1
  144. package/dist/services/user/WorkerService.js.map +1 -1
  145. package/package.json +1 -1
@@ -4,6 +4,28 @@ exports.getDocumentDataTypes = exports.deleteDocuments = exports.listDocuments =
4
4
  const utils_1 = require("../../utils");
5
5
  const services_1 = require("../../services");
6
6
  const payload_1 = require("../../schema/payload");
7
+ const documentSalesMap = {
8
+ sales: {
9
+ schemaCreate: payload_1.schemaDocumentSalesOrderCreatePayload,
10
+ schemaUpdate: payload_1.schemaDocumentSalesOrderUpdatePayload,
11
+ key: "salesOrder",
12
+ },
13
+ delivery: {
14
+ schemaCreate: payload_1.schemaDocumentDeliveryOrderCreatePayload,
15
+ schemaUpdate: payload_1.schemaDocumentDeliveryOrderUpdatePayload,
16
+ key: "deliveryOrder",
17
+ },
18
+ proforma_sales: {
19
+ schemaCreate: payload_1.schemaDocumentProformaSalesCreatePayload,
20
+ schemaUpdate: payload_1.schemaDocumentProformaSalesUpdatePayload,
21
+ key: "proformaSales",
22
+ },
23
+ replacement_delivery: {
24
+ schemaCreate: payload_1.schemaDocumentReplacementDeliveryOrderCreatePayload,
25
+ schemaUpdate: payload_1.schemaDocumentReplacementDeliveryOrderUpdatePayload,
26
+ key: "replacementDeliveryOrder",
27
+ },
28
+ };
7
29
  const getRootName = (requestDocumentType, toSingular) => {
8
30
  let rootName = ``;
9
31
  switch (requestDocumentType) {
@@ -16,29 +38,12 @@ const getRootName = (requestDocumentType, toSingular) => {
16
38
  case "proforma_sales":
17
39
  rootName = toSingular ? "proformaSales" : "proformaSales";
18
40
  break;
19
- // case "retailer": rootName = toSingular ? "retailer" : "retailers"; break;
20
- // case "worker": rootName = toSingular ? "worker" : "workers"; break;
41
+ case "replacement_delivery":
42
+ rootName = toSingular ? "replacementDeliveryOrder" : "replacementDeliveryOrders";
43
+ break;
21
44
  }
22
45
  return rootName;
23
46
  };
24
- /** documewnt/:documentType/:documentId : get document */
25
- const getDocument = async (req, res, next) => {
26
- try {
27
- const { documentId, documentType } = req.params;
28
- const requestQuery = req.query;
29
- const requestDocumentType = documentType;
30
- const userService = (0, services_1.DocumentService)({
31
- ...(0, utils_1.getDefaultServiceProps)(req),
32
- documentType: requestDocumentType
33
- });
34
- const data = await userService.getDocument({ id: Number(documentId), datatypes: requestQuery.datatypes });
35
- return (0, utils_1.sendSuccess)(res, data, "Retrieved successfully", getRootName(requestDocumentType, true));
36
- }
37
- catch (error) {
38
- next(error);
39
- }
40
- };
41
- exports.getDocument = getDocument;
42
47
  const buildDocumentProfileFromRequest = (requestPayload) => {
43
48
  return {
44
49
  userId: requestPayload?.user_id
@@ -62,6 +67,7 @@ const buildDocumentProfileOtherFromRequest = (requestPayload) => {
62
67
  };
63
68
  const buildDocumentItemsFromRequest = (requestPayload) => {
64
69
  return requestPayload.map((i) => ({
70
+ ...(i?.document_item_id ? { documentItemId: i.document_item_id } : {}),
65
71
  itemId: i.item_id,
66
72
  itemCode: i.code,
67
73
  itemName: i.name,
@@ -73,11 +79,12 @@ const buildDocumentItemsFromRequest = (requestPayload) => {
73
79
  };
74
80
  const buildDocumentTotalsFromRequest = (requestPayload) => {
75
81
  return requestPayload.map((i) => ({
76
- type: i.type,
77
- referId: i.refer_id,
82
+ totalType: i.type,
83
+ ...(i?.document_total_id ? { documentTotalId: i.document_total_id } : {}),
84
+ ...(i?.refer_id ? { referId: i.refer_id } : {}),
78
85
  description: i.description,
79
- amount: i.amount,
80
- percentage: i.percentage
86
+ totalAmount: i.amount,
87
+ totalPercentage: i.percentage
81
88
  }));
82
89
  };
83
90
  const buildDocumentProfileToService = (zodRequest) => {
@@ -87,7 +94,7 @@ const buildDocumentProfileToService = (zodRequest) => {
87
94
  };
88
95
  const buildDocumentProfileOtherToService = (zodRequest) => {
89
96
  return {
90
- branchId: zodRequest.branchId,
97
+ userBranchId: zodRequest.branchId,
91
98
  ...(zodRequest?.address1 ? { address1: zodRequest.address1 } : {}),
92
99
  ...(zodRequest?.address2 ? { address2: zodRequest.address2 } : {}),
93
100
  ...(zodRequest?.postcode ? { postcode: zodRequest.postcode } : {}),
@@ -104,23 +111,67 @@ const buildDocumentProfileOtherToService = (zodRequest) => {
104
111
  const buildDocumentItemsToService = (zodRequest) => {
105
112
  return zodRequest.map((i) => ({
106
113
  itemId: i.itemId,
114
+ ...(i?.documentItemId ? { documentItemId: i.documentItemId } : {}),
107
115
  ...(i.itemCode ? { itemCode: i.itemCode } : {}),
108
116
  ...(i.itemName ? { itemName: i.itemName } : {}),
109
117
  ...(i.description ? { description: i.description } : {}),
110
- ...(i.quantity ? { quantity: i.quantity } : {}),
118
+ quantity: i.quantity,
111
119
  ...(i.uomPrice ? { uomPrice: i.uomPrice } : {}),
112
120
  ...(i.uomId ? { uomId: i.uomId } : {}),
113
121
  }));
114
122
  };
115
123
  const buildDocumentTotalsToService = (zodRequest) => {
116
124
  return zodRequest.map((i) => ({
117
- amount: i.amount,
125
+ ...(i?.documentTotalId ? { documentTotalId: i.documentTotalId } : {}),
126
+ totalAmount: i.totalAmount,
118
127
  description: i.description,
119
- referId: i.referId,
120
- type: i.type,
121
- percentage: i.percentage
128
+ ...(i.referId ? { referId: i.referId } : {}),
129
+ totalType: i.totalType,
130
+ totalPercentage: i.totalPercentage
122
131
  }));
123
132
  };
133
+ const buildDocumentPayloadFromRequest = (reqPayload) => {
134
+ return {
135
+ ...(reqPayload?.document_number ? { documentNumber: reqPayload.document_number } : {}),
136
+ ...(reqPayload?.document_date ? { documentDate: reqPayload.document_date } : {}),
137
+ ...(reqPayload?.remark ? { remark: reqPayload.remark } : {}),
138
+ ...(reqPayload?.document_reference_id_1 ? { documentReferenceId1: reqPayload.document_reference_id_1 } : {}),
139
+ ...(reqPayload?.document_reference_label_1 ? { documentReferenceLabel1: reqPayload.document_reference_label_1 } : {}),
140
+ ...(reqPayload?.document_reference_id_2 ? { documentReferenceId2: reqPayload.document_reference_id_2 } : {}),
141
+ ...(reqPayload?.document_reference_label_2 ? { documentReferenceLabel2: reqPayload.document_reference_label_2 } : {}),
142
+ locationId: reqPayload.location_id
143
+ };
144
+ };
145
+ const buildDocumentPayloadToService = (reqPayload) => {
146
+ return {
147
+ ...(reqPayload?.documentNumber ? { documentNumber: reqPayload.documentNumber } : {}),
148
+ ...(reqPayload?.documentDate ? { documentDate: reqPayload.documentDate } : {}),
149
+ ...(reqPayload?.remark ? { remark: reqPayload.remark } : {}),
150
+ ...(reqPayload?.documentReferenceId1 ? { documentReferenceId1: reqPayload.documentReferenceId1 } : {}),
151
+ ...(reqPayload?.documentReferenceLabel1 ? { documentReferenceLabel1: reqPayload.documentReferenceLabel1 } : {}),
152
+ ...(reqPayload?.documentReferenceId2 ? { documentReferenceId2: reqPayload.documentReferenceId2 } : {}),
153
+ ...(reqPayload?.documentReferenceLabel2 ? { documentReferenceLabel2: reqPayload.documentReferenceLabel2 } : {}),
154
+ locationId: reqPayload.locationId
155
+ };
156
+ };
157
+ /** documewnt/:documentType/:documentId : get document */
158
+ const getDocument = async (req, res, next) => {
159
+ try {
160
+ const { documentId, documentType } = req.params;
161
+ const requestQuery = req.query;
162
+ const requestDocumentType = documentType;
163
+ const userService = (0, services_1.DocumentService)({
164
+ ...(0, utils_1.getDefaultServiceProps)(req),
165
+ documentType: requestDocumentType
166
+ });
167
+ const data = await userService.getDocument({ id: Number(documentId), datatypes: requestQuery.datatypes });
168
+ return (0, utils_1.sendSuccess)(res, data, "Retrieved successfully", getRootName(requestDocumentType, true));
169
+ }
170
+ catch (error) {
171
+ next(error);
172
+ }
173
+ };
174
+ exports.getDocument = getDocument;
124
175
  /** document : create document */
125
176
  const createDocument = async (req, res, next) => {
126
177
  try {
@@ -132,44 +183,101 @@ const createDocument = async (req, res, next) => {
132
183
  let response = {};
133
184
  let reqScope = req.body.scope;
134
185
  let reqPayload = req.body.payload;
135
- if (requestDocumentType === "sales") {
136
- let request = payload_1.schemaDocumentSalesOrderCreatePayload.parse({
137
- scope: {
138
- target: reqScope.target,
139
- action: reqScope.action
140
- },
186
+ // for sales documents
187
+ if (requestDocumentType in documentSalesMap) {
188
+ const { schemaCreate, key } = documentSalesMap[requestDocumentType];
189
+ const request = schemaCreate.parse({
190
+ scope: { target: reqScope.target, action: reqScope.action },
141
191
  payload: {
142
- documentNumber: reqPayload.document_number,
143
- documentDate: reqPayload.document_date,
144
- remark: reqPayload.remark,
145
- locationId: reqPayload.location_id,
192
+ ...buildDocumentPayloadFromRequest(reqPayload),
146
193
  profile: buildDocumentProfileFromRequest(reqPayload.profile),
147
194
  shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),
148
195
  billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),
149
196
  ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),
150
- ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})
151
- }
197
+ ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {}),
198
+ },
152
199
  });
153
- let payload = {
200
+ const payload = {
154
201
  documentType: requestDocumentType,
155
202
  data: {
156
- documentNumber: request.payload.documentNumber,
157
- documentDate: request.payload.documentDate,
158
- remark: request.payload.remark,
159
- locationId: request.payload.locationId,
160
- salesOrder: {
203
+ ...buildDocumentPayloadToService(request.payload),
204
+ [key]: {
161
205
  profile: buildDocumentProfileToService(request.payload.profile),
162
206
  shipping: buildDocumentProfileOtherToService(request.payload.shipping),
163
207
  billing: buildDocumentProfileOtherToService(request.payload.billing),
164
208
  ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),
165
- ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})
166
- }
167
- }
209
+ ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {}),
210
+ },
211
+ },
168
212
  };
169
213
  response = {
170
214
  [`${getRootName(requestDocumentType, true)}`]: await documentService.createDocument(payload)
171
215
  };
172
216
  }
217
+ // if (requestDocumentType === "sales") {
218
+ // let request = schemaDocumentSalesOrderCreatePayload.parse({
219
+ // scope: {
220
+ // target: reqScope.target,
221
+ // action: reqScope.action
222
+ // },
223
+ // payload: {
224
+ // ...buildDocumentPayloadFromRequest(reqPayload),
225
+ // profile: buildDocumentProfileFromRequest(reqPayload.profile),
226
+ // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),
227
+ // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),
228
+ // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),
229
+ // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})
230
+ // }
231
+ // })
232
+ // let payload: DocumentCreateProps = {
233
+ // documentType: requestDocumentType,
234
+ // data: {
235
+ // ...buildDocumentPayloadToService(request.payload),
236
+ // salesOrder: {
237
+ // profile: buildDocumentProfileToService(request.payload.profile),
238
+ // shipping: buildDocumentProfileOtherToService(request.payload.shipping),
239
+ // billing: buildDocumentProfileOtherToService(request.payload.billing),
240
+ // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),
241
+ // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})
242
+ // }
243
+ // }
244
+ // }
245
+ // response = {
246
+ // [`${getRootName(requestDocumentType, true)}`]: await documentService.createDocument(payload)
247
+ // }
248
+ // }
249
+ // if (requestDocumentType === "proforma_sales") {
250
+ // let request = schemaDocumentProformaSalesCreatePayload.parse({
251
+ // scope: {
252
+ // target: reqScope.target,
253
+ // action: reqScope.action
254
+ // },
255
+ // payload: {
256
+ // ...buildDocumentPayloadFromRequest(reqPayload),
257
+ // profile: buildDocumentProfileFromRequest(reqPayload.profile),
258
+ // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),
259
+ // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),
260
+ // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),
261
+ // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})
262
+ // }
263
+ // })
264
+ // let payload: DocumentCreateProps = {
265
+ // documentType: requestDocumentType,
266
+ // data: {
267
+ // ...buildDocumentPayloadToService(request.payload),
268
+ // proformaSales: {
269
+ // profile: buildDocumentProfileToService(request.payload.profile),
270
+ // shipping: buildDocumentProfileOtherToService(request.payload.shipping),
271
+ // billing: buildDocumentProfileOtherToService(request.payload.billing),
272
+ // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),
273
+ // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})
274
+ // }
275
+ // }
276
+ // }
277
+ // response = {
278
+ // [`${getRootName(requestDocumentType, true)}`]: await documentService.createDocument(payload)
279
+ // }
280
+ // }
173
281
  (0, utils_1.sendSuccess)(res, response, `Document(${requestDocumentType}) created successfully`);
174
282
  }
175
283
  catch (error) {
@@ -189,61 +297,97 @@ const updateDocument = async (req, res, next) => {
189
297
  let response = {};
190
298
  let reqScope = req.body.scope;
191
299
  let reqPayload = req.body.payload;
192
- // if (requestDocumentType === "salesOrder" || requestDocumentType === "sales") {
300
+ if (requestDocumentType in documentSalesMap) {
301
+ const { schemaUpdate, key } = documentSalesMap[requestDocumentType];
302
+ const request = schemaUpdate.parse({
303
+ scope: { target: reqScope.target, action: reqScope.action },
304
+ payload: {
305
+ ...buildDocumentPayloadFromRequest(reqPayload),
306
+ profile: buildDocumentProfileFromRequest(reqPayload.profile),
307
+ shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),
308
+ billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),
309
+ ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),
310
+ ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {}),
311
+ },
312
+ });
313
+ const payload = {
314
+ documentId: Number(documentId),
315
+ documentType: requestDocumentType,
316
+ data: {
317
+ ...buildDocumentPayloadToService(request.payload),
318
+ [key]: {
319
+ profile: buildDocumentProfileToService(request.payload.profile),
320
+ shipping: buildDocumentProfileOtherToService(request.payload.shipping),
321
+ billing: buildDocumentProfileOtherToService(request.payload.billing),
322
+ ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),
323
+ ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {}),
324
+ },
325
+ },
326
+ };
327
+ const result = await documentService.updateDocument(payload);
328
+ response = {
329
+ [getRootName(requestDocumentType, true)]: result,
330
+ };
331
+ }
332
+ // if (requestDocumentType === "sales") {
193
333
  // let request = schemaDocumentSalesOrderUpdatePayload.parse({
194
334
  // scope: {
195
335
  // target: reqScope.target,
196
336
  // action: reqScope.action
197
337
  // },
198
338
  // payload: {
199
- // // credential: {
200
- // // username: reqPayload.credential.username,
201
- // // password: reqPayload.credential.password,
202
- // // firstname: reqPayload.credential.firstname,
203
- // // lastname: reqPayload.credential.lastname,
204
- // // contact: reqPayload.credential.contact,
205
- // // email: reqPayload.credential.email,
206
- // // address: reqPayload.credential.address,
207
- // // status: reqPayload.credential.status
208
- // // },
209
- // // customer: {
210
- // // code: reqPayload.customer.code,
211
- // // accountCode: reqPayload.customer.account_code,
212
- // // companyName: reqPayload.customer.company_name,
213
- // // regNo: reqPayload.customer.reg_no,
214
- // // secondaryRegNo: reqPayload.customer.secondary_reg_no,
215
- // // gstNo: reqPayload.customer.gst_no,
216
- // // taxIdentificationNo: reqPayload.customer.tax_identification_no,
217
- // // taxRegistrationNo: reqPayload.customer.tax_registration_no,
218
- // // remark: reqPayload.customer.remark
219
- // // },
220
- // // props: {
221
- // // salesperson: reqPayload.props.salesperson
222
- // // }
339
+ // ...buildDocumentPayloadFromRequest(reqPayload),
340
+ // profile: buildDocumentProfileFromRequest(reqPayload.profile),
341
+ // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),
342
+ // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),
343
+ // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),
344
+ // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})
223
345
  // }
224
346
  // })
225
347
  // let payload: DocumentUpdateProps = {
226
- // id: Number(documentId),
348
+ // documentId: Number(documentId),
227
349
  // documentType: requestDocumentType,
228
350
  // data: {
229
- // remark: "",
351
+ // ...buildDocumentPayloadToService(request.payload),
230
352
  // salesOrder: {
231
- // profiles: {
232
- // profile: {
233
- // type: "customer",
234
- // userId: 0
235
- // },
236
- // ship: {
237
- // userId: 0
238
- // },
239
- // bill: {
240
- // userId: 0
241
- // }
242
- // },
243
- // location: {
244
- // locationId: 0
245
- // },
246
- // items: []
353
+ // profile: buildDocumentProfileToService(request.payload.profile),
354
+ // shipping: buildDocumentProfileOtherToService(request.payload.shipping),
355
+ // billing: buildDocumentProfileOtherToService(request.payload.billing),
356
+ // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),
357
+ // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})
358
+ // }
359
+ // }
360
+ // }
361
+ // response = {
362
+ // [`${getRootName(requestDocumentType, true)}`]: await documentService.updateDocument(payload)
363
+ // }
364
+ // }
365
+ // if (requestDocumentType === "proforma_sales") {
366
+ // let request = schemaDocumentProformaSalesUpdatePayload.parse({
367
+ // scope: {
368
+ // target: reqScope.target,
369
+ // action: reqScope.action
370
+ // },
371
+ // payload: {
372
+ // ...buildDocumentPayloadFromRequest(reqPayload),
373
+ // profile: buildDocumentProfileFromRequest(reqPayload.profile),
374
+ // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),
375
+ // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),
376
+ // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),
377
+ // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})
378
+ // }
379
+ // })
380
+ // let payload: DocumentUpdateProps = {
381
+ // documentId: Number(documentId),
382
+ // documentType: requestDocumentType,
383
+ // data: {
384
+ // ...buildDocumentPayloadToService(request.payload),
385
+ // proformaSales: {
386
+ // profile: buildDocumentProfileToService(request.payload.profile),
387
+ // shipping: buildDocumentProfileOtherToService(request.payload.shipping),
388
+ // billing: buildDocumentProfileOtherToService(request.payload.billing),
389
+ // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),
390
+ // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})
247
391
  // }
248
392
  // }
249
393
  // }
@@ -251,7 +395,7 @@ const updateDocument = async (req, res, next) => {
251
395
  // [`${getRootName(requestDocumentType, true)}`]: await documentService.updateDocument(payload)
252
396
  // }
253
397
  // }
254
- // sendSuccess(res, response, `Document(${requestDocumentType}) updated successfully`)
398
+ (0, utils_1.sendSuccess)(res, response, `Document(${requestDocumentType}) updated successfully`);
255
399
  }
256
400
  catch (error) {
257
401
  next(error);
@@ -287,7 +431,7 @@ const deleteDocuments = async (req, res, next) => {
287
431
  const requestDocumentType = req.body.scope.target;
288
432
  // const requestQuery = req.query as unknown as QueryList;
289
433
  // const requestFileId = Number(req.params.fileId)
290
- const request = payload_1.schemaUserDeletePayload.parse(req.body);
434
+ const request = payload_1.schemaDocumentDeletePayload.parse(req.body);
291
435
  const documentService = (0, services_1.DocumentService)({
292
436
  ...(0, utils_1.getDefaultServiceProps)(req),
293
437
  documentType: requestDocumentType
@@ -1 +1 @@
1
- {"version":3,"file":"documentController.js","sourceRoot":"","sources":["../../../src/controllers/document/documentController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Request, Response, NextFunction } from \"express\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { DocumentService, DocumentType, DocumentCreateProps, DocumentServiceProps, DocumentUpdateProps } from \"@/services\"\nimport {\n schemaUserDeletePayload,\n schemaDocumentSalesOrderCreatePayload,\n schemaDocumentSalesOrderUpdatePayload\n} from \"@/schema/payload\";\nimport { QueryList } from \"@/schema/middleware/route\";\n\nconst getRootName = (requestDocumentType: DocumentServiceProps[\"documentType\"], toSingular: boolean) => {\n\n let rootName: any = ``\n\n switch (requestDocumentType) {\n case \"sales\": rootName = toSingular ? \"salesOrder\" : \"salesOrders\"; break;\n case \"delivery\": rootName = toSingular ? \"deliveryOrder\" : \"deliveryOrders\"; break;\n case \"proforma_sales\": rootName = toSingular ? \"proformaSales\" : \"proformaSales\"; break;\n // case \"retailer\": rootName = toSingular ? \"retailer\" : \"retailers\"; break;\n // case \"worker\": rootName = toSingular ? \"worker\" : \"workers\"; break;\n }\n\n return rootName\n}\n\n/** documewnt/:documentType/:documentId : get document */\nexport const getDocument = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { documentId, documentType } = req.params;\n const requestQuery = req.query as unknown as QueryList;\n const requestDocumentType = documentType as DocumentServiceProps[\"documentType\"];\n\n const userService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n const data = await userService.getDocument({ id: Number(documentId), datatypes: requestQuery.datatypes })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(requestDocumentType, true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\nconst buildDocumentProfileFromRequest = (requestPayload: any) => {\n return {\n userId: requestPayload?.user_id\n }\n}\n\nconst buildDocumentProfileOtherFromRequest = (requestPayload: any) => {\n return {\n branchId: requestPayload?.branch_id,\n code: requestPayload?.code,\n profileName: requestPayload?.profile_name,\n address1: requestPayload?.address_1,\n address2: requestPayload?.address_2,\n postcode: requestPayload?.postcode,\n personName: requestPayload?.person_name,\n contact: requestPayload?.contact,\n email: requestPayload?.email,\n areaId: requestPayload?.area_id,\n stateId: requestPayload?.state_id,\n countryId: requestPayload?.country_id,\n }\n}\n\nconst buildDocumentItemsFromRequest = (requestPayload: any[]) => {\n return requestPayload.map((i: any) => ({\n itemId: i.item_id,\n itemCode: i.code,\n itemName: i.name,\n description: i.description,\n uomPrice: i.uom_price,\n quantity: i.quantity,\n uomId: i.uom_id,\n }))\n}\n\nconst buildDocumentTotalsFromRequest = (requestPayload: any[]) => {\n return requestPayload.map((i: any) => ({\n type: i.type,\n referId: i.refer_id,\n description: i.description,\n amount: i.amount,\n percentage: i.percentage\n }))\n}\n\nconst buildDocumentProfileToService = (zodRequest: any) => {\n return {\n userId: zodRequest.userId\n }\n}\n\nconst buildDocumentProfileOtherToService = (zodRequest: any) => {\n return {\n branchId: zodRequest.branchId,\n ...(zodRequest?.address1 ? { address1: zodRequest.address1 } : {}),\n ...(zodRequest?.address2 ? { address2: zodRequest.address2 } : {}),\n ...(zodRequest?.postcode ? { postcode: zodRequest.postcode } : {}),\n ...(zodRequest?.code ? { code: zodRequest.code } : {}),\n ...(zodRequest?.contact ? { contactNo: zodRequest.contact } : {}),\n ...(zodRequest?.email ? { email: zodRequest.email } : {}),\n ...(zodRequest?.profileName ? { profileName: zodRequest.profileName } : {}),\n ...(zodRequest?.personName ? { personName: zodRequest.personName } : {}),\n ...(zodRequest?.areaId ? { areaId: Number(zodRequest.areaId ?? 0) } : {}),\n ...(zodRequest?.stateId ? { stateId: Number(zodRequest.stateId ?? 0) } : {}),\n ...(zodRequest?.countryId ? { countryId: Number(zodRequest.countryId ?? 0) } : {}),\n }\n}\n\nconst buildDocumentItemsToService = (zodRequest: any[]) => {\n return zodRequest.map((i: any) => ({\n itemId: i.itemId,\n ...(i.itemCode ? { itemCode: i.itemCode } : {}),\n ...(i.itemName ? { itemName: i.itemName } : {}),\n ...(i.description ? { description: i.description } : {}),\n ...(i.quantity ? { quantity: i.quantity } : {}),\n ...(i.uomPrice ? { uomPrice: i.uomPrice } : {}),\n ...(i.uomId ? { uomId: i.uomId } : {}),\n }))\n}\n\nconst buildDocumentTotalsToService = (zodRequest: any[]) => {\n return zodRequest.map((i: any) => ({\n amount: i.amount,\n description: i.description,\n referId: i.referId,\n type: i.type,\n percentage: i.percentage\n }))\n}\n\n\n/** document : create document */\nexport const createDocument = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const requestDocumentType = req.body.scope.target as DocumentServiceProps[\"documentType\"]\n\n const documentService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n if (requestDocumentType === \"sales\") {\n\n let request = schemaDocumentSalesOrderCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n documentNumber: reqPayload.document_number,\n documentDate: reqPayload.document_date,\n remark: reqPayload.remark,\n locationId: reqPayload.location_id,\n profile: buildDocumentProfileFromRequest(reqPayload.profile),\n shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})\n }\n })\n\n let payload: DocumentCreateProps = {\n documentType: requestDocumentType,\n data: {\n documentNumber: request.payload.documentNumber,\n documentDate: request.payload.documentDate,\n remark: request.payload.remark,\n locationId: request.payload.locationId,\n salesOrder: {\n profile: buildDocumentProfileToService(request.payload.profile),\n shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n billing: buildDocumentProfileOtherToService(request.payload.billing),\n ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})\n }\n }\n }\n\n response = {\n [`${getRootName(requestDocumentType, true)}`]: await documentService.createDocument(payload)\n }\n }\n\n sendSuccess(res, response, `Document(${requestDocumentType}) created successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** document/:documentId : update document */\nexport const updateDocument = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const { documentId } = req.params;\n const requestDocumentType = req.body.scope.target as DocumentServiceProps[\"documentType\"]\n\n const documentService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n // if (requestDocumentType === \"salesOrder\" || requestDocumentType === \"sales\") {\n\n // let request = schemaDocumentSalesOrderUpdatePayload.parse({\n // scope: {\n // target: reqScope.target,\n // action: reqScope.action\n // },\n // payload: {\n // // credential: {\n // // username: reqPayload.credential.username,\n // // password: reqPayload.credential.password,\n // // firstname: reqPayload.credential.firstname,\n // // lastname: reqPayload.credential.lastname,\n // // contact: reqPayload.credential.contact,\n // // email: reqPayload.credential.email,\n // // address: reqPayload.credential.address,\n // // status: reqPayload.credential.status\n // // },\n // // customer: {\n // // code: reqPayload.customer.code,\n // // accountCode: reqPayload.customer.account_code,\n // // companyName: reqPayload.customer.company_name,\n // // regNo: reqPayload.customer.reg_no,\n // // secondaryRegNo: reqPayload.customer.secondary_reg_no,\n // // gstNo: reqPayload.customer.gst_no,\n // // taxIdentificationNo: reqPayload.customer.tax_identification_no,\n // // taxRegistrationNo: reqPayload.customer.tax_registration_no,\n // // remark: reqPayload.customer.remark\n // // },\n // // props: {\n // // salesperson: reqPayload.props.salesperson\n // // }\n // }\n // })\n\n // let payload: DocumentUpdateProps = {\n // id: Number(documentId),\n // documentType: requestDocumentType,\n // data: {\n // remark: \"\",\n // salesOrder: {\n // profiles: {\n // profile: {\n // type: \"customer\",\n // userId: 0\n // },\n // ship: {\n // userId: 0\n // },\n // bill: {\n // userId: 0\n // }\n // },\n // location: {\n // locationId: 0\n // },\n // items: []\n // }\n // }\n // }\n\n // response = {\n // [`${getRootName(requestDocumentType, true)}`]: await documentService.updateDocument(payload)\n // }\n // }\n\n // sendSuccess(res, response, `Document(${requestDocumentType}) updated successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** documents : list documents */\nexport const listDocuments = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n const requestDocumentType = req.params.documentType as DocumentServiceProps[\"documentType\"];\n\n const userService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n const { data, total } = await userService.listDocuments({\n ...requestQuery,\n });\n\n let response = {\n [`${getRootName(requestDocumentType, false)}`]: data,\n total,\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** documents/delete : delete documents */\nexport const deleteDocuments = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestDocumentType = req.body.scope.target as DocumentServiceProps[\"documentType\"]\n // const requestQuery = req.query as unknown as QueryList;\n // const requestFileId = Number(req.params.fileId)\n\n const request = schemaUserDeletePayload.parse(req.body)\n\n const documentService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n const payload = {\n ids: request.payload.ids.map(i => BigInt(i))\n }\n\n const data = await documentService.removeDocuments(payload);\n\n return sendSuccess(res, data, \"Deleted\", getRootName(requestDocumentType, false));\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** document/data_types/:documentType : get document data types */\nexport const getDocumentDataTypes = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n const requestDocumentType = req.params.documentType as DocumentServiceProps[\"documentType\"];\n\n const documentService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n const data = documentService.getDocumentDataTypes();\n\n let response = {\n data_types: data\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n"]}
1
+ {"version":3,"file":"documentController.js","sourceRoot":"","sources":["../../../src/controllers/document/documentController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Request, Response, NextFunction } from \"express\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { DocumentService, DocumentType, DocumentCreateProps, DocumentServiceProps, DocumentUpdateProps } from \"@/services\"\nimport {\n schemaDocumentDeletePayload,\n schemaDocumentSalesOrderCreatePayload,\n schemaDocumentSalesOrderUpdatePayload,\n schemaDocumentProformaSalesCreatePayload,\n schemaDocumentProformaSalesUpdatePayload,\n schemaDocumentDeliveryOrderCreatePayload,\n schemaDocumentDeliveryOrderUpdatePayload,\n schemaDocumentReplacementDeliveryOrderCreatePayload,\n schemaDocumentReplacementDeliveryOrderUpdatePayload\n} from \"@/schema/payload\";\nimport { QueryList } from \"@/schema/middleware/route\";\n\nconst documentSalesMap = {\n sales: {\n schemaCreate: schemaDocumentSalesOrderCreatePayload,\n schemaUpdate: schemaDocumentSalesOrderUpdatePayload,\n key: \"salesOrder\",\n },\n delivery: {\n schemaCreate: schemaDocumentDeliveryOrderCreatePayload,\n schemaUpdate: schemaDocumentDeliveryOrderUpdatePayload,\n key: \"deliveryOrder\",\n },\n proforma_sales: {\n schemaCreate: schemaDocumentProformaSalesCreatePayload,\n schemaUpdate: schemaDocumentProformaSalesUpdatePayload,\n key: \"proformaSales\",\n },\n replacement_delivery: {\n schemaCreate: schemaDocumentReplacementDeliveryOrderCreatePayload,\n schemaUpdate: schemaDocumentReplacementDeliveryOrderUpdatePayload,\n key: \"replacementDeliveryOrder\",\n },\n} as const;\n\nconst getRootName = (requestDocumentType: DocumentServiceProps[\"documentType\"], toSingular: boolean) => {\n\n let rootName: any = ``\n\n switch (requestDocumentType) {\n case \"sales\": rootName = toSingular ? \"salesOrder\" : \"salesOrders\"; break;\n case \"delivery\": rootName = toSingular ? \"deliveryOrder\" : \"deliveryOrders\"; break;\n case \"proforma_sales\": rootName = toSingular ? \"proformaSales\" : \"proformaSales\"; break;\n case \"replacement_delivery\": rootName = toSingular ? \"replacementDeliveryOrder\" : \"replacementDeliveryOrders\"; break;\n }\n\n return rootName\n}\n\nconst buildDocumentProfileFromRequest = (requestPayload: any) => {\n return {\n userId: requestPayload?.user_id\n }\n}\n\nconst buildDocumentProfileOtherFromRequest = (requestPayload: any) => {\n return {\n branchId: requestPayload?.branch_id,\n code: requestPayload?.code,\n profileName: requestPayload?.profile_name,\n address1: requestPayload?.address_1,\n address2: requestPayload?.address_2,\n postcode: requestPayload?.postcode,\n personName: requestPayload?.person_name,\n contact: requestPayload?.contact,\n email: requestPayload?.email,\n areaId: requestPayload?.area_id,\n stateId: requestPayload?.state_id,\n countryId: requestPayload?.country_id,\n }\n}\n\nconst buildDocumentItemsFromRequest = (requestPayload: any[]) => {\n return requestPayload.map((i: any) => ({\n ...(i?.document_item_id ? { documentItemId: i.document_item_id } : {}),\n itemId: i.item_id,\n itemCode: i.code,\n itemName: i.name,\n description: i.description,\n uomPrice: i.uom_price,\n quantity: i.quantity,\n uomId: i.uom_id,\n }))\n}\n\nconst buildDocumentTotalsFromRequest = (requestPayload: any[]) => {\n return requestPayload.map((i: any) => ({\n totalType: i.type,\n ...(i?.document_total_id ? { documentTotalId: i.document_total_id } : {}),\n ...(i?.refer_id ? { referId: i.refer_id } : {}),\n description: i.description,\n totalAmount: i.amount,\n totalPercentage: i.percentage\n }))\n}\n\nconst buildDocumentProfileToService = (zodRequest: any) => {\n return {\n userId: zodRequest.userId\n }\n}\n\nconst buildDocumentProfileOtherToService = (zodRequest: any) => {\n return {\n userBranchId: zodRequest.branchId,\n ...(zodRequest?.address1 ? { address1: zodRequest.address1 } : {}),\n ...(zodRequest?.address2 ? { address2: zodRequest.address2 } : {}),\n ...(zodRequest?.postcode ? { postcode: zodRequest.postcode } : {}),\n ...(zodRequest?.code ? { code: zodRequest.code } : {}),\n ...(zodRequest?.contact ? { contactNo: zodRequest.contact } : {}),\n ...(zodRequest?.email ? { email: zodRequest.email } : {}),\n ...(zodRequest?.profileName ? { profileName: zodRequest.profileName } : {}),\n ...(zodRequest?.personName ? { personName: zodRequest.personName } : {}),\n ...(zodRequest?.areaId ? { areaId: Number(zodRequest.areaId ?? 0) } : {}),\n ...(zodRequest?.stateId ? { stateId: Number(zodRequest.stateId ?? 0) } : {}),\n ...(zodRequest?.countryId ? { countryId: Number(zodRequest.countryId ?? 0) } : {}),\n }\n}\n\nconst buildDocumentItemsToService = (zodRequest: any[]) => {\n return zodRequest.map((i: any) => ({\n itemId: i.itemId,\n ...(i?.documentItemId ? { documentItemId: i.documentItemId } : {}),\n ...(i.itemCode ? { itemCode: i.itemCode } : {}),\n ...(i.itemName ? { itemName: i.itemName } : {}),\n ...(i.description ? { description: i.description } : {}),\n quantity: i.quantity,\n ...(i.uomPrice ? { uomPrice: i.uomPrice } : {}),\n ...(i.uomId ? { uomId: i.uomId } : {}),\n }))\n}\n\nconst buildDocumentTotalsToService = (zodRequest: any[]) => {\n return zodRequest.map((i: any) => ({\n ...(i?.documentTotalId ? { documentTotalId: i.documentTotalId } : {}),\n totalAmount: i.totalAmount,\n description: i.description,\n ...(i.referId ? { referId: i.referId } : {}),\n totalType: i.totalType,\n totalPercentage: i.totalPercentage\n }))\n}\n\nconst buildDocumentPayloadFromRequest = (reqPayload: any) => {\n return {\n ...(reqPayload?.document_number ? { documentNumber: reqPayload.document_number } : {}),\n ...(reqPayload?.document_date ? { documentDate: reqPayload.document_date } : {}),\n ...(reqPayload?.remark ? { remark: reqPayload.remark } : {}),\n ...(reqPayload?.document_reference_id_1 ? { documentReferenceId1: reqPayload.document_reference_id_1 } : {}),\n ...(reqPayload?.document_reference_label_1 ? { documentReferenceLabel1: reqPayload.document_reference_label_1 } : {}),\n ...(reqPayload?.document_reference_id_2 ? { documentReferenceId2: reqPayload.document_reference_id_2 } : {}),\n ...(reqPayload?.document_reference_label_2 ? { documentReferenceLabel2: reqPayload.document_reference_label_2 } : {}),\n locationId: reqPayload.location_id\n }\n}\n\nconst buildDocumentPayloadToService = (reqPayload: any) => {\n return {\n ...(reqPayload?.documentNumber ? { documentNumber: reqPayload.documentNumber } : {}),\n ...(reqPayload?.documentDate ? { documentDate: reqPayload.documentDate } : {}),\n ...(reqPayload?.remark ? { remark: reqPayload.remark } : {}),\n ...(reqPayload?.documentReferenceId1 ? { documentReferenceId1: reqPayload.documentReferenceId1 } : {}),\n ...(reqPayload?.documentReferenceLabel1 ? { documentReferenceLabel1: reqPayload.documentReferenceLabel1 } : {}),\n ...(reqPayload?.documentReferenceId2 ? { documentReferenceId2: reqPayload.documentReferenceId2 } : {}),\n ...(reqPayload?.documentReferenceLabel2 ? { documentReferenceLabel2: reqPayload.documentReferenceLabel2 } : {}),\n locationId: reqPayload.locationId\n }\n}\n\n/** documewnt/:documentType/:documentId : get document */\nexport const getDocument = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { documentId, documentType } = req.params;\n const requestQuery = req.query as unknown as QueryList;\n const requestDocumentType = documentType as DocumentServiceProps[\"documentType\"];\n\n const userService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n const data = await userService.getDocument({ id: Number(documentId), datatypes: requestQuery.datatypes })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(requestDocumentType, true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** document : create document */\nexport const createDocument = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const requestDocumentType = req.body.scope.target as DocumentServiceProps[\"documentType\"]\n\n const documentService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n // for sales documents\n if (requestDocumentType in documentSalesMap) {\n\n const { schemaCreate, key } = documentSalesMap[requestDocumentType as keyof typeof documentSalesMap];\n\n const request = schemaCreate.parse({\n scope: { target: reqScope.target, action: reqScope.action },\n payload: {\n ...buildDocumentPayloadFromRequest(reqPayload),\n profile: buildDocumentProfileFromRequest(reqPayload.profile),\n shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {}),\n },\n });\n\n const payload: DocumentCreateProps = {\n documentType: requestDocumentType,\n data: {\n ...buildDocumentPayloadToService(request.payload),\n [key]: {\n profile: buildDocumentProfileToService(request.payload.profile),\n shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n billing: buildDocumentProfileOtherToService(request.payload.billing),\n ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {}),\n },\n } as any,\n };\n\n response = {\n [`${getRootName(requestDocumentType, true)}`]: await documentService.createDocument(payload)\n }\n\n }\n\n // if (requestDocumentType === \"sales\") {\n\n // let request = schemaDocumentSalesOrderCreatePayload.parse({\n // scope: {\n // target: reqScope.target,\n // action: reqScope.action\n // },\n // payload: {\n // ...buildDocumentPayloadFromRequest(reqPayload),\n // profile: buildDocumentProfileFromRequest(reqPayload.profile),\n // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})\n // }\n // })\n\n // let payload: DocumentCreateProps = {\n // documentType: requestDocumentType,\n // data: {\n // ...buildDocumentPayloadToService(request.payload),\n // salesOrder: {\n // profile: buildDocumentProfileToService(request.payload.profile),\n // shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n // billing: buildDocumentProfileOtherToService(request.payload.billing),\n // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})\n // }\n // }\n // }\n\n // response = {\n // [`${getRootName(requestDocumentType, true)}`]: await documentService.createDocument(payload)\n // }\n // }\n\n // if (requestDocumentType === \"proforma_sales\") {\n\n // let request = schemaDocumentProformaSalesCreatePayload.parse({\n // scope: {\n // target: reqScope.target,\n // action: reqScope.action\n // },\n // payload: {\n // ...buildDocumentPayloadFromRequest(reqPayload),\n // profile: buildDocumentProfileFromRequest(reqPayload.profile),\n // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})\n // }\n // })\n\n // let payload: DocumentCreateProps = {\n // documentType: requestDocumentType,\n // data: {\n // ...buildDocumentPayloadToService(request.payload),\n // proformaSales: {\n // profile: buildDocumentProfileToService(request.payload.profile),\n // shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n // billing: buildDocumentProfileOtherToService(request.payload.billing),\n // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})\n // }\n // }\n // }\n\n // response = {\n // [`${getRootName(requestDocumentType, true)}`]: await documentService.createDocument(payload)\n // }\n // }\n\n sendSuccess(res, response, `Document(${requestDocumentType}) created successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** document/:documentId : update document */\nexport const updateDocument = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const { documentId } = req.params;\n const requestDocumentType = req.body.scope.target as DocumentServiceProps[\"documentType\"]\n\n const documentService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n if (requestDocumentType in documentSalesMap) {\n\n const { schemaUpdate, key } = documentSalesMap[requestDocumentType as keyof typeof documentSalesMap];\n\n const request = schemaUpdate.parse({\n scope: { target: reqScope.target, action: reqScope.action },\n payload: {\n ...buildDocumentPayloadFromRequest(reqPayload),\n profile: buildDocumentProfileFromRequest(reqPayload.profile),\n shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {}),\n },\n });\n\n const payload: DocumentUpdateProps = {\n documentId: Number(documentId),\n documentType: requestDocumentType,\n data: {\n ...buildDocumentPayloadToService(request.payload),\n [key]: {\n profile: buildDocumentProfileToService(request.payload.profile),\n shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n billing: buildDocumentProfileOtherToService(request.payload.billing),\n ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {}),\n },\n } as any,\n };\n\n const result = await documentService.updateDocument(payload);\n\n response = {\n [getRootName(requestDocumentType, true)]: result,\n };\n }\n\n // if (requestDocumentType === \"sales\") {\n\n // let request = schemaDocumentSalesOrderUpdatePayload.parse({\n // scope: {\n // target: reqScope.target,\n // action: reqScope.action\n // },\n // payload: {\n // ...buildDocumentPayloadFromRequest(reqPayload),\n // profile: buildDocumentProfileFromRequest(reqPayload.profile),\n // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})\n // }\n // })\n\n // let payload: DocumentUpdateProps = {\n // documentId: Number(documentId),\n // documentType: requestDocumentType,\n // data: {\n // ...buildDocumentPayloadToService(request.payload),\n // salesOrder: {\n // profile: buildDocumentProfileToService(request.payload.profile),\n // shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n // billing: buildDocumentProfileOtherToService(request.payload.billing),\n // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})\n // }\n // }\n // }\n\n // response = {\n // [`${getRootName(requestDocumentType, true)}`]: await documentService.updateDocument(payload)\n // }\n // }\n\n // if (requestDocumentType === \"proforma_sales\") {\n\n // let request = schemaDocumentProformaSalesUpdatePayload.parse({\n // scope: {\n // target: reqScope.target,\n // action: reqScope.action\n // },\n // payload: {\n // ...buildDocumentPayloadFromRequest(reqPayload),\n // profile: buildDocumentProfileFromRequest(reqPayload.profile),\n // shipping: buildDocumentProfileOtherFromRequest(reqPayload.shipping),\n // billing: buildDocumentProfileOtherFromRequest(reqPayload.billing),\n // ...(reqPayload?.items ? { items: buildDocumentItemsFromRequest(reqPayload.items) } : {}),\n // ...(reqPayload?.totals ? { totals: buildDocumentTotalsFromRequest(reqPayload.totals) } : {})\n // }\n // })\n\n // let payload: DocumentUpdateProps = {\n // documentId: Number(documentId),\n // documentType: requestDocumentType,\n // data: {\n // ...buildDocumentPayloadToService(request.payload),\n // proformaSales: {\n // profile: buildDocumentProfileToService(request.payload.profile),\n // shipping: buildDocumentProfileOtherToService(request.payload.shipping),\n // billing: buildDocumentProfileOtherToService(request.payload.billing),\n // ...(request.payload?.items ? { items: buildDocumentItemsToService(request.payload.items) } : {}),\n // ...(request.payload?.totals ? { totals: buildDocumentTotalsToService(request.payload.totals) } : {})\n // }\n // }\n // }\n\n // response = {\n // [`${getRootName(requestDocumentType, true)}`]: await documentService.updateDocument(payload)\n // }\n // }\n\n sendSuccess(res, response, `Document(${requestDocumentType}) updated successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** documents : list documents */\nexport const listDocuments = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n const requestDocumentType = req.params.documentType as DocumentServiceProps[\"documentType\"];\n\n const userService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n const { data, total } = await userService.listDocuments({\n ...requestQuery,\n });\n\n let response = {\n [`${getRootName(requestDocumentType, false)}`]: data,\n total,\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** documents/delete : delete documents */\nexport const deleteDocuments = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestDocumentType = req.body.scope.target as DocumentServiceProps[\"documentType\"]\n // const requestQuery = req.query as unknown as QueryList;\n // const requestFileId = Number(req.params.fileId)\n\n const request = schemaDocumentDeletePayload.parse(req.body)\n\n const documentService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n const payload = {\n ids: request.payload.ids.map(i => BigInt(i))\n }\n\n const data = await documentService.removeDocuments(payload);\n\n return sendSuccess(res, data, \"Deleted\", getRootName(requestDocumentType, false));\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** document/data_types/:documentType : get document data types */\nexport const getDocumentDataTypes = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n const requestDocumentType = req.params.documentType as DocumentServiceProps[\"documentType\"];\n\n const documentService = DocumentService({\n ...getDefaultServiceProps(req),\n documentType: requestDocumentType\n })\n\n const data = documentService.getDocumentDataTypes();\n\n let response = {\n data_types: data\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  export { prisma } from "./prisma/prisma";
2
2
  export { ModelFactory } from "./model_factory/ModelFactory";
3
3
  export type { DefaultOmitFields } from "./model_factory/default";
4
- export { toFieldMap, buildSqlRawSelect, buildSqlRawSelectCount, buildSqlRelation, buildSqlSelect, buildSqlWhere, buildSqlLimitOffset, buildSqlOrderBy, getFieldsByType, buildInjectionFieldsSqlSelect } from "./query_builder/queryBuilder";
5
- export { buildDocumentMainSqlSelect, buildDocumentDefaultSqlSelect, buildDocumentProfileSqlSelect, buildDocumentAmountSqlSelect, buildDocumentLocationSqlSelect, buildDocumentPaymentSqlSelect, buildDocumentTotalSqlSelect, buildDocumentItemSqlSelectAgg, buildDocumentItemSqlSelect } from "./query_builder/queryDocument";
4
+ export { toFieldMap, buildSqlRawSelect, buildSqlRawSelectCount, buildSqlRelation, buildSqlSelect, buildSqlWhere, buildSqlLimitOffset, buildSqlOrderBy, getFieldsByType, buildInjectionFieldsSqlSelect, getListWithCount } from "./query_builder/queryBuilder";
5
+ export { getSqlRelationMaps, buildDocumentMainSqlSelect, buildDocumentDefaultSqlSelect, buildDocumentProfileSqlSelect, buildDocumentLocationSqlSelect, buildDocumentTotalSqlSelect, buildDocumentItemSqlSelectAgg, buildDocumentItemSqlSelect, } from "./query_builder/queryDocument";