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,355 @@
1
+ import { Company } from "./company.model";
2
+ import * as admin from "firebase-admin";
3
+ import { Attendance } from "./attendance.model";
4
+
5
+ class Action {
6
+ actionType: string = "";
7
+ companyId: string = "";
8
+ displayName: string = "";
9
+ end_label: string = "";
10
+ icon: string = "";
11
+ id: string = "";
12
+ idForReport: string = "";
13
+ name: string = "";
14
+ order: number = 0;
15
+ require_location: boolean = false;
16
+ require_selfie: boolean = false;
17
+ startCollectionName: string = "";
18
+ start_label: string = "";
19
+ users: string[] = [];
20
+ forApproval?: boolean = false;
21
+
22
+ initViaSnapshotDoc(doc: any) {
23
+ var _data = doc.data();
24
+ this.companyId = _data.companyId;
25
+ this.displayName = _data.displayName;
26
+ this.end_label = _data.end_label;
27
+ this.icon = _data.icon;
28
+ this.id = _data.id;
29
+ this.idForReport = _data.idForReport;
30
+ this.name = _data.name;
31
+ this.order = _data.order;
32
+ this.require_location = _data.require_location;
33
+ this.require_selfie = _data.require_selfie;
34
+ this.startCollectionName = _data.startCollectionName;
35
+ this.start_label = _data.start_label;
36
+ this.users = _data.users;
37
+ }
38
+
39
+ static ActionType = {
40
+ CICO: "checkInOut",
41
+ REPORT: "report",
42
+ WORKLOG: "worklog",
43
+ };
44
+
45
+ static async getActionByName(
46
+ firestore: admin.firestore.Firestore,
47
+ name: string,
48
+ nickname: string
49
+ ) {
50
+ let companyId = await Company.getCompanyIdbyNickname(firestore, nickname);
51
+ const snap = await firestore
52
+ .collection("Companies")
53
+ .doc(companyId)
54
+ .collection("Actions")
55
+ .where("name", "==", name)
56
+ .get();
57
+ const data = snap.docs.map((obj) => obj.data());
58
+ return data[0];
59
+ }
60
+
61
+ static async getActionId(
62
+ firestore: admin.firestore.Firestore,
63
+ companyId: string,
64
+ action: string
65
+ ) {
66
+ let user_attendance = await firestore
67
+ .collection("Companies")
68
+ .doc(companyId)
69
+ .collection("Actions")
70
+ .where("name", "==", action)
71
+ .get();
72
+ let actionId = user_attendance.docs.map((doc) => doc.data());
73
+ return actionId[0]?.id;
74
+ }
75
+
76
+ static async getActionGroupId(
77
+ firestore: admin.firestore.Firestore,
78
+ companyId: string,
79
+ actionId: string
80
+ ) {
81
+ try {
82
+ let reportActionDocArr = await firestore
83
+ .collection("Companies")
84
+ .doc(companyId)
85
+ .collection("Report-Actions")
86
+ .where("id", "==", actionId)
87
+ .get();
88
+ if (reportActionDocArr.docs.length) {
89
+ const reportActionData = reportActionDocArr.docs[0].data();
90
+ return reportActionData.activityFor;
91
+ } else {
92
+ return null;
93
+ }
94
+ } catch(error) {
95
+ return null;
96
+ }
97
+ }
98
+
99
+ static async getActionIdbyDisplayName(
100
+ firestore: admin.firestore.Firestore,
101
+ companyId: string,
102
+ action: string
103
+ ) {
104
+ let user_attendance = await firestore
105
+ .collection("Companies")
106
+ .doc(companyId)
107
+ .collection("Actions")
108
+ .where("displayName", "==", action)
109
+ .get();
110
+ let actionId = user_attendance.docs.map((doc) => doc.data());
111
+ return actionId[0].id;
112
+ }
113
+
114
+ static async getActionIdByDisplayName(firestore:admin.firestore.Firestore,companyId:string,action:string){
115
+ let user_attendance = await firestore.collection('Companies').doc(companyId).collection('Actions').where('displayName','==',action).get()
116
+ let actionId = user_attendance.docs.map((doc)=>doc.data())
117
+ return actionId[0].id
118
+ }
119
+
120
+ static async addUserIdInAction(firestore:admin.firestore.Firestore,arrayUnion:any,actionName:string,companyId:string,userId:string){
121
+ let actionId = await Action.getActionId(firestore,companyId,actionName);
122
+ await firestore.collection('Companies').doc(companyId).collection('Actions').doc(actionId).update({
123
+ users:arrayUnion(userId)
124
+ })
125
+ return "updated"
126
+ }
127
+
128
+ static async getActionNamebyUser(firestore:admin.firestore.Firestore,companyId:string,UserId:string){
129
+ try {
130
+ let snapshot = await firestore.collection("Companies").doc(companyId).collection('Actions').where('users','array-contains',UserId).get()
131
+ let actions = snapshot.docs.map((doc)=>{
132
+ return doc.data().name
133
+ })
134
+ return actions
135
+ } catch (error: any) {
136
+ throw new Error(error);
137
+ }
138
+ }
139
+
140
+ // static async getActionsByPhone(firestore:admin.firestore.Firestore,phone:string) {
141
+ // var companies = await Company.getCompanyDocByPhone(phone);
142
+ // var uid = ""; //User.getIdByPhone(phone);
143
+ // var actions = [];
144
+ // for (var company of companies) {
145
+ // var actionModel = await db
146
+ // .collection("Companies")
147
+ // .doc(company.id)
148
+ // .collection("Actions")
149
+ // .where("users", "array-contains", uid)
150
+ // .get();
151
+ // actions.push(actionModel);
152
+ // }
153
+ // return actions;
154
+ // }
155
+
156
+ static async getOrCreateAction(
157
+ firestore: admin.firestore.Firestore,
158
+ actionMap: any
159
+ ) {
160
+ actionMap.companyId = await Company.getCompanyIdbyNickname(
161
+ firestore,
162
+ actionMap.companyId
163
+ );
164
+ var action = await firestore
165
+ .collection("Companies")
166
+ .doc(actionMap.companyId)
167
+ .collection("Actions")
168
+ .where("name", "==", actionMap.name)
169
+ .get();
170
+ if(action.empty){
171
+ //actionMap = await Action.convertingActionDataType(actionMap)
172
+ let actionRef = firestore
173
+ .collection("Companies")
174
+ .doc(actionMap.companyId)
175
+ .collection("Actions")
176
+ .doc();
177
+ actionMap.id = actionRef.id;
178
+ if(actionMap.actionType == "report" || actionMap.actionType == "doffing" ||actionMap.actionType == "folding"){
179
+ actionMap.idForReport = actionRef.id;
180
+ }
181
+ await actionRef.set({ ...actionMap });
182
+ return actionMap;
183
+ }
184
+ else {
185
+ return action.docs[0].data();
186
+ }
187
+ }
188
+
189
+ static async convertingActionDataType(data:any){
190
+ if(data['order']){
191
+ data.order = Number(data.order)
192
+ }
193
+ if(data['require_location']){
194
+ data['require_location'] = await Action.booleanConvertion(data['require_location']);
195
+ }
196
+ if(data['require_selfie']){
197
+ data['require_selfie'] = await Action.booleanConvertion(data['require_selfie']);
198
+ }
199
+ if(data['forApproval']){
200
+ data['forApproval'] = await Action.booleanConvertion(data['forApproval']);
201
+ }
202
+ if(data['isFaceDetected']){
203
+ data['isFaceDetected'] = await Action.booleanConvertion(data['isFaceDetected']);
204
+ }
205
+ return data
206
+ }
207
+
208
+ static async booleanConvertion(value:any){
209
+ if(value){
210
+ value = (value.toLowerCase() == "true");
211
+ }else{
212
+ value = ""
213
+ }
214
+ return value
215
+ }
216
+
217
+ static async updateActions(firestore:admin.firestore.Firestore,arrayUnion:any,nickName:string,actionName:string,newDetails:any){
218
+ let companyId = await Company.getCompanyIdbyNickname(firestore,nickName);
219
+ let actionId = await Action.getActionId(firestore,companyId,actionName)
220
+ let snapshot = await firestore.collection("Companies").doc(companyId).collection('Actions').doc(actionId)
221
+ //newDetails = await Action.convertingActionDataType(newDetails)
222
+ if(newDetails.users){
223
+ for(let user of newDetails.users){
224
+ console.log(user)
225
+ snapshot.update({
226
+ users:arrayUnion(user)
227
+ })
228
+ }
229
+
230
+ delete newDetails.users
231
+ }
232
+ snapshot.update(newDetails)
233
+ return 'Updated successfully'
234
+ }
235
+
236
+ static async actionStep(firestore:admin.firestore.Firestore,nickName:string,actionName:string,actionStep:any){
237
+ // actionStep = await Action.convertingActionStepsDataType(actionStep)
238
+ let companyId = await Company.getCompanyIdbyNickname(firestore,nickName)
239
+ let action = await Action.getActionByName(firestore,actionName,nickName)
240
+ const result = await Action.getOrCreateStep(firestore,actionStep,companyId,action)
241
+ return result;
242
+ }
243
+
244
+ static async convertingActionStepsDataType(data:any){
245
+ if(data.order){
246
+ data.order = Number(data.order)
247
+ }
248
+ if(data.field){
249
+ if(data.field.isRequired){
250
+ data.field.isRequired = await Action.booleanConvertion(data.field.isRequired)
251
+ }
252
+ if(data.field.isMultiline){
253
+ data.field.isMultiline = await Action.booleanConvertion(data.field.isMultiline)
254
+ }
255
+ if(data.field.autoChangePage){
256
+ data.field.autoChangePage = await Action.booleanConvertion(data.field.autoChangePage)
257
+ }
258
+ if(data.field.isAPICalled){
259
+ data.field.isAPICalled = await Action.booleanConvertion(data.field.isAPICalled)
260
+ }
261
+ if(data.field.isImagePickerNeeded){
262
+ data.field.isImagePickerNeeded = await Action.booleanConvertion(data.field.isImagePickerNeeded)
263
+ }
264
+ }
265
+ return data;
266
+ }
267
+
268
+
269
+ static async getOrCreateStep(firestore:admin.firestore.Firestore,step:any,companyId:string, action:any) {
270
+ let docRef = firestore
271
+ .collection("Companies")
272
+ .doc(companyId)
273
+ .collection("Actions")
274
+ .doc(action.id)
275
+ .collection(action.startCollectionName)
276
+ let snapshot = await docRef.where('label','==',step.label).get()
277
+ if(snapshot.empty){
278
+ let addStep_snapshot = docRef.doc()
279
+ step.id = addStep_snapshot.id;
280
+ addStep_snapshot.set({ ...step });
281
+ return step
282
+ }else{
283
+ return snapshot.docs[0].data()
284
+ }
285
+ }
286
+
287
+ static async updateActionsStep(firestore:admin.firestore.Firestore,nickName:string,actionName:string,actionSteps:any){
288
+ let companyId = await Company.getCompanyIdbyNickname(firestore,nickName)
289
+ let action = await Action.getActionByName(firestore,actionName,nickName)
290
+ let snapshot = await firestore.collection('Companies').doc(companyId).collection('Actions').doc(action.id).collection(action.startCollectionName).where('label','==',actionSteps.label).get()
291
+ if(snapshot.empty){
292
+ return `Given data invalid`
293
+ }else{
294
+ snapshot.docs[0].ref.update(actionSteps)
295
+ return snapshot.docs[0].data().id
296
+ }
297
+ }
298
+
299
+ static actionTemplate = {
300
+ actionType: "",
301
+ companyId: "",
302
+ displayName: "",
303
+ end_label: "",
304
+ icon: "",
305
+ id: "",
306
+ idForReport: "",
307
+ name: "",
308
+ order: 3,
309
+ require_location: false,
310
+ require_selfie: false,
311
+ startCollectionName: "",
312
+ start_label: "",
313
+ users: [],
314
+ };
315
+
316
+ static async deleteActionSteps(firestore:admin.firestore.Firestore,nickName:string,actionName:string,label:string){
317
+ let companyId = await Company.getCompanyIdbyNickname(firestore,nickName)
318
+ let action = await Action.getActionByName(firestore,actionName,nickName)
319
+ let snapshot = await firestore.collection("Companies").doc(companyId).collection("Actions").doc(action.id).collection(action.startCollectionName).where('label','==',label).get()
320
+
321
+ if(snapshot.empty){
322
+ return `Given data invalid`
323
+ }else{
324
+ snapshot.docs[0].ref.delete()
325
+ return "Deleted successfully"
326
+ }
327
+ }
328
+
329
+ static async updateMeetingStatus(firestore:admin.firestore.Firestore,companyId:string,userId:string,eventId:string,time:number){
330
+ let actionId = await Action.getActionId(firestore,companyId,"meeting")
331
+ const meetingDocRef = await firestore.collection("Companies")
332
+ .doc(companyId)
333
+ .collection("Actions")
334
+ .doc(actionId)
335
+ .collection("meetings")
336
+ .where("userId","==",userId)
337
+ .where("eventId","==",eventId)
338
+ .get()
339
+ if (meetingDocRef.docs.length) {
340
+ let extraData = meetingDocRef.docs[0].data().extraData
341
+ extraData = {
342
+ ...extraData,
343
+ "End Time":time
344
+ }
345
+ console.log(extraData)
346
+ meetingDocRef.forEach((doc)=>{
347
+ doc.ref.update({
348
+ extraData:extraData
349
+ })
350
+ })
351
+ }
352
+ }
353
+ }
354
+
355
+ export { Action };
@@ -0,0 +1,71 @@
1
+ import { Firestore } from "@google-cloud/firestore";
2
+ import * as admin from "firebase-admin";
3
+ import { Offline } from "../offline.model";
4
+ import { Post } from "../post.model";
5
+ import { User } from "../user.model";
6
+
7
+ class Doffing {
8
+ static async doffing(firestore: admin.firestore.Firestore,
9
+ doffingInfo: any,
10
+ submitObject: any,
11
+ status: string,
12
+ infoForExtraData: any) {
13
+ try {
14
+ const companyId = doffingInfo.companyId;
15
+ const userId = doffingInfo.userId;
16
+ const userInfo = await User.getUserInfoById(firestore, userId,
17
+ companyId);
18
+ console.log("going to create doffing card object");
19
+ const doffingCardObj = await this.createDoffingCard(doffingInfo, userInfo, submitObject, status, infoForExtraData);
20
+ let eventId = await Post.createNewPost(firestore, doffingCardObj);
21
+ // const userRef = await Offline.createRefForUser(firestore, companyId, userId);
22
+ // console.log("sending doffing card to user");
23
+ // await userRef.set(doffingCardObj);
24
+ // console.log("sending doffing card to managers");
25
+ // await Offline.sendFeedToManagers(firestore, companyId, userId, doffingCardObj);
26
+ // await Offline.deleteInfoFromIncoming(firestore, doffingInfo.id);
27
+ // console.log("deleted doc from incoming");
28
+ return eventId;
29
+ } catch (error: any) {
30
+ throw new Error(error.message)
31
+ }
32
+ }
33
+
34
+ static async createDoffingCard(doffingInfo: any, userInfo: any, submitObject: any, status: string, infoForExtraData: any) {
35
+ let extraData = doffingInfo.extra.extraData;
36
+ extraData.time = doffingInfo.createdAt;
37
+ extraData.userName = userInfo.name;
38
+ extraData.designNo = submitObject.designNo;
39
+ extraData.rollNo = submitObject.rollNo;
40
+ let rollNoList = submitObject.rollNo.split(",");
41
+ extraData.status = status;
42
+ extraData.lotNo = "";
43
+ extraData.date = new Date(doffingInfo.createdAt).toLocaleDateString("en-GB");
44
+ extraData.time = doffingInfo.createdAt;
45
+ const printInfo = []
46
+ for (let rollNo of rollNoList) {
47
+ let obj = {
48
+ barcodeVal: rollNo,
49
+ design: submitObject.designNo,
50
+ isQrCode: true,
51
+ machine: submitObject.machineNo,
52
+ meter: submitObject.rollMeter,
53
+ roll: rollNo,
54
+ rpm: submitObject.rpm,
55
+ lot_no: ""
56
+ }
57
+ printInfo.push(obj)
58
+ }
59
+ extraData.toBePrinted = printInfo;
60
+ extraData = { ...extraData, ...infoForExtraData }
61
+ const doffingCard = { ...doffingInfo };
62
+ doffingCard.actionType = doffingInfo.extra.actionType;
63
+ doffingCard.actionId = doffingInfo.extra.actionId;
64
+ doffingCard.description = submitObject.machineNo;
65
+ delete doffingCard.extra;
66
+ doffingCard.extraData = extraData;
67
+ return doffingCard;
68
+ }
69
+ }
70
+
71
+ export { Doffing };
@@ -0,0 +1,39 @@
1
+ import * as admin from "firebase-admin";
2
+ import { Offline } from "../offline.model";
3
+ import { HttpResponseAndErrorHandling } from "../response.model";
4
+ import { User } from "../user.model";
5
+
6
+ class Folding {
7
+ static async folding(firestore: admin.firestore.Firestore,
8
+ foldingInfo: any) {
9
+ try {
10
+ const companyId = foldingInfo.companyId;
11
+ const userId = foldingInfo.userId;
12
+ const userInfo = await User.getUserInfoById(firestore, userId,
13
+ companyId);
14
+ console.log("going to create folding card obj");
15
+ const foldingCardObj = await this.createFoldingCard(foldingInfo, userInfo);
16
+ const userRef = await Offline.createRefForUser(firestore, companyId, userId);
17
+ console.log("Sending folding card to user");
18
+ await userRef.set(foldingCardObj);
19
+ console.log("sending folding card to managers");
20
+ await Offline.sendFeedToManagers(firestore, companyId, userId, foldingCardObj);
21
+ await Offline.deleteInfoFromIncoming(firestore, foldingInfo.id);
22
+ return new HttpResponseAndErrorHandling(200, "Done", "Successfully sent feeds", null);
23
+ } catch(error: any) {
24
+ return new HttpResponseAndErrorHandling(400, "Failed", null, 400);
25
+ }
26
+ }
27
+
28
+ static async createFoldingCard(foldingInfo: any, userInfo: any) {
29
+ const extraData = foldingInfo.extra.extraData;
30
+ extraData.time = foldingInfo.createdAt;
31
+ extraData.userName = userInfo.name;
32
+ const foldingCard = {...foldingInfo};
33
+ delete foldingCard.extra;
34
+ foldingCard.extraData = extraData;
35
+ return foldingCard;
36
+ }
37
+ }
38
+
39
+ export { Folding };