mobioffice-cli 0.0.1

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 (156) hide show
  1. package/.prettierrc +4 -0
  2. package/README.md +1 -0
  3. package/a.js +3 -0
  4. package/lib/index.js +87 -0
  5. package/package.json +50 -0
  6. package/scripts/1.ts +1300 -0
  7. package/scripts/GCloudPubSub/pub-sub-config.json +12 -0
  8. package/scripts/GCloudPubSub/visitorAutoRejection.ts +86 -0
  9. package/scripts/actions/assignUsersFromOneActionToOther.ts +64 -0
  10. package/scripts/actions/assignUsersListToAction.ts +81 -0
  11. package/scripts/actions/getActionsListOfUser.ts +42 -0
  12. package/scripts/actions/getCompanyUserDetails.ts +49 -0
  13. package/scripts/actions/giveActionToUser.ts +41 -0
  14. package/scripts/actions/giveUsersToActivitySelector.ts +56 -0
  15. package/scripts/actions/groupActionsInActivitySelector.ts +101 -0
  16. package/scripts/actions/modifySummaryReportDB.ts +42 -0
  17. package/scripts/actions/setUrlToActionStep.ts +18 -0
  18. package/scripts/actions/syncMySqlAttendanceDBWithFirebase.ts +93 -0
  19. package/scripts/actions/syncMySqlMeetingsDBWithFirebase.ts +103 -0
  20. package/scripts/actions/test.ts +29 -0
  21. package/scripts/actions/transferFeedsOldIdToNew.ts +40 -0
  22. package/scripts/actions/transformUserIntoManager.ts +89 -0
  23. package/scripts/argvConfig.js +9 -0
  24. package/scripts/backUpData/testCode.ts +131 -0
  25. package/scripts/benaraScripts/addWorkAreaMap.ts +46 -0
  26. package/scripts/benaraScripts/add_customers.ts +26 -0
  27. package/scripts/benaraScripts/add_customers_contact.ts +27 -0
  28. package/scripts/benaraScripts/add_empty_work_area.ts +17 -0
  29. package/scripts/benaraScripts/assignManagers.ts +35 -0
  30. package/scripts/benaraScripts/changeCheckInFlag.ts +45 -0
  31. package/scripts/benaraScripts/createCustomerContactsList.ts +170 -0
  32. package/scripts/benaraScripts/createUserByDeletingOldUser.ts +70 -0
  33. package/scripts/benaraScripts/createUsersAreaMapCollection.ts +23 -0
  34. package/scripts/benaraScripts/createWorkAreaMap.ts +24 -0
  35. package/scripts/benaraScripts/mapWorkAreasToUsers.ts +112 -0
  36. package/scripts/companies_data.json +2496 -0
  37. package/scripts/create_or_update_users.ts +31 -0
  38. package/scripts/csvToJson/csvToJson.ts +90 -0
  39. package/scripts/csvToJson/users.json +3896 -0
  40. package/scripts/db.js +27 -0
  41. package/scripts/db.json +13 -0
  42. package/scripts/dbMySql.ts +63 -0
  43. package/scripts/delete_action_steps.ts +11 -0
  44. package/scripts/delete_user.ts +71 -0
  45. package/scripts/dev_companies_data.json +613 -0
  46. package/scripts/enroll.xlsx +0 -0
  47. package/scripts/export_users.ts +72 -0
  48. package/scripts/files/visitorManagementFiles/displayScreen.json +70 -0
  49. package/scripts/files/visitorManagementFiles/init_report_visibility.ts +79 -0
  50. package/scripts/firebaseConfig.js +12 -0
  51. package/scripts/firebaseDocs/deleteIncommingCollection.ts +47 -0
  52. package/scripts/firebaseDocs/updateDoc.ts +43 -0
  53. package/scripts/getActionDataIntoJSON/getActionData.ts +68 -0
  54. package/scripts/get_attendance_by_any_date.ts +14 -0
  55. package/scripts/get_attendance_by_month.ts +12 -0
  56. package/scripts/get_attendance_monthly_by_team.ts +11 -0
  57. package/scripts/get_daily_report.ts +10 -0
  58. package/scripts/get_mangers.ts +13 -0
  59. package/scripts/grant_user_license.ts +18 -0
  60. package/scripts/init_CustomCollection.ts +16 -0
  61. package/scripts/init_action_steps.ts +28 -0
  62. package/scripts/init_actions.ts +31 -0
  63. package/scripts/init_company.ts +18 -0
  64. package/scripts/init_customer_mysql.ts +12 -0
  65. package/scripts/init_feed.ts +4 -0
  66. package/scripts/init_feed_details_screen.ts +14 -0
  67. package/scripts/init_geofence.ts +26 -0
  68. package/scripts/init_print_details_screen.ts +14 -0
  69. package/scripts/init_report_actions.ts +24 -0
  70. package/scripts/init_report_definition_detail.ts +26 -0
  71. package/scripts/init_report_definition_summary.ts +16 -0
  72. package/scripts/init_report_visibility.ts +46 -0
  73. package/scripts/init_user_customcollection.ts +16 -0
  74. package/scripts/json/action.json +21 -0
  75. package/scripts/json/company.json +24 -0
  76. package/scripts/json/report-action.json +13 -0
  77. package/scripts/json/report-def-deet.json +43 -0
  78. package/scripts/json/resp.json +784 -0
  79. package/scripts/json/steps.json +24 -0
  80. package/scripts/json/test.ts +49 -0
  81. package/scripts/mysqlConfig.ts +9 -0
  82. package/scripts/revoke_or_extend_license.ts +14 -0
  83. package/scripts/stream.js +4 -0
  84. package/scripts/testing1.ts +35 -0
  85. package/scripts/update/doc.json +20 -0
  86. package/scripts/update/getDocByPath.ts +34 -0
  87. package/scripts/update/updateDocByPath.ts +47 -0
  88. package/scripts/update/updateUsersOfCompanies.ts +58 -0
  89. package/scripts/update_actions.ts +19 -0
  90. package/scripts/update_actions_steps.ts +19 -0
  91. package/scripts/update_company.ts +19 -0
  92. package/scripts/update_geofence.ts +20 -0
  93. package/scripts/update_managers.ts +16 -0
  94. package/scripts/visitorMgmt/createArea.ts +68 -0
  95. package/scripts/visitorMgmt/createArea.txt +3 -0
  96. package/scripts/visitorMgmt/createVisitorPathInstructionDocs.ts +130 -0
  97. package/scripts/visitorMgmt/createVisitorPathInstructionDocs.txt +18 -0
  98. package/scripts/visitorMgmt/encryptDateString.ts +71 -0
  99. package/scripts/visitorMgmt/makeHostsManagersOfEachOther.ts +117 -0
  100. package/scripts/whatsapp_gupshup/sendMessage.ts +97 -0
  101. package/src/index.ts +87 -0
  102. package/src/models/Feed-Details-Screen.model.ts +29 -0
  103. package/src/models/action.model.ts +355 -0
  104. package/src/models/actions/doffing.ts +71 -0
  105. package/src/models/actions/folding.ts +39 -0
  106. package/src/models/attendance.model.ts +615 -0
  107. package/src/models/cicoPost.model.ts +20 -0
  108. package/src/models/company.model.ts +975 -0
  109. package/src/models/contact-us/resquest.model.ts +87 -0
  110. package/src/models/crud/crud.ts +30 -0
  111. package/src/models/customCollection.model.ts +47 -0
  112. package/src/models/customer/customer.model.ts +85 -0
  113. package/src/models/deviceChangeReq.ts +150 -0
  114. package/src/models/dispatch.model.ts +99 -0
  115. package/src/models/feed.models.ts +104 -0
  116. package/src/models/geofence.model.ts +61 -0
  117. package/src/models/leaveApplicationPost.model.ts +79 -0
  118. package/src/models/license.model.ts +215 -0
  119. package/src/models/log.model.ts +25 -0
  120. package/src/models/meeting.model.ts +80 -0
  121. package/src/models/meter.model.ts +62 -0
  122. package/src/models/missingPunchPost.model.ts +84 -0
  123. package/src/models/offline.model.ts +1133 -0
  124. package/src/models/post.model.ts +105 -0
  125. package/src/models/printDetailsScreen.model.ts +30 -0
  126. package/src/models/pushNotifications/pushNotification.model.ts +17 -0
  127. package/src/models/report-actions.model.ts +57 -0
  128. package/src/models/report-definition-details.model.ts +89 -0
  129. package/src/models/report-definition.model.ts +26 -0
  130. package/src/models/report-definitions-summary.model.ts +59 -0
  131. package/src/models/report-detail-data.model.ts +49 -0
  132. package/src/models/report-visibility.model.ts +44 -0
  133. package/src/models/report.model.ts +179 -0
  134. package/src/models/reportGenerator.model.ts +883 -0
  135. package/src/models/response.model.ts +31 -0
  136. package/src/models/steps.factory.model.ts +195 -0
  137. package/src/models/storeGupShupLog.model.ts +49 -0
  138. package/src/models/summary.model.ts +63 -0
  139. package/src/models/tasks/sub-task-group.model.ts +173 -0
  140. package/src/models/tasks/tags.model.ts +113 -0
  141. package/src/models/tasks/task-group.model.ts +172 -0
  142. package/src/models/tasks/task.model.ts +681 -0
  143. package/src/models/tempCollection.model.ts +398 -0
  144. package/src/models/user.model.ts +319 -0
  145. package/src/models/utility.model.ts +100 -0
  146. package/src/models/visitorManagement/acknowledgement.model.ts +71 -0
  147. package/src/models/visitorManagement/invite.model.ts +406 -0
  148. package/src/models/visitorManagement/newIn.model.ts +82 -0
  149. package/src/models/visitorManagement/selfServe.model.ts +58 -0
  150. package/src/models/worklogPost.model.ts +8 -0
  151. package/src/services/customer.ts +382 -0
  152. package/src/services/meeting.ts +123 -0
  153. package/test/1.ts +13 -0
  154. package/test/db.js +19 -0
  155. package/test/firebaseConfig.js +1 -0
  156. package/tsconfig.json +16 -0
@@ -0,0 +1,398 @@
1
+ import * as admin from "firebase-admin";
2
+ import { HttpResponseAndErrorHandling } from "./response.model";
3
+
4
+ class TempCollection {
5
+ static async createTempCollection(firestore:admin.firestore.Firestore,uniqueId:string,data:any){
6
+ await firestore.collection("TempCollection").doc(uniqueId).set(data)
7
+ return "stock added"
8
+ }
9
+
10
+ // static async verifyTakaList(firestore:admin.firestore.Firestore,uniqueId:string,takaId:string,arrayInstance:any,scanType:string){
11
+ // let itemDetailsList_snapshot = await firestore.collection("TempCollection").doc(uniqueId).get()
12
+ // let itemDetailsdoc = JSON.parse(JSON.stringify(itemDetailsList_snapshot.data()))
13
+ // let keys = Object.keys(itemDetailsdoc)
14
+ // if(keys.length){
15
+ // let message = ""
16
+ // let summary
17
+ // if(itemDetailsdoc.summary.length < 1){
18
+ // summary = []
19
+ // }else{
20
+ // summary = JSON.parse(itemDetailsdoc.summary);
21
+ // }
22
+ // let serialNo = summary.length
23
+ // let isDuplicateTaka = false
24
+ // let takkaMatchedflag = false
25
+ // let partialId
26
+ // if(scanType.toLowerCase() == "partial"){
27
+ // let i=0
28
+ // for(let fulltakaId of itemDetailsdoc.takaList){
29
+ // let partialTakaId = fulltakaId.split("-")[2]
30
+ // if(takkaMatchedflag && partialTakaId == partialId){
31
+ // isDuplicateTaka = true
32
+ // break
33
+ // }
34
+ // if(partialTakaId == takaId){
35
+ // takaId = fulltakaId
36
+ // partialId = partialTakaId
37
+ // takkaMatchedflag = true
38
+ // }
39
+ // }
40
+ // }else{
41
+ // partialId = takaId.split("-")[2]
42
+ // }
43
+ // if(isDuplicateTaka){
44
+ // message = "Duplicate taka exists, please select full scan"
45
+ // }
46
+ // else if(itemDetailsdoc.alreadyScannedTakaId.includes(takaId) || itemDetailsdoc.partialScannedTakaId.includes(partialId)){
47
+ // message = "This taka has been scanned already"
48
+ // }
49
+ // else if(itemDetailsdoc.takaList.includes(takaId)) {
50
+ // serialNo += 1
51
+ // let scannedTakkaDetails = await this.createResponseObj(itemDetailsdoc,takaId,serialNo)
52
+ // summary.unshift(scannedTakkaDetails)
53
+ // let summaryStringified = JSON.stringify(summary)
54
+ // await itemDetailsList_snapshot.ref.update({
55
+ // summary: summaryStringified,
56
+ // takaList: arrayInstance.arrayRemove(takaId),
57
+ // alreadyScannedTakaId : arrayInstance.arrayUnion(takaId),
58
+ // partialScannedTakaId : arrayInstance.arrayUnion(partialId),
59
+ // })
60
+ // message = "Scan successfully"
61
+ // let verifyScanTakas = await TempCollection.getTakadetails(firestore,uniqueId)
62
+ // let scannedSummary = JSON.parse(verifyScanTakas.summary)
63
+ // if(scannedSummary[0]["Roll No"] != takaId){
64
+ // await itemDetailsList_snapshot.ref.update({
65
+ // takaList: arrayInstance.arrayUnion(takaId),
66
+ // alreadyScannedTakaId : arrayInstance.arrayRemove(takaId),
67
+ // partialScannedTakaId : arrayInstance.arrayRemove(partialId),
68
+ // })
69
+ // message = "Scan Failed, Please rescan the taka"
70
+ // }
71
+ // console.log(message)
72
+ // }
73
+ // else{
74
+ // message = "Please verify the taka number with the system"
75
+ // }
76
+ // if(summary.length){
77
+ // let totalQuantity = 0
78
+ // for(let scannedTakka of summary){
79
+ // totalQuantity += parseInt(scannedTakka["Quantity"])
80
+ // }
81
+ // let totalQuantityDoc:any = {}
82
+ // totalQuantityDoc["Sr No"] = "Total"
83
+ // totalQuantityDoc["Sales Order"] = "-"
84
+ // totalQuantityDoc["Roll No"] = serialNo
85
+ // totalQuantityDoc["Quantity"] = totalQuantity
86
+ // totalQuantityDoc["Design"] = "-"
87
+ // totalQuantityDoc["Color"] = "-"
88
+ // totalQuantityDoc["Grade"] = "-"
89
+ // summary.push(totalQuantityDoc)
90
+ // }
91
+ // return {
92
+ // data: JSON.stringify(summary),
93
+ // message: message
94
+ // }
95
+ // }else{
96
+ // return new HttpResponseAndErrorHandling(400, "Not available", null, 400).getErrorResponse();
97
+ // }
98
+ // }
99
+
100
+ static async verifyTakaList(firestore:admin.firestore.Firestore,uniqueId:string,takaId:string,arrayInstance:any,scanType:string){
101
+ let itemDetailsList_snapshot = await firestore.collection("TempCollection").doc(uniqueId).get()
102
+ let itemDetailsDoc = JSON.parse(JSON.stringify(itemDetailsList_snapshot.data()))
103
+ let keys = Object.keys(itemDetailsDoc)
104
+ if(keys.length) {
105
+ const matchResult = await this.matchTakaInTakaList(takaId, itemDetailsDoc.takaList, scanType);
106
+ const summary = JSON.parse(itemDetailsDoc.summary);
107
+ let serialNo = summary.length;
108
+ if (matchResult.status === "not found") {
109
+ let message = "Please verify the taka no. with system";
110
+ const isAlreadyScanned = await this.checkIfAlreadyScanned(itemDetailsDoc,takaId,scanType);
111
+ if (isAlreadyScanned) {
112
+ message = "This taka has been scanned already";
113
+ }
114
+ const verificationFailedResponse = await this.createResponseToSend(summary, serialNo, message);
115
+ return verificationFailedResponse;
116
+ } else if (matchResult.status === "duplicate found") {
117
+ const message = "Duplicate taka exists, please select full scan";
118
+ const duplicateFoundResponse = await this.createResponseToSend(summary, serialNo, message);
119
+ return duplicateFoundResponse;
120
+ } else {
121
+ const fullTakaId = matchResult.id;
122
+ const resObj = await this.createResponseObj(itemDetailsDoc, fullTakaId, serialNo + 1);
123
+ if (resObj.status) {
124
+ summary.unshift(resObj.info);
125
+ serialNo = summary.length
126
+ const summaryToSave = JSON.stringify(summary);
127
+ await this.updateInfoInDB(itemDetailsList_snapshot, fullTakaId, summaryToSave, arrayInstance);
128
+ const isTakaAdded = await this.checkIfTakaIsAdded(firestore, fullTakaId, uniqueId);
129
+ if (isTakaAdded) {
130
+ const message = "Scan successfully";
131
+ const successResponse = await this.createResponseToSend(summary, serialNo, message);
132
+ return successResponse;
133
+ } else {
134
+ await this.resetReferenceDoc(arrayInstance, itemDetailsList_snapshot, fullTakaId);
135
+ const message = "Taka Scan failed, please scan again";
136
+ const responseToSend = await this.createResponseToSend(summary, serialNo, message)
137
+ return responseToSend
138
+ }
139
+ } else {
140
+ const message = "Please verify taka with the system";
141
+ const responseToSend = await this.createResponseToSend(summary, serialNo, message)
142
+ return responseToSend
143
+ }
144
+ }
145
+ } else {
146
+ return new HttpResponseAndErrorHandling(400, "Not available", null, 400).getErrorResponse();
147
+ }
148
+ }
149
+
150
+ static async checkIfAlreadyScanned(itemDetailsDoc:any,takaId:string,scanType:string){
151
+ let alreadyScannedTakkaList = itemDetailsDoc.alreadyScannedTakaId
152
+ for(let compareStr of alreadyScannedTakkaList){
153
+ if(scanType == "partial"){
154
+ compareStr = compareStr.split("-")[2];
155
+ }
156
+ if(compareStr == takaId){
157
+ return true
158
+ }
159
+ }
160
+ return false
161
+ }
162
+
163
+ static async createCountRow(summary: any, serialNo: number) {
164
+ let totalQuantity = 0
165
+ for(let scannedTakka of summary){
166
+ totalQuantity += Number(Number(scannedTakka["Quantity"]).toFixed(3));
167
+ }
168
+ let totalQuantityDoc:any = {}
169
+ totalQuantityDoc["Sr No"] = "Total"
170
+ totalQuantityDoc["Sales Order"] = "-"
171
+ totalQuantityDoc["Roll No"] = serialNo
172
+ totalQuantityDoc["Quantity"] = totalQuantity
173
+ totalQuantityDoc["Design"] = "-"
174
+ totalQuantityDoc["Color"] = "-"
175
+ totalQuantityDoc["Grade"] = "-"
176
+ return totalQuantityDoc;
177
+ }
178
+
179
+ static async updateInfoInDB(docFromDB: any, takaId: string, summaryToSave: string, arrayInstance: any) {
180
+ await docFromDB.ref.update({
181
+ takaList: arrayInstance.arrayRemove(takaId),
182
+ alreadyScannedTakaId : arrayInstance.arrayUnion(takaId),
183
+ summary: summaryToSave
184
+ })
185
+ }
186
+
187
+ static async checkIfTakaIsAdded(firestore: admin.firestore.Firestore, fullTakaId: string, uniqueId: string) {
188
+ let itemDetailsList_snapshot = await firestore.collection("TempCollection").doc(uniqueId).get();
189
+ let itemDetailsDoc: any = itemDetailsList_snapshot.data();
190
+ const summary = JSON.parse(itemDetailsDoc.summary);
191
+ const compareStr = summary[0]["Roll No"];
192
+ if (compareStr === fullTakaId) {
193
+ return true;
194
+ } else {
195
+ return false;
196
+ }
197
+ }
198
+
199
+ static async createResponseToSend(summary: any, serialNo: number, message: string) {
200
+ if (summary.length) {
201
+ const countRow = await this.createCountRow(summary, serialNo);
202
+ summary.push(countRow);
203
+ }
204
+ const result = {
205
+ data: JSON.stringify(summary),
206
+ message: message
207
+ }
208
+ return result;
209
+ }
210
+
211
+ static async resetReferenceDoc(arrayInstance: any, docFromDB: any, fullTakaId: string) {
212
+ await docFromDB.ref.update({
213
+ takaList: arrayInstance.arrayUnion(fullTakaId),
214
+ alreadyScannedTakaId: arrayInstance.arrayRemove(fullTakaId),
215
+ })
216
+ }
217
+
218
+ static async matchTakaInTakaList(takaId: string, takaList: string[], scanType: string) {
219
+ let count = 0;
220
+ const result = {
221
+ status: "",
222
+ id : ""
223
+ }
224
+ let idToSave: string = "";
225
+ for (let fullId of takaList) {
226
+ let compareStr = fullId;
227
+ if (scanType === "partial") {
228
+ compareStr = fullId.split("-")[2];
229
+ }
230
+ if (compareStr === takaId) {
231
+ idToSave = fullId;
232
+ count++;
233
+ }
234
+ }
235
+ if(count === 0) {
236
+ result.status = "not found";
237
+ } else if (count === 1) {
238
+ result.status = "Success";
239
+ result.id = idToSave;
240
+ } else {
241
+ result.status = "duplicate found";
242
+ }
243
+ return result;
244
+ }
245
+
246
+ static async verifyTakaNUpdate(firestore: admin.firestore.Firestore, takaNo: string, uniqueId: string,
247
+ arrayInstance: any, payLoadInfo: any, gradeInfoList: any) {
248
+ takaNo = takaNo.toUpperCase();
249
+ const infoDoc = await firestore.collection("TempCollection").doc(uniqueId).get();
250
+ const soDetails: any = infoDoc.data();
251
+ let summary = soDetails.summary;
252
+ for (let i = 0; i < soDetails.takaList.length; i++) {
253
+ if(takaNo === soDetails.takaList[i]) {
254
+ const infoToStore = {
255
+ taka_no: `${takaNo}@@${payLoadInfo.parcelNo}`,
256
+ selectedSODesign: payLoadInfo.selectedSODesign,
257
+ selectedSORowId: payLoadInfo.selectedSORowId
258
+ }
259
+ const newScanRow = await this.getNewScanRow(soDetails.takaDetails,
260
+ soDetails.takaList[i],
261
+ summary,
262
+ gradeInfoList)
263
+ if (newScanRow) {
264
+ summary.unshift(newScanRow);
265
+ }
266
+ summary = JSON.parse(JSON.stringify(summary));
267
+ try {
268
+ await firestore.collection("TempCollection")
269
+ .doc(uniqueId)
270
+ .update({
271
+ scannedTakas: arrayInstance.arrayUnion(infoToStore),
272
+ takaList: arrayInstance.arrayRemove(takaNo),
273
+ summary: summary
274
+ })
275
+ } catch(error) {
276
+ console.log(error);
277
+ return {
278
+ data: null,
279
+ message: "Something went wrong"
280
+ }
281
+ }
282
+ if (summary.length) {
283
+ const totalRow = await this.createTotalRow(summary);
284
+ summary.push(totalRow);
285
+ }
286
+ summary = JSON.stringify(summary)
287
+ return {
288
+ data: summary,
289
+ message: "Scan successfully"
290
+ };
291
+ }
292
+ }
293
+ if (summary.length) {
294
+ const totalRow = await this.createTotalRow(summary);
295
+ summary.push(totalRow);
296
+ }
297
+ summary = JSON.stringify(summary);
298
+ return {
299
+ data: summary,
300
+ message: "Please verify the taka number with the system"
301
+ }
302
+ }
303
+
304
+ static async getGradeFromId(id: string, gradeInfoList: any) {
305
+ for (let gradeInfo of gradeInfoList) {
306
+ if (id === gradeInfo.id) {
307
+ return gradeInfo.label;
308
+ }
309
+ }
310
+ }
311
+
312
+ static async getNewScanRow(takaDetails: any, currTaka: string,
313
+ oldSummary: any, gradeInfoList: any) {
314
+ for(let j = 0; j < takaDetails.length; j++) {
315
+ let obj = takaDetails[j];
316
+ if (obj.taka_no === currTaka) {
317
+ return {
318
+ serialNo: oldSummary.length + 1,
319
+ ...obj,
320
+ grade: await this.getGradeFromId(obj.grade, gradeInfoList),
321
+ };
322
+ }
323
+ }
324
+ return null;
325
+ }
326
+
327
+ static async createTotalRow(summary: any) {
328
+ const totalRow: any = {};
329
+ let totalMeter = 0;
330
+ for (let row of summary) {
331
+ totalMeter += Number(Number(row.meter).toFixed(3));
332
+ }
333
+ totalRow.lot_no = "Total";
334
+ totalRow.meter = totalMeter;
335
+ totalRow.taka_no = summary.length;
336
+ totalRow.grade = "-";
337
+ return totalRow;
338
+ }
339
+
340
+ static async createResponseObj(responseInfo: any,takaId:string,serialNo:string) {
341
+ let resObj: any = {
342
+ status: false,
343
+ info: {}
344
+ };
345
+ for (let itemDetails of responseInfo.itemDetailsList) {
346
+ for (let takaDetailsObj of itemDetails.takasDetails) {
347
+ if (takaId === takaDetailsObj.taka_no) {
348
+ if (itemDetails.P2 === takaDetailsObj.grade) {
349
+ resObj.status = true;
350
+ } else {
351
+ return resObj;
352
+ }
353
+ resObj.info["Sr No"] = serialNo
354
+ resObj.info["Sales Order"] = itemDetails.SOBookNameWithSrNo;
355
+ resObj.info["Roll No"] = takaId;
356
+ resObj.info["Quantity"] = Number(Number(takaDetailsObj.meter).toFixed(3));
357
+ resObj.info["Design"] = itemDetails.item;
358
+ resObj.info["Color"] = itemDetails.P1;
359
+ resObj.info["Grade"] = itemDetails.P2;
360
+ }
361
+ }
362
+ }
363
+ return resObj
364
+ }
365
+
366
+ static async getStockListbyUserId(firestore:admin.firestore.Firestore,userId:string){
367
+ let stockListSnapshot = await firestore.collection("TempCollection").doc(userId).get()
368
+ return stockListSnapshot.data()
369
+ }
370
+
371
+ static async createTempCollectionOnlyWithSerialNo(firestore:admin.firestore.Firestore,uniqueId:string,doc:any){
372
+ await firestore.collection("TempCollection").doc(uniqueId).set(doc)
373
+ return "Success"
374
+ }
375
+
376
+ static async deleteTempCollection(firestore:admin.firestore.Firestore,uniqueId:string){
377
+ await firestore.collection("TempCollection").doc(uniqueId).delete()
378
+ return "Deleted"
379
+ }
380
+
381
+ static async isDocPresent(firestore:admin.firestore.Firestore,uniqueId:string){
382
+ let docSnapshot = await firestore.collection("TempCollection").doc(uniqueId).get()
383
+ return docSnapshot.exists
384
+ }
385
+
386
+ static async getDocInfo(firestore: admin.firestore.Firestore, uniqueId: string) {
387
+ let docSnap = await firestore.collection("TempCollection").doc(uniqueId).get();
388
+ return docSnap.data();
389
+ }
390
+
391
+ static async storeResponseInTemp(firestore:admin.firestore.Firestore,data:any){
392
+ await firestore.collection("TempCollection").doc(data.uniqueId).set(data)
393
+ return "Success"
394
+ }
395
+
396
+ }
397
+
398
+ export { TempCollection }