storemw-core-api 1.0.23 → 1.0.25

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 (132) hide show
  1. package/dist/app.js +2 -0
  2. package/dist/app.js.map +1 -1
  3. package/dist/controllers/document/documentController.d.ts +13 -0
  4. package/dist/controllers/document/documentController.js +576 -0
  5. package/dist/controllers/document/documentController.js.map +1 -0
  6. package/dist/controllers/index.d.ts +1 -0
  7. package/dist/controllers/index.js +8 -1
  8. package/dist/controllers/index.js.map +1 -1
  9. package/dist/controllers/injection_field/injectionFieldController.js +3 -2
  10. package/dist/controllers/injection_field/injectionFieldController.js.map +1 -1
  11. package/dist/controllers/item/itemController.js +4 -4
  12. package/dist/controllers/item/itemController.js.map +1 -1
  13. package/dist/middlewares/route/bk_validateDocument.d.ts +2 -0
  14. package/dist/middlewares/route/bk_validateDocument.js +34 -0
  15. package/dist/middlewares/route/bk_validateDocument.js.map +1 -0
  16. package/dist/middlewares/route/index.d.ts +1 -0
  17. package/dist/middlewares/route/index.js +7 -1
  18. package/dist/middlewares/route/index.js.map +1 -1
  19. package/dist/middlewares/route/validateDocument.d.ts +4 -0
  20. package/dist/middlewares/route/validateDocument.js +14 -24
  21. package/dist/middlewares/route/validateDocument.js.map +1 -1
  22. package/dist/models/document/DocumentAdjustmentModel.d.ts +208 -0
  23. package/dist/models/document/DocumentAdjustmentModel.js +16 -0
  24. package/dist/models/document/DocumentAdjustmentModel.js.map +1 -0
  25. package/dist/models/document/DocumentAmountModel.d.ts +168 -0
  26. package/dist/models/document/DocumentAmountModel.js +16 -0
  27. package/dist/models/document/DocumentAmountModel.js.map +1 -0
  28. package/dist/models/document/DocumentItemModel.d.ts +224 -0
  29. package/dist/models/document/DocumentItemModel.js +16 -0
  30. package/dist/models/document/DocumentItemModel.js.map +1 -0
  31. package/dist/models/document/DocumentLocationModel.d.ts +160 -0
  32. package/dist/models/document/DocumentLocationModel.js +16 -0
  33. package/dist/models/document/DocumentLocationModel.js.map +1 -0
  34. package/dist/models/document/DocumentModel.d.ts +200 -0
  35. package/dist/models/document/DocumentModel.js +16 -0
  36. package/dist/models/document/DocumentModel.js.map +1 -0
  37. package/dist/models/document/DocumentNumberModel.d.ts +168 -0
  38. package/dist/models/document/DocumentNumberModel.js +16 -0
  39. package/dist/models/document/DocumentNumberModel.js.map +1 -0
  40. package/dist/models/document/DocumentPaymentModel.d.ts +232 -0
  41. package/dist/models/document/DocumentPaymentModel.js +16 -0
  42. package/dist/models/document/DocumentPaymentModel.js.map +1 -0
  43. package/dist/models/document/DocumentProfileModel.d.ts +264 -0
  44. package/dist/models/document/DocumentProfileModel.js +16 -0
  45. package/dist/models/document/DocumentProfileModel.js.map +1 -0
  46. package/dist/models/index.d.ts +16 -0
  47. package/dist/models/index.js +25 -1
  48. package/dist/models/index.js.map +1 -1
  49. package/dist/models/injection_field/UserInjectionFieldModel.d.ts +17 -1
  50. package/dist/models/item/ItemModel.d.ts +1 -9
  51. package/dist/models/item/ProductModel.d.ts +9 -9
  52. package/dist/routes/document/documentRoutes.d.ts +2 -0
  53. package/dist/routes/document/documentRoutes.js +20 -0
  54. package/dist/routes/document/documentRoutes.js.map +1 -0
  55. package/dist/routes/document/documentsRoutes.d.ts +2 -0
  56. package/dist/routes/document/documentsRoutes.js +16 -0
  57. package/dist/routes/document/documentsRoutes.js.map +1 -0
  58. package/dist/routes/index.d.ts +2 -0
  59. package/dist/routes/index.js +5 -1
  60. package/dist/routes/index.js.map +1 -1
  61. package/dist/schema/middleware/route/bk_schemaDocument.d.ts +10 -0
  62. package/dist/schema/middleware/route/bk_schemaDocument.js +10 -0
  63. package/dist/schema/middleware/route/bk_schemaDocument.js.map +1 -0
  64. package/dist/schema/middleware/route/schemaDocument.d.ts +3 -3
  65. package/dist/schema/middleware/route/schemaDocument.js +1 -1
  66. package/dist/schema/middleware/route/schemaDocument.js.map +1 -1
  67. package/dist/schema/payload/index.d.ts +1 -1
  68. package/dist/schema/payload/index.js +1 -2
  69. package/dist/schema/payload/index.js.map +1 -1
  70. package/dist/schema/payload/injection_field/schemaInjectionField.d.ts +0 -23
  71. package/dist/schema/payload/injection_field/schemaInjectionField.js +0 -43
  72. package/dist/schema/payload/injection_field/schemaInjectionField.js.map +1 -1
  73. package/dist/schema/payload/item/schemaItemItem.d.ts +16 -16
  74. package/dist/schema/payload/item/schemaItemProduct.d.ts +44 -44
  75. package/dist/schema/payload/item/schemaItemProduct.js +1 -1
  76. package/dist/schema/payload/item/schemaItemProduct.js.map +1 -1
  77. package/dist/services/branch/BranchService.js +0 -1
  78. package/dist/services/branch/BranchService.js.map +1 -1
  79. package/dist/services/branch_user/BranchUserService.js +0 -1
  80. package/dist/services/branch_user/BranchUserService.js.map +1 -1
  81. package/dist/services/document/DocumentService.d.ts +50 -0
  82. package/dist/services/document/DocumentService.js +299 -0
  83. package/dist/services/document/DocumentService.js.map +1 -0
  84. package/dist/services/document/SalesOrderService.d.ts +58 -0
  85. package/dist/services/document/SalesOrderService.js +411 -0
  86. package/dist/services/document/SalesOrderService.js.map +1 -0
  87. package/dist/services/index.d.ts +3 -1
  88. package/dist/services/index.js +4 -1
  89. package/dist/services/index.js.map +1 -1
  90. package/dist/services/item/ItemBrandService.js +2 -5
  91. package/dist/services/item/ItemBrandService.js.map +1 -1
  92. package/dist/services/item/ItemCategoryService.js +8 -7
  93. package/dist/services/item/ItemCategoryService.js.map +1 -1
  94. package/dist/services/item/ItemItemService.d.ts +0 -3
  95. package/dist/services/item/ItemItemService.js +15 -14
  96. package/dist/services/item/ItemItemService.js.map +1 -1
  97. package/dist/services/item/ItemProductService.d.ts +5 -5
  98. package/dist/services/item/ItemProductService.js +16 -16
  99. package/dist/services/item/ItemProductService.js.map +1 -1
  100. package/dist/services/item/ItemUomService.js +6 -5
  101. package/dist/services/item/ItemUomService.js.map +1 -1
  102. package/dist/services/region/AreaService.js +0 -2
  103. package/dist/services/region/AreaService.js.map +1 -1
  104. package/dist/services/region/CountryService.js +0 -2
  105. package/dist/services/region/CountryService.js.map +1 -1
  106. package/dist/services/region/StateService.js +0 -2
  107. package/dist/services/region/StateService.js.map +1 -1
  108. package/dist/services/user/AdministratorService.js +8 -8
  109. package/dist/services/user/AdministratorService.js.map +1 -1
  110. package/dist/services/user/CustomerService.js +19 -15
  111. package/dist/services/user/CustomerService.js.map +1 -1
  112. package/dist/services/user/RetailerService.js +6 -5
  113. package/dist/services/user/RetailerService.js.map +1 -1
  114. package/dist/services/user/WorkerService.js +8 -9
  115. package/dist/services/user/WorkerService.js.map +1 -1
  116. package/dist/utils/dateUtils.d.ts +2 -0
  117. package/dist/utils/dateUtils.js +7 -2
  118. package/dist/utils/dateUtils.js.map +1 -1
  119. package/dist/utils/index.d.ts +3 -3
  120. package/dist/utils/index.js +5 -1
  121. package/dist/utils/index.js.map +1 -1
  122. package/dist/utils/injectionFieldUtils.d.ts +23 -0
  123. package/dist/utils/injectionFieldUtils.js +43 -17
  124. package/dist/utils/injectionFieldUtils.js.map +1 -1
  125. package/dist/utils/queryBuilder.d.ts +12 -0
  126. package/dist/utils/queryBuilder.js +24 -1
  127. package/dist/utils/queryBuilder.js.map +1 -1
  128. package/dist/utils/responseUtils.d.ts +1 -0
  129. package/dist/utils/responseUtils.js +21 -19
  130. package/dist/utils/responseUtils.js.map +1 -1
  131. package/package.json +1 -1
  132. package/prisma/schema.prisma +303 -270
package/dist/app.js CHANGED
@@ -22,6 +22,8 @@ app.use(request_1.validateAuthorization); // Validate the Authorization
22
22
  app.use(["/auth"], routes_1.authRoutes);
23
23
  app.use(["/user"], routes_1.userRoutes);
24
24
  app.use(["/users"], routes_1.usersRoutes);
25
+ app.use(["/document"], routes_1.documentRoutes);
26
+ app.use(["/documents"], routes_1.documentsRoutes);
25
27
  app.use(["/item"], routes_1.itemRoutes);
26
28
  app.use(["/items"], routes_1.itemsRoutes);
27
29
  app.use(["/region"], routes_1.regionRoutes);
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;;;AAAA,sDAA6B;AAE7B,qCAeiB;AACjB,mDAA0G;AAC1G,iDAAoD;AAEpD,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEtB,8BAA8B;AAC9B,GAAG,CAAC,GAAG,CAAC,sBAAY,CAAC,CAAC;AAEtB,wCAAwC;AACxC,GAAG,CAAC,GAAG,CAAC,wBAAc,CAAC,CAAC;AAExB,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAE/D,iBAAiB;AACjB,GAAG,CAAC,GAAG,CAAC,uBAAa,CAAC,CAAA;AAEtB,mBAAmB;AACnB,GAAG,CAAC,GAAG,CAAC,+BAAqB,CAAC,CAAC,CAAC,6BAA6B;AAE7D,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAW,CAAC,CAAA;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAW,CAAC,CAAA;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,qBAAY,CAAC,CAAA;AAClC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,sBAAa,CAAC,CAAA;AACpC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,uBAAc,CAAC,CAAA;AACtC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,wBAAe,CAAC,CAAA;AACxC,GAAG,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAAE,6BAAoB,CAAC,CAAA;AACnD,GAAG,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,EAAE,8BAAqB,CAAC,CAAA;AAErD,uBAAuB;AACvB,GAAG,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAA;AAErB,kBAAe,GAAG,CAAC","sourcesContent":["import express from \"express\"\n\nimport {\n // fileRoutes,\n // filesRoutes,\n // ocrRoutes,\n authRoutes,\n userRoutes,\n usersRoutes,\n itemRoutes,\n itemsRoutes,\n regionRoutes,\n regionsRoutes,\n locationRoutes,\n locationsRoutes,\n injectionFieldRoutes,\n injectionFieldsRoutes\n} from \"@/routes\"\nimport { initialPrisma, validateHeader, validateAuthorization, validateCors } from \"@/middlewares/request\"\nimport { errorHandler } from \"./middlewares/common\";\n\nconst app = express();\n\n// Enable CORS for all origins\napp.use(validateCors);\n\n// Register global check headers handler\napp.use(validateHeader);\n\n// Middleware\napp.use(express.json({ limit: '15mb' }));\napp.use(express.urlencoded({ limit: '15mb', extended: true }));\n\n// Initial Prisma\napp.use(initialPrisma)\n\n// Protected Routes\napp.use(validateAuthorization); // Validate the Authorization\n\napp.use([\"/auth\"], authRoutes)\napp.use([\"/user\"], userRoutes)\napp.use([\"/users\"], usersRoutes)\napp.use([\"/item\"], itemRoutes)\napp.use([\"/items\"], itemsRoutes)\napp.use([\"/region\"], regionRoutes)\napp.use([\"/regions\"], regionsRoutes)\napp.use([\"/location\"], locationRoutes)\napp.use([\"/locations\"], locationsRoutes)\napp.use([\"/injection_field\"], injectionFieldRoutes)\napp.use([\"/injection_fields\"], injectionFieldsRoutes)\n\n// Global error handler\napp.use(errorHandler)\n\nexport default app;"]}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;;;AAAA,sDAA6B;AAE7B,qCAiBiB;AACjB,mDAA0G;AAC1G,iDAAoD;AAEpD,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEtB,8BAA8B;AAC9B,GAAG,CAAC,GAAG,CAAC,sBAAY,CAAC,CAAC;AAEtB,wCAAwC;AACxC,GAAG,CAAC,GAAG,CAAC,wBAAc,CAAC,CAAC;AAExB,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAE/D,iBAAiB;AACjB,GAAG,CAAC,GAAG,CAAC,uBAAa,CAAC,CAAA;AAEtB,mBAAmB;AACnB,GAAG,CAAC,GAAG,CAAC,+BAAqB,CAAC,CAAC,CAAC,6BAA6B;AAE7D,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAW,CAAC,CAAA;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,uBAAc,CAAC,CAAA;AACtC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,wBAAe,CAAC,CAAA;AACxC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAU,CAAC,CAAA;AAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAW,CAAC,CAAA;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,qBAAY,CAAC,CAAA;AAClC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,sBAAa,CAAC,CAAA;AACpC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,uBAAc,CAAC,CAAA;AACtC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,wBAAe,CAAC,CAAA;AACxC,GAAG,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAAE,6BAAoB,CAAC,CAAA;AACnD,GAAG,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,EAAE,8BAAqB,CAAC,CAAA;AAErD,uBAAuB;AACvB,GAAG,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAA;AAErB,kBAAe,GAAG,CAAC","sourcesContent":["import express from \"express\"\n\nimport {\n // fileRoutes,\n // filesRoutes,\n // ocrRoutes,\n authRoutes,\n userRoutes,\n usersRoutes,\n documentRoutes,\n documentsRoutes,\n itemRoutes,\n itemsRoutes,\n regionRoutes,\n regionsRoutes,\n locationRoutes,\n locationsRoutes,\n injectionFieldRoutes,\n injectionFieldsRoutes\n} from \"@/routes\"\nimport { initialPrisma, validateHeader, validateAuthorization, validateCors } from \"@/middlewares/request\"\nimport { errorHandler } from \"./middlewares/common\";\n\nconst app = express();\n\n// Enable CORS for all origins\napp.use(validateCors);\n\n// Register global check headers handler\napp.use(validateHeader);\n\n// Middleware\napp.use(express.json({ limit: '15mb' }));\napp.use(express.urlencoded({ limit: '15mb', extended: true }));\n\n// Initial Prisma\napp.use(initialPrisma)\n\n// Protected Routes\napp.use(validateAuthorization); // Validate the Authorization\n\napp.use([\"/auth\"], authRoutes)\napp.use([\"/user\"], userRoutes)\napp.use([\"/users\"], usersRoutes)\napp.use([\"/document\"], documentRoutes)\napp.use([\"/documents\"], documentsRoutes)\napp.use([\"/item\"], itemRoutes)\napp.use([\"/items\"], itemsRoutes)\napp.use([\"/region\"], regionRoutes)\napp.use([\"/regions\"], regionsRoutes)\napp.use([\"/location\"], locationRoutes)\napp.use([\"/locations\"], locationsRoutes)\napp.use([\"/injection_field\"], injectionFieldRoutes)\napp.use([\"/injection_fields\"], injectionFieldsRoutes)\n\n// Global error handler\napp.use(errorHandler)\n\nexport default app;"]}
@@ -0,0 +1,13 @@
1
+ import { Request, Response, NextFunction } from "express";
2
+ /** documewnt/:documentType/:documentId : get document */
3
+ export declare const getDocument: (req: Request, res: Response, next: NextFunction) => Promise<any>;
4
+ /** document : create document */
5
+ export declare const createDocument: (req: Request, res: Response, next: NextFunction) => Promise<void>;
6
+ /** document/:documentId : update document */
7
+ export declare const updateDocument: (req: Request, res: Response, next: NextFunction) => Promise<void>;
8
+ /** documents : list documents */
9
+ export declare const listDocuments: (req: Request, res: Response, next: NextFunction) => Promise<any>;
10
+ /** documents/delete : delete documents */
11
+ export declare const deleteDocuments: (req: Request, res: Response, next: NextFunction) => Promise<any>;
12
+ /** document/data_types/:documentType : get document data types */
13
+ export declare const getDocumentDataTypes: (req: Request, res: Response, next: NextFunction) => Promise<any>;
@@ -0,0 +1,576 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDocumentDataTypes = exports.deleteDocuments = exports.listDocuments = exports.updateDocument = exports.createDocument = exports.getDocument = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const services_1 = require("../../services");
6
+ const payload_1 = require("../../schema/payload");
7
+ const getRootName = (requestDocumentType, toSingular) => {
8
+ let rootName = ``;
9
+ switch (requestDocumentType) {
10
+ case "salesOrder":
11
+ case "sales":
12
+ rootName = toSingular ? "salesOrder" : "salesOrders";
13
+ break;
14
+ case "deliveryOrder":
15
+ case "delivery":
16
+ rootName = toSingular ? "deliveryOrder" : "deliveryOrders";
17
+ break;
18
+ // case "retailer": rootName = toSingular ? "retailer" : "retailers"; break;
19
+ // case "worker": rootName = toSingular ? "worker" : "workers"; break;
20
+ }
21
+ return rootName;
22
+ };
23
+ /** documewnt/:documentType/:documentId : get document */
24
+ const getDocument = async (req, res, next) => {
25
+ try {
26
+ const { documentId, documentType } = req.params;
27
+ const requestQuery = req.query;
28
+ const requestDocumentType = documentType;
29
+ const userService = (0, services_1.DocumentService)({
30
+ ...(0, utils_1.getDefaultServiceProps)(req),
31
+ documentType: requestDocumentType
32
+ });
33
+ const data = await userService.getDocument({ id: Number(documentId), datatypes: requestQuery.datatypes });
34
+ return (0, utils_1.sendSuccess)(res, data, "Retrieved successfully", getRootName(requestDocumentType, true));
35
+ }
36
+ catch (error) {
37
+ next(error);
38
+ }
39
+ };
40
+ exports.getDocument = getDocument;
41
+ /** document : create document */
42
+ const createDocument = async (req, res, next) => {
43
+ try {
44
+ const requestDocumentType = req.body.scope.target;
45
+ const userService = (0, services_1.DocumentService)({
46
+ ...(0, utils_1.getDefaultServiceProps)(req),
47
+ documentType: requestDocumentType
48
+ });
49
+ let response = {};
50
+ let reqScope = req.body.scope;
51
+ let reqPayload = req.body.payload;
52
+ if (requestDocumentType === "salesOrder" || requestDocumentType === "sales") {
53
+ let request = payload_1.schemaUserCustomerCreatePayload.parse({
54
+ scope: {
55
+ target: reqScope.target,
56
+ action: reqScope.action
57
+ },
58
+ payload: {
59
+ credential: {
60
+ username: reqPayload.credential.username,
61
+ password: reqPayload.credential.password,
62
+ firstname: reqPayload.credential.firstname,
63
+ lastname: reqPayload.credential.lastname,
64
+ contact: reqPayload.credential.contact,
65
+ email: reqPayload.credential.email,
66
+ address: reqPayload.credential.address,
67
+ status: reqPayload.credential.status
68
+ },
69
+ customer: {
70
+ code: reqPayload.customer.code,
71
+ accountCode: reqPayload.customer.account_code,
72
+ companyName: reqPayload.customer.company_name,
73
+ regNo: reqPayload.customer.reg_no,
74
+ secondaryRegNo: reqPayload.customer.secondary_reg_no,
75
+ gstNo: reqPayload.customer.gst_no,
76
+ taxIdentificationNo: reqPayload.customer.tax_identification_no,
77
+ taxRegistrationNo: reqPayload.customer.tax_registration_no,
78
+ remark: reqPayload.customer.remark
79
+ },
80
+ props: {
81
+ salesperson: reqPayload.props.salesperson
82
+ }
83
+ }
84
+ });
85
+ let payload = {
86
+ documentType: requestDocumentType,
87
+ data: {
88
+ user: {
89
+ loginUsername: request.payload.credential.username,
90
+ loginPassword: request.payload.credential.password,
91
+ address: request.payload.credential.address,
92
+ contact: request.payload.credential.contact,
93
+ email: request.payload.credential.email,
94
+ firstname: request.payload.credential.firstname,
95
+ lastname: request.payload.credential.lastname,
96
+ status: request.payload.credential.status === 1
97
+ },
98
+ // customer: {
99
+ // code: request.payload.customer.code,
100
+ // accountCode: request.payload.customer.accountCode,
101
+ // companyName: request.payload.customer.companyName,
102
+ // regNo: request.payload.customer.regNo,
103
+ // secondaryRegNo: request.payload.customer.secondaryRegNo,
104
+ // remark: request.payload.customer.remark,
105
+ // gstNo: request.payload.customer.gstNo,
106
+ // taxIdentificationNo: request.payload.customer.taxIdentificationNo,
107
+ // taxRegistrationNo: request.payload.customer.taxRegistrationNo,
108
+ // // salesperson: request.payload.props.salesperson,
109
+ // }
110
+ }
111
+ };
112
+ response = {
113
+ [`${getRootName(requestDocumentType, true)}`]: await userService.createDocument(payload)
114
+ };
115
+ }
116
+ // if (requestDocumentType === "administrator") {
117
+ // let request = schemaUserAdministratorCreatePayload.parse({
118
+ // scope: {
119
+ // target: reqScope.target,
120
+ // action: reqScope.action
121
+ // },
122
+ // payload: {
123
+ // credential: {
124
+ // username: reqPayload.credential.username,
125
+ // password: reqPayload.credential.password,
126
+ // firstname: reqPayload.credential.firstname,
127
+ // lastname: reqPayload.credential.lastname,
128
+ // contact: reqPayload.credential.contact,
129
+ // email: reqPayload.credential.email,
130
+ // address: reqPayload.credential.address,
131
+ // status: reqPayload.credential.status
132
+ // },
133
+ // administrator: {
134
+ // },
135
+ // props: {
136
+ // location_id: reqPayload.props.location_id
137
+ // }
138
+ // }
139
+ // })
140
+ // let payload: UserCreateProps = {
141
+ // documentType: requestDocumentType,
142
+ // data: {
143
+ // user: {
144
+ // loginUsername: request.payload.credential.username,
145
+ // loginPassword: request.payload.credential.password,
146
+ // address: request.payload.credential.address,
147
+ // contact: request.payload.credential.contact,
148
+ // email: request.payload.credential.email,
149
+ // firstname: request.payload.credential.firstname,
150
+ // lastname: request.payload.credential.lastname,
151
+ // status: request.payload.credential.status === 1
152
+ // },
153
+ // administrator: {},
154
+ // props: {
155
+ // locationIds: request.payload.props.location_id.map(i => Number(i))
156
+ // }
157
+ // }
158
+ // }
159
+ // response = {
160
+ // [`${getRootName(requestDocumentType, true)}`]: await userService.createDocument(payload)
161
+ // }
162
+ // }
163
+ // if (requestDocumentType === "worker") {
164
+ // let request = schemaUserWorkerCreatePayload.parse({
165
+ // scope: {
166
+ // target: reqScope.target,
167
+ // action: reqScope.action
168
+ // },
169
+ // payload: {
170
+ // credential: {
171
+ // username: reqPayload.credential.username,
172
+ // password: reqPayload.credential.password,
173
+ // firstname: reqPayload.credential.firstname,
174
+ // lastname: reqPayload.credential.lastname,
175
+ // contact: reqPayload.credential.contact,
176
+ // email: reqPayload.credential.email,
177
+ // address: reqPayload.credential.address,
178
+ // status: reqPayload.credential.status
179
+ // },
180
+ // worker: {
181
+ // remark: reqPayload.worker.remark
182
+ // },
183
+ // props: {
184
+ // location_id: reqPayload.props.location_id
185
+ // }
186
+ // }
187
+ // })
188
+ // let payload: UserCreateProps = {
189
+ // documentType: requestDocumentType,
190
+ // data: {
191
+ // user: {
192
+ // loginUsername: request.payload.credential.username,
193
+ // loginPassword: request.payload.credential.password,
194
+ // address: request.payload.credential.address,
195
+ // contact: request.payload.credential.contact,
196
+ // email: request.payload.credential.email,
197
+ // firstname: request.payload.credential.firstname,
198
+ // lastname: request.payload.credential.lastname,
199
+ // status: request.payload.credential.status === 1
200
+ // },
201
+ // worker: {
202
+ // remark: request.payload.worker.remark ?? ""
203
+ // },
204
+ // props: {
205
+ // locationIds: request.payload.props.location_id.map(i => Number(i))
206
+ // }
207
+ // }
208
+ // }
209
+ // response = {
210
+ // [`${getRootName(requestDocumentType, true)}`]: await userService.createDocument(payload)
211
+ // }
212
+ // }
213
+ // if (requestDocumentType === "retailer") {
214
+ // let request = schemaUserRetailerCreatePayload.parse({
215
+ // scope: {
216
+ // target: reqScope.target,
217
+ // action: reqScope.action
218
+ // },
219
+ // payload: {
220
+ // credential: {
221
+ // username: reqPayload.credential.username,
222
+ // password: reqPayload.credential.password,
223
+ // firstname: reqPayload.credential.firstname,
224
+ // lastname: reqPayload.credential.lastname,
225
+ // contact: reqPayload.credential.contact,
226
+ // email: reqPayload.credential.email,
227
+ // address: reqPayload.credential.address,
228
+ // status: reqPayload.credential.status
229
+ // },
230
+ // retailer: {
231
+ // code: reqPayload.retailer.code,
232
+ // accountCode: reqPayload.retailer.account_code,
233
+ // companyName: reqPayload.retailer.company_name,
234
+ // regNo: reqPayload.retailer.reg_no,
235
+ // gstNo: reqPayload.retailer.gst_no,
236
+ // remark: reqPayload.retailer.remark,
237
+ // }
238
+ // }
239
+ // })
240
+ // let payload: UserCreateProps = {
241
+ // documentType: requestDocumentType,
242
+ // data: {
243
+ // user: {
244
+ // loginUsername: request.payload.credential.username,
245
+ // loginPassword: request.payload.credential.password,
246
+ // address: request.payload.credential.address,
247
+ // contact: request.payload.credential.contact,
248
+ // email: request.payload.credential.email,
249
+ // firstname: request.payload.credential.firstname,
250
+ // lastname: request.payload.credential.lastname,
251
+ // status: request.payload.credential.status === 1
252
+ // },
253
+ // retailer: {
254
+ // code: request.payload.retailer.code,
255
+ // accountCode: request.payload.retailer.accountCode,
256
+ // companyName: request.payload.retailer.companyName,
257
+ // regNo: request.payload.retailer.regNo,
258
+ // remark: request.payload.retailer.remark,
259
+ // gstNo: request.payload.retailer.gstNo
260
+ // }
261
+ // }
262
+ // }
263
+ // response = {
264
+ // [`${getRootName(requestDocumentType, true)}`]: await userService.createDocument(payload)
265
+ // }
266
+ // }
267
+ (0, utils_1.sendSuccess)(res, response, `Document(${requestDocumentType}) created successfully`);
268
+ }
269
+ catch (error) {
270
+ next(error);
271
+ }
272
+ };
273
+ exports.createDocument = createDocument;
274
+ /** document/:documentId : update document */
275
+ const updateDocument = async (req, res, next) => {
276
+ try {
277
+ const { documentId } = req.params;
278
+ const requestDocumentType = req.body.scope.target;
279
+ const userService = (0, services_1.DocumentService)({
280
+ ...(0, utils_1.getDefaultServiceProps)(req),
281
+ documentType: requestDocumentType
282
+ });
283
+ let response = {};
284
+ let reqScope = req.body.scope;
285
+ let reqPayload = req.body.payload;
286
+ if (requestDocumentType === "salesOrder" || requestDocumentType === "sales") {
287
+ let request = payload_1.schemaUserCustomerUpdatePayload.parse({
288
+ scope: {
289
+ target: reqScope.target,
290
+ action: reqScope.action
291
+ },
292
+ payload: {
293
+ credential: {
294
+ username: reqPayload.credential.username,
295
+ password: reqPayload.credential.password,
296
+ firstname: reqPayload.credential.firstname,
297
+ lastname: reqPayload.credential.lastname,
298
+ contact: reqPayload.credential.contact,
299
+ email: reqPayload.credential.email,
300
+ address: reqPayload.credential.address,
301
+ status: reqPayload.credential.status
302
+ },
303
+ customer: {
304
+ code: reqPayload.customer.code,
305
+ accountCode: reqPayload.customer.account_code,
306
+ companyName: reqPayload.customer.company_name,
307
+ regNo: reqPayload.customer.reg_no,
308
+ secondaryRegNo: reqPayload.customer.secondary_reg_no,
309
+ gstNo: reqPayload.customer.gst_no,
310
+ taxIdentificationNo: reqPayload.customer.tax_identification_no,
311
+ taxRegistrationNo: reqPayload.customer.tax_registration_no,
312
+ remark: reqPayload.customer.remark
313
+ },
314
+ props: {
315
+ salesperson: reqPayload.props.salesperson
316
+ }
317
+ }
318
+ });
319
+ let payload = {
320
+ id: Number(documentId),
321
+ documentType: requestDocumentType,
322
+ data: {
323
+ user: {
324
+ loginUsername: request.payload.credential.username,
325
+ ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),
326
+ address: request.payload.credential.address,
327
+ contact: request.payload.credential.contact,
328
+ email: request.payload.credential.email,
329
+ firstname: request.payload.credential.firstname,
330
+ lastname: request.payload.credential.lastname,
331
+ status: request.payload.credential.status === 1
332
+ },
333
+ customer: {
334
+ code: request.payload.customer.code,
335
+ accountCode: request.payload.customer.accountCode,
336
+ companyName: request.payload.customer.companyName,
337
+ regNo: request.payload.customer.regNo,
338
+ secondaryRegNo: request.payload.customer.secondaryRegNo,
339
+ remark: request.payload.customer.remark,
340
+ gstNo: request.payload.customer.gstNo,
341
+ taxIdentificationNo: request.payload.customer.taxIdentificationNo,
342
+ taxRegistrationNo: request.payload.customer.taxRegistrationNo,
343
+ // salesperson: request.payload.props.salesperson,
344
+ }
345
+ }
346
+ };
347
+ response = {
348
+ [`${getRootName(requestDocumentType, true)}`]: await userService.updateDocument(payload)
349
+ };
350
+ }
351
+ // if (requestDocumentType === "administrator") {
352
+ // let request = schemaUserAdministratorUpdatePayload.parse({
353
+ // scope: {
354
+ // target: reqScope.target,
355
+ // action: reqScope.action
356
+ // },
357
+ // payload: {
358
+ // credential: {
359
+ // username: reqPayload.credential.username,
360
+ // password: reqPayload.credential.password,
361
+ // firstname: reqPayload.credential.firstname,
362
+ // lastname: reqPayload.credential.lastname,
363
+ // contact: reqPayload.credential.contact,
364
+ // email: reqPayload.credential.email,
365
+ // address: reqPayload.credential.address,
366
+ // status: reqPayload.credential.status
367
+ // },
368
+ // administrator: {},
369
+ // props: {
370
+ // location_id: reqPayload.props.location_id
371
+ // }
372
+ // }
373
+ // })
374
+ // let payload: DocumentUpdateProps = {
375
+ // id: Number(documentId),
376
+ // documentType: requestDocumentType,
377
+ // data: {
378
+ // user: {
379
+ // loginUsername: request.payload.credential.username,
380
+ // ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),
381
+ // address: request.payload.credential.address,
382
+ // contact: request.payload.credential.contact,
383
+ // email: request.payload.credential.email,
384
+ // firstname: request.payload.credential.firstname,
385
+ // lastname: request.payload.credential.lastname,
386
+ // status: request.payload.credential.status === 1
387
+ // },
388
+ // administrator: {},
389
+ // props: {
390
+ // locationIds: request.payload.props.location_id.map(i => Number(i))
391
+ // }
392
+ // }
393
+ // }
394
+ // response = {
395
+ // [`${getRootName(requestDocumentType, true)}`]: await userService.updateDocument(payload)
396
+ // }
397
+ // }
398
+ // if (requestDocumentType === "worker") {
399
+ // let request = schemaUserWorkerUpdatePayload.parse({
400
+ // scope: {
401
+ // target: reqScope.target,
402
+ // action: reqScope.action
403
+ // },
404
+ // payload: {
405
+ // credential: {
406
+ // username: reqPayload.credential.username,
407
+ // password: reqPayload.credential.password,
408
+ // firstname: reqPayload.credential.firstname,
409
+ // lastname: reqPayload.credential.lastname,
410
+ // contact: reqPayload.credential.contact,
411
+ // email: reqPayload.credential.email,
412
+ // address: reqPayload.credential.address,
413
+ // status: reqPayload.credential.status
414
+ // },
415
+ // worker: {
416
+ // remark: reqPayload.worker.remark
417
+ // },
418
+ // props: {
419
+ // location_id: reqPayload.props.location_id
420
+ // }
421
+ // }
422
+ // })
423
+ // let payload: DocumentUpdateProps = {
424
+ // id: Number(documentId),
425
+ // documentType: requestDocumentType,
426
+ // data: {
427
+ // user: {
428
+ // loginUsername: request.payload.credential.username,
429
+ // ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),
430
+ // address: request.payload.credential.address,
431
+ // contact: request.payload.credential.contact,
432
+ // email: request.payload.credential.email,
433
+ // firstname: request.payload.credential.firstname,
434
+ // lastname: request.payload.credential.lastname,
435
+ // status: request.payload.credential.status === 1
436
+ // },
437
+ // worker: {
438
+ // remark: request.payload.worker.remark
439
+ // },
440
+ // props: {
441
+ // locationIds: request.payload.props.location_id.map(i => Number(i))
442
+ // }
443
+ // }
444
+ // }
445
+ // response = {
446
+ // [`${getRootName(requestDocumentType, true)}`]: await userService.updateDocument(payload)
447
+ // }
448
+ // }
449
+ // if (requestDocumentType === "retailer") {
450
+ // let request = schemaUserRetailerUpdatePayload.parse({
451
+ // scope: {
452
+ // target: reqScope.target,
453
+ // action: reqScope.action
454
+ // },
455
+ // payload: {
456
+ // credential: {
457
+ // // username: reqPayload.credential.username,
458
+ // password: reqPayload.credential.password,
459
+ // firstname: reqPayload.credential.firstname,
460
+ // lastname: reqPayload.credential.lastname,
461
+ // contact: reqPayload.credential.contact,
462
+ // email: reqPayload.credential.email,
463
+ // address: reqPayload.credential.address,
464
+ // status: reqPayload.credential.status
465
+ // },
466
+ // retailer: {
467
+ // code: reqPayload.retailer.code,
468
+ // accountCode: reqPayload.retailer.account_code,
469
+ // companyName: reqPayload.retailer.company_name,
470
+ // regNo: reqPayload.retailer.reg_no,
471
+ // gstNo: reqPayload.retailer.gst_no,
472
+ // remark: reqPayload.retailer.remark,
473
+ // }
474
+ // }
475
+ // })
476
+ // let payload: DocumentUpdateProps = {
477
+ // id: Number(documentId),
478
+ // documentType: requestDocumentType,
479
+ // data: {
480
+ // user: {
481
+ // loginUsername: request.payload.credential.username,
482
+ // ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),
483
+ // address: request.payload.credential.address,
484
+ // contact: request.payload.credential.contact,
485
+ // email: request.payload.credential.email,
486
+ // firstname: request.payload.credential.firstname,
487
+ // lastname: request.payload.credential.lastname,
488
+ // status: request.payload.credential.status === 1
489
+ // },
490
+ // retailer: {
491
+ // code: request.payload.retailer.code,
492
+ // accountCode: request.payload.retailer.accountCode,
493
+ // companyName: request.payload.retailer.companyName,
494
+ // regNo: request.payload.retailer.regNo,
495
+ // remark: request.payload.retailer.remark,
496
+ // gstNo: request.payload.retailer.gstNo
497
+ // }
498
+ // }
499
+ // }
500
+ // response = {
501
+ // [`${getRootName(requestDocumentType, true)}`]: await userService.updateDocument(payload)
502
+ // }
503
+ // }
504
+ (0, utils_1.sendSuccess)(res, response, `Document(${requestDocumentType}) updated successfully`);
505
+ }
506
+ catch (error) {
507
+ next(error);
508
+ }
509
+ };
510
+ exports.updateDocument = updateDocument;
511
+ /** documents : list documents */
512
+ const listDocuments = async (req, res, next) => {
513
+ try {
514
+ const requestQuery = req.query;
515
+ const requestDocumentType = req.params.documentType;
516
+ const userService = (0, services_1.DocumentService)({
517
+ ...(0, utils_1.getDefaultServiceProps)(req),
518
+ documentType: requestDocumentType
519
+ });
520
+ const { data, total } = await userService.listDocuments({
521
+ ...requestQuery,
522
+ });
523
+ let response = {
524
+ [`${getRootName(requestDocumentType, false)}`]: data,
525
+ total,
526
+ };
527
+ return (0, utils_1.sendSuccess)(res, response, "Retrieved successfully");
528
+ }
529
+ catch (error) {
530
+ next(error);
531
+ }
532
+ };
533
+ exports.listDocuments = listDocuments;
534
+ /** documents/delete : delete documents */
535
+ const deleteDocuments = async (req, res, next) => {
536
+ try {
537
+ const requestDocumentType = req.body.scope.target;
538
+ // const requestQuery = req.query as unknown as QueryList;
539
+ // const requestFileId = Number(req.params.fileId)
540
+ const request = payload_1.schemaUserDeletePayload.parse(req.body);
541
+ const documentService = (0, services_1.DocumentService)({
542
+ ...(0, utils_1.getDefaultServiceProps)(req),
543
+ documentType: requestDocumentType
544
+ });
545
+ const payload = {
546
+ ids: request.payload.ids.map(i => BigInt(i))
547
+ };
548
+ const data = await documentService.removeDocuments(payload);
549
+ return (0, utils_1.sendSuccess)(res, data, "Deleted", getRootName(requestDocumentType, false));
550
+ }
551
+ catch (error) {
552
+ next(error);
553
+ }
554
+ };
555
+ exports.deleteDocuments = deleteDocuments;
556
+ /** document/data_types/:documentType : get document data types */
557
+ const getDocumentDataTypes = async (req, res, next) => {
558
+ try {
559
+ const requestQuery = req.query;
560
+ const requestDocumentType = req.params.documentType;
561
+ const documentService = (0, services_1.DocumentService)({
562
+ ...(0, utils_1.getDefaultServiceProps)(req),
563
+ documentType: requestDocumentType
564
+ });
565
+ const data = documentService.getDocumentDataTypes();
566
+ let response = {
567
+ data_types: data
568
+ };
569
+ return (0, utils_1.sendSuccess)(res, response, "Retrieved successfully");
570
+ }
571
+ catch (error) {
572
+ next(error);
573
+ }
574
+ };
575
+ exports.getDocumentDataTypes = getDocumentDataTypes;
576
+ //# sourceMappingURL=documentController.js.map