Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

index.userdesign.widget.js 110KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Crm;
  6. (function (Crm) {
  7. let Components;
  8. (function (Components) {
  9. class SelfDeclaration extends Unibase.Platform.Core.BaseComponent {
  10. constructor() {
  11. super(...arguments);
  12. this._dateTimeHelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  13. }
  14. jsFiles() {
  15. return ["platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js'];
  16. }
  17. cssFiles() {
  18. return [];
  19. }
  20. html() {
  21. var html = '';
  22. return html;
  23. }
  24. loadhtml(Containerid) {
  25. var html = '<form data-validate="parsley" data-isdynamic="false"><div class="card"><div class="card-header"><h3 class="text-center" style ="color:deepskyblue"><u>Self - Declaration</u></h3 ></div><div style="overflow-x:hidden;" class="d modal-body bg-light"><div class="bg-white mb-10"><div id="bizgaze_CreateErrorMessages" class="clear"></div><div class="col-md-12" style ="height:300px; border:1px solid pink"><h4><p>I, <b><span id="userName1"></span></b> on behalf of <b><span id="lblDistributorName1"></span></b> hereby, declare that <b><span id="lblDistributorName2"></span></b> has utilized DMS system to conduct all Mobil related business transactions accurately, completely and in a timely manner for the month of <b><span id="MonthAndYear1"></span></b>, and the transactional data pertaining to purchase, inventory, sales and market collections (payments received from customers) for the month of <b><span id="MonthAndYear2"></span></b> is accurate as per my knowledge.<br/><br/><br/> Name: <b><span id="userName2"></span></b><br/> Date: <b><span id="CurrentDate"></span></b><br/><br/></p></h4><span><b><input type="checkbox" style ="width:30px;height:14px;" id="isSelfDeclared"> <span></span> Yes, I declare <span id="DeclarationMonthI_e_PreviousMonth" class="hidden"></span> <br/><br/></span><div class="text-center"><input type="button" class="btn btn-primary btn-md" id="btnSubmit" value="Submit" disabled /></div></div></div></div></form>';
  26. $("." + Containerid).html(html);
  27. }
  28. load(Containerid) {
  29. }
  30. init(Containerid) {
  31. let instance = this;
  32. var jsfiles = ["platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js'];
  33. SelfDeclaration.Instance().fileCacheHelper.loadJsFiles(jsfiles, function () {
  34. SelfDeclaration.Instance().loadhtml(Containerid);
  35. $("#btn_Close").click(function () {
  36. SelfDeclaration.Instance().navigationHelper.closePopUp();
  37. });
  38. var tenantname = "";
  39. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () {
  40. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().GetTenants(Number(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().tenantId)).then(function (res) {
  41. if (res.result != null) {
  42. tenantname = res.result.TenantName;
  43. $("#lblDistributorName1").text(tenantname.toString());
  44. $("#lblDistributorName2").text(tenantname.toString());
  45. }
  46. });
  47. });
  48. $("#userName1").text(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().name);
  49. $("#lblDistributorName1").text(tenantname.toString());
  50. $("#lblDistributorName2").text(tenantname.toString());
  51. $("#userName2").text(Unibase.Platform.Membership.Infos.Identity.getCurrentUser().name);
  52. var TotalDate = new Date();
  53. var months = ["JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"];
  54. var date = TotalDate.getDate();
  55. var month = TotalDate.getMonth() + 1;
  56. var year = TotalDate.getFullYear();
  57. if (months[TotalDate.getMonth()] == "DECEMBER") {
  58. year = year - 1;
  59. }
  60. $('#MonthAndYear1').text(months[TotalDate.getMonth()] + "-" + year);
  61. $('#MonthAndYear2').text(months[TotalDate.getMonth()] + "-" + year);
  62. $('#CurrentDate').text(date + "/" + month + "/" + year);
  63. $('#DeclarationMonthI_e_PreviousMonth').text(months[TotalDate.getMonth()]);
  64. var todayDate = new Date($.now());
  65. var serverdate = instance._dateTimeHelper.formatServerDate(todayDate);
  66. var OnlyDate = serverdate.split("/");
  67. if (Number(OnlyDate[2]) >= 1 && Number(OnlyDate[2]) <= 10) {
  68. $("#btnSubmit").prop('disabled', false);
  69. }
  70. else {
  71. $("#btnSubmit").prop('disabled', true);
  72. }
  73. if (Number(OnlyDate[2]) > 10) {
  74. $("#btnSubmit").hide();
  75. $("#isSelfDeclared").hide();
  76. $("#description").hide();
  77. }
  78. SelfDeclaration.Instance().Enable();
  79. $('#btnSubmit').click(function () {
  80. SelfDeclaration.Instance().save();
  81. });
  82. });
  83. }
  84. Enable() {
  85. let instance = this;
  86. var da = new Date($.now());
  87. var date = instance._dateTimeHelper.formatServerDate(da);
  88. date = date.replace('/', '-').replace('/', '-');
  89. var month = $('#DeclarationMonthI_e_PreviousMonth').text();
  90. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () {
  91. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getSelfDeclarationByDate(date, month).then(function (response) {
  92. if (response.result == "Record not Found") {
  93. $("#btnSubmit").prop("disabled", false);
  94. }
  95. else {
  96. $("#btnSubmit").prop("disabled", true);
  97. $('#btnSubmit').prop('value', 'Submitted');
  98. $("#isSelfDeclared").prop('checked', true);
  99. $("#isSelfDeclared").prop("disabled", true);
  100. }
  101. });
  102. });
  103. }
  104. save() {
  105. var date = Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate();
  106. var IsDeclared = $("#isSelfDeclared").prop('checked');
  107. if (IsDeclared == false) {
  108. MessageHelper.Instance().showError('Please Check Declaration', 'bizgaze_CreateErrorMessages');
  109. return false;
  110. }
  111. var data = {
  112. PciDeclared: IsDeclared,
  113. UserId: Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId,
  114. DeclarationDate: new Date(),
  115. MonthOfDeclaration: $('#DeclarationMonthI_e_PreviousMonth').text(),
  116. PartitionId: Unibase.Platform.Membership.Infos.Identity.getCurrentUser().partitionId
  117. };
  118. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().saveSelfDeclaration(data).then(function (response) {
  119. MessageHelper.Instance().showSuccess(response.message, '');
  120. $("#isSelfDeclared").prop('checked', true);
  121. $("#isSelfDeclared").prop("disabled", true);
  122. $('#btnSubmit').prop('value', 'Submitted');
  123. });
  124. }
  125. static Instance() {
  126. if (this.instance === undefined) {
  127. this.instance = new SelfDeclaration();
  128. }
  129. return this.instance;
  130. }
  131. }
  132. Components.SelfDeclaration = SelfDeclaration;
  133. })(Components = Crm.Components || (Crm.Components = {}));
  134. })(Crm = Apps.Crm || (Apps.Crm = {}));
  135. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  136. })(Bizgaze || (Bizgaze = {}));
  137. var Unibase;
  138. (function (Unibase) {
  139. let Platform;
  140. (function (Platform) {
  141. let Membership;
  142. (function (Membership) {
  143. let Components;
  144. (function (Components) {
  145. class UserLoginDetailsWidget extends Platform.Core.BaseComponent {
  146. init(containerid) {
  147. var instance = this;
  148. instance.userdetails(containerid);
  149. $(".user-toggle-notification-btn").click(function () {
  150. $(".biz-wrapper").addClass("biz-settings-toggle");
  151. $(".hk-wrapper").addClass("biz-settings-toggle");
  152. if (($(window).width()) <= 575) {
  153. $(".settings-panel-head").find("#myTab").remove();
  154. var notification_header = $(".settings-panel-head").find("#settings-panel-head-title").length;
  155. if (notification_header == 0) {
  156. $(".settings-panel-head #settings_panel_close").before(` <span class="biz-secondary-text-color d-flex flex-row align-items-center py-1" id = "settings-panel-head-title"> <span class="my-2 font-16 font-weight-400"> Notifications </span><span class="badge border rounded-circle badge-sm badge-link ml-2 font-14" id="notification_count"></span> </span>`).parent().addClass('px-3 border-bottom').removeClass('py-10');
  157. }
  158. Unibase.Themes.Compact.Components.Notification.Instance().loadReminders();
  159. }
  160. else {
  161. Unibase.Themes.Compact.Components.Notification.Instance().loadReminders();
  162. }
  163. });
  164. $(".user-toggle-task-btn").click(function () {
  165. $(".biz-wrapper").addClass("biz-settings-toggle");
  166. $(".hk-wrapper").addClass("biz-settings-toggle");
  167. if (($(window).width()) <= 575) {
  168. $(".settings-panel-head").find("#myTab").remove();
  169. var notification_header = $(".settings-panel-head").find("#settings-panel-head-title").length;
  170. if (notification_header == 0) {
  171. $(".settings-panel-head #settings_panel_close").before(` <span class="biz-secondary-text-color d-flex flex-row align-items-center py-1" id = "settings-panel-head-title"> <span class="my-2 font-16 font-weight-400">Tasks</span><span class="ml-2 px-2 border rounded-circle font-14" id="tasks_count"></span> </span>`).parent().addClass('px-3 border-bottom').removeClass('py-10');
  172. }
  173. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('/tenants/themes/compact/components/notifications/notification.js', function () {
  174. Unibase.Themes.Compact.Components.Notification.Instance().loadTasks();
  175. });
  176. }
  177. else {
  178. Unibase.Themes.Compact.Components.Notification.Instance().loadTasks();
  179. }
  180. });
  181. }
  182. userdetails(containerid) {
  183. let notification, task;
  184. let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  185. let imageurl = data.photoUrl;
  186. let companyname = data.settings.filter(function (o) { return o.settingName === "companyname"; })[0].settingValue;
  187. let branchname = data.settings.filter(function (o) { return o.settingName === "branchname"; })[0].settingValue;
  188. let branchcode = data.settings.filter(function (o) { return o.settingName === "branchcode"; })[0].settingValue;
  189. let username = data.name;
  190. let html = '';
  191. if (screen.width > 1198) {
  192. html = `<div class="user_login_detials shadow rounded-4 biz-highlight-opacity"><div class="card user_login_card "><div class="user_login_pic text-center"> <div class="biz-login-image biz-login-user biz-highlight-opacity rounded-circle w-120p h-120p d-flex align-items-center text-center p-2" data-src="` + imageurl + `" ><div class="user-login-img-div bg-light rounded-circle w-100 h-100 d-flex text-center"><i class="fa fa-camera edit-picture d-none"></i><div class="align-items-center d-flex user-login-img w-100"></div></div></div><div class="user_Greeting text-dark ">Hi, Welcome </div><div class="user_Name">` + username + `</div><div class="user_Company_Name"><span><i class="fa fa-building-o font-14"></i></span> ` + companyname + `</div><div class="user_Branch_Name"><span><i class="fa fa-map-marker "></i></span> ` + branchname + ` (` + branchcode + `)</div><div class="d-flex justify-content-center" style="margin-top:30px"><div class="d-flex justify-content-between align-items-center notifications_width"><div><a class="btn btn-icon btn-icon-circle btn-outline-info border-2 font-weight-600 text-center d-flex flex-column align-items-center user-toggle-notification-btn " href="javascript:;"><span class="btn-icon-wrap"><i class="dripicons dripicons-bell font-18"></i></span> <span class="font-12 font-weight-600 text-dark mt-2">Notifications</span></a><sup class="Notifications user_icons_sup badge badge-success text-white px-2 py-1 font-weight-600 notification_count"></sup></div><div><button class="btn btn-icon btn-icon-circle btn-outline-warning border-2 font-weight-600 text-center d-flex flex-column align-items-center user-toggle-task-btn"><span class="btn-icon-wrap"><i class="dripicons dripicons-to-do font-18"></i></span> <span class="font-12 font-weight-600 text-dark mt-2">Tasks</span></button><sup class="Tasks user_icons_sup badge badge-danger text-white px-2 py-1 font-weight-600 tasks_count"></sup></div></div></div></div></div></div></div>`;
  193. }
  194. else {
  195. html = `<div class="user_login_detials b-0 shadow rounded-4 "><div class="card m-0 px-2 border-0 shadow-none"><div class="user_login_pic d-flex align-items-center font-11"><div class=" biz-login-image rounded-circle w-70p h-70p d-flex align-items-center text-center p-2" data-src="` + imageurl + `" ><div class="user-login-img bg-light rounded-circle w-100 h-100 d-flex align-items-center text-center"></div></div><div class="ml-2"><div>Hi Welcome,</div><div class="user_Name m-0" style="font-size:12px !important" >` + username + `</div></div></div><div class="user_Company_Name ml-2 mt-1 font-11"><span><i class="fa fa-building-o font-14"></i></span> ` + companyname + `</div><div class="user_Branch_Name ml-2 font-11"><span><i class="fa fa-map-marker "></i></span> ` + branchname + ` (` + branchcode + `)</div></div></div></div>`;
  196. }
  197. $(`#${containerid}`).append(html);
  198. $(".user-login-img-div")
  199. .mouseover(function () {
  200. $(this).find(".edit-picture").removeClass("d-none").addClass("d-flex").css("cursor", "pointer");
  201. })
  202. .mouseout(function () {
  203. $(this).find(".edit-picture").addClass("d-none").removeClass("d-flex");
  204. });
  205. let dataSrc = $('.biz-login-image').data('src');
  206. if (dataSrc == '' || dataSrc == null || dataSrc == 'undefined') {
  207. let avatarTxt = "";
  208. let headingTxt = $('.user_Name').text();
  209. let matches = headingTxt.match(/\b(\w)/g);
  210. if (matches && matches.length == 1) {
  211. avatarTxt = $.trim(headingTxt).substr(0, 2).toUpperCase();
  212. }
  213. else {
  214. avatarTxt = matches.join('').slice(0, 2).toUpperCase();
  215. }
  216. $('.user-login-img').html(`<h5 class="w-100 font-weight-600 biz-hightlight-bg-color font-30" data-btnclick="profile">${avatarTxt}</h5>`);
  217. }
  218. else {
  219. if (dataSrc && dataSrc.includes("~")) {
  220. dataSrc = dataSrc.slice(2);
  221. }
  222. $('.user-login-img').html(`<img src="${dataSrc}" onerror="ReloadImage(event)" data-dynamic="1" class="avatar-img img-fluid rounded-circle w-100 h-100" data-btnclick="profile" alt="img" style="object-fit: cover;">`);
  223. }
  224. let uniqueid = 'Bizgaze_Crm_Employess_App_AddPhotoUrl_Dashboard';
  225. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) {
  226. $('.edit-picture').attr("onclick", `Unibase.Platform.Membership.Components.UserLoginDetailsWidget.Instance().profileupdate(${response.result.FormId}, 0)`);
  227. $('[data-btnclick="profile"]').attr("onclick", `Unibase.Platform.Membership.Components.UserLoginDetailsWidget.Instance().profileupdate(${response.result.FormId}, 0)`);
  228. });
  229. $(".user_login_detials").closest(".col-lg-12.droppablePlaceCol").removeClass("px-md-5");
  230. Unibase.Platform.Communications.Managers.ReminderManager.Instance().getUnreadRemindersCountByUserId().then(function (response) {
  231. var obj = response.result;
  232. notification = obj.NotificationCount;
  233. task = obj.TasksCount;
  234. $(".notification_count").html(notification);
  235. $(".tasks_count").html(task);
  236. });
  237. return html;
  238. }
  239. profilePicSuccess() {
  240. $('#layout-dashboard-tabs .filter-item.active a').trigger('click');
  241. }
  242. profileupdate(formid, appConfigId, employeeid) {
  243. var successobj = {
  244. CallBack: function () { Unibase.Platform.Membership.Components.UserLoginDetailsWidget.Instance().profilePicSuccess(); },
  245. Parameters: null,
  246. };
  247. var formviewerObj = {
  248. FormId: formid,
  249. AppConfigurationId: 0,
  250. Pk_Value: 0,
  251. PortletWidgetId: 0,
  252. OnSuccess: successobj,
  253. OnFail: null,
  254. OnLoad: null,
  255. FormSize: Unibase.Platform.Helpers.Size.Large
  256. };
  257. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  258. }
  259. jsFiles() {
  260. return ['tenants/themes/compact/components/nav/nav.js'];
  261. }
  262. cssFiles() {
  263. return [];
  264. }
  265. html(id, containerid) {
  266. var html = ``;
  267. return html;
  268. }
  269. load(id, containerid, callback) {
  270. }
  271. static Instance() {
  272. if (this._instance === undefined)
  273. this._instance = new UserLoginDetailsWidget();
  274. return this._instance;
  275. }
  276. }
  277. Components.UserLoginDetailsWidget = UserLoginDetailsWidget;
  278. })(Components = Membership.Components || (Membership.Components = {}));
  279. })(Membership = Platform.Membership || (Platform.Membership = {}));
  280. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  281. })(Unibase || (Unibase = {}));
  282. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  283. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  284. return new (P || (P = Promise))(function (resolve, reject) {
  285. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  286. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  287. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  288. step((generator = generator.apply(thisArg, _arguments || [])).next());
  289. });
  290. };
  291. var Bizgaze;
  292. (function (Bizgaze) {
  293. let Apps;
  294. (function (Apps) {
  295. let Hrms;
  296. (function (Hrms) {
  297. let Components;
  298. (function (Components) {
  299. class Attendence extends Unibase.Platform.Core.BaseComponent {
  300. constructor() {
  301. super(...arguments);
  302. this.attendencelogid = 0;
  303. this.timer = null;
  304. this.timer_arrref = [];
  305. this.starttimerobj = [];
  306. }
  307. init(containerid) {
  308. let instance = this;
  309. instance.loadCheckIn(containerid);
  310. }
  311. cssFiles() {
  312. return [];
  313. }
  314. html(id, containerid) {
  315. var instance = this;
  316. let html = ``;
  317. return html;
  318. }
  319. load(id, containerid, callback) {
  320. var instance = this;
  321. }
  322. jsFiles() {
  323. return ["apps/hrms/components/attendence.js", "apps/hrms/managers/attendencemanager.js", "apps/communications/ai/components/resumeparsingmanager.js", "platform/core/helpers/mobile/interfaces/imobilehelper.js"];
  324. }
  325. loadCustomHTML(containerid) {
  326. let instance = this;
  327. let capture_modal = `
  328. <div class="modal fade" id="caputerModel" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
  329. <div class="modal-dialog modal-dialog-centered" role="document">
  330. <div class="modal-content">
  331. <div class="modal-header border-0 py-2">
  332. <button type="button" class="close" data-dismiss="modal" id="CancelBtn" aria-label="Close" data-tooltip="true" data-placement="right" title="Cancel">
  333. <span aria-hidden="true">&times;</span>
  334. </button>
  335. </div>
  336. <div class="modal-body pt-0 position-relative">
  337. <div class="pb-40 pt-40 shift_err text-center d-none"><p>No Shift's Available</p></div>
  338. <div class="pb-20 pt-40 checkIn_err text-center d-none"><p>You are Already Check Out</p></div>
  339. <div id="caputer_video" class="d-none User_Picture">
  340. <div class="position-relative">
  341. <video id="cam" autoplay muted playsinline style="transform: scaleX(-1);">Not available </video>
  342. <canvas id="canvas" style="display:none;transform: scaleX(-1);"></canvas>
  343. <img id="photo" alt="The screen capture will appear in this box." style="transform: scaleX(-1);" class="d-none">
  344. <div class="text-center position-absolute suggest_err">
  345. <span class="loader-pendulums d-none" id="img_check"></span>
  346. <span class="capture_err d-none text-danger font-16"></span>
  347. </div>
  348. <div class="position-absolute switch_cam d-none" style="bottom:0px;width:100%;text-align:center;font-size:20px">
  349. <div class="cam_view" style="width:100%;max-width:10%;margin:auto">
  350. <input type="checkbox" id="camera_view" class="d-none"/>
  351. <label class="cam_front" for="camera_view">
  352. <img src="tenants/themes/compact/imgs/rotate.png" class="cam_img p-1 bg-white" style="width:100%;"/>
  353. </label>
  354. </div>
  355. </div>
  356. </div>
  357. <div class="bg-white" id="location_data"></div>
  358. </div>
  359. </div>
  360. </div>
  361. </div>`;
  362. $("#_bizgaze_modal").html(capture_modal);
  363. let html = '';
  364. if (screen.width > 576) {
  365. html = ` <div class="check_in_timer" id="Check_in_timer">
  366. <div class="card border-0 shadow p-3">
  367. <div class="check_in_body">
  368. <div class="d-flex align-items-center justify-content-between pb-1">
  369. <span class="biz-highlight-bg-color font-weight-500 font-16">Attendance</span>
  370. <span class="" data-tooltip="true" title="Report"><i class="dripicons dripicons-graph-pie view_Details cursor-pointer"></i></span>
  371. </div>
  372. <div class="text-center">
  373. <div class="timer font-weight-600 font-25 d-flex justify-content-center align-items-center">
  374. <img src="tenants/themes/compact/imgs/start_timer.png" class="timing"/>
  375. <img src="tenants/themes/compact/imgs/start_timer1.gif" class="d-none start_timing"/>
  376. <div class="run_time">
  377. <span class="output">00:00:00</span>
  378. <span class="output_re d-none"></span>
  379. </div>
  380. <div>Hrs</div>
  381. </div>
  382. <div class="text-dark">
  383. <span class="list-item-main-title font-weight-500 shift_name font-14"></span>
  384. <span class="shift_timeings font-14"></span>
  385. </div>
  386. </div>
  387. <div class="text-center pt-4 pb-3">
  388. <div>
  389. <button type="button" class="btn btn-primary px-0 w-50" id="check_in_btn">
  390. <span>Check-in</span>
  391. </button>
  392. <button type="button" class="btn btn-primary text-white py-1 d-none px-0 w-50" id="check_out_btn">
  393. <span>Check-out</span>
  394. </button>
  395. </div>
  396. </div>
  397. <div class="pt-1 check_timings hidden">
  398. <div class="row align-items-center font-weight-500">
  399. <div class="col-4 strttime">
  400. <div class="d-flex align-items-center startime justify-content-md-center">
  401. <img src="tenants/themes/compact/imgs/Start.png"/>
  402. <div class="d-flex flex-column flex-shrink-0" id="Check_in_time">
  403. <span class="start_time mb-0 text-dark font-13">00:00</span>
  404. <span class="font-13">Check In</span>
  405. </div>
  406. </div>
  407. </div>
  408. <div class="col-4 text-center border-left border-right endtime">
  409. <div class="d-flex justify-content-center align-items-center">
  410. <img src="tenants/themes/compact/imgs/End.png"/>
  411. <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_out_time">
  412. <span class="end_time mb-0 text-dark font-13">00:00</span>
  413. <span class="font-13">Check Out</span>
  414. </div>
  415. </div>
  416. </div>
  417. <div class="col-4 text-right">
  418. <div class="d-flex justify-content-center align-items-center duration">
  419. <img src="tenants/themes/compact/imgs/Duration.png"/>
  420. <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_duration">
  421. <span class="mb-0 Duration_time font-13"><span class="due_time"></span> Hrs</span>
  422. <span class="font-13">Duration</span>
  423. </div>
  424. </div>
  425. </div>
  426. </div>
  427. </div>
  428. </div>
  429. </div>
  430. </div>`;
  431. $('.suggest_err').attr({ 'style': 'top:170px;width:100%;max-width:92%' });
  432. }
  433. else {
  434. html = `<div class="check_in_timer" id="Check_in_timer">
  435. <div class="card border-0 shadow p-3">
  436. <div class="check_in_body">
  437. <div class="d-flex align-items-center justify-content-between">
  438. <span class="font-weight-600 font-18">Attendence</span>
  439. <span><i class="dripicons dripicons-graph-pie view_Details cursor-pointer"></i></span>
  440. </div>
  441. <div class="py-1">
  442. <div class="timer d-flex justify-content-between align-items-center">
  443. <div class="timer font-weight-600 font-25 d-flex flex-grow-1 align-items-center">
  444. <img src="tenants/themes/compact/imgs/start_timer.png" class="timing"/>
  445. <img src="tenants/themes/compact/imgs/start_timer1.gif" class="d-none start_timing"/>
  446. <div class="run_time">
  447. <span class="output">00:00:00</span>
  448. <span class="output_re d-none"></span>
  449. </div>
  450. <div class="font-18">Hrs</div>
  451. </div>
  452. <div class="">
  453. <button type="button" class="btn btn-primary" id="check_in_btn">
  454. <span class="font-14">Check In</span>
  455. </button>
  456. <button type="button" class="btn biz-highlight-color text-white d-none" id="check_out_btn">
  457. <span class="font-14">Check Out</span>
  458. </button>
  459. </div>
  460. </div>
  461. <div class="d-flex align-items-center font-13">
  462. <div class="list-item-main-title pr-1 font-weight-500 font-13 shift_name"></div>
  463. <div class="text-dark">
  464. <span class="shift_timeings"></span>
  465. </div>
  466. </div>
  467. </div>
  468. <div class="pt-2 check_timings hidden">
  469. <div class="row align-items-center font-weight-500">
  470. <div class="col-4 strttime">
  471. <div class="d-flex align-items-center">
  472. <img src="tenants/themes/compact/imgs/Start.png"/>
  473. <div class="d-flex flex-column flex-shrink-0 " id="Check_in_time">
  474. <span class="start_time mb-0 text-dark">00:00</span>
  475. <span class="check">Check In</span>
  476. </div>
  477. </div>
  478. </div>
  479. <div class="col-4 text-center border-left border-right endtime">
  480. <div class="d-flex justify-content-center align-items-center">
  481. <img src="tenants/themes/compact/imgs/End.png"/>
  482. <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_out_time">
  483. <span class="end_time mb-0 text-dark">00:00</span>
  484. <span class="check">Check Out</span>
  485. </div>
  486. </div>
  487. </div>
  488. <div class="col-4 text-right duration">
  489. <div class="d-flex justify-content-center align-items-center">
  490. <img src="tenants/themes/compact/imgs/Duration.png"/>
  491. <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_duration">
  492. <span class="mb-0 Duration_time"><span class="due_time"></span> Hrs</span>
  493. <span class="check">Duration</span>
  494. </div>
  495. </div>
  496. </div>
  497. </div>
  498. </div>
  499. </div>
  500. </div>
  501. </div>`;
  502. $('.suggest_err').attr({ 'style': 'top:140px;width:100%;max-width:100%' });
  503. }
  504. $('#' + containerid).html(html);
  505. let check_profile = Unibase.Platform.Membership.Infos.Identity.currentUser.photoUrl;
  506. if (check_profile == '' || check_profile == null) {
  507. let err_html = `<div>
  508. <p class="font-15 no_profile pt-10 text-center text-danger">Please Upload Your Profile Picture</p>
  509. </div>`;
  510. $("#location_data").html(err_html);
  511. $(".loader-icon").addClass("d-none");
  512. $("#caputerModel").removeClass("show").attr("style", "display:none;");
  513. }
  514. else {
  515. let no_html = `<div> <p id="user_location" class="font-14 py-2 text-dark text-left"></p>
  516. <div class="d-flex align-items-center justify-content-end pb-3">
  517. <button type="button" class="btn btn-primary rounded-pill py-1" id="snapBtn">Capture</button>
  518. <button type="button" class="btn btn-danger rounded-pill d-none py-1" id="retakeBtn">Re-Capture</button>
  519. <button type="button" class="btn btn-primary rounded-pill d-none py-1" data-dismiss="modal" aria-label="Close" id="checkIn_closebtn">Proceed</button>
  520. <button type="button" class="btn btn-primary rounded-pill d-none py-1" data-dismiss="modal" aria-label="Close" id="checkOut_closebtn">Proceed</button>
  521. <button type="button" class="btn btn-primary rounded-pill d-none py-1" data-dismiss="modal" aria-label="Close" id="modal_closebtn">Ok</button>
  522. </div>
  523. </div>`;
  524. $("#location_data").html(no_html);
  525. }
  526. instance.getAttendanceLog();
  527. instance.attendenceCheckIn();
  528. instance.getUserApplicableShifts();
  529. instance.takeImage();
  530. instance.retakeImage();
  531. instance.viewattendenceReport();
  532. instance.afterload();
  533. instance.attendencecheckout();
  534. instance.attendencecheckoutTimer();
  535. instance.modalcheckout();
  536. instance.attendenceCancle();
  537. instance.attendencecheckinTimer();
  538. }
  539. loadCheckIn(containerid) {
  540. let instance = this;
  541. instance.loadCustomHTML(containerid);
  542. }
  543. Location() {
  544. if (navigator.geolocation) {
  545. $("#snapBtn").attr("disabled", "disabled");
  546. navigator.geolocation.getCurrentPosition(Bizgaze.Apps.Hrms.Components.Attendence.Instance().geoLocationSuccess, Bizgaze.Apps.Hrms.Components.Attendence.Instance().geoLocationError, { timeout: 10000 });
  547. }
  548. else {
  549. alert("your browser doesn't support geolocation");
  550. }
  551. ;
  552. }
  553. geoLocationSuccess(pos) {
  554. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  555. let loadingTimeout;
  556. instance.mylatitude = pos.coords.latitude;
  557. instance.mylongtitude = pos.coords.longitude;
  558. var loading = function () {
  559. $("#user_location").text("fetching...");
  560. };
  561. loadingTimeout = setTimeout(loading, 600);
  562. const apikey = _mapsettings.key();
  563. var request = $.get(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${instance.mylatitude},${instance.mylongtitude}&key=${apikey}`).done(function (data) {
  564. if (loadingTimeout) {
  565. clearTimeout(loadingTimeout);
  566. loadingTimeout = null;
  567. instance.address = data.results[0].formatted_address;
  568. $("#user_location").html("<span class='font-weight-600'>Location :</span> " + instance.address);
  569. let ele = $("#user_location").find("span");
  570. let ele_val = ele[0];
  571. let Cam_ele = $("#cam").hasClass("d-none");
  572. if (ele_val != undefined && Cam_ele == false) {
  573. $("#snapBtn").removeAttr("disabled");
  574. }
  575. else {
  576. $("#snapBtn").attr("disabled", "disabled");
  577. }
  578. }
  579. }).fail(function () {
  580. $("#snapBtn").addClass("d-none");
  581. });
  582. }
  583. ;
  584. geoLocationError(error) {
  585. var errors = {
  586. 1: "Permission denied",
  587. 2: "Position unavailable",
  588. 3: "Request timeout"
  589. };
  590. if (errors[error.code]) {
  591. $("#user_location").html("<span class='font-weight-500 text-danger'>Please enable your Location...</span>");
  592. $("#snapBtn").attr("disabled", "disabled");
  593. }
  594. }
  595. ;
  596. addzero(x) {
  597. if (x < 10) {
  598. return x = '0' + x;
  599. }
  600. else {
  601. return x;
  602. }
  603. }
  604. twelvehours(x) {
  605. if (x > 12) {
  606. return x = x - 12;
  607. }
  608. else if (x == 0) {
  609. return x = 12;
  610. }
  611. else {
  612. return x;
  613. }
  614. }
  615. cemeraCapture() {
  616. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  617. instance.constraints = {
  618. audio: false,
  619. video: {
  620. width: { ideal: 640 },
  621. height: { ideal: 480 },
  622. facingMode: "user"
  623. }
  624. };
  625. instance.getMediaStream();
  626. let checkedIn = $("#check_in_btn").hasClass("d-none");
  627. let online_cather = window.navigator.onLine;
  628. if (checkedIn == false) {
  629. if (online_cather) {
  630. $("#check_in_btn").attr({ "data-toggle": "modal", "data-backdrop": "false", "data-target": "#caputerModel" });
  631. let shift_name = $('.shift_name').text();
  632. let shift_time = $('.shift_timeings').text();
  633. if (shift_name == '' && shift_time == '') {
  634. $('.close').removeClass("d-none");
  635. $('.shift_err').removeClass('d-none');
  636. }
  637. else {
  638. $("#caputer_video").removeClass("d-none");
  639. $("#user_location").removeClass("d-none");
  640. $("#CancelBtn").removeClass("d-none");
  641. $(".capture_err").addClass("d-none");
  642. $(".loader-icon").addClass("d-none");
  643. $('.checkIn_err').addClass('d-none');
  644. $("#modal_closebtn").addClass('d-none');
  645. Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location();
  646. $('#Check_in_time').removeClass("d-none");
  647. $("#cam").removeClass("d-none");
  648. $("#location_data").removeClass("d-none");
  649. $("#snapBtn").removeClass("d-none");
  650. $("#retakeBtn").addClass("d-none");
  651. $("#close_btn").addClass("d-none");
  652. let img_stored = $("#photo").attr("src", '');
  653. if (img_stored) {
  654. $("#photo").addClass("d-none");
  655. }
  656. else {
  657. $("#photo").removeClass("d-none");
  658. }
  659. }
  660. }
  661. else {
  662. $(this).removeAttr("data-target data-toggle data-backdrop");
  663. }
  664. }
  665. else {
  666. if (online_cather) {
  667. $("#check_out_btn").attr({ "data-toggle": "modal", "data-backdrop": "false", "data-target": "#caputerModel" });
  668. $("#caputer_video").removeClass("d-none");
  669. $(".capture_err").addClass("d-none");
  670. $(".loader-icon").addClass("d-none");
  671. $('#Check_in_time').removeClass("d-none");
  672. $("#cam").removeClass("d-none");
  673. $("#location_data").removeClass("d-none");
  674. $("#CancelBtn").removeClass("d-none");
  675. $("#snapBtn").removeClass("d-none");
  676. $("#retakeBtn").addClass("d-none");
  677. $("#checkIn_closebtn").addClass("d-none");
  678. Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location();
  679. let removeVide = $('#modal_closebtn').hasClass("d-none");
  680. if (removeVide == false) {
  681. instance.mediaStream.getTracks().forEach((track) => {
  682. track.stop();
  683. });
  684. }
  685. }
  686. else {
  687. $(this).removeAttr("data-target data-toggle data-backdrop");
  688. }
  689. }
  690. }
  691. getMediaStream() {
  692. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  693. function getMediaStream(constraints) {
  694. return __awaiter(this, void 0, void 0, function* () {
  695. try {
  696. instance.mediaStream = yield navigator.mediaDevices.getUserMedia(constraints);
  697. instance.video = document.getElementById('cam');
  698. instance.video.srcObject = instance.mediaStream;
  699. instance.video.onloadedmetadata = (event) => {
  700. let cam_err = event.currentTarget;
  701. if (cam_err != null) {
  702. let shift_err = $('.checkIn_err').hasClass("d-none");
  703. if (shift_err == true) {
  704. $("#cam").removeClass("d-none");
  705. instance.video.play();
  706. $(".cam_err").remove();
  707. }
  708. }
  709. };
  710. }
  711. catch (err) {
  712. console.log(err.message);
  713. $("#cam").addClass("d-none");
  714. $(".cam_err").removeClass("d-none");
  715. let arr_val = $("#user_location").find("span").hasClass("cam_loc_err");
  716. if (arr_val != true) {
  717. $("#cam").after("<span class='font-weight-500 text-danger cam_err'>Please enable your Camera...</span>");
  718. }
  719. let cam_val = $("#cam").parent().find("span").hasClass("cam_err");
  720. let loc_val = $("#user_location").find("span").hasClass("text-danger");
  721. if (cam_val && loc_val) {
  722. $("#cam").parent().find(".cam_err").remove();
  723. $("#user_location").html("<span class='font-weight-500 text-danger cam_loc_err'>Please enable your Location and Camera...</span>");
  724. }
  725. $("#snapBtn").attr("disabled", "disabled");
  726. }
  727. });
  728. }
  729. getMediaStream(instance.constraints);
  730. }
  731. switchCamera(cameraMode) {
  732. return __awaiter(this, void 0, void 0, function* () {
  733. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  734. try {
  735. if (instance.mediaStream != null && instance.mediaStream.active) {
  736. var tracks = instance.mediaStream.getVideoTracks();
  737. tracks.forEach(track => {
  738. track.stop();
  739. });
  740. }
  741. document.getElementById('cam').srcObject = null;
  742. instance.constraints.video.facingMode = cameraMode;
  743. yield instance.getMediaStream();
  744. }
  745. catch (err) {
  746. console.log(err.message);
  747. }
  748. });
  749. }
  750. takePicture() {
  751. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  752. instance.canvas = document.getElementById('canvas');
  753. instance.videos = document.getElementById('cam');
  754. let photo = document.getElementById('photo');
  755. let context = instance.canvas.getContext('2d');
  756. const height = instance.videos.videoHeight;
  757. const width = instance.videos.videoWidth;
  758. if (width && height) {
  759. instance.canvas.width = width;
  760. instance.canvas.height = height;
  761. context.drawImage(instance.video, 0, 0, width, height);
  762. var data = instance.canvas.toDataURL('image/png');
  763. const webp = context.canvas.toDataURL("image/webp", 0.8);
  764. photo.setAttribute('style', "transform: scaleX(-1)");
  765. $("#photo").attr('src', data);
  766. }
  767. else {
  768. Bizgaze.Apps.Hrms.Components.Attendence.Instance().clearPhoto();
  769. }
  770. }
  771. ;
  772. clearPhoto() {
  773. let instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  774. let photo = document.getElementById('photo');
  775. let context = instance.canvas.getContext('2d');
  776. context.fillStyle = "#AAA";
  777. context.fillRect(0, 0, instance.canvas.width, instance.canvas.height);
  778. var data = instance.canvas.toDataURL('image/png');
  779. photo.removeAttribute('src');
  780. }
  781. ;
  782. clockTick() {
  783. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  784. let r_datd = $(".output_re").hasClass("d-none");
  785. const date = Date.now();
  786. const timer_run = $('#check_in_btn').hasClass("d-none");
  787. if (timer_run == true) {
  788. if (r_datd == false) {
  789. instance.timer_arrref;
  790. const timeref = new Date(date - Number(instance.timer_arrref));
  791. const refhours = timeref.getUTCHours();
  792. const refmins = timeref.getUTCMinutes();
  793. const refsecs = timeref.getUTCSeconds();
  794. const refcount_hrs = refhours > 9 ? refhours : "0" + refhours;
  795. const refcount_mins = refmins > 9 ? refmins : "0" + refmins;
  796. const refcount_secs = refsecs > 9 ? refsecs : "0" + refsecs;
  797. $(".output").html(`${refcount_hrs}:${refcount_mins}:${refcount_secs}`);
  798. }
  799. else {
  800. const timeElaspsed = new Date(date - Number(instance.starttimerobj));
  801. const hours = timeElaspsed.getUTCHours();
  802. const mins = timeElaspsed.getUTCMinutes();
  803. const secs = timeElaspsed.getUTCSeconds();
  804. const count_hrs = hours > 9 ? hours : "0" + hours;
  805. const count_mins = mins > 9 ? mins : "0" + mins;
  806. const count_secs = secs > 9 ? secs : "0" + secs;
  807. $(".output").html(`${count_hrs}:${count_mins}:${count_secs}`);
  808. }
  809. }
  810. }
  811. reset() {
  812. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  813. clearInterval(instance.timer);
  814. let timerreset = $('.output').text();
  815. let timerin = timerreset.includes("NaN");
  816. if (timerin == true) {
  817. $('.output').empty();
  818. $('.output').html(`00:00:00`);
  819. }
  820. else {
  821. $('.output').empty();
  822. $('.output').html(`00:00:00`);
  823. }
  824. }
  825. attendenceCheckIn() {
  826. let online_cather = window.navigator.onLine;
  827. let instance = this;
  828. $("#check_in_btn").click(function () {
  829. if (isMobileApp()) {
  830. Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Camera, Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture);
  831. Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Location, Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location);
  832. }
  833. else {
  834. Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location();
  835. Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture();
  836. }
  837. });
  838. }
  839. attendencecheckout() {
  840. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  841. $("#check_out_btn").click(function () {
  842. if (isMobileApp()) {
  843. Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Camera, Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture);
  844. Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Location, Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location);
  845. }
  846. else {
  847. Bizgaze.Apps.Hrms.Components.Attendence.Instance().getAttendanceLogLastRecord();
  848. Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location();
  849. Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture();
  850. }
  851. });
  852. }
  853. attendencecheckinTimer() {
  854. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  855. $("#checkIn_closebtn").click(function (e) {
  856. $(this).addClass("d-none");
  857. let img_val = $("#photo").attr("src");
  858. $("#photo").addClass("d-none");
  859. $("#img_check").addClass("d-none");
  860. $("#caputer_video").addClass("d-none");
  861. $("#retakeBtn").addClass("d-none");
  862. $("#photo").addClass("d-none");
  863. $("#caputer_video").addClass("d-none");
  864. $("#retakeBtn").addClass("d-none");
  865. $(".timing").addClass("d-none");
  866. $(".start_timing").removeClass("d-none");
  867. $("#check_in_btn").removeAttr("data-toggle data-backdrop data-target");
  868. $("#location_data").addClass("d-none");
  869. $("#check_in_btn").addClass("d-none");
  870. $("#check_out_btn").removeClass("d-none");
  871. instance.mediaStream.getTracks().forEach((track) => {
  872. track.stop();
  873. });
  874. instance.startTime = Date.now();
  875. instance.re_timer = Date.now();
  876. instance.starttimerobj = instance.re_timer;
  877. if (instance.re_timer === instance.startTime) {
  878. instance.timer = setInterval(instance.clockTick, 1000);
  879. }
  880. instance.time_Now = new Date();
  881. let hours = instance.time_Now.getHours();
  882. let ampm = hours >= 12 ? 'PM' : 'AM';
  883. let time = instance.addzero(instance.twelvehours(instance.time_Now.getHours())) + ":" + instance.addzero(instance.time_Now.getMinutes());
  884. instance.Start_time = instance.addzero(instance.twelvehours(instance.time_Now.getHours())) + ":" + instance.addzero(instance.time_Now.getMinutes()) + ' ' + ampm;
  885. let get_start_time = instance.time_Now.getTime();
  886. var date = new Date();
  887. let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  888. let userid = data.userId;
  889. instance.startDate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatServerDateTime(date);
  890. let userCheckindetails = {
  891. "getstartTimeno": get_start_time,
  892. "StartTime": instance.Start_time,
  893. "Latitude": instance.mylatitude,
  894. "Longitude": instance.mylongtitude,
  895. "Address": instance.address,
  896. "imageurl": img_val,
  897. "Userid": userid,
  898. "StartDate": instance.startDate
  899. };
  900. Bizgaze.Apps.Hrms.Components.Attendence.Instance().SaveCheckInDetails(userCheckindetails);
  901. });
  902. }
  903. attendencecheckoutTimer() {
  904. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  905. $("#checkOut_closebtn").click(function (e) {
  906. instance.mediaStream.getTracks().forEach((track) => {
  907. track.stop();
  908. });
  909. instance.endDate = new Date();
  910. instance.get_end_time = instance.endDate.getTime();
  911. $(this).addClass("d-none");
  912. $("#check_out_btn").addClass('d-none');
  913. $("#check_in_btn").removeClass("d-none");
  914. $('.starting_time').addClass("d-none");
  915. $(".start_timing").addClass("d-none");
  916. $(".timing").removeClass("d-none");
  917. $("#Check_duration").removeClass("d-none");
  918. $("#check_out_btn").removeAttr("data-toggle data-backdrop data-target");
  919. let Current_Time = new Date();
  920. let hours = Current_Time.getHours();
  921. let ampm = hours >= 12 ? 'PM' : 'AM';
  922. instance.End_time = instance.addzero(instance.twelvehours(Current_Time.getHours())) + ":" + instance.addzero(Current_Time.getMinutes()) + ' ' + ampm;
  923. $(".end_time").html(instance.End_time);
  924. $(".check_timings").removeClass("hidden");
  925. instance.log_data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  926. instance.employeeid = instance.log_data.userId;
  927. let key = "settingValue";
  928. Bizgaze.Apps.Hrms.Components.Attendence.Instance().reset();
  929. if (instance.startTime != null || instance.timer_arrref != null) {
  930. instance.startTime = undefined;
  931. instance.timer_arrref = undefined;
  932. instance.starttimerobj = undefined;
  933. }
  934. $(".output").removeClass("d-none");
  935. let re_btn = $(".output").hasClass("d-none");
  936. if (re_btn == false) {
  937. $(".output_re").empty();
  938. $('.output').html(`00:00:00`);
  939. $(".output_re").addClass("d-none");
  940. }
  941. $('.output').html(`00:00:00`);
  942. let del_setting_val = instance.log_data.settings.filter(function (o) { return o.settingName === "checkin"; })[0];
  943. delete del_setting_val[key];
  944. Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getLoginDetails(instance.employeeid).then(function (response) {
  945. let last_record = response.result[0];
  946. instance.time_ne = moment.utc(last_record.CheckIn).local();
  947. let time = new Date(instance.time_ne);
  948. let date_time = time.getTime();
  949. const timeString = time;
  950. let data = timeString.getHours();
  951. let ampm = data >= 12 ? 'PM' : 'AM';
  952. let Start_times = instance.addzero(instance.twelvehours(timeString.getHours())) + ":" + instance.addzero(timeString.getMinutes()) + ' ' + ampm;
  953. $(".start_time").html(Start_times);
  954. let difference = Current_Time.getTime() - date_time;
  955. difference = difference / 1000;
  956. let hourDifference = Math.floor(difference / 3600);
  957. difference -= hourDifference * 3600;
  958. let minuteDifference = Math.floor(difference / 60);
  959. difference -= minuteDifference * 60;
  960. instance.due_time = `${instance.addzero(hourDifference)}:${instance.addzero(minuteDifference)}`;
  961. if (hourDifference > 9 || hourDifference == 9) {
  962. $(".Duration_time").addClass("text-success").removeClass("text-danger");
  963. }
  964. else {
  965. $(".Duration_time").addClass("text-danger").removeClass("text-success");
  966. }
  967. $(".due_time").html(instance.due_time);
  968. $(".output_re").addClass("d-none");
  969. let enddate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatServerDateTime(instance.endDate);
  970. Bizgaze.Apps.Hrms.Components.Attendence.Instance().SaveCheckOutDetails(enddate);
  971. });
  972. });
  973. }
  974. attendenceCancle() {
  975. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  976. $("#CancelBtn").click(function () {
  977. $(this).addClass("d-none");
  978. $("#caputer_video").addClass("d-none");
  979. $("#photo").attr("src", '');
  980. $("#retakeBtn").addClass("d-none");
  981. $("#close_btn").addClass("d-none");
  982. $("#img_check").addClass("d-none");
  983. $('#checkIn_closebtn').addClass('d-none');
  984. $('#checkOut_closebtn').addClass('d-none');
  985. $(".cam_err").remove();
  986. $(".cam_loc_err").remove();
  987. instance.mediaStream.getTracks().forEach((track) => {
  988. track.stop();
  989. });
  990. $("#photo").addClass("d-none");
  991. $(".capture_err").addClass("d-none");
  992. $(".capture_err").parent().removeClass("align-items-end");
  993. });
  994. }
  995. modalcheckout() {
  996. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  997. $('#modal_closebtn').click(function () {
  998. instance.mediaStream.getTracks().forEach((track) => {
  999. track.stop();
  1000. });
  1001. Bizgaze.Apps.Hrms.Components.Attendence.Instance().reset();
  1002. $("#check_out_btn").addClass("d-none");
  1003. $("#check_in_btn").removeClass("d-none");
  1004. $(".start_timing").addClass('d-none');
  1005. $(".timing").removeClass('d-none');
  1006. $(".output").removeClass("d-none");
  1007. $(".output_re").addClass("d-none");
  1008. Bizgaze.Apps.Hrms.Components.Attendence.Instance().getAttendanceLog();
  1009. });
  1010. }
  1011. takeImage() {
  1012. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  1013. $("#snapBtn").click(function (e) {
  1014. return __awaiter(this, void 0, void 0, function* () {
  1015. Bizgaze.Apps.Hrms.Components.Attendence.Instance().takePicture();
  1016. $("#cam").addClass("d-none");
  1017. $("#photo").removeClass("d-none");
  1018. $("#snapBtn").addClass("d-none");
  1019. $("#img_check").removeClass("d-none");
  1020. $("#photo").attr("style", "filter:blur(7px);transform:scaleX(-1);");
  1021. instance.img_stored = $("#photo").attr("src");
  1022. if (instance.img_stored !== '') {
  1023. $("#photo").removeClass("d-none");
  1024. }
  1025. else {
  1026. $("#photo").addClass("d-none");
  1027. }
  1028. let message = '';
  1029. let imgNewData = instance.img_stored.replace('data:image/png;base64,', '');
  1030. let emp_id = Unibase.Platform.Membership.Infos.Identity.currentUser.unibaseId;
  1031. let payload = {
  1032. "FileData": imgNewData,
  1033. "FileType": 'jpg',
  1034. "FileName": emp_id
  1035. };
  1036. try {
  1037. message = yield instance.postUserDetect(payload);
  1038. if (message.result == " " || message.result == "unable to recognize face" || message.result == "undefined" || message.result == "failed") {
  1039. $(".loader-icon").addClass("d-none");
  1040. $("#retakeBtn").removeClass("d-none");
  1041. let html = `<span class="font-weight-600">Unable to recognize you!</span>`;
  1042. $(".capture_err").html(html);
  1043. $(".capture_err").removeClass("d-none");
  1044. $("#img_check").addClass("d-none");
  1045. }
  1046. else if (message.result == "Group Photo") {
  1047. $("#img_check").addClass("d-none");
  1048. $("#retakeBtn").removeClass("d-none");
  1049. let html = `<span class="font-weight-600">Too many faces in Profile Picture!</span>`;
  1050. $(".capture_err").html(html);
  1051. $(".capture_err").removeClass("d-none");
  1052. }
  1053. else if (message.result == "Face not found in profile (please change your profile)") {
  1054. $("#img_check").addClass("d-none");
  1055. $("#retakeBtn").removeClass("d-none");
  1056. $(".close_btn").addClass("d-none");
  1057. let html = `<span class="font-weight-600">Unable to recognize Profile Picture!</span>`;
  1058. $(".capture_err").html(html);
  1059. $(".capture_err").removeClass("d-none");
  1060. }
  1061. else {
  1062. $("#img_check").addClass("d-none");
  1063. $("#photo").removeClass("d-none");
  1064. $("#photo").removeAttr("style").attr("style", "transform:scaleX(-1)");
  1065. let close_log = $('#check_in_btn').hasClass('d-none');
  1066. if (close_log) {
  1067. $("#checkOut_closebtn").removeClass('d-none');
  1068. }
  1069. else {
  1070. $("#checkIn_closebtn").removeClass("d-none");
  1071. }
  1072. }
  1073. }
  1074. catch (err) {
  1075. console.log(err);
  1076. }
  1077. });
  1078. });
  1079. }
  1080. retakeImage() {
  1081. $("#retakeBtn").click(function () {
  1082. $(this).addClass("d-none");
  1083. Bizgaze.Apps.Hrms.Components.Attendence.Instance().takePicture();
  1084. $("#cam").removeClass("d-none");
  1085. $("#snapBtn").removeClass("d-none");
  1086. $("#close_btn").addClass("d-none");
  1087. $("#photo").addClass("d-none");
  1088. $("#photo").attr('src', '');
  1089. $(".capture_err").addClass("d-none");
  1090. $(".capture_err").parent().removeClass("align-items-end");
  1091. });
  1092. }
  1093. viewattendenceReport() {
  1094. $(".view_Details").click(function () {
  1095. var uniqueid = 'Bizgaze_Platform_Analytics_Reports_AttendanceLogdashboard';
  1096. var date_now = new Date();
  1097. const fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate(date_now);
  1098. Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportByUniqueId(uniqueid, null, null, null, fromDate, fromDate);
  1099. });
  1100. }
  1101. afterload() {
  1102. const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
  1103. instance.log_data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1104. let started_time = instance.log_data.settings.filter(function (o) { return o.settingName === "checkin"; })[0].settingValue;
  1105. instance.employeeid = instance.log_data.userId;
  1106. Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getLoginDetails(instance.employeeid).then(function (response) {
  1107. if (started_time != '') {
  1108. if (response.result != '' && response.result != null) {
  1109. let last_record = response.result[response.result.length - 1];
  1110. let timeno = last_record.CheckIn;
  1111. instance.startdate = last_record.CheckIn;
  1112. instance.attendenceid = last_record.AttendanceId;
  1113. instance.attendencelogid = last_record.AttendancelogId;
  1114. instance.time_ne = moment.utc(last_record.CheckIn).local();
  1115. if (timeno == undefined) {
  1116. $("#check_in_btn").removeClass("d-none");
  1117. $("#check_out_btn").addClass("d-none");
  1118. }
  1119. else {
  1120. instance.startTime = instance.time_ne;
  1121. instance.timer_arrref = instance.startTime;
  1122. instance.timer = setInterval(instance.clockTick, 1000);
  1123. $("#check_in_btn").addClass("d-none");
  1124. $("#check_out_btn").removeClass("d-none");
  1125. $(".timing").addClass("d-none");
  1126. $(".start_timing").removeClass("d-none");
  1127. $(".output_re").removeClass("d-none");
  1128. }
  1129. }
  1130. }
  1131. else {
  1132. if (response.result != '' && response.result != null) {
  1133. let last_record = response.result[response.result.length - 1];
  1134. let timeno = last_record.CheckIn;
  1135. instance.startdate = last_record.CheckIn;
  1136. instance.attendenceid = last_record.AttendanceId;
  1137. instance.attendencelogid = last_record.AttendancelogId;
  1138. instance.time_ne = moment.utc(last_record.CheckIn).local();
  1139. if (timeno == undefined) {
  1140. $("#check_in_btn").removeClass("d-none");
  1141. $("#check_out_btn").addClass("d-none");
  1142. }
  1143. else {
  1144. instance.startTime = instance.time_ne;
  1145. instance.timer_arrref = instance.startTime;
  1146. instance.timer = setInterval(instance.clockTick, 1000);
  1147. $("#check_in_btn").addClass("d-none");
  1148. $("#check_out_btn").removeClass("d-none");
  1149. $(".timing").addClass("d-none");
  1150. $(".start_timing").removeClass("d-none");
  1151. $(".output_re").removeClass("d-none");
  1152. }
  1153. }
  1154. }
  1155. });
  1156. }
  1157. postUserDetect(payload) {
  1158. return __awaiter(this, void 0, void 0, function* () {
  1159. let instance = this;
  1160. let res = yield Unibase.Apps.Collaboration.ResumeParsingManager.Instance().postUserDetect(payload);
  1161. return res;
  1162. });
  1163. }
  1164. SaveCheckInDetails(userCheckindetails) {
  1165. var date = moment(new Date($.now())).format("DD/MM/YYYY HH:mm:ss");
  1166. let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1167. let instance = this;
  1168. var jsfiles = ['apps/hrms/managers/attendencemanager.js'];
  1169. instance.fileCacheHelper.loadJsFiles(jsfiles, function (response) {
  1170. Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().SaveCheckInDetails(userCheckindetails).then(function (response) {
  1171. var data = response.result;
  1172. instance.attendenceid = data.Attendanceid;
  1173. instance.attendencelogid = data._Id;
  1174. instance.startdate = data.Checkin;
  1175. });
  1176. });
  1177. }
  1178. SaveCheckOutDetails(enddate) {
  1179. let img = $("#photo").attr("src");
  1180. let instance = this;
  1181. var Startdate = instance.startdate;
  1182. var Attendenceid = instance.attendenceid;
  1183. var Attendencelogid = instance.attendencelogid;
  1184. var address = instance.address;
  1185. var Latitude = instance.mylatitude;
  1186. var Longitude = instance.mylongtitude;
  1187. let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1188. let userid = data.userId;
  1189. var postData = {
  1190. CheckoutLocation: address,
  1191. CheckoutImage: img,
  1192. Attendenceid: Attendenceid,
  1193. Attendencelogid: Attendencelogid,
  1194. EndDate: enddate,
  1195. Startdate: Startdate,
  1196. userid: userid,
  1197. Latitude: Latitude,
  1198. Longitude: Longitude
  1199. };
  1200. var jsfiles = ['apps/hrms/managers/attendencemanager.js'];
  1201. instance.fileCacheHelper.loadJsFiles(jsfiles, function (response) {
  1202. Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().SaveCheckOutDetails(postData).then(function (response) {
  1203. MessageHelper.Instance().showSuccess(response.message, '');
  1204. });
  1205. });
  1206. }
  1207. getUserApplicableShifts() {
  1208. let instance = this;
  1209. let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1210. let userid = data.userId;
  1211. Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getUserApplicableShifts(userid).then(function (response) {
  1212. var data = response.result;
  1213. if (data != null) {
  1214. var ele_data = data.length;
  1215. if (data != undefined && data != null && ele_data != 0) {
  1216. instance.shiftfromtime = moment.utc(data[0].fromtime).local();
  1217. let Checktime = new Date(instance.shiftfromtime);
  1218. let LI_ampm = Checktime.getHours() >= 12 ? 'PM' : 'AM';
  1219. let spl_val = Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checktime.getHours())) + ":" + Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checktime.getMinutes()) + ' ' + LI_ampm;
  1220. instance.shifttotime = moment.utc(data[0].totime).local();
  1221. let Checktotime = new Date(instance.shifttotime);
  1222. let Lo_ampm = Checktotime.getHours() >= 12 ? 'PM' : 'AM';
  1223. let spls_val = Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checktotime.getHours())) + ":" + Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checktotime.getMinutes()) + ' ' + Lo_ampm;
  1224. $(".shift_name").html(`${data[0].shiftname} :`);
  1225. $(".shift_timeings").html(`${spl_val} - ${spls_val}`);
  1226. }
  1227. }
  1228. });
  1229. }
  1230. getAttendanceLog() {
  1231. let instance = this;
  1232. let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1233. let userid = data.userId;
  1234. Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getAttendanceLog(userid).then(function (response) {
  1235. if (response.result !== null) {
  1236. instance.last_checkIn = moment.utc(response.result.CheckIn).local();
  1237. let Checkin_time = new Date(instance.last_checkIn);
  1238. let time = Checkin_time.getTime();
  1239. instance.last_checkOut = moment.utc(response.result.CheckOut).local();
  1240. let Checkout_time = new Date(instance.last_checkOut);
  1241. let Ctime = Checkout_time.getTime();
  1242. let LI_ampm = Checkin_time.getHours() >= 12 ? 'PM' : 'AM';
  1243. let last_checkIn = Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checkin_time.getHours())) + ":" + Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checkin_time.getMinutes()) + ' ' + LI_ampm;
  1244. let LO_ampm = Checkout_time.getHours() >= 12 ? 'PM' : 'AM';
  1245. let last_checkOut = Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checkout_time.getHours())) + ":" + Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checkout_time.getMinutes()) + ' ' + LO_ampm;
  1246. if (response.result != null) {
  1247. $(".check_timings").removeClass("hidden");
  1248. $('.start_time').html(last_checkIn);
  1249. $('.end_time').html(last_checkOut);
  1250. let difference = Ctime - time;
  1251. difference = difference / 1000;
  1252. let hourDifference = Math.floor(difference / 3600);
  1253. difference -= hourDifference * 3600;
  1254. let minuteDifference = Math.floor(difference / 60);
  1255. difference -= minuteDifference * 60;
  1256. let due_time = `${Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(hourDifference)}:${Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(minuteDifference)}`;
  1257. if (hourDifference > 9 || hourDifference == 9) {
  1258. $(".Duration_time").addClass("text-success").removeClass("text-danger");
  1259. }
  1260. else {
  1261. $(".Duration_time").addClass("text-danger").removeClass("text-success");
  1262. }
  1263. $(".due_time").html(due_time);
  1264. }
  1265. }
  1266. });
  1267. }
  1268. getAttendanceLogLastRecord() {
  1269. let instance = this;
  1270. let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1271. let userid = data.userId;
  1272. Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getAttendanceLogLastRecord(userid).then(function (response) {
  1273. instance.last_checktable = response.result.CheckOut;
  1274. if (instance.last_checktable == "0001-01-01T00:00:00") {
  1275. $('.checkIn_err').addClass('d-none');
  1276. if (screen.width < 576) {
  1277. }
  1278. }
  1279. else {
  1280. $('.checkIn_err').removeClass('d-none');
  1281. $("#modal_closebtn").removeClass('d-none');
  1282. $("#snapBtn").addClass('d-none');
  1283. $("#cam").addClass('d-none');
  1284. $("#user_location").addClass('d-none');
  1285. $("#CancelBtn").addClass("d-none");
  1286. }
  1287. });
  1288. }
  1289. static Instance() {
  1290. if (this.instance === undefined)
  1291. this.instance = new Attendence();
  1292. return this.instance;
  1293. }
  1294. }
  1295. Components.Attendence = Attendence;
  1296. })(Components = Hrms.Components || (Hrms.Components = {}));
  1297. })(Hrms = Apps.Hrms || (Apps.Hrms = {}));
  1298. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  1299. })(Bizgaze || (Bizgaze = {}));
  1300. var Unibase;
  1301. (function (Unibase) {
  1302. let Platform;
  1303. (function (Platform) {
  1304. let Membership;
  1305. (function (Membership) {
  1306. let Components;
  1307. (function (Components) {
  1308. class CheckinDetails extends Platform.Core.BaseComponent {
  1309. init(containerid) {
  1310. let instance = this;
  1311. instance.load(null, containerid, null);
  1312. }
  1313. loadCheckInDetails(containerid) {
  1314. let instance = this;
  1315. let html = `<div class="modal-content">
  1316. <div class="modal-header pa-10">
  1317. <strong class="modal-title biz-highlight-bg-color">Attendence Details</strong>
  1318. </div>
  1319. <div data-simplebar class="modal-body simple-scroll-bar Create-New-Form-body bg-white">
  1320. </div>
  1321. <div class="modal-footer pa-10"> <button type="button" id="newAccountFormCloseBtn"
  1322. class="btn btn-light btn-sm mr-auto">Close</button> <button type="button" id="newAccountFormSaveBtn"
  1323. class="btn btn-primary hidden btn-sm">Save</button> </div>
  1324. </div>`;
  1325. $('#' + containerid).html(html);
  1326. }
  1327. load(id, containerid, callback) {
  1328. var instance = this;
  1329. instance.loadCheckInDetails(containerid);
  1330. $(`#newAccountFormCloseBtn`).click(function () {
  1331. instance.navigationHelper.closePopUp();
  1332. });
  1333. }
  1334. jsFiles() {
  1335. return ["platform/membership/components/checkindetails.js"];
  1336. }
  1337. cssFiles() {
  1338. return [];
  1339. }
  1340. html(id, containerid) {
  1341. var instance = this;
  1342. let html = ``;
  1343. return html;
  1344. }
  1345. static Instance() {
  1346. if (this.instance === undefined)
  1347. this.instance = new CheckinDetails();
  1348. return this.instance;
  1349. }
  1350. }
  1351. Components.CheckinDetails = CheckinDetails;
  1352. })(Components = Membership.Components || (Membership.Components = {}));
  1353. })(Membership = Platform.Membership || (Platform.Membership = {}));
  1354. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  1355. })(Unibase || (Unibase = {}));
  1356. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  1357. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  1358. return new (P || (P = Promise))(function (resolve, reject) {
  1359. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  1360. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  1361. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  1362. step((generator = generator.apply(thisArg, _arguments || [])).next());
  1363. });
  1364. };
  1365. var Bizgaze;
  1366. (function (Bizgaze) {
  1367. let Apps;
  1368. (function (Apps) {
  1369. let Hrms;
  1370. (function (Hrms) {
  1371. let Managers;
  1372. (function (Managers) {
  1373. class AttendenceManager extends Unibase.Platform.Core.BaseManager {
  1374. SaveCheckOutDetails(obj) {
  1375. return __awaiter(this, void 0, void 0, function* () {
  1376. const url = 'apis/v4/bizgaze/hrms/attendence/SaveCheckOutDetails';
  1377. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  1378. if (response.result !== null)
  1379. response.result = JSON.parse(response.result);
  1380. return response;
  1381. });
  1382. });
  1383. }
  1384. SaveCheckInDetails(obj) {
  1385. return __awaiter(this, void 0, void 0, function* () {
  1386. const url = 'apis/v4/bizgaze/hrms/attendence/saveCheckInDetails';
  1387. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  1388. if (response.result !== null)
  1389. response.result = JSON.parse(response.result);
  1390. return response;
  1391. });
  1392. });
  1393. }
  1394. getEmployeeCheckinAndCheckout(employeeid, checkin, checkout) {
  1395. return __awaiter(this, void 0, void 0, function* () {
  1396. const url = 'apis/v4/bizgaze/hrms/attendence/getemployeecheckincheckoutdetails/employeeid/' + employeeid + '/checkin/' + checkin + '/checkout/' + checkout;
  1397. return yield this.dataHelper().getAsync(url).then(function (response) {
  1398. if (response.result !== null)
  1399. response.result = JSON.parse(response.result);
  1400. return response;
  1401. });
  1402. });
  1403. }
  1404. getRegularizationCheckinAndCheckout(employeeid, checkin, checkout) {
  1405. return __awaiter(this, void 0, void 0, function* () {
  1406. const url = 'apis/v4/bizgaze/hrms/regularization/getregularizationcheckincheckoutdetails/employeeid/' + employeeid + '/checkin/' + checkin + '/checkout/' + checkout;
  1407. return yield this.dataHelper().getAsync(url).then(function (response) {
  1408. if (response.result !== null)
  1409. response.result = JSON.parse(response.result);
  1410. return response;
  1411. });
  1412. });
  1413. }
  1414. DeleteIncludedEmployees(attendeeid) {
  1415. return __awaiter(this, void 0, void 0, function* () {
  1416. debugger;
  1417. const url = "apis/v4/bizgaze/hrms/presentbydefault/DeleteIncludedEmployees/id/" + attendeeid + "";
  1418. return yield this.dataHelper().postAsync(url, null).then(function (response) {
  1419. if (response.result !== null)
  1420. response.result = JSON.parse(response.result);
  1421. return response;
  1422. });
  1423. });
  1424. }
  1425. getUserApplicableShifts(employeeid) {
  1426. return __awaiter(this, void 0, void 0, function* () {
  1427. const url = 'apis/v4/bizgaze/hrms/attendence/getuserapplicableshifts/employeeid/' + employeeid;
  1428. return yield this.dataHelper().getAsync(url).then(function (response) {
  1429. if (response.result !== null)
  1430. response.result = JSON.parse(response.result);
  1431. return response;
  1432. });
  1433. });
  1434. }
  1435. getLoginDetails(employeeid) {
  1436. return __awaiter(this, void 0, void 0, function* () {
  1437. const url = 'apis/v4/bizgaze/hrms/attendence/getLogindata/employeeid/' + employeeid;
  1438. return yield this.dataHelper().getAsync(url).then(function (response) {
  1439. if (response.result !== null)
  1440. response.result = JSON.parse(response.result);
  1441. return response;
  1442. });
  1443. });
  1444. }
  1445. addGeofencingUser(employeeid, employeename) {
  1446. return __awaiter(this, void 0, void 0, function* () {
  1447. var instance = this;
  1448. var _recordId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_recordid").Value);
  1449. var obj = {
  1450. "employeeid": employeeid,
  1451. "geofencingid": _recordId,
  1452. "employeename": employeename
  1453. };
  1454. const url = 'apis/v4/bizgaze/hrms/attendence/addgeofencinguser';
  1455. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  1456. if (response.result !== null) {
  1457. var installedappid = Unibase.Themes.Providers.DetailHelper.installedAppId;
  1458. var Portlet = Unibase.Themes.Providers.Detail_Settings.Instance().ActivePortlets;
  1459. var PortletId = $('#hf_PortletId').val();
  1460. var detailInstance = Unibase.Themes.Compact.Components.Details.Instance();
  1461. var panel = "#" + detailInstance._containerId;
  1462. Unibase.Themes.Compact.Components.Details.Instance().loadWidgets(installedappid, PortletId, panel);
  1463. return MessageHelper.Instance().showSuccess(response.message, "user added successfully");
  1464. }
  1465. else
  1466. return MessageHelper.Instance().showError(response.message, "add try Again ");
  1467. });
  1468. });
  1469. }
  1470. getAttendanceLog(employeeid) {
  1471. return __awaiter(this, void 0, void 0, function* () {
  1472. const url = 'apis/v4/bizgaze/hrms/attendence/getAttendanceLog/employeeid/' + employeeid;
  1473. return yield this.dataHelper().getAsync(url).then(function (response) {
  1474. if (response.result !== null && response.result !== '')
  1475. response.result = JSON.parse(response.result);
  1476. return response;
  1477. });
  1478. });
  1479. }
  1480. getAttendanceLogLastRecord(employeeid) {
  1481. return __awaiter(this, void 0, void 0, function* () {
  1482. const url = 'apis/v4/bizgaze/hrms/attendence/GetAttendanceLogLastRecord/employeeid/' + employeeid;
  1483. return yield this.dataHelper().getAsync(url).then(function (response) {
  1484. if (response.result !== null)
  1485. response.result = JSON.parse(response.result);
  1486. return response;
  1487. });
  1488. });
  1489. }
  1490. static Instance() {
  1491. if (this._instance === undefined)
  1492. this._instance = new AttendenceManager();
  1493. return this._instance;
  1494. }
  1495. }
  1496. Managers.AttendenceManager = AttendenceManager;
  1497. })(Managers = Hrms.Managers || (Hrms.Managers = {}));
  1498. })(Hrms = Apps.Hrms || (Apps.Hrms = {}));
  1499. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  1500. })(Bizgaze || (Bizgaze = {}));
  1501. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  1502. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  1503. return new (P || (P = Promise))(function (resolve, reject) {
  1504. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  1505. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  1506. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  1507. step((generator = generator.apply(thisArg, _arguments || [])).next());
  1508. });
  1509. };
  1510. var Unibase;
  1511. (function (Unibase) {
  1512. let Apps;
  1513. (function (Apps) {
  1514. let Collaboration;
  1515. (function (Collaboration) {
  1516. class ResumeParsingManager extends Unibase.Platform.Core.BaseManager {
  1517. createLead(obj) {
  1518. return __awaiter(this, void 0, void 0, function* () {
  1519. const url = '/apis/v4/bizgaze/integrations/leads/save';
  1520. return yield this.dataHelper().postAsync(url, obj).then(function (response) {
  1521. if (response.result != null) {
  1522. response.result = JSON.parse(response.result);
  1523. }
  1524. return response;
  1525. });
  1526. });
  1527. }
  1528. postResume(data) {
  1529. return __awaiter(this, void 0, void 0, function* () {
  1530. const url = 'apis/v4/bizgaze/integrations/ai/uploadresume';
  1531. return yield this.dataHelper().postAsync(url, data).then(function (response) {
  1532. return response;
  1533. });
  1534. });
  1535. }
  1536. postUserRegister(data) {
  1537. return __awaiter(this, void 0, void 0, function* () {
  1538. const url = 'apis/v4/bizgaze/integrations/facerecognization/register';
  1539. return yield this.dataHelper().postAsync(url, data).then(function (response) {
  1540. return response;
  1541. });
  1542. });
  1543. }
  1544. postUserDetect(data) {
  1545. return __awaiter(this, void 0, void 0, function* () {
  1546. const url = 'apis/v4/bizgaze/integrations/facerecognization/detect';
  1547. return yield this.dataHelper().postAsync(url, data).then(function (response) {
  1548. return response;
  1549. });
  1550. });
  1551. }
  1552. postbusinessCard(data) {
  1553. return __awaiter(this, void 0, void 0, function* () {
  1554. const url = 'apis/v4/bizgaze/integrations/ai/uploadbusinesscards/list';
  1555. return yield this.dataHelper().postAsync(url, data).then(function (response) {
  1556. return response;
  1557. });
  1558. });
  1559. }
  1560. static Instance() {
  1561. if (this.instance === undefined) {
  1562. this.instance = new ResumeParsingManager();
  1563. }
  1564. return this.instance;
  1565. }
  1566. }
  1567. Collaboration.ResumeParsingManager = ResumeParsingManager;
  1568. })(Collaboration = Apps.Collaboration || (Apps.Collaboration = {}));
  1569. })(Apps = Unibase.Apps || (Unibase.Apps = {}));
  1570. })(Unibase || (Unibase = {}));