Built files from Bizgaze WebServer
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

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 = {}));