mobioffice-cli 0.2.1 → 1.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/{src/index.ts → lib/index.d.ts} +1 -45
- package/lib/models/Feed-Details-Screen.model.d.ts +6 -0
- package/lib/models/Feed-Details-Screen.model.js +27 -0
- package/lib/models/action.model.d.ts +58 -0
- package/lib/models/action.model.js +315 -0
- package/lib/models/actions/doffing.d.ts +6 -0
- package/lib/models/actions/doffing.js +64 -0
- package/lib/models/actions/folding.d.ts +7 -0
- package/lib/models/actions/folding.js +37 -0
- package/lib/models/attendance.model.d.ts +44 -0
- package/lib/models/attendance.model.js +446 -0
- package/lib/models/cicoPost.model.d.ts +9 -0
- package/lib/models/cicoPost.model.js +19 -0
- package/lib/models/company.model.d.ts +67 -0
- package/lib/models/company.model.js +725 -0
- package/lib/models/contact-us/resquest.model.d.ts +30 -0
- package/lib/models/contact-us/resquest.model.js +73 -0
- package/lib/models/crud/crud.d.ts +7 -0
- package/lib/models/crud/crud.js +27 -0
- package/lib/models/customCollection.model.d.ts +9 -0
- package/lib/models/customCollection.model.js +40 -0
- package/lib/models/customer/customer.model.d.ts +32 -0
- package/lib/models/customer/customer.model.js +62 -0
- package/lib/models/deviceChangeReq.d.ts +10 -0
- package/lib/models/deviceChangeReq.js +138 -0
- package/lib/models/dispatch.model.d.ts +14 -0
- package/lib/models/dispatch.model.js +93 -0
- package/lib/models/feed.models.d.ts +8 -0
- package/lib/models/feed.models.js +97 -0
- package/lib/models/geofence.model.d.ts +7 -0
- package/lib/models/geofence.model.js +61 -0
- package/lib/models/leaveApplicationPost.model.d.ts +12 -0
- package/lib/models/leaveApplicationPost.model.js +72 -0
- package/lib/models/license.model.d.ts +25 -0
- package/lib/models/license.model.js +198 -0
- package/lib/models/log.model.d.ts +6 -0
- package/{src/models/log.model.ts → lib/models/log.model.js} +11 -11
- package/lib/models/meeting.model.d.ts +11 -0
- package/lib/models/meeting.model.js +79 -0
- package/lib/models/meter.model.d.ts +18 -0
- package/lib/models/meter.model.js +54 -0
- package/lib/models/missingPunchPost.model.d.ts +15 -0
- package/lib/models/missingPunchPost.model.js +69 -0
- package/lib/models/offline.model.d.ts +70 -0
- package/lib/models/offline.model.js +831 -0
- package/lib/models/post.model.d.ts +38 -0
- package/lib/models/post.model.js +94 -0
- package/lib/models/printDetailsScreen.model.d.ts +6 -0
- package/lib/models/printDetailsScreen.model.js +27 -0
- package/lib/models/pushNotifications/pushNotification.model.d.ts +4 -0
- package/lib/models/pushNotifications/pushNotification.model.js +17 -0
- package/lib/models/report-actions.model.d.ts +26 -0
- package/lib/models/report-actions.model.js +56 -0
- package/lib/models/report-definition-details.model.d.ts +13 -0
- package/lib/models/report-definition-details.model.js +85 -0
- package/lib/models/report-definition.model.d.ts +23 -0
- package/lib/models/report-definition.model.js +26 -0
- package/lib/models/report-definitions-summary.model.d.ts +8 -0
- package/lib/models/report-definitions-summary.model.js +59 -0
- package/lib/models/report-detail-data.model.d.ts +46 -0
- package/lib/models/report-detail-data.model.js +49 -0
- package/lib/models/report-visibility.model.d.ts +7 -0
- package/lib/models/report-visibility.model.js +42 -0
- package/lib/models/report.model.d.ts +19 -0
- package/lib/models/report.model.js +138 -0
- package/lib/models/reportGenerator.model.d.ts +164 -0
- package/lib/models/reportGenerator.model.js +642 -0
- package/lib/models/response.model.d.ts +18 -0
- package/lib/models/response.model.js +30 -0
- package/lib/models/steps.factory.model.d.ts +172 -0
- package/lib/models/steps.factory.model.js +187 -0
- package/lib/models/storeGupShupLog.model.d.ts +6 -0
- package/lib/models/storeGupShupLog.model.js +51 -0
- package/lib/models/summary.model.d.ts +10 -0
- package/{src/models/summary.model.ts → lib/models/summary.model.js} +28 -27
- package/lib/models/tasks/sub-task-group.model.d.ts +42 -0
- package/lib/models/tasks/sub-task-group.model.js +154 -0
- package/lib/models/tasks/tags.model.d.ts +29 -0
- package/lib/models/tasks/tags.model.js +70 -0
- package/lib/models/tasks/task-group.model.d.ts +53 -0
- package/lib/models/tasks/task-group.model.js +156 -0
- package/lib/models/tasks/task.model.d.ts +163 -0
- package/lib/models/tasks/task.model.js +603 -0
- package/lib/models/tempCollection.model.d.ts +40 -0
- package/{src/models/tempCollection.model.ts → lib/models/tempCollection.model.js} +114 -130
- package/lib/models/user.model.d.ts +42 -0
- package/lib/models/user.model.js +272 -0
- package/lib/models/utility.model.d.ts +13 -0
- package/lib/models/utility.model.js +93 -0
- package/lib/models/visitorManagement/acknowledgement.model.d.ts +9 -0
- package/lib/models/visitorManagement/acknowledgement.model.js +55 -0
- package/lib/models/visitorManagement/invite.model.d.ts +32 -0
- package/lib/models/visitorManagement/invite.model.js +326 -0
- package/lib/models/visitorManagement/newIn.model.d.ts +19 -0
- package/lib/models/visitorManagement/newIn.model.js +67 -0
- package/lib/models/visitorManagement/selfServe.model.d.ts +13 -0
- package/lib/models/visitorManagement/selfServe.model.js +46 -0
- package/lib/models/worklogPost.model.d.ts +6 -0
- package/lib/models/worklogPost.model.js +9 -0
- package/lib/services/customer.d.ts +30 -0
- package/lib/services/customer.js +354 -0
- package/lib/services/meeting.d.ts +19 -0
- package/lib/services/meeting.js +109 -0
- package/package.json +4 -1
- package/.prettierrc +0 -4
- package/a.js +0 -3
- package/scripts/1.ts +0 -1300
- package/scripts/GCloudPubSub/pub-sub-config.json +0 -12
- package/scripts/GCloudPubSub/visitorAutoRejection.ts +0 -86
- package/scripts/actions/assignUsersFromOneActionToOther.ts +0 -64
- package/scripts/actions/assignUsersListToAction.ts +0 -81
- package/scripts/actions/getActionsListOfUser.ts +0 -42
- package/scripts/actions/getCompanyUserDetails.ts +0 -49
- package/scripts/actions/giveActionToUser.ts +0 -41
- package/scripts/actions/giveUsersToActivitySelector.ts +0 -56
- package/scripts/actions/groupActionsInActivitySelector.ts +0 -101
- package/scripts/actions/modifySummaryReportDB.ts +0 -42
- package/scripts/actions/setUrlToActionStep.ts +0 -18
- package/scripts/actions/syncMySqlAttendanceDBWithFirebase.ts +0 -93
- package/scripts/actions/syncMySqlMeetingsDBWithFirebase.ts +0 -103
- package/scripts/actions/test.ts +0 -29
- package/scripts/actions/transferFeedsOldIdToNew.ts +0 -40
- package/scripts/actions/transformUserIntoManager.ts +0 -89
- package/scripts/argvConfig.js +0 -9
- package/scripts/backUpData/testCode.ts +0 -131
- package/scripts/benaraScripts/addWorkAreaMap.ts +0 -46
- package/scripts/benaraScripts/add_customers.ts +0 -26
- package/scripts/benaraScripts/add_customers_contact.ts +0 -27
- package/scripts/benaraScripts/add_empty_work_area.ts +0 -17
- package/scripts/benaraScripts/assignManagers.ts +0 -35
- package/scripts/benaraScripts/changeCheckInFlag.ts +0 -45
- package/scripts/benaraScripts/createCustomerContactsList.ts +0 -170
- package/scripts/benaraScripts/createUserByDeletingOldUser.ts +0 -70
- package/scripts/benaraScripts/createUsersAreaMapCollection.ts +0 -23
- package/scripts/benaraScripts/createWorkAreaMap.ts +0 -24
- package/scripts/benaraScripts/mapWorkAreasToUsers.ts +0 -112
- package/scripts/companies_data.json +0 -2496
- package/scripts/create_or_update_users.ts +0 -31
- package/scripts/csvToJson/csvToJson.ts +0 -90
- package/scripts/csvToJson/users.json +0 -3896
- package/scripts/db.js +0 -27
- package/scripts/db.json +0 -13
- package/scripts/dbMySql.ts +0 -63
- package/scripts/delete_action_steps.ts +0 -11
- package/scripts/delete_user.ts +0 -71
- package/scripts/dev_companies_data.json +0 -613
- package/scripts/enroll.xlsx +0 -0
- package/scripts/export_users.ts +0 -72
- package/scripts/files/visitorManagementFiles/displayScreen.json +0 -70
- package/scripts/files/visitorManagementFiles/init_report_visibility.ts +0 -79
- package/scripts/firebaseConfig.js +0 -12
- package/scripts/firebaseDocs/deleteIncommingCollection.ts +0 -47
- package/scripts/firebaseDocs/updateDoc.ts +0 -43
- package/scripts/getActionDataIntoJSON/getActionData.ts +0 -68
- package/scripts/get_attendance_by_any_date.ts +0 -14
- package/scripts/get_attendance_by_month.ts +0 -12
- package/scripts/get_attendance_monthly_by_team.ts +0 -11
- package/scripts/get_daily_report.ts +0 -10
- package/scripts/get_mangers.ts +0 -13
- package/scripts/grant_user_license.ts +0 -18
- package/scripts/init_CustomCollection.ts +0 -16
- package/scripts/init_action_steps.ts +0 -28
- package/scripts/init_actions.ts +0 -31
- package/scripts/init_company.ts +0 -18
- package/scripts/init_customer_mysql.ts +0 -12
- package/scripts/init_feed.ts +0 -4
- package/scripts/init_feed_details_screen.ts +0 -14
- package/scripts/init_geofence.ts +0 -26
- package/scripts/init_print_details_screen.ts +0 -14
- package/scripts/init_report_actions.ts +0 -24
- package/scripts/init_report_definition_detail.ts +0 -26
- package/scripts/init_report_definition_summary.ts +0 -16
- package/scripts/init_report_visibility.ts +0 -46
- package/scripts/init_user_customcollection.ts +0 -16
- package/scripts/json/action.json +0 -21
- package/scripts/json/company.json +0 -24
- package/scripts/json/report-action.json +0 -13
- package/scripts/json/report-def-deet.json +0 -43
- package/scripts/json/resp.json +0 -784
- package/scripts/json/steps.json +0 -24
- package/scripts/json/test.ts +0 -49
- package/scripts/mysqlConfig.ts +0 -9
- package/scripts/revoke_or_extend_license.ts +0 -14
- package/scripts/stream.js +0 -4
- package/scripts/testing1.ts +0 -35
- package/scripts/update/doc.json +0 -20
- package/scripts/update/getDocByPath.ts +0 -34
- package/scripts/update/updateDocByPath.ts +0 -47
- package/scripts/update/updateUsersOfCompanies.ts +0 -58
- package/scripts/update_actions.ts +0 -19
- package/scripts/update_actions_steps.ts +0 -19
- package/scripts/update_company.ts +0 -19
- package/scripts/update_geofence.ts +0 -20
- package/scripts/update_managers.ts +0 -16
- package/scripts/visitorMgmt/createArea.ts +0 -68
- package/scripts/visitorMgmt/createArea.txt +0 -3
- package/scripts/visitorMgmt/createVisitorPathInstructionDocs.ts +0 -130
- package/scripts/visitorMgmt/createVisitorPathInstructionDocs.txt +0 -18
- package/scripts/visitorMgmt/encryptDateString.ts +0 -71
- package/scripts/visitorMgmt/makeHostsManagersOfEachOther.ts +0 -117
- package/scripts/whatsapp_gupshup/sendMessage.ts +0 -97
- package/src/models/Feed-Details-Screen.model.ts +0 -29
- package/src/models/action.model.ts +0 -355
- package/src/models/actions/doffing.ts +0 -71
- package/src/models/actions/folding.ts +0 -39
- package/src/models/attendance.model.ts +0 -615
- package/src/models/cicoPost.model.ts +0 -20
- package/src/models/company.model.ts +0 -975
- package/src/models/contact-us/resquest.model.ts +0 -87
- package/src/models/crud/crud.ts +0 -30
- package/src/models/customCollection.model.ts +0 -47
- package/src/models/customer/customer.model.ts +0 -85
- package/src/models/deviceChangeReq.ts +0 -150
- package/src/models/dispatch.model.ts +0 -99
- package/src/models/feed.models.ts +0 -104
- package/src/models/geofence.model.ts +0 -61
- package/src/models/leaveApplicationPost.model.ts +0 -79
- package/src/models/license.model.ts +0 -215
- package/src/models/meeting.model.ts +0 -80
- package/src/models/meter.model.ts +0 -62
- package/src/models/missingPunchPost.model.ts +0 -84
- package/src/models/offline.model.ts +0 -1133
- package/src/models/post.model.ts +0 -105
- package/src/models/printDetailsScreen.model.ts +0 -30
- package/src/models/pushNotifications/pushNotification.model.ts +0 -17
- package/src/models/report-actions.model.ts +0 -57
- package/src/models/report-definition-details.model.ts +0 -89
- package/src/models/report-definition.model.ts +0 -26
- package/src/models/report-definitions-summary.model.ts +0 -59
- package/src/models/report-detail-data.model.ts +0 -49
- package/src/models/report-visibility.model.ts +0 -44
- package/src/models/report.model.ts +0 -179
- package/src/models/reportGenerator.model.ts +0 -883
- package/src/models/response.model.ts +0 -31
- package/src/models/steps.factory.model.ts +0 -195
- package/src/models/storeGupShupLog.model.ts +0 -49
- package/src/models/tasks/sub-task-group.model.ts +0 -173
- package/src/models/tasks/tags.model.ts +0 -113
- package/src/models/tasks/task-group.model.ts +0 -172
- package/src/models/tasks/task.model.ts +0 -681
- package/src/models/user.model.ts +0 -319
- package/src/models/utility.model.ts +0 -100
- package/src/models/visitorManagement/acknowledgement.model.ts +0 -71
- package/src/models/visitorManagement/invite.model.ts +0 -406
- package/src/models/visitorManagement/newIn.model.ts +0 -82
- package/src/models/visitorManagement/selfServe.model.ts +0 -58
- package/src/models/worklogPost.model.ts +0 -8
- package/src/services/customer.ts +0 -382
- package/src/services/meeting.ts +0 -123
- package/test/1.ts +0 -13
- package/test/db.js +0 -19
- package/test/firebaseConfig.js +0 -1
- package/tsconfig.json +0 -16
@@ -0,0 +1,354 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.CustomerServices = void 0;
|
7
|
+
const company_model_1 = require("../models/company.model");
|
8
|
+
const customCollection_model_1 = require("../models/customCollection.model");
|
9
|
+
const customer_model_1 = require("../models/customer/customer.model");
|
10
|
+
const offline_model_1 = require("../models/offline.model");
|
11
|
+
const response_model_1 = require("../models/response.model");
|
12
|
+
const user_model_1 = require("../models/user.model");
|
13
|
+
const fs_1 = require("fs");
|
14
|
+
const crud_1 = __importDefault(require("../models/crud/crud"));
|
15
|
+
class CustomerServices {
|
16
|
+
static async createCustomer(firestore, connection, arrayUnion, customerNUserInfo) {
|
17
|
+
const curdService = new crud_1.default(connection);
|
18
|
+
try {
|
19
|
+
const companyId = customerNUserInfo.companyId;
|
20
|
+
const userId = customerNUserInfo.userId;
|
21
|
+
const customerObj = await this.createObjForAddingCustomer(customerNUserInfo.extra.extraData);
|
22
|
+
const objectToSave = JSON.parse(JSON.stringify(customerObj));
|
23
|
+
objectToSave.id = customerNUserInfo.id;
|
24
|
+
let qryStr = `INSERT INTO Customers
|
25
|
+
(companyId, GSTNo, address,
|
26
|
+
city, contactName, contactNo,
|
27
|
+
customerName, state, zipcode)
|
28
|
+
VALUES
|
29
|
+
("${companyId}", "${objectToSave.GSTNo}",
|
30
|
+
"${objectToSave.address}", "${objectToSave.city}",
|
31
|
+
"${objectToSave.contactName}", "${objectToSave.contactNo}",
|
32
|
+
"${objectToSave.customerName}", "${objectToSave.state}",
|
33
|
+
"${objectToSave.zipcode}")`;
|
34
|
+
const insertRes = await curdService.query(qryStr);
|
35
|
+
const customerId = insertRes.insertId;
|
36
|
+
const contactInfo = {
|
37
|
+
customerId: customerId,
|
38
|
+
contactName: objectToSave.contactName,
|
39
|
+
contactNo: objectToSave.contactNo,
|
40
|
+
designation: null,
|
41
|
+
alternateContactNo: null
|
42
|
+
};
|
43
|
+
const infoToSave = JSON.parse(JSON.stringify(contactInfo));
|
44
|
+
await this.saveContactInfoToDB(connection, infoToSave);
|
45
|
+
console.log(objectToSave.customerName);
|
46
|
+
let isWorkAreaDocPresent = false;
|
47
|
+
const workAreaDoc = await firestore.collection("CustomCollections")
|
48
|
+
.doc(companyId)
|
49
|
+
.collection("Users")
|
50
|
+
.doc(userId)
|
51
|
+
.get();
|
52
|
+
if (workAreaDoc.exists) {
|
53
|
+
isWorkAreaDocPresent = true;
|
54
|
+
}
|
55
|
+
if (isWorkAreaDocPresent) {
|
56
|
+
await firestore.collection("CustomCollections")
|
57
|
+
.doc(companyId)
|
58
|
+
.collection("Users")
|
59
|
+
.doc(userId)
|
60
|
+
.update({ workAreas: arrayUnion(objectToSave.city) });
|
61
|
+
}
|
62
|
+
else {
|
63
|
+
await firestore.collection("CustomCollections")
|
64
|
+
.doc(companyId)
|
65
|
+
.collection("Users")
|
66
|
+
.doc(userId)
|
67
|
+
.set({
|
68
|
+
id: userId,
|
69
|
+
workAreas: [objectToSave.city]
|
70
|
+
});
|
71
|
+
}
|
72
|
+
const userInfo = await user_model_1.User.getUserInfoById(firestore, userId, companyId);
|
73
|
+
const customerCardObj = await this.createCustomerCard(customerNUserInfo, userInfo);
|
74
|
+
const userRef = offline_model_1.Offline.createRefForUser(firestore, companyId, userId);
|
75
|
+
customerCardObj.id = userRef.id;
|
76
|
+
await userRef.set(customerCardObj);
|
77
|
+
await offline_model_1.Offline.sendFeedToManagers(firestore, companyId, userId, customerCardObj);
|
78
|
+
await offline_model_1.Offline.deleteInfoFromIncoming(firestore, customerNUserInfo.id);
|
79
|
+
console.log("Doc deleted from incoming collection");
|
80
|
+
return new response_model_1.HttpResponseAndErrorHandling(200, "Created", null, null).getSuccessResponse();
|
81
|
+
}
|
82
|
+
catch (error) {
|
83
|
+
console.log(error);
|
84
|
+
return new response_model_1.HttpResponseAndErrorHandling(400, "Failed", null, 400);
|
85
|
+
}
|
86
|
+
}
|
87
|
+
static async createCustomerCard(customerInfo, userInfo) {
|
88
|
+
const incomingExtraData = customerInfo.extra.extraData;
|
89
|
+
const customerName = incomingExtraData.customerName;
|
90
|
+
const userName = userInfo.name;
|
91
|
+
const description = `${customerName} added by ${userName}`;
|
92
|
+
const customerCard = { ...customerInfo };
|
93
|
+
const time = customerInfo.createdAt;
|
94
|
+
const address = incomingExtraData.address;
|
95
|
+
const city = incomingExtraData.city;
|
96
|
+
const zipcode = incomingExtraData.zipcode;
|
97
|
+
const contactNo = incomingExtraData.contactNo;
|
98
|
+
const state = incomingExtraData.state;
|
99
|
+
const gstNo = incomingExtraData.gstNo;
|
100
|
+
const contactName = incomingExtraData.contactName;
|
101
|
+
const extraData = {
|
102
|
+
"customerName": customerName,
|
103
|
+
"userName": userName,
|
104
|
+
"time": time,
|
105
|
+
"date": new Date(time).toLocaleDateString(),
|
106
|
+
"address": address,
|
107
|
+
"city": city,
|
108
|
+
"zipcode": zipcode,
|
109
|
+
"contactNo": contactNo,
|
110
|
+
"state": state,
|
111
|
+
"gstNo": gstNo,
|
112
|
+
"contactName": contactName
|
113
|
+
};
|
114
|
+
delete customerCard.extra;
|
115
|
+
customerCard.extraData = extraData;
|
116
|
+
customerCard.description = description;
|
117
|
+
customerCard.actionType = "worklog";
|
118
|
+
return customerCard;
|
119
|
+
}
|
120
|
+
static async createObjForAddingCustomer(extraData) {
|
121
|
+
const customer = new customer_model_1.Customer(extraData.customerName, extraData.address, extraData.zipcode, extraData.city.toUpperCase(), extraData.state.toUpperCase(), extraData.gstNo, extraData.contactName, extraData.contactNo);
|
122
|
+
return customer;
|
123
|
+
}
|
124
|
+
static async addCustomerContact(firestore, connection, customerContactNUserInfo) {
|
125
|
+
try {
|
126
|
+
const companyId = customerContactNUserInfo.companyId;
|
127
|
+
const userId = customerContactNUserInfo.userId;
|
128
|
+
const customerId = customerContactNUserInfo.extra.extraData.customerNameId;
|
129
|
+
console.log(companyId, customerId);
|
130
|
+
let contactObj = await this.createObjForContact(customerContactNUserInfo.extra.extraData);
|
131
|
+
const contactObjToSave = JSON.parse(JSON.stringify(contactObj));
|
132
|
+
await this.saveContactInfoToDB(connection, contactObjToSave);
|
133
|
+
const userInfo = await user_model_1.User.getUserInfoById(firestore, userId, companyId);
|
134
|
+
const contactCard = await this.createContactCard(customerContactNUserInfo, userInfo);
|
135
|
+
const userRef = offline_model_1.Offline.createRefForUser(firestore, companyId, userId);
|
136
|
+
contactCard.id = userRef.id;
|
137
|
+
await userRef.set(contactCard);
|
138
|
+
await offline_model_1.Offline.sendFeedToManagers(firestore, companyId, userId, contactCard);
|
139
|
+
await offline_model_1.Offline.deleteInfoFromIncoming(firestore, customerContactNUserInfo.id);
|
140
|
+
console.log("Doc deleted from incoming collection");
|
141
|
+
return new response_model_1.HttpResponseAndErrorHandling(200, "Success", null, null);
|
142
|
+
}
|
143
|
+
catch (error) {
|
144
|
+
return new response_model_1.HttpResponseAndErrorHandling(400, error, null, null);
|
145
|
+
}
|
146
|
+
}
|
147
|
+
static async saveContactInfoToDB(connection, contactInfo) {
|
148
|
+
const curdService = new crud_1.default(connection);
|
149
|
+
try {
|
150
|
+
let qryStr = `INSERT INTO Contacts
|
151
|
+
(customerId, alternateContactNo,
|
152
|
+
contactName, contactNo,
|
153
|
+
designation)
|
154
|
+
VALUES ("${contactInfo.customerId}",
|
155
|
+
"${contactInfo.alternateContactNo}",
|
156
|
+
"${contactInfo.contactName}",
|
157
|
+
"${contactInfo.contactNo}",
|
158
|
+
"${contactInfo.designation}")`;
|
159
|
+
const result = await curdService.query(qryStr);
|
160
|
+
console.log(result);
|
161
|
+
}
|
162
|
+
catch (error) {
|
163
|
+
console.error(error);
|
164
|
+
}
|
165
|
+
}
|
166
|
+
static async createContactCard(contactInfo, userInfo) {
|
167
|
+
const incomingExtraData = contactInfo.extra.extraData;
|
168
|
+
const customerName = incomingExtraData.customerName;
|
169
|
+
const contactName = incomingExtraData.contactName;
|
170
|
+
const contactNo = incomingExtraData.contactNo;
|
171
|
+
const designation = incomingExtraData.designation;
|
172
|
+
const userName = userInfo.name;
|
173
|
+
const description = `${contactName} of ${customerName} added by ${userName}`;
|
174
|
+
const contactCard = { ...contactInfo };
|
175
|
+
const time = contactInfo.createdAt;
|
176
|
+
const extraData = {
|
177
|
+
"customerName": customerName,
|
178
|
+
"userName": userName,
|
179
|
+
"time": time,
|
180
|
+
"contactName": contactName,
|
181
|
+
"contactNo": contactNo,
|
182
|
+
"designation": designation,
|
183
|
+
"date": new Date(time).toLocaleDateString(),
|
184
|
+
"alternateContactNo": incomingExtraData.alternateContactNo
|
185
|
+
};
|
186
|
+
delete contactCard.extra;
|
187
|
+
contactCard.extraData = extraData;
|
188
|
+
contactCard.description = description;
|
189
|
+
contactCard.actionType = "worklog";
|
190
|
+
return contactCard;
|
191
|
+
}
|
192
|
+
static async createObjForContact(contactInfo) {
|
193
|
+
const customerContact = new customer_model_1.CustomerContact(contactInfo.customerNameId, contactInfo.contactName, contactInfo.contactNo, contactInfo.alternateContactNo, contactInfo.designation);
|
194
|
+
return customerContact;
|
195
|
+
}
|
196
|
+
static async addCustomers(firestore, nickName, customerInfo) {
|
197
|
+
let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
|
198
|
+
const filteredCustomerInfo = {
|
199
|
+
GSTNo: customerInfo.gstNo,
|
200
|
+
address: customerInfo.address,
|
201
|
+
city: customerInfo.city,
|
202
|
+
contactName: null,
|
203
|
+
contactNo: null,
|
204
|
+
customerName: customerInfo.customerName,
|
205
|
+
state: customerInfo.state,
|
206
|
+
zipcode: customerInfo.zipcode
|
207
|
+
};
|
208
|
+
let isCustomerPresent = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").where("customerName", "==", filteredCustomerInfo.customerName).get();
|
209
|
+
isCustomerPresent.forEach(doc => console.log(doc.data()));
|
210
|
+
console.log(isCustomerPresent.empty);
|
211
|
+
if (isCustomerPresent.empty) {
|
212
|
+
let customerSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").doc();
|
213
|
+
let id = customerSnapshot.id;
|
214
|
+
filteredCustomerInfo.id = id;
|
215
|
+
customerSnapshot.set(filteredCustomerInfo);
|
216
|
+
return `${id} added successfully`;
|
217
|
+
}
|
218
|
+
}
|
219
|
+
static async addCustomerContactViaCsv(firestore, nickName, customerContactInfo) {
|
220
|
+
let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
|
221
|
+
let customerSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").where("customerId", "==", customerContactInfo.companyId).get();
|
222
|
+
let customerInfoId = customerSnapshot.docs[0].data().id;
|
223
|
+
let customerContactSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").doc(customerInfoId).collection("Contacts").doc();
|
224
|
+
customerContactInfo.id = customerContactSnapshot.id;
|
225
|
+
customerContactInfo.customerName = customerSnapshot.docs[0].data().customerName;
|
226
|
+
customerContactSnapshot.set(customerContactInfo);
|
227
|
+
return "Success";
|
228
|
+
}
|
229
|
+
static async addCustomerContactsViaJSON(firestore, nickName, customerContactInfo) {
|
230
|
+
let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
|
231
|
+
let customerSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").where("customerName", "==", customerContactInfo.customerName).get();
|
232
|
+
let customerInfoId = customerSnapshot.docs[0].data().id;
|
233
|
+
let contactSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").doc(customerInfoId).collection("Contacts").doc();
|
234
|
+
contactSnapshot.set(customerContactInfo.contactInfoToSave);
|
235
|
+
return `${contactSnapshot.id} in ${customerContactInfo.customerName}`;
|
236
|
+
}
|
237
|
+
static async deleteCustomerContact(firestore, nickName, customerContactInfo) {
|
238
|
+
let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
|
239
|
+
let customerSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").where("customerId", "==", customerContactInfo.companyId).get();
|
240
|
+
let customerInfoId = customerSnapshot.docs[0].data().id;
|
241
|
+
let customerContactSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").doc(customerInfoId).collection("Contacts").get();
|
242
|
+
customerContactSnapshot.forEach((doc) => {
|
243
|
+
doc.ref.delete();
|
244
|
+
});
|
245
|
+
return "deleted";
|
246
|
+
}
|
247
|
+
static async getCustomer(firestore, connection, companyId, phone) {
|
248
|
+
const curdService = new crud_1.default(connection);
|
249
|
+
let userWorkAreaDoc = await customCollection_model_1.CustomCollection.getUserWorkAreaList(firestore, companyId, phone);
|
250
|
+
let userWorkAreaList = JSON.stringify(userWorkAreaDoc.workAreas).replace("[", "").replace("]", "");
|
251
|
+
let formattedCustomerList = [];
|
252
|
+
if (userWorkAreaList.length) {
|
253
|
+
try {
|
254
|
+
let qryStr = `select c.id , c.customerName , c.city from Customers as c where city in (${userWorkAreaList}) or state in (${userWorkAreaList})`;
|
255
|
+
let result = await curdService.query(qryStr);
|
256
|
+
for (let customer of result) {
|
257
|
+
formattedCustomerList.push({
|
258
|
+
id: customer.id,
|
259
|
+
label: customer.customerName + ` (${customer.city})`
|
260
|
+
});
|
261
|
+
}
|
262
|
+
}
|
263
|
+
catch (error) {
|
264
|
+
console.log(error);
|
265
|
+
}
|
266
|
+
}
|
267
|
+
return formattedCustomerList;
|
268
|
+
}
|
269
|
+
static async getCustomerContact(firestore, connection, companyId, customerId) {
|
270
|
+
const curdService = new crud_1.default(connection);
|
271
|
+
try {
|
272
|
+
let qryStr = `SELECT con.id , con.contactName FROM Contacts as con where customerId = ${customerId};`;
|
273
|
+
let result = await curdService.query(qryStr);
|
274
|
+
let formattedCustomerList = [];
|
275
|
+
for (let contact of result) {
|
276
|
+
formattedCustomerList.push({
|
277
|
+
id: contact.id,
|
278
|
+
label: contact.contactName
|
279
|
+
});
|
280
|
+
}
|
281
|
+
return formattedCustomerList;
|
282
|
+
}
|
283
|
+
catch (error) {
|
284
|
+
console.log(error);
|
285
|
+
return error;
|
286
|
+
}
|
287
|
+
}
|
288
|
+
static async insertCustomerDetails(connection) {
|
289
|
+
const curdService = new crud_1.default(connection);
|
290
|
+
try {
|
291
|
+
let path = "/home/atishae/atishae/mobiOffice_web/mobioffice-cli/scripts/benaraScripts/customerList.json";
|
292
|
+
const customerInfo = (0, fs_1.readFileSync)(path, "utf-8");
|
293
|
+
const customerList = await JSON.parse(customerInfo);
|
294
|
+
console.log(customerList.length);
|
295
|
+
let count = 0;
|
296
|
+
for (let customer of customerList) {
|
297
|
+
let qryStr = `INSERT INTO Customers (companyId, GSTNo, address, city, contactName, contactNo, customerName, state, zipcode) VALUES ("GC5BOfo2Ibma9CJ4NRpM", "${customer.GSTNo}", "${customer.address}", "${customer.city}", "${customer.contactName}", "${customer.contactNo}", "${customer.customerName}", "${customer.state}", "${customer.zipcode}")`;
|
298
|
+
await curdService.query(qryStr);
|
299
|
+
count++;
|
300
|
+
console.log(count);
|
301
|
+
}
|
302
|
+
return customerList.length;
|
303
|
+
}
|
304
|
+
catch (error) {
|
305
|
+
console.log(error);
|
306
|
+
}
|
307
|
+
}
|
308
|
+
static async insertCustomerContact(connection) {
|
309
|
+
const curdService = new crud_1.default(connection);
|
310
|
+
try {
|
311
|
+
let path = "/home/atishae/atishae/mobiOffice_web/json/benara/data/customerContacts.json";
|
312
|
+
const contactInfo = (0, fs_1.readFileSync)(path, "utf-8");
|
313
|
+
const contactList = await JSON.parse(contactInfo);
|
314
|
+
// console.log(contactList[2452])
|
315
|
+
let count = 0;
|
316
|
+
for (let contact of contactList) {
|
317
|
+
count++;
|
318
|
+
console.log(count);
|
319
|
+
let customerQry = `SELECT c.id FROM Customers as c where c.customerName = "${contact.customerName}"`;
|
320
|
+
let customerIdResult = await curdService.query(customerQry);
|
321
|
+
let qryStr = `INSERT INTO Contacts (customerId, alternateContactNo, contactName, contactNo, designation) VALUES ("${customerIdResult[0].id}", "${contact.contactInfoToSave.alternateContactNo}", "${contact.contactInfoToSave.contactName}", "${contact.contactInfoToSave.contactNo}", ${null})`;
|
322
|
+
await curdService.query(qryStr);
|
323
|
+
}
|
324
|
+
return contactList.length;
|
325
|
+
}
|
326
|
+
catch (error) {
|
327
|
+
console.log(error);
|
328
|
+
}
|
329
|
+
}
|
330
|
+
static async inertUserWorkArea(connection) {
|
331
|
+
try {
|
332
|
+
let path = "/home/atishae/atishae/mobiOffice_web/json/benara/data/userworkarea.json";
|
333
|
+
const workAreaInfo = (0, fs_1.readFileSync)(path, "utf-8");
|
334
|
+
const workAreaList = await JSON.parse(workAreaInfo);
|
335
|
+
let count = 0;
|
336
|
+
for (let userArea of workAreaList) {
|
337
|
+
if (userArea.id == "47RfcTj4d2PBailEJvVpbgQ9EAf1") {
|
338
|
+
let workArea = JSON.stringify(userArea.workAreas).replace("[", "").replace("]", "");
|
339
|
+
console.log(workArea);
|
340
|
+
break;
|
341
|
+
}
|
342
|
+
count++;
|
343
|
+
console.log(count);
|
344
|
+
// let qryStr = `INSERT INTO WorkArea (companyId, userId, workArea) VALUES ("GC5BOfo2Ibma9CJ4NRpM", "${userArea.id}", "${userArea.workAreas}",)`
|
345
|
+
// await connection.execute(qryStr)
|
346
|
+
}
|
347
|
+
return workAreaList.length;
|
348
|
+
}
|
349
|
+
catch (error) {
|
350
|
+
console.log(error);
|
351
|
+
}
|
352
|
+
}
|
353
|
+
}
|
354
|
+
exports.CustomerServices = CustomerServices;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import * as admin from "firebase-admin";
|
2
|
+
import { MeetingSummary } from "../models/meeting.model";
|
3
|
+
import { Pool } from 'mysql2';
|
4
|
+
declare class MeetingServices {
|
5
|
+
static addMeetingInfo(firestore: admin.firestore.Firestore, meetingsDBConnection: Pool, storageRef: any, meetingInfo: any): Promise<{
|
6
|
+
statusCode: number;
|
7
|
+
message: string;
|
8
|
+
error: any;
|
9
|
+
} | {
|
10
|
+
statusCode: number;
|
11
|
+
message: string;
|
12
|
+
data: any;
|
13
|
+
}>;
|
14
|
+
static createMeetingSummary(storageRef: any, meetingInfo: any): Promise<MeetingSummary>;
|
15
|
+
static getOngoingMeetingsList(firestore: admin.firestore.Firestore, nickName: string, phone: string): Promise<admin.firestore.DocumentData[]>;
|
16
|
+
static getMeetingsListByUserId(firestore: admin.firestore.Firestore, companyId: string, actionId: string, userId: string): Promise<admin.firestore.DocumentData[]>;
|
17
|
+
static updateFeedForEndMeeting(firestore: admin.firestore.Firestore, meetingsDBConnection: Pool, companyId: string, userId: string, eventId: string, incomingDocId: string): Promise<string>;
|
18
|
+
}
|
19
|
+
export { MeetingServices };
|
@@ -0,0 +1,109 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.MeetingServices = void 0;
|
4
|
+
const action_model_1 = require("../models/action.model");
|
5
|
+
const company_model_1 = require("../models/company.model");
|
6
|
+
const feed_models_1 = require("../models/feed.models");
|
7
|
+
const meeting_model_1 = require("../models/meeting.model");
|
8
|
+
const offline_model_1 = require("../models/offline.model");
|
9
|
+
const response_model_1 = require("../models/response.model");
|
10
|
+
const user_model_1 = require("../models/user.model");
|
11
|
+
class MeetingServices {
|
12
|
+
static async addMeetingInfo(firestore, meetingsDBConnection, storageRef, meetingInfo) {
|
13
|
+
try {
|
14
|
+
let incomingDocId = meetingInfo.id;
|
15
|
+
const companyId = meetingInfo.companyId;
|
16
|
+
const createdAt = meetingInfo.createdAt;
|
17
|
+
const userId = meetingInfo.userId;
|
18
|
+
const meetingSummary = await this.createMeetingSummary(storageRef, meetingInfo);
|
19
|
+
const meetingDoc = { ...meetingInfo };
|
20
|
+
const contactName = meetingInfo.extra.extraData.contactName;
|
21
|
+
const customerName = meetingInfo.extra.extraData.customerName;
|
22
|
+
meetingDoc.extraData = meetingSummary;
|
23
|
+
delete meetingDoc.extra;
|
24
|
+
const description = `met with ${contactName} of ${customerName}`;
|
25
|
+
const meetingDocToSave = JSON.parse(JSON.stringify(meetingDoc));
|
26
|
+
meetingDocToSave.actionType = meetingInfo.extra.actionType;
|
27
|
+
meetingDocToSave.description = description;
|
28
|
+
meetingDocToSave.extraData.date = createdAt;
|
29
|
+
meetingDocToSave.extraData["Start Time"] = createdAt;
|
30
|
+
meetingDocToSave.extraData["End Time"] = null;
|
31
|
+
console.log(meetingDocToSave);
|
32
|
+
const actionId = meetingInfo.extra.actionId;
|
33
|
+
const meetingDocRef = firestore.collection("Companies")
|
34
|
+
.doc(companyId)
|
35
|
+
.collection("Actions")
|
36
|
+
.doc(actionId)
|
37
|
+
.collection("meetings")
|
38
|
+
.doc();
|
39
|
+
meetingDocToSave.eventId = meetingDocRef.id;
|
40
|
+
meetingDocToSave.id = meetingDocRef.id;
|
41
|
+
meetingDocRef.set(meetingDocToSave);
|
42
|
+
let userDetails = await user_model_1.User.getUserInfoById(firestore, userId, companyId);
|
43
|
+
let userName = userDetails?.name;
|
44
|
+
await meeting_model_1.MeetingSummary.syncReportDBFirebaseUserEntries(meetingsDBConnection, meetingDocToSave, userName);
|
45
|
+
const userRef = await offline_model_1.Offline.createRefForUser(firestore, companyId, userId);
|
46
|
+
meetingDocToSave.id = userRef.id;
|
47
|
+
await userRef.set(meetingDocToSave);
|
48
|
+
console.log("Sent feed to user");
|
49
|
+
await offline_model_1.Offline.sendFeedToManagers(firestore, companyId, userId, meetingDocToSave);
|
50
|
+
console.log("Sent feeds to managers");
|
51
|
+
await offline_model_1.Offline.deleteInfoFromIncoming(firestore, incomingDocId);
|
52
|
+
console.log("Document deleted from incoming");
|
53
|
+
return new response_model_1.HttpResponseAndErrorHandling(200, "Created", null, null).getSuccessResponse();
|
54
|
+
}
|
55
|
+
catch (error) {
|
56
|
+
console.log(error);
|
57
|
+
return new response_model_1.HttpResponseAndErrorHandling(400, "Failed", null, 400).getErrorResponse();
|
58
|
+
}
|
59
|
+
}
|
60
|
+
static async createMeetingSummary(storageRef, meetingInfo) {
|
61
|
+
try {
|
62
|
+
const actionName = meetingInfo.actionName;
|
63
|
+
const incomingExtraData = meetingInfo.extra.extraData;
|
64
|
+
const contactName = incomingExtraData.contactName;
|
65
|
+
const customerName = incomingExtraData.customerName;
|
66
|
+
const base64Img = incomingExtraData.meetingImage;
|
67
|
+
const createdAt = meetingInfo.createdAt;
|
68
|
+
const meetingImageUrl = await offline_model_1.Offline.uploadImg(storageRef, base64Img, actionName, createdAt);
|
69
|
+
const meetingSummary = new meeting_model_1.MeetingSummary(customerName, contactName, meetingImageUrl);
|
70
|
+
return meetingSummary;
|
71
|
+
}
|
72
|
+
catch (error) {
|
73
|
+
console.log(error);
|
74
|
+
throw new Error(error);
|
75
|
+
}
|
76
|
+
}
|
77
|
+
static async getOngoingMeetingsList(firestore, nickName, phone) {
|
78
|
+
let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
|
79
|
+
let actionId = await action_model_1.Action.getActionId(firestore, companyId, "meeting");
|
80
|
+
let userId = await user_model_1.User.getUserIdByPhone(firestore, phone);
|
81
|
+
const meetingDocList = await MeetingServices.getMeetingsListByUserId(firestore, companyId, actionId, userId);
|
82
|
+
return meetingDocList;
|
83
|
+
}
|
84
|
+
static async getMeetingsListByUserId(firestore, companyId, actionId, userId) {
|
85
|
+
const meetingDocRef = await firestore.collection("Companies")
|
86
|
+
.doc(companyId)
|
87
|
+
.collection("Actions")
|
88
|
+
.doc(actionId)
|
89
|
+
.collection("meetings")
|
90
|
+
.where("userId", "==", userId)
|
91
|
+
.get();
|
92
|
+
return meetingDocRef.docs.map((doc) => {
|
93
|
+
return doc.data();
|
94
|
+
});
|
95
|
+
}
|
96
|
+
static async updateFeedForEndMeeting(firestore, meetingsDBConnection, companyId, userId, eventId, incomingDocId) {
|
97
|
+
let time = new Date().getTime();
|
98
|
+
await action_model_1.Action.updateMeetingStatus(firestore, companyId, userId, eventId, time);
|
99
|
+
await meeting_model_1.MeetingSummary.updateEndTimeToReportDB(meetingsDBConnection, eventId, time);
|
100
|
+
let managersList = await offline_model_1.Offline.getUserManagersList(firestore, companyId, userId);
|
101
|
+
for (let manager of managersList) {
|
102
|
+
await feed_models_1.Feeds.updateEndMeetingsTimeInFeeds(firestore, manager, companyId, eventId, time);
|
103
|
+
}
|
104
|
+
await feed_models_1.Feeds.updateEndMeetingsTimeInFeeds(firestore, userId, companyId, eventId, time);
|
105
|
+
await offline_model_1.Offline.deleteInfoFromIncoming(firestore, incomingDocId);
|
106
|
+
return "success";
|
107
|
+
}
|
108
|
+
}
|
109
|
+
exports.MeetingServices = MeetingServices;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "mobioffice-cli",
|
3
|
-
"version": "0.
|
3
|
+
"version": "1.0.1",
|
4
4
|
"description": "mobioffice sdk npm ",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"types": "lib/index.d.ts",
|
@@ -12,6 +12,9 @@
|
|
12
12
|
"type": "git",
|
13
13
|
"url": "git+https://github.com/mj6uc/mobioffice-cli.git"
|
14
14
|
},
|
15
|
+
"files": [
|
16
|
+
"lib"
|
17
|
+
],
|
15
18
|
"keywords": [
|
16
19
|
"mobioffice"
|
17
20
|
],
|
package/.prettierrc
DELETED
package/a.js
DELETED