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.
- package/.prettierrc +4 -0
- package/README.md +1 -0
- package/a.js +3 -0
- package/lib/index.js +87 -0
- package/package.json +50 -0
- package/scripts/1.ts +1300 -0
- package/scripts/GCloudPubSub/pub-sub-config.json +12 -0
- package/scripts/GCloudPubSub/visitorAutoRejection.ts +86 -0
- package/scripts/actions/assignUsersFromOneActionToOther.ts +64 -0
- package/scripts/actions/assignUsersListToAction.ts +81 -0
- package/scripts/actions/getActionsListOfUser.ts +42 -0
- package/scripts/actions/getCompanyUserDetails.ts +49 -0
- package/scripts/actions/giveActionToUser.ts +41 -0
- package/scripts/actions/giveUsersToActivitySelector.ts +56 -0
- package/scripts/actions/groupActionsInActivitySelector.ts +101 -0
- package/scripts/actions/modifySummaryReportDB.ts +42 -0
- package/scripts/actions/setUrlToActionStep.ts +18 -0
- package/scripts/actions/syncMySqlAttendanceDBWithFirebase.ts +93 -0
- package/scripts/actions/syncMySqlMeetingsDBWithFirebase.ts +103 -0
- package/scripts/actions/test.ts +29 -0
- package/scripts/actions/transferFeedsOldIdToNew.ts +40 -0
- package/scripts/actions/transformUserIntoManager.ts +89 -0
- package/scripts/argvConfig.js +9 -0
- package/scripts/backUpData/testCode.ts +131 -0
- package/scripts/benaraScripts/addWorkAreaMap.ts +46 -0
- package/scripts/benaraScripts/add_customers.ts +26 -0
- package/scripts/benaraScripts/add_customers_contact.ts +27 -0
- package/scripts/benaraScripts/add_empty_work_area.ts +17 -0
- package/scripts/benaraScripts/assignManagers.ts +35 -0
- package/scripts/benaraScripts/changeCheckInFlag.ts +45 -0
- package/scripts/benaraScripts/createCustomerContactsList.ts +170 -0
- package/scripts/benaraScripts/createUserByDeletingOldUser.ts +70 -0
- package/scripts/benaraScripts/createUsersAreaMapCollection.ts +23 -0
- package/scripts/benaraScripts/createWorkAreaMap.ts +24 -0
- package/scripts/benaraScripts/mapWorkAreasToUsers.ts +112 -0
- package/scripts/companies_data.json +2496 -0
- package/scripts/create_or_update_users.ts +31 -0
- package/scripts/csvToJson/csvToJson.ts +90 -0
- package/scripts/csvToJson/users.json +3896 -0
- package/scripts/db.js +27 -0
- package/scripts/db.json +13 -0
- package/scripts/dbMySql.ts +63 -0
- package/scripts/delete_action_steps.ts +11 -0
- package/scripts/delete_user.ts +71 -0
- package/scripts/dev_companies_data.json +613 -0
- package/scripts/enroll.xlsx +0 -0
- package/scripts/export_users.ts +72 -0
- package/scripts/files/visitorManagementFiles/displayScreen.json +70 -0
- package/scripts/files/visitorManagementFiles/init_report_visibility.ts +79 -0
- package/scripts/firebaseConfig.js +12 -0
- package/scripts/firebaseDocs/deleteIncommingCollection.ts +47 -0
- package/scripts/firebaseDocs/updateDoc.ts +43 -0
- package/scripts/getActionDataIntoJSON/getActionData.ts +68 -0
- package/scripts/get_attendance_by_any_date.ts +14 -0
- package/scripts/get_attendance_by_month.ts +12 -0
- package/scripts/get_attendance_monthly_by_team.ts +11 -0
- package/scripts/get_daily_report.ts +10 -0
- package/scripts/get_mangers.ts +13 -0
- package/scripts/grant_user_license.ts +18 -0
- package/scripts/init_CustomCollection.ts +16 -0
- package/scripts/init_action_steps.ts +28 -0
- package/scripts/init_actions.ts +31 -0
- package/scripts/init_company.ts +18 -0
- package/scripts/init_customer_mysql.ts +12 -0
- package/scripts/init_feed.ts +4 -0
- package/scripts/init_feed_details_screen.ts +14 -0
- package/scripts/init_geofence.ts +26 -0
- package/scripts/init_print_details_screen.ts +14 -0
- package/scripts/init_report_actions.ts +24 -0
- package/scripts/init_report_definition_detail.ts +26 -0
- package/scripts/init_report_definition_summary.ts +16 -0
- package/scripts/init_report_visibility.ts +46 -0
- package/scripts/init_user_customcollection.ts +16 -0
- package/scripts/json/action.json +21 -0
- package/scripts/json/company.json +24 -0
- package/scripts/json/report-action.json +13 -0
- package/scripts/json/report-def-deet.json +43 -0
- package/scripts/json/resp.json +784 -0
- package/scripts/json/steps.json +24 -0
- package/scripts/json/test.ts +49 -0
- package/scripts/mysqlConfig.ts +9 -0
- package/scripts/revoke_or_extend_license.ts +14 -0
- package/scripts/stream.js +4 -0
- package/scripts/testing1.ts +35 -0
- package/scripts/update/doc.json +20 -0
- package/scripts/update/getDocByPath.ts +34 -0
- package/scripts/update/updateDocByPath.ts +47 -0
- package/scripts/update/updateUsersOfCompanies.ts +58 -0
- package/scripts/update_actions.ts +19 -0
- package/scripts/update_actions_steps.ts +19 -0
- package/scripts/update_company.ts +19 -0
- package/scripts/update_geofence.ts +20 -0
- package/scripts/update_managers.ts +16 -0
- package/scripts/visitorMgmt/createArea.ts +68 -0
- package/scripts/visitorMgmt/createArea.txt +3 -0
- package/scripts/visitorMgmt/createVisitorPathInstructionDocs.ts +130 -0
- package/scripts/visitorMgmt/createVisitorPathInstructionDocs.txt +18 -0
- package/scripts/visitorMgmt/encryptDateString.ts +71 -0
- package/scripts/visitorMgmt/makeHostsManagersOfEachOther.ts +117 -0
- package/scripts/whatsapp_gupshup/sendMessage.ts +97 -0
- package/src/index.ts +87 -0
- package/src/models/Feed-Details-Screen.model.ts +29 -0
- package/src/models/action.model.ts +355 -0
- package/src/models/actions/doffing.ts +71 -0
- package/src/models/actions/folding.ts +39 -0
- package/src/models/attendance.model.ts +615 -0
- package/src/models/cicoPost.model.ts +20 -0
- package/src/models/company.model.ts +975 -0
- package/src/models/contact-us/resquest.model.ts +87 -0
- package/src/models/crud/crud.ts +30 -0
- package/src/models/customCollection.model.ts +47 -0
- package/src/models/customer/customer.model.ts +85 -0
- package/src/models/deviceChangeReq.ts +150 -0
- package/src/models/dispatch.model.ts +99 -0
- package/src/models/feed.models.ts +104 -0
- package/src/models/geofence.model.ts +61 -0
- package/src/models/leaveApplicationPost.model.ts +79 -0
- package/src/models/license.model.ts +215 -0
- package/src/models/log.model.ts +25 -0
- package/src/models/meeting.model.ts +80 -0
- package/src/models/meter.model.ts +62 -0
- package/src/models/missingPunchPost.model.ts +84 -0
- package/src/models/offline.model.ts +1133 -0
- package/src/models/post.model.ts +105 -0
- package/src/models/printDetailsScreen.model.ts +30 -0
- package/src/models/pushNotifications/pushNotification.model.ts +17 -0
- package/src/models/report-actions.model.ts +57 -0
- package/src/models/report-definition-details.model.ts +89 -0
- package/src/models/report-definition.model.ts +26 -0
- package/src/models/report-definitions-summary.model.ts +59 -0
- package/src/models/report-detail-data.model.ts +49 -0
- package/src/models/report-visibility.model.ts +44 -0
- package/src/models/report.model.ts +179 -0
- package/src/models/reportGenerator.model.ts +883 -0
- package/src/models/response.model.ts +31 -0
- package/src/models/steps.factory.model.ts +195 -0
- package/src/models/storeGupShupLog.model.ts +49 -0
- package/src/models/summary.model.ts +63 -0
- package/src/models/tasks/sub-task-group.model.ts +173 -0
- package/src/models/tasks/tags.model.ts +113 -0
- package/src/models/tasks/task-group.model.ts +172 -0
- package/src/models/tasks/task.model.ts +681 -0
- package/src/models/tempCollection.model.ts +398 -0
- package/src/models/user.model.ts +319 -0
- package/src/models/utility.model.ts +100 -0
- package/src/models/visitorManagement/acknowledgement.model.ts +71 -0
- package/src/models/visitorManagement/invite.model.ts +406 -0
- package/src/models/visitorManagement/newIn.model.ts +82 -0
- package/src/models/visitorManagement/selfServe.model.ts +58 -0
- package/src/models/worklogPost.model.ts +8 -0
- package/src/services/customer.ts +382 -0
- package/src/services/meeting.ts +123 -0
- package/test/1.ts +13 -0
- package/test/db.js +19 -0
- package/test/firebaseConfig.js +1 -0
- 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 }
|