@optimiser/common 1.0.261 → 1.0.264

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.
@@ -620,6 +620,15 @@ var GetDateRangeFromOperatorValue = function (operator, fiscalMonth, fiscalFrom)
620
620
  startDate = momentObj.clone().add(1, "years").startOf('year').format(requiredDateFormat);
621
621
  endDate = momentObj.clone().add(1, "years").endOf('year').format(requiredDateFormat);
622
622
  break;
623
+ case "Year to Date":
624
+ endDate = momentObj.clone().format(requiredDateFormat);
625
+ if (parseInt(momentObj.format('M')) > 3) {
626
+ startDate = momentObj.clone().startOf('month').month("Apr").format(requiredDateFormat);
627
+ }
628
+ else {
629
+ startDate = momentObj.clone().subtract(1, "years").startOf('month').month("Apr").format(requiredDateFormat);
630
+ }
631
+ break;
623
632
  default:
624
633
  break;
625
634
  }
@@ -106,8 +106,7 @@ var SyncContactWithOperaOnEmailUnsubscribe = function (db, email) {
106
106
  OperaErrorHandler(db, err);
107
107
  }
108
108
  else if (result && result.Setting && result.Setting.AppsSubscribed && result.Setting.AppsSubscribed.indexOf(constants_1.default.STORE_APP_NAMES.OPERA_PMS) >= 0) {
109
- /*Update By Suraj on 11Mar2022, $or condition added for searching Contact by Secondary Email as well */
110
- db.collection("Contact").findOne({ $or: [{ Email: new RegExp("^" + email + "$", "i") }, { SecondaryEmail: new RegExp("^" + email + "$", "i") }], "IsActive": true }, { projection: { "_id": 1, "OperaProfileId": 1 } }, function (errContact, resultContact) {
109
+ db.collection("Contact").findOne({ Email: new RegExp("^" + email + "$", "i"), "IsActive": true }, { projection: { "_id": 1, "OperaProfileId": 1 } }, function (errContact, resultContact) {
111
110
  if (errContact) {
112
111
  if (errContact.name)
113
112
  errContact.name += " - while fetching contact to update contact opera sync flag";
@@ -205,4 +205,14 @@ declare function ValidateSanitizeUserInput(inputFields: AnyObjectInterface, page
205
205
  * @return N/A
206
206
  */
207
207
  declare function CreateBanquetingVATSettingsData(msp_d: AnyObjectInterface, db: Db, sdata: AnyObjectInterface, next: NextFunction): Promise<void>;
208
- export { CheckForWhiteListedDomain, ReturnJsonResponse, ConvertFileByteSize, GetObjectByKeyValueFromList, IsEqualArrays, IsEqualValue, CheckUserProfileField, GetPageFieldData, GetPageObjectSchema, GetFieldDetail, UpdateRecentViewObject, UpdateRecentViewFields, SyncChildObjectData, SyncParentObjectData, DeleteFieldInOtherCollection, SyncFieldInSameCollection, SyncFieldInSameCollectionByObjectID, SyncFieldInSameCollectionByObjectIDWithPromise, SyncFieldInOtherCollection, SyncUserInOtherCollection, BuildLookupDataField, CheckDataBeforeAdd, CheckDataBeforeUpdate, BuildGridFieldProjection, BuildFieldProjection, BuildLookupFieldProjection, FilterConditions, GirdHeaderFilters, FieldsGridHeaderFilters, AddLog, CheckFilterFieldsProjection, VerifyEmailPassword, GetMyTeamUsers, ExtractChildUsersTree, GetMaxKeyValueListSchema, VerifyAWSEmailConfig, GenerateId, SyncUserDetailsWithMasterDB, SignoutUserFromAllDevices, SignoutUsersWithPromise, SignoutMultipleUsersFromAllDevices, UserLicenseConsumeCalculate, sendMailWithUserAccount, GetEmailClientConfigs, GetCompanyEncryptionKey, ExecuteDynamicDMLQuery, ExecuteDynamicDQLQuery, GetUserProfilePermissions, MakeUserPasswordInvalid, ConvertJsonToXLXS, SendResetPasswordMail, SendMailToSupport, MailTemplateStructure, SendMailToCustomer, parseMSPCookie, GetIPDetailsFromReq, isEmptyObj, SyncListSchemaFieldInOtherCollection, UpdateTagCountAfterDelete, SyncTagCountAfterUpdate, ReactivateFieldInOtherCollection, SyncUserLicenceConsumedCount, BroadCastEventToAllCompanyUsers, CheckDataPermission, SyncCompanyLicenceInMasterCompanyAfterAdd, NextServiceDateForDashboard, CheckDateNotInPast, GetWeekDayByDayAndOccurance, GetInterValFromOccurance, GetWeekDayInfoInMonth, GetDayIndex, RemoveFieldsFromFilters, GetUserProfile, CheckPageAuthentication, ErrorHandlerForServices, CheckCaptcha, ValidateSanitizeUserInput, CreateBanquetingVATSettingsData };
208
+ /**
209
+ * TODO: To Check if given user has access to Report Folder - THIS FUNCTION IS COPIED FROM report_controller.js
210
+ *
211
+ * @param {object} report Contains Report information
212
+ * @param {object} db Database connection object
213
+ * @param {object} msp_d Contains User id information
214
+ * @param folderActiveStatus boolean default value true
215
+ * @return N/A
216
+ */
217
+ declare function CheckReportFolderAccess(report: AnyObjectInterface, db: Db, msp_d: AnyObjectInterface, folderActiveStatus?: boolean): Promise<boolean>;
218
+ export { CheckForWhiteListedDomain, ReturnJsonResponse, ConvertFileByteSize, GetObjectByKeyValueFromList, IsEqualArrays, IsEqualValue, CheckUserProfileField, GetPageFieldData, GetPageObjectSchema, GetFieldDetail, UpdateRecentViewObject, UpdateRecentViewFields, SyncChildObjectData, SyncParentObjectData, DeleteFieldInOtherCollection, SyncFieldInSameCollection, SyncFieldInSameCollectionByObjectID, SyncFieldInSameCollectionByObjectIDWithPromise, SyncFieldInOtherCollection, SyncUserInOtherCollection, BuildLookupDataField, CheckDataBeforeAdd, CheckDataBeforeUpdate, BuildGridFieldProjection, BuildFieldProjection, BuildLookupFieldProjection, FilterConditions, GirdHeaderFilters, FieldsGridHeaderFilters, AddLog, CheckFilterFieldsProjection, VerifyEmailPassword, GetMyTeamUsers, ExtractChildUsersTree, GetMaxKeyValueListSchema, VerifyAWSEmailConfig, GenerateId, SyncUserDetailsWithMasterDB, SignoutUserFromAllDevices, SignoutUsersWithPromise, SignoutMultipleUsersFromAllDevices, UserLicenseConsumeCalculate, sendMailWithUserAccount, GetEmailClientConfigs, GetCompanyEncryptionKey, ExecuteDynamicDMLQuery, ExecuteDynamicDQLQuery, GetUserProfilePermissions, MakeUserPasswordInvalid, ConvertJsonToXLXS, SendResetPasswordMail, SendMailToSupport, MailTemplateStructure, SendMailToCustomer, parseMSPCookie, GetIPDetailsFromReq, isEmptyObj, SyncListSchemaFieldInOtherCollection, UpdateTagCountAfterDelete, SyncTagCountAfterUpdate, ReactivateFieldInOtherCollection, SyncUserLicenceConsumedCount, BroadCastEventToAllCompanyUsers, CheckDataPermission, SyncCompanyLicenceInMasterCompanyAfterAdd, NextServiceDateForDashboard, CheckDateNotInPast, GetWeekDayByDayAndOccurance, GetInterValFromOccurance, GetWeekDayInfoInMonth, GetDayIndex, RemoveFieldsFromFilters, GetUserProfile, CheckPageAuthentication, ErrorHandlerForServices, CheckCaptcha, ValidateSanitizeUserInput, CreateBanquetingVATSettingsData, CheckReportFolderAccess };
@@ -80,7 +80,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
80
80
  return (mod && mod.__esModule) ? mod : { "default": mod };
81
81
  };
82
82
  Object.defineProperty(exports, "__esModule", { value: true });
83
- exports.CreateBanquetingVATSettingsData = exports.ValidateSanitizeUserInput = exports.CheckCaptcha = exports.ErrorHandlerForServices = exports.CheckPageAuthentication = exports.GetUserProfile = exports.RemoveFieldsFromFilters = exports.GetDayIndex = exports.GetWeekDayInfoInMonth = exports.GetInterValFromOccurance = exports.GetWeekDayByDayAndOccurance = exports.CheckDateNotInPast = exports.NextServiceDateForDashboard = exports.SyncCompanyLicenceInMasterCompanyAfterAdd = exports.CheckDataPermission = exports.BroadCastEventToAllCompanyUsers = exports.SyncUserLicenceConsumedCount = exports.ReactivateFieldInOtherCollection = exports.SyncTagCountAfterUpdate = exports.UpdateTagCountAfterDelete = exports.SyncListSchemaFieldInOtherCollection = exports.isEmptyObj = exports.GetIPDetailsFromReq = exports.parseMSPCookie = exports.SendMailToCustomer = exports.MailTemplateStructure = exports.SendMailToSupport = exports.SendResetPasswordMail = exports.ConvertJsonToXLXS = exports.MakeUserPasswordInvalid = exports.GetUserProfilePermissions = exports.ExecuteDynamicDQLQuery = exports.ExecuteDynamicDMLQuery = exports.GetCompanyEncryptionKey = exports.GetEmailClientConfigs = exports.sendMailWithUserAccount = exports.UserLicenseConsumeCalculate = exports.SignoutMultipleUsersFromAllDevices = exports.SignoutUsersWithPromise = exports.SignoutUserFromAllDevices = exports.SyncUserDetailsWithMasterDB = exports.GenerateId = exports.VerifyAWSEmailConfig = exports.GetMaxKeyValueListSchema = exports.ExtractChildUsersTree = exports.GetMyTeamUsers = exports.VerifyEmailPassword = exports.CheckFilterFieldsProjection = exports.AddLog = exports.FieldsGridHeaderFilters = exports.GirdHeaderFilters = exports.FilterConditions = exports.BuildLookupFieldProjection = exports.BuildFieldProjection = exports.BuildGridFieldProjection = exports.CheckDataBeforeUpdate = exports.CheckDataBeforeAdd = exports.BuildLookupDataField = exports.SyncUserInOtherCollection = exports.SyncFieldInOtherCollection = exports.SyncFieldInSameCollectionByObjectIDWithPromise = exports.SyncFieldInSameCollectionByObjectID = exports.SyncFieldInSameCollection = exports.DeleteFieldInOtherCollection = exports.SyncParentObjectData = exports.SyncChildObjectData = exports.UpdateRecentViewFields = exports.UpdateRecentViewObject = exports.GetFieldDetail = exports.GetPageObjectSchema = exports.GetPageFieldData = exports.CheckUserProfileField = exports.IsEqualValue = exports.IsEqualArrays = exports.GetObjectByKeyValueFromList = exports.ConvertFileByteSize = exports.ReturnJsonResponse = exports.CheckForWhiteListedDomain = void 0;
83
+ exports.CheckReportFolderAccess = exports.CreateBanquetingVATSettingsData = exports.ValidateSanitizeUserInput = exports.CheckCaptcha = exports.ErrorHandlerForServices = exports.CheckPageAuthentication = exports.GetUserProfile = exports.RemoveFieldsFromFilters = exports.GetDayIndex = exports.GetWeekDayInfoInMonth = exports.GetInterValFromOccurance = exports.GetWeekDayByDayAndOccurance = exports.CheckDateNotInPast = exports.NextServiceDateForDashboard = exports.SyncCompanyLicenceInMasterCompanyAfterAdd = exports.CheckDataPermission = exports.BroadCastEventToAllCompanyUsers = exports.SyncUserLicenceConsumedCount = exports.ReactivateFieldInOtherCollection = exports.SyncTagCountAfterUpdate = exports.UpdateTagCountAfterDelete = exports.SyncListSchemaFieldInOtherCollection = exports.isEmptyObj = exports.GetIPDetailsFromReq = exports.parseMSPCookie = exports.SendMailToCustomer = exports.MailTemplateStructure = exports.SendMailToSupport = exports.SendResetPasswordMail = exports.ConvertJsonToXLXS = exports.MakeUserPasswordInvalid = exports.GetUserProfilePermissions = exports.ExecuteDynamicDQLQuery = exports.ExecuteDynamicDMLQuery = exports.GetCompanyEncryptionKey = exports.GetEmailClientConfigs = exports.sendMailWithUserAccount = exports.UserLicenseConsumeCalculate = exports.SignoutMultipleUsersFromAllDevices = exports.SignoutUsersWithPromise = exports.SignoutUserFromAllDevices = exports.SyncUserDetailsWithMasterDB = exports.GenerateId = exports.VerifyAWSEmailConfig = exports.GetMaxKeyValueListSchema = exports.ExtractChildUsersTree = exports.GetMyTeamUsers = exports.VerifyEmailPassword = exports.CheckFilterFieldsProjection = exports.AddLog = exports.FieldsGridHeaderFilters = exports.GirdHeaderFilters = exports.FilterConditions = exports.BuildLookupFieldProjection = exports.BuildFieldProjection = exports.BuildGridFieldProjection = exports.CheckDataBeforeUpdate = exports.CheckDataBeforeAdd = exports.BuildLookupDataField = exports.SyncUserInOtherCollection = exports.SyncFieldInOtherCollection = exports.SyncFieldInSameCollectionByObjectIDWithPromise = exports.SyncFieldInSameCollectionByObjectID = exports.SyncFieldInSameCollection = exports.DeleteFieldInOtherCollection = exports.SyncParentObjectData = exports.SyncChildObjectData = exports.UpdateRecentViewFields = exports.UpdateRecentViewObject = exports.GetFieldDetail = exports.GetPageObjectSchema = exports.GetPageFieldData = exports.CheckUserProfileField = exports.IsEqualValue = exports.IsEqualArrays = exports.GetObjectByKeyValueFromList = exports.ConvertFileByteSize = exports.ReturnJsonResponse = exports.CheckForWhiteListedDomain = void 0;
84
84
  var moment_1 = __importDefault(require("moment"));
85
85
  var nodemailer_1 = __importDefault(require("nodemailer"));
86
86
  var mongodb_1 = require("mongodb");
@@ -3041,7 +3041,7 @@ function SendResetPasswordMail(db, userDetails, type) {
3041
3041
  }
3042
3042
  else {
3043
3043
  mailObj.subject = "Welcome to " + constants_1.default.ProjectName + ": Please activate your account";
3044
- mailObj.html = "<br/><body style='background-color: #eee;'>\n <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#eee;\">\n <tr>\n <td align=\"center\" valign=\"top\">\n <table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\">\n <tr>\n <td align=\"left\" valign=\"top\" bgcolor=\"#ffffff\" style=\"padding-top:16px; padding-bottom:12px; padding-left: 20px; padding-right: 20px; background-color: #fff; border-bottom: 1px solid #dee2e6;\">\n <img src=\"" + constants_1.default.ProjectDomain + "/images/MainLogo.png\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#fff\" style=\"background-color: #fff; text-align: left; padding-right: 20px; padding-left: 20px; font-size:16px; font-family:Arial, Helvetica, sans-serif; color:#000000;\">\n <p style=\"margin-top: 1em;\">Hello " + FirstName + ",</p>\n <p>Congratulations! We are pleased to advise that your user profile has been created and is ready to use. Just click on the link below to set up your password then you\u2019ll be ready to go.</p>\n <br>\n <p style=\"word-break: break-all;\">\n <a href='" + constants_1.default.ProjectDomain + "/user/noauth/setpassword/" + hash + "'>" + constants_1.default.ProjectDomain + "/user/noauth/setpassword/" + hash + "</a>\n </p>\n <br>\n <p>We hope that you enjoy your Optimiser platform; if you ever require assistance, our Support Team will be happy to help.</p>\n <p>Email : <a href=\"mailto:support@optimiser.com\">support@optimiser.com</a>, Phone : +44 (0)203 972 1666</p>\n <br>\n <p style=\"margin-bottom: 1em;\">\n Kind regards,<br>\n " + constants_1.default.ProjectName + " team\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#075DA8\" style=\" border-top: 1px solid #dee2e6; background-color: #075DA8 ;\">\n <p style=\"font-size:13px; font-family:Arial, Helvetica, sans-serif; color:#fff; margin:1.8em; font-weight:normal;\">\n <a href=\"https://www.optimiser.com/\" style=\"color:#fff; text-decoration:underline; \">www.optimiser.com</a> | <a href=\"mailto:support@optimiser.com\" style=\"color:#fff; text-decoration:underline; \">support@optimiser.com</a> | \n +44 (0)203 972 1666\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>";
3044
+ mailObj.html = "<br/><body style='background-color: #eee;'>\n <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#eee;\">\n <tr>\n <td align=\"center\" valign=\"top\">\n <table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\">\n <tr>\n <td align=\"left\" valign=\"top\" bgcolor=\"#ffffff\" style=\"padding-top:16px; padding-bottom:12px; padding-left: 20px; padding-right: 20px; background-color: #fff; border-bottom: 1px solid #dee2e6;\">\n <img src=\"" + constants_1.default.ProjectDomain + "/images/MainLogo.png\" alt=\"Optimiser\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#fff\" style=\"background-color: #fff; text-align: left; padding-right: 20px; padding-left: 20px; font-size:16px; font-family:Arial, Helvetica, sans-serif; color:#000000;\">\n <p style=\"margin-top: 1em;\">Hello " + FirstName + ",</p>\n <p>Congratulations! We are pleased to advise that your user profile has been created and is ready to use. Just click on the link below to set up your password then you\u2019ll be ready to go.</p>\n <br>\n <p style=\"word-break: break-all;\">\n <a href='" + constants_1.default.ProjectDomain + "/user/noauth/setpassword/" + hash + "'>" + constants_1.default.ProjectDomain + "/user/noauth/setpassword/" + hash + "</a>\n </p>\n <br>\n <p>We hope that you enjoy your Optimiser platform; if you ever require assistance, our Support Team will be happy to help.</p>\n <p>Email : <a href=\"mailto:support@optimiser.com\">support@optimiser.com</a>, Phone : +44 (0)203 972 1666</p>\n <br>\n <p style=\"margin-bottom: 1em;\">\n Kind regards,<br>\n " + constants_1.default.ProjectName + " team\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#075DA8\" style=\" border-top: 1px solid #dee2e6; background-color: #075DA8 ;\">\n <p style=\"font-size:13px; font-family:Arial, Helvetica, sans-serif; color:#fff; margin:1.8em; font-weight:normal;\">\n <a href=\"https://www.optimiser.com/\" style=\"color:#fff; text-decoration:underline; \">www.optimiser.com</a> | <a href=\"mailto:support@optimiser.com\" style=\"color:#fff; text-decoration:underline; \">support@optimiser.com</a> | \n +44 (0)203 972 1666\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>";
3045
3045
  }
3046
3046
  return [2 /*return*/, new Promise(function (resolve, reject) {
3047
3047
  mail_1.SendMail(mailObj).then(function (status) {
@@ -3074,7 +3074,7 @@ function SendMailToSupport(mailData, callback) {
3074
3074
  }
3075
3075
  domainName = 'domains (' + domainName.substr(0, domainName.length - 2) + ')';
3076
3076
  }
3077
- mailObj.html = "<body style='background-color: #eee;'>\n <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#eee;\">\n <tr>\n <td align=\"center\" valign=\"top\">\n <table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\">\n <tr>\n <td align=\"left\" valign=\"top\" bgcolor=\"#ffffff\" style=\"padding-top:16px; padding-bottom:12px; padding-left: 20px; padding-right: 20px; background-color: #fff; border-bottom: 1px solid #dee2e6;\">\n <img src=\"" + constants_1.default.ProjectDomain + "/images/MainLogo.png\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#fff\" style=\"background-color: #fff; text-align: left; padding-right: 20px; padding-left: 20px; font-size:16px; font-family:Arial, Helvetica, sans-serif; color:#000000;\">\n <p style=\"margin-top: 1em;\">Dear Support Team,</p>\n <p>It is requested to add " + domainName + " in Optimiser. Please add this domain & complete the further steps.</p>\n <br>\n <p style=\"margin-bottom: 1em;\">\n Regards,<br><br>\n " + mailData.UserName + "<br>\n " + mailData.UserEmailId + "\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#075DA8\" style=\" border-top: 1px solid #dee2e6; background-color: #075DA8 ;\">\n <p style=\"font-size:13px; font-family:Arial, Helvetica, sans-serif; color:#fff; margin:1.8em; font-weight:normal;\">\n <a href=\"https://www.optimiser.com/\" style=\"color:#fff; text-decoration:underline; \">www.optimiser.com</a> | +44 (0)203 972 1666\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>";
3077
+ mailObj.html = "<body style='background-color: #eee;'>\n <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#eee;\">\n <tr>\n <td align=\"center\" valign=\"top\">\n <table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\">\n <tr>\n <td align=\"left\" valign=\"top\" bgcolor=\"#ffffff\" style=\"padding-top:16px; padding-bottom:12px; padding-left: 20px; padding-right: 20px; background-color: #fff; border-bottom: 1px solid #dee2e6;\">\n <img src=\"" + constants_1.default.ProjectDomain + "/images/MainLogo.png\" alt=\"Optimiser\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#fff\" style=\"background-color: #fff; text-align: left; padding-right: 20px; padding-left: 20px; font-size:16px; font-family:Arial, Helvetica, sans-serif; color:#000000;\">\n <p style=\"margin-top: 1em;\">Dear Support Team,</p>\n <p>It is requested to add " + domainName + " in Optimiser. Please add this domain & complete the further steps.</p>\n <br>\n <p style=\"margin-bottom: 1em;\">\n Regards,<br><br>\n " + mailData.UserName + "<br>\n " + mailData.UserEmailId + "\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#075DA8\" style=\" border-top: 1px solid #dee2e6; background-color: #075DA8 ;\">\n <p style=\"font-size:13px; font-family:Arial, Helvetica, sans-serif; color:#fff; margin:1.8em; font-weight:normal;\">\n <a href=\"https://www.optimiser.com/\" style=\"color:#fff; text-decoration:underline; \">www.optimiser.com</a> | +44 (0)203 972 1666\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>";
3078
3078
  mail_1.SendMail(mailObj).then(function (status) {
3079
3079
  if (status && status.statuscode == 500)
3080
3080
  callback({ 'message': 'Validation failed', statuscode: 500, error: status });
@@ -3088,7 +3088,7 @@ function SendMailToSupport(mailData, callback) {
3088
3088
  }
3089
3089
  exports.SendMailToSupport = SendMailToSupport;
3090
3090
  function MailTemplateStructure(content) {
3091
- return "<html xmlns:v=\"urn:schemas-microsoft-com:vml\">\n <head>\n <style> v:* { behavior: url(#default#VML); }</style >\n </head>\n <body style='background-color: #fff;'>\n <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\n <!-- <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\"> -->\n <tr>\n <td align=\"center\" valign=\"top\">\n <table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\">\n <tr>\n <td align=\"left\" valign=\"top\" bgcolor=\"#ffffff\" style=\"padding-top:16px; padding-bottom:12px; padding-left: 20px; padding-right: 20px; background-color: #fff; border-bottom: 1px solid #fff;\">\n <img src=\"https://platform.optimiser.com/images/MainLogo.png\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#fff\" style=\"background-color: #fff; text-align: left; padding-right: 0px; padding-left: 0px; font-size:16px; font-family:Arial, Helvetica, sans-serif; color:#000000;\">\n " + content + "\n <p style=\"margin-bottom: 1em;\">\n Thanks,<br>\n " + constants_1.default.ProjectName + " team\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"##075DA8\" style=\" border-top: 1px solid #dee2e6; background-color: #075DA8 ;\">\n <p style=\"font-size:13px; font-family:Arial, Helvetica, sans-serif; color:#fff; margin:1.8em; font-weight:normal;\">\n <a href=\"https://www.optimiser.com/\" style=\"color:#fff; text-decoration:underline; \">www.optimiser.com</a> | <a href=\"mailto:support@optimiser.com\" style=\"color:#fff; text-decoration:underline; \">support@optimiser.com</a> | \n +44 (0)203 972 1666\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>";
3091
+ return "<html xmlns:v=\"urn:schemas-microsoft-com:vml\">\n <head>\n <style> v:* { behavior: url(#default#VML); }</style >\n </head>\n <body style='background-color: #fff;'>\n <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\n <!-- <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\"> -->\n <tr>\n <td align=\"center\" valign=\"top\">\n <table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\">\n <tr>\n <td align=\"left\" valign=\"top\" bgcolor=\"#ffffff\" style=\"padding-top:16px; padding-bottom:12px; padding-left: 20px; padding-right: 20px; background-color: #fff; border-bottom: 1px solid #fff;\">\n <img src=\"https://platform.optimiser.com/images/MainLogo.png\" alt=\"Optimiser\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#fff\" style=\"background-color: #fff; text-align: left; padding-right: 0px; padding-left: 0px; font-size:16px; font-family:Arial, Helvetica, sans-serif; color:#000000;\">\n " + content + "\n <p style=\"margin-bottom: 1em;\">\n Thanks,<br>\n " + constants_1.default.ProjectName + " team\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"##075DA8\" style=\" border-top: 1px solid #dee2e6; background-color: #075DA8 ;\">\n <p style=\"font-size:13px; font-family:Arial, Helvetica, sans-serif; color:#fff; margin:1.8em; font-weight:normal;\">\n <a href=\"https://www.optimiser.com/\" style=\"color:#fff; text-decoration:underline; \">www.optimiser.com</a> | <a href=\"mailto:support@optimiser.com\" style=\"color:#fff; text-decoration:underline; \">support@optimiser.com</a> | \n +44 (0)203 972 1666\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>";
3092
3092
  /* `<body style='background-color: #eee;'>
3093
3093
  <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" style="background:#eee;">
3094
3094
  <tr>
@@ -3138,7 +3138,7 @@ function SendMailToCustomer(mailData, callback) {
3138
3138
  if (mailData.RemainingPrice) {
3139
3139
  remainingPriceHTML = "<tr class=\"tax\">\n <td style=\"padding: .5rem .625rem .625rem; padding-top: 0; padding-bottom: 0; font-weight: 400; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">Remainig Amount</td>\n <td style=\"text-align: right; padding: 0.5rem 0.625rem 0.625rem 4rem; padding-top: 0; padding-bottom: 0; font-weight: 400; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">" + mailData.RemainingPrice + "</td>\n </tr>";
3140
3140
  }
3141
- mailObj.html = "<body style='background-color: #eee;'>\n <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#eee;\">\n <tr>\n <td align=\"center\" valign=\"top\">\n <table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\">\n <tr>\n <td align=\"left\" valign=\"top\" bgcolor=\"#ffffff\" style=\"padding-top:16px; padding-bottom:12px; padding-left: 20px; padding-right: 20px; background-color: #fff; border-bottom: 1px solid #dee2e6;\">\n <img src=\"" + constants_1.default.ProjectDomain + "/images/MainLogo.png\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#fff\" style=\"background-color: #fff; text-align: left; padding-right: 20px; padding-left: 20px; font-size:16px; font-family: inherit; color:#000000;\">\n <table class=\"invoice\" style=\"width:100%; padding: .5rem .625rem .625rem;\">\n <tr class=\"header\">\n <td class=\"\" style=\"padding: 1.5rem .625rem .625rem;\">\n <b>" + mailData.ShopName + "</b><br>\n " + mailData.Location + "\n </td>\n <td style=\"background: #fff; text-align: right; font-weight: 400; color: #322d28; padding: .5rem .625rem .625rem;\">\n <h2 style=\"font-weight: 400; font-size: 2rem; color: #1779ba;\">Invoice</h2>\n </td>\n </tr>\n <tr class=\"intro\">\n <td class=\"\" style=\"padding: .5rem .625rem .625rem;\">\n Hello, " + mailData.ClientName + ".\n </td>\n <td class=\"text-right\" style=\"text-align: right; padding: .5rem .625rem .625rem;\">\n <span style=\"font-weight: 350; text-transform: uppercase; letter-spacing: 1.5px; font-size: .8em;\">Order # " + (new Date()).getMilliseconds() + "</span><br>\n " + moment_1.default(new Date()).format("MMM DD, YYYY") + "\n </td>\n </tr>\n <tr class=\"details\">\n <td colspan=\"2\" style=\"padding-top: 4rem; padding-bottom: 0;\">\n <table style=\"width:100%; border-collapse: collapse;\">\n <thead>\n <tr>\n <th class=\"desc\" style=\"padding: .5rem .625rem .625rem; border-bottom: 1px solid #ddd;\">Service</th>\n <th class=\"id\" style=\"padding: .5rem .625rem .625rem; text-align: center; border-bottom: 1px solid #ddd;\">Description</th>\n <th class=\"qty\" style=\"padding: .5rem .625rem .625rem; text-align: center; border-bottom: 1px solid #ddd;\">Quantity</th>\n <th class=\"amt\" style=\"padding: .5rem .625rem .625rem; text-align: right; border-bottom: 1px solid #ddd;\">Subtotal</th>\n </tr>\n </thead>\n <tbody>\n <tr class=\"item\">\n <td class=\"desc\" style=\"padding: .5rem .625rem .625rem; border-bottom: 1px solid #ddd;\">" + mailData.ServiceName + "</td>\n <td class=\"id\" style=\"padding: .5rem .625rem .625rem; text-align: center; border-bottom: 1px solid #ddd;\"></td>\n <td class=\"qty\" style=\"padding: .5rem .625rem .625rem; text-align: center; border-bottom: 1px solid #ddd;\">1</td>\n <td class=\"amt\" style=\"padding: .5rem .625rem .625rem; text-align: right; border-bottom: 1px solid #ddd;\">" + mailData.ServicePrice + "</td>\n </tr>\n </tbody>\n </table>\n </td> \n </tr>\n <tr class=\"totals\">\n <td style=\"padding-top: 1.5rem;\"></td>\n <td style=\"padding-top: 1.5rem;\">\n <table style=\"width:100%;\">\n <tr class=\"subtotal\">\n <td style=\"padding: .5rem .625rem .625rem; padding-top: 0; padding-bottom: 0; font-weight: 400; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">Subtotal</td>\n <td style=\"text-align: right; padding: 0.5rem 0.625rem 0.625rem 4rem; padding-top: 0; padding-bottom: 0; font-weight: 400; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">" + mailData.ServicePrice + "</td>\n </tr>\n " + discountPriceHTML + "\n " + remainingPriceHTML + "\n <tr class=\"total\">\n <td style=\"padding: .5rem .625rem .625rem; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">Total</td>\n <td style=\"text-align: right; padding: 0.5rem 0.625rem 0.625rem 4rem; font-weight: 800; border-top-style: double; border-top-color: #ddd; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">" + mailData.TotalPrice + "</td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td style=\"padding: .5rem .625rem .625rem;\"><b>Payment mode : </b>" + mailData.ModeOfPayment + "</td>\n <td style=\"text-align: right; padding: .5rem .625rem .625rem;\"><i>Thank you for visiting.</i></td>\n </tr>\n </table>\n <p style=\"margin-bottom: 1em; padding-left: 1.3rem;\">\n Thanks,<br>\n " + constants_1.default.ProjectName + " team\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#075DA8\" style=\" border-top: 1px solid #dee2e6; background-color: #075DA8 ;\">\n <p style=\"font-size:13px; font-family: inherit; color:#fff; margin:1.8em; font-weight:normal;\">\n <a href=\"https://www.optimiser.com/\" style=\"color:#fff; text-decoration:underline; \">www.optimiser.com</a> | <a href=\"mailto:support@optimiser.com\" style=\"color:#fff; text-decoration:underline; \">support@optimiser.com</a> | \n +44 (0)203 972 1666\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>";
3141
+ mailObj.html = "<body style='background-color: #eee;'>\n <table width=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#eee;\">\n <tr>\n <td align=\"center\" valign=\"top\">\n <table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#fff;\">\n <tr>\n <td align=\"left\" valign=\"top\" bgcolor=\"#ffffff\" style=\"padding-top:16px; padding-bottom:12px; padding-left: 20px; padding-right: 20px; background-color: #fff; border-bottom: 1px solid #dee2e6;\">\n <img src=\"" + constants_1.default.ProjectDomain + "/images/MainLogo.png\" alt=\"Optimiser\"/>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#fff\" style=\"background-color: #fff; text-align: left; padding-right: 20px; padding-left: 20px; font-size:16px; font-family: inherit; color:#000000;\">\n <table class=\"invoice\" style=\"width:100%; padding: .5rem .625rem .625rem;\">\n <tr class=\"header\">\n <td class=\"\" style=\"padding: 1.5rem .625rem .625rem;\">\n <b>" + mailData.ShopName + "</b><br>\n " + mailData.Location + "\n </td>\n <td style=\"background: #fff; text-align: right; font-weight: 400; color: #322d28; padding: .5rem .625rem .625rem;\">\n <h2 style=\"font-weight: 400; font-size: 2rem; color: #1779ba;\">Invoice</h2>\n </td>\n </tr>\n <tr class=\"intro\">\n <td class=\"\" style=\"padding: .5rem .625rem .625rem;\">\n Hello, " + mailData.ClientName + ".\n </td>\n <td class=\"text-right\" style=\"text-align: right; padding: .5rem .625rem .625rem;\">\n <span style=\"font-weight: 350; text-transform: uppercase; letter-spacing: 1.5px; font-size: .8em;\">Order # " + (new Date()).getMilliseconds() + "</span><br>\n " + moment_1.default(new Date()).format("MMM DD, YYYY") + "\n </td>\n </tr>\n <tr class=\"details\">\n <td colspan=\"2\" style=\"padding-top: 4rem; padding-bottom: 0;\">\n <table style=\"width:100%; border-collapse: collapse;\">\n <thead>\n <tr>\n <th class=\"desc\" style=\"padding: .5rem .625rem .625rem; border-bottom: 1px solid #ddd;\">Service</th>\n <th class=\"id\" style=\"padding: .5rem .625rem .625rem; text-align: center; border-bottom: 1px solid #ddd;\">Description</th>\n <th class=\"qty\" style=\"padding: .5rem .625rem .625rem; text-align: center; border-bottom: 1px solid #ddd;\">Quantity</th>\n <th class=\"amt\" style=\"padding: .5rem .625rem .625rem; text-align: right; border-bottom: 1px solid #ddd;\">Subtotal</th>\n </tr>\n </thead>\n <tbody>\n <tr class=\"item\">\n <td class=\"desc\" style=\"padding: .5rem .625rem .625rem; border-bottom: 1px solid #ddd;\">" + mailData.ServiceName + "</td>\n <td class=\"id\" style=\"padding: .5rem .625rem .625rem; text-align: center; border-bottom: 1px solid #ddd;\"></td>\n <td class=\"qty\" style=\"padding: .5rem .625rem .625rem; text-align: center; border-bottom: 1px solid #ddd;\">1</td>\n <td class=\"amt\" style=\"padding: .5rem .625rem .625rem; text-align: right; border-bottom: 1px solid #ddd;\">" + mailData.ServicePrice + "</td>\n </tr>\n </tbody>\n </table>\n </td> \n </tr>\n <tr class=\"totals\">\n <td style=\"padding-top: 1.5rem;\"></td>\n <td style=\"padding-top: 1.5rem;\">\n <table style=\"width:100%;\">\n <tr class=\"subtotal\">\n <td style=\"padding: .5rem .625rem .625rem; padding-top: 0; padding-bottom: 0; font-weight: 400; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">Subtotal</td>\n <td style=\"text-align: right; padding: 0.5rem 0.625rem 0.625rem 4rem; padding-top: 0; padding-bottom: 0; font-weight: 400; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">" + mailData.ServicePrice + "</td>\n </tr>\n " + discountPriceHTML + "\n " + remainingPriceHTML + "\n <tr class=\"total\">\n <td style=\"padding: .5rem .625rem .625rem; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">Total</td>\n <td style=\"text-align: right; padding: 0.5rem 0.625rem 0.625rem 4rem; font-weight: 800; border-top-style: double; border-top-color: #ddd; text-transform: uppercase; letter-spacing: 1.5px; font-size: 0.8em;\">" + mailData.TotalPrice + "</td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td style=\"padding: .5rem .625rem .625rem;\"><b>Payment mode : </b>" + mailData.ModeOfPayment + "</td>\n <td style=\"text-align: right; padding: .5rem .625rem .625rem;\"><i>Thank you for visiting.</i></td>\n </tr>\n </table>\n <p style=\"margin-bottom: 1em; padding-left: 1.3rem;\">\n Thanks,<br>\n " + constants_1.default.ProjectName + " team\n </p>\n </td>\n </tr>\n <tr>\n <td align=\"center\" valign=\"top\" bgcolor=\"#075DA8\" style=\" border-top: 1px solid #dee2e6; background-color: #075DA8 ;\">\n <p style=\"font-size:13px; font-family: inherit; color:#fff; margin:1.8em; font-weight:normal;\">\n <a href=\"https://www.optimiser.com/\" style=\"color:#fff; text-decoration:underline; \">www.optimiser.com</a> | <a href=\"mailto:support@optimiser.com\" style=\"color:#fff; text-decoration:underline; \">support@optimiser.com</a> | \n +44 (0)203 972 1666\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>";
3142
3142
  mail_1.SendMail(mailObj).then(function (status) {
3143
3143
  if (status && status.statuscode == 500)
3144
3144
  callback({ 'message': 'Validation failed', statuscode: 500, error: status });
@@ -4274,3 +4274,52 @@ function CreateBanquetingVATSettingsData(msp_d, db, sdata, next) {
4274
4274
  });
4275
4275
  }
4276
4276
  exports.CreateBanquetingVATSettingsData = CreateBanquetingVATSettingsData;
4277
+ /**
4278
+ * TODO: To Check if given user has access to Report Folder - THIS FUNCTION IS COPIED FROM report_controller.js
4279
+ *
4280
+ * @param {object} report Contains Report information
4281
+ * @param {object} db Database connection object
4282
+ * @param {object} msp_d Contains User id information
4283
+ * @param folderActiveStatus boolean default value true
4284
+ * @return N/A
4285
+ */
4286
+ function CheckReportFolderAccess(report, db, msp_d, folderActiveStatus) {
4287
+ if (folderActiveStatus === void 0) { folderActiveStatus = true; }
4288
+ return __awaiter(this, void 0, void 0, function () {
4289
+ var shareFolderIds, userID, FolderList, User, currentUserDateTime, shareFolderList, folderIsActive, hasAccess, i;
4290
+ return __generator(this, function (_a) {
4291
+ switch (_a.label) {
4292
+ case 0:
4293
+ shareFolderIds = [];
4294
+ userID = new mongodb_1.ObjectID(msp_d.ui);
4295
+ FolderList = [];
4296
+ return [4 /*yield*/, db.collection('User').findOne({ _id: userID }, { projection: { MySettings: 1 } })];
4297
+ case 1:
4298
+ User = _a.sent();
4299
+ currentUserDateTime = new Date(moment_1.default().tz(User.MySettings.Timezone).format("YYYY-MM-DDTHH:mm:ss").split("T")[0]);
4300
+ return [4 /*yield*/, db.collection('ReportFolderSharing').find({ UserID: userID, $or: [{ Applicable: null }, { Applicable: { $gte: currentUserDateTime } }], IsActive: true }, { projection: { ReportFolderID: 1 } }).toArray()];
4301
+ case 2:
4302
+ shareFolderList = _a.sent();
4303
+ if (shareFolderList && shareFolderList.length > 0) {
4304
+ shareFolderIds = shareFolderList.map(function (x) { return x.ReportFolderID; });
4305
+ }
4306
+ folderIsActive = {};
4307
+ if (folderActiveStatus) {
4308
+ folderIsActive = { IsActive: true };
4309
+ }
4310
+ return [4 /*yield*/, db.collection('ReportFolder').find(__assign({ $or: [{ OwnerID: userID }, { _id: { $in: shareFolderIds } }] }, folderIsActive)).toArray()];
4311
+ case 3:
4312
+ FolderList = _a.sent();
4313
+ FolderList = FolderList.map(function (x) { return x._id; });
4314
+ hasAccess = false;
4315
+ for (i = 0; i < FolderList.length; i++) {
4316
+ if (FolderList[i].equals(report.ReportFolder)) {
4317
+ hasAccess = true;
4318
+ }
4319
+ }
4320
+ return [2 /*return*/, hasAccess];
4321
+ }
4322
+ });
4323
+ });
4324
+ }
4325
+ exports.CheckReportFolderAccess = CheckReportFolderAccess;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.261",
3
+ "version": "1.0.264",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {