123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011 |
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- var Bizgaze;
- (function (Bizgaze) {
- let Apps;
- (function (Apps) {
- let Hrms;
- (function (Hrms) {
- let Components;
- (function (Components) {
- class Attendence extends Unibase.Platform.Core.BaseComponent {
- constructor() {
- super(...arguments);
- this.attendencelogid = 0;
- this.timer = null;
- this.timer_arrref = [];
- this.starttimerobj = [];
- }
- init(containerid) {
- let instance = this;
- instance.fileCacheHelper.loadJsFiles(["platform/membership/components/checkindetails.js", "apps/hrms/managers/attendencemanager.js", "apps/communications/ai/components/resumeparsingmanager.js"], function () {
- instance.loadCustomHTML(containerid);
- });
- }
- cssFiles() {
- return [];
- }
- html(id, containerid) {
- var instance = this;
- let html = ``;
- return html;
- }
- load(id, containerid, callback) {
- var instance = this;
- }
- jsFiles() {
- return ["apps/hrms/components/attendence.js", "apps/hrms/managers/attendencemanager.js", "apps/communications/ai/components/resumeparsingmanager.js", "platform/core/helpers/mobile/interfaces/imobilehelper.js"];
- }
- loadCustomHTML(containerid) {
- let instance = this;
- let capture_modal = `
- <div class="modal fade hide" id="caputerModel" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
- <div class="modal-dialog modal-dialog-centered" role="document">
- <div class="modal-content">
- <div class="modal-header border-0 py-2">
- <button type="button" class="close" data-dismiss="modal" id="CancelBtn" aria-label="Close" data-tooltip="true" data-placement="right" title="Cancel">
- <span aria-hidden="true">×</span>
- </button>
- </div>
- <div class="modal-body pt-0 position-relative">
- <div class="pb-40 pt-40 shift_err text-center d-none"><p>No Shift's Available</p></div>
- <div class="pb-20 pt-40 checkIn_err text-center d-none"><p>You are Already Check Out</p></div>
- <div id="caputer_video" class="d-none User_Picture">
- <div class="position-relative">
- <video id="cam" autoplay muted playsinline style="transform: scaleX(-1);">Not available </video>
- <canvas id="canvas" class="d-none" style="transform: scaleX(-1);"></canvas>
- <img id="photo" alt="The screen capture will appear in this box." style="transform: scaleX(-1);" class="d-none">
- <div class="text-center position-absolute suggest_err">
- <span class="loader-pendulums d-none" id="img_check"></span>
- <span class="capture_err d-none text-danger font-16"></span>
- </div>
- <div class="position-absolute switch_cam d-none" style="bottom:0px;width:100%;text-align:center;font-size:20px">
- <div class="cam_view" style="width:100%;max-width:10%;margin:auto">
- <input type="checkbox" id="camera_view" class="d-none"/>
- <label class="cam_front" for="camera_view">
- <img src="tenants/themes/compact/imgs/rotate.png" class="cam_img p-1 bg-white" style="width:100%;"/>
- </label>
- </div>
- </div>
- </div>
- <div class="bg-white" id="location_data"></div>
- </div>
-
- </div>
- </div>
- </div>`;
- $("#_bizgaze_modal").html(capture_modal);
- let html = '';
- if (screen.width > 576) {
- html = ` <div class="check_in_timer" id="Check_in_timer">
- <div class="card border-0 shadow p-3">
- <div class="check_in_body">
- <div class="d-flex align-items-center justify-content-between pb-1">
- <span class="biz-highlight-bg-color font-weight-500 font-16">Attendance</span>
- <span class="" data-tooltip="true" title="Report"><i class="dripicons dripicons-graph-pie view_Details cursor-pointer"></i></span>
- </div>
- <div class="text-center">
- <div class="timer font-weight-600 font-25 d-flex justify-content-center align-items-center">
- <img src="tenants/themes/compact/imgs/start_timer.png" class="timing"/>
- <img src="tenants/themes/compact/imgs/start_timer1.gif" class="d-none start_timing"/>
- <div class="run_time">
- <span class="output">00:00:00</span>
- <span class="output_re d-none"></span>
- </div>
- <div>Hrs</div>
- </div>
- <div class="text-dark h-10p">
- <span class="list-item-main-title font-weight-500 shift_name font-14"></span>
- <span class="shift_timeings font-14"></span>
- </div>
- </div>
- <div class="text-center pt-4 pb-3">
- <div>
- <button type="button" class="btn btn-primary px-0 w-50" id="check_in_btn">
- <span>Check-in</span>
- </button>
- <button type="button" class="btn btn-primary text-white py-1 d-none px-0 w-50" id="check_out_btn">
- <span>Check-out</span>
- </button>
- </div>
- </div>
- <div class="pt-1 check_timings">
- <div class="row align-items-center font-weight-500">
- <div class="col-4 strttime">
- <div class="d-flex align-items-center startime justify-content-md-center">
- <img src="tenants/themes/compact/imgs/Start.png"/>
- <div class="d-flex flex-column flex-shrink-0" id="Check_in_time">
- <span class="start_time mb-0 text-dark font-13">00:00</span>
- <span class="font-13">Check In</span>
- </div>
- </div>
- </div>
- <div class="col-4 text-center border-left border-right endtime">
- <div class="d-flex justify-content-center align-items-center">
- <img src="tenants/themes/compact/imgs/End.png"/>
- <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_out_time">
- <span class="end_time mb-0 text-dark font-13">00:00</span>
- <span class="font-13">Check Out</span>
- </div>
- </div>
- </div>
- <div class="col-4 text-right">
- <div class="d-flex justify-content-center align-items-center duration">
- <img src="tenants/themes/compact/imgs/Duration.png"/>
- <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_duration">
- <span class="mb-0 Duration_time font-13 text-danger"><span class="due_time">00:00</span> Hrs</span>
- <span class="font-13">Duration</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>`;
- $('.suggest_err').attr({ 'style': 'top:50%;width:100%;max-width:100%' });
- }
- else {
- html = `<div class="check_in_timer" id="Check_in_timer">
- <div class="card border-0 shadow p-3">
- <div class="check_in_body">
- <div class="d-flex align-items-center justify-content-between">
- <span class="font-weight-600 font-18">Attendance</span>
- <span><i class="dripicons dripicons-graph-pie view_Details cursor-pointer"></i></span>
- </div>
- <div class="py-1">
- <div class="timer d-flex justify-content-between align-items-center">
- <div class="timer font-weight-600 font-25 d-flex flex-grow-1 align-items-center">
-
- <img src="tenants/themes/compact/imgs/start_timer.png" class="timing"/>
- <img src="tenants/themes/compact/imgs/start_timer1.gif" class="d-none start_timing"/>
-
- <div class="run_time">
- <span class="output">00:00:00</span>
- <span class="output_re d-none"></span>
- </div>
- <div class="font-18">Hrs</div>
- </div>
- <div class="">
- <button type="button" class="btn btn-primary" id="check_in_btn">
- <span class="font-14">Check In</span>
- </button>
- <button type="button" class="btn biz-highlight-color text-white d-none" id="check_out_btn">
- <span class="font-14">Check Out</span>
- </button>
- </div>
- </div>
- <div class="d-flex align-items-center font-13">
- <div class="list-item-main-title pr-1 font-weight-500 font-13 shift_name"></div>
- <div class="text-dark">
- <span class="shift_timeings"></span>
- </div>
- </div>
- </div>
- <div class="pt-2 check_timings">
- <div class="row align-items-center font-weight-500">
- <div class="col-4 strttime">
- <div class="d-flex align-items-center">
- <img src="tenants/themes/compact/imgs/Start.png"/>
- <div class="d-flex flex-column flex-shrink-0 " id="Check_in_time">
- <span class="start_time mb-0 text-dark">00:00</span>
- <span class="check">Check In</span>
- </div>
- </div>
- </div>
- <div class="col-4 text-center border-left border-right endtime">
- <div class="d-flex justify-content-center align-items-center">
- <img src="tenants/themes/compact/imgs/End.png"/>
- <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_out_time">
- <span class="end_time mb-0 text-dark">00:00</span>
- <span class="check">Check Out</span>
- </div>
- </div>
- </div>
- <div class="col-4 text-right duration">
- <div class="d-flex justify-content-center align-items-center">
- <img src="tenants/themes/compact/imgs/Duration.png"/>
- <div class="d-flex flex-column flex-shrink-0 text-left" id="Check_duration">
- <span class="mb-0 Duration_time text-danger"><span class="due_time">00:00</span> Hrs</span>
- <span class="check">Duration</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>`;
- $('.suggest_err').attr({ 'style': 'top:50%;width:100%;max-width:100%' });
- $("#canvas").removeAttr("width");
- $("#canvas").removeAttr("height");
- }
- $('#' + containerid).html(html);
- let check_profile = Unibase.Platform.Membership.Infos.Identity.currentUser.photoUrl;
- if (check_profile == '' || check_profile == null) {
- let err_html = `<div>
- <p class="font-15 no_profile pt-10 text-center text-danger">Please Upload Your Profile Picture</p>
- </div>`;
- $("#location_data").html(err_html);
- $(".loader-icon").addClass("d-none");
- $("#caputerModel").removeClass("show").attr("style", "display:none;");
- }
- else {
- let no_html = `<div> <p id="user_location" class="font-14 py-2 text-dark text-left"></p>
- <div class="d-flex align-items-center justify-content-end pb-3">
- <button type="button" class="btn btn-primary rounded-pill py-1" id="snapBtn" aria-label="Close">Capture</button>
- <button type="button" class="btn btn-danger rounded-pill d-none py-1" id="retakeBtn">Re-Capture</button>
- <button type="button" class="btn btn-primary rounded-pill d-none py-1" data-dismiss="modal" aria-label="Close" id="modal_closebtn">Ok</button>
- </div>
- </div>`;
- $("#location_data").html(no_html);
- }
- instance.getAttendanceLog();
- instance.attendenceCheckIn();
- instance.getUserApplicableShifts();
- instance.takeImage();
- instance.retakeImage();
- instance.viewattendenceReport();
- instance.afterload();
- instance.attendencecheckout();
- instance.modalcheckout();
- instance.attendenceCancle();
- }
- loadCheckIn(containerid) {
- let instance = this;
- instance.loadCustomHTML(containerid);
- }
- Location() {
- if (navigator.geolocation) {
- $("#snapBtn").attr("disabled", "disabled");
- navigator.geolocation.getCurrentPosition(Bizgaze.Apps.Hrms.Components.Attendence.Instance().geoLocationSuccess, Bizgaze.Apps.Hrms.Components.Attendence.Instance().geoLocationError, { timeout: 10000 });
- }
- else {
- alert("your browser doesn't support geolocation");
- }
- ;
- }
- geoLocationSuccess(pos) {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- let loadingTimeout;
- instance.mylatitude = pos.coords.latitude;
- instance.mylongtitude = pos.coords.longitude;
- var loading = function () {
- $("#user_location").text("fetching...");
- };
- loadingTimeout = setTimeout(loading, 600);
- const apikey = _mapsettings.key();
- var request = $.get(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${instance.mylatitude},${instance.mylongtitude}&key=${apikey}`).done(function (data) {
- if (loadingTimeout) {
- clearTimeout(loadingTimeout);
- loadingTimeout = null;
- instance.address = data.results[0].formatted_address;
- $("#user_location").html("<span class='font-weight-600'>Location :</span> " + instance.address);
- let ele = $("#user_location").find("span");
- let ele_val = ele[0];
- let Cam_ele = $("#cam").hasClass("d-none");
- if (ele_val != undefined && Cam_ele == false) {
- $("#snapBtn").removeAttr("disabled");
- }
- else {
- $("#snapBtn").attr("disabled", "disabled");
- }
- }
- }).fail(function () {
- $("#snapBtn").addClass("d-none");
- });
- }
- ;
- geoLocationError(error) {
- var errors = {
- 1: "Permission denied",
- 2: "Position unavailable",
- 3: "Request timeout"
- };
- if (errors[error.code]) {
- $("#user_location").html("<span class='font-weight-500 text-danger'>Please enable your Location...</span>");
- $("#snapBtn").attr("disabled", "disabled");
- }
- }
- ;
- addzero(x) {
- if (x < 10) {
- return x = '0' + x;
- }
- else {
- return x;
- }
- }
- twelvehours(x) {
- if (x > 12) {
- return x = x - 12;
- }
- else if (x == 0) {
- return x = 12;
- }
- else {
- return x;
- }
- }
- cemeraCapture() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- instance.constraints = {
- audio: false,
- video: {
- width: { ideal: 640 },
- height: { ideal: 480 },
- facingMode: "user"
- },
- };
- instance.getMediaStream();
- }
- getMediaStream() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- function getMediaStream(constraints) {
- return __awaiter(this, void 0, void 0, function* () {
- try {
- instance.mediaStream = yield navigator.mediaDevices.getUserMedia(constraints);
- instance.video = document.getElementById('cam');
- instance.video.srcObject = instance.mediaStream;
- instance.video.onloadedmetadata = (event) => {
- let cam_err = event.currentTarget;
- if (cam_err != null) {
- let shift_err = $('.checkIn_err').hasClass("d-none");
- if (shift_err == true) {
- $("#cam").removeClass("d-none");
- instance.video.play();
- $(".cam_err").remove();
- }
- }
- };
- }
- catch (err) {
- console.log(err.message);
- $("#cam").addClass("d-none");
- $(".cam_err").removeClass("d-none");
- let arr_val = $("#user_location").find("span").hasClass("cam_loc_err");
- if (arr_val != true) {
- $("#cam").after("<span class='font-weight-500 text-danger cam_err'>Please enable your Camera...</span>");
- }
- let cam_val = $("#cam").parent().find("span").hasClass("cam_err");
- let loc_val = $("#user_location").find("span").hasClass("text-danger");
- if (cam_val && loc_val) {
- $("#cam").parent().find(".cam_err").remove();
- $("#user_location").html("<span class='font-weight-500 text-danger cam_loc_err'>Please enable your Location and Camera...</span>");
- }
- $("#snapBtn").attr("disabled", "disabled");
- }
- });
- }
- getMediaStream(instance.constraints);
- }
- switchCamera(cameraMode) {
- return __awaiter(this, void 0, void 0, function* () {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- try {
- if (instance.mediaStream != null && instance.mediaStream.active) {
- var tracks = instance.mediaStream.getVideoTracks();
- tracks.forEach(track => {
- track.stop();
- });
- }
- document.getElementById('cam').srcObject = null;
- instance.constraints.video.facingMode = cameraMode;
- yield instance.getMediaStream();
- }
- catch (err) {
- console.log(err.message);
- }
- });
- }
- takePicture() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- instance.canvas = document.getElementById('canvas');
- instance.videos = document.getElementById('cam');
- let photo = document.getElementById('photo');
- let context = instance.canvas.getContext('2d');
- const height = instance.videos.videoHeight;
- const width = instance.videos.videoWidth;
- if (width && height) {
- instance.canvas.width = width;
- instance.canvas.height = height;
- context.drawImage(instance.video, 0, 0, width, height);
- var data = instance.canvas.toDataURL('image/png');
- const webp = context.canvas.toDataURL("image/webp", 0.8);
- photo.setAttribute('style', "transform: scaleX(-1)");
- $("#photo").attr('src', data);
- }
- else {
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().clearPhoto();
- }
- }
- ;
- clearPhoto() {
- let instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- let photo = document.getElementById('photo');
- let context = instance.canvas.getContext('2d');
- context.fillStyle = "#AAA";
- context.fillRect(0, 0, instance.canvas.width, instance.canvas.height);
- var data = instance.canvas.toDataURL('image/png');
- photo.removeAttribute('src');
- }
- ;
- clockTick() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- let r_datd = $(".output_re").hasClass("d-none");
- const date = Date.now();
- const timer_run = $('#check_in_btn').hasClass("d-none");
- if (timer_run == true) {
- if (r_datd == false) {
- instance.timer_arrref;
- const timeref = new Date(date - Number(instance.timer_arrref));
- const refhours = timeref.getUTCHours();
- const refmins = timeref.getUTCMinutes();
- const refsecs = timeref.getUTCSeconds();
- const refcount_hrs = refhours > 9 ? refhours : "0" + refhours;
- const refcount_mins = refmins > 9 ? refmins : "0" + refmins;
- const refcount_secs = refsecs > 9 ? refsecs : "0" + refsecs;
- $(".output").html(`${refcount_hrs}:${refcount_mins}:${refcount_secs}`);
- }
- else {
- const timeElaspsed = new Date(date - Number(instance.starttimerobj));
- const hours = timeElaspsed.getUTCHours();
- const mins = timeElaspsed.getUTCMinutes();
- const secs = timeElaspsed.getUTCSeconds();
- const count_hrs = hours > 9 ? hours : "0" + hours;
- const count_mins = mins > 9 ? mins : "0" + mins;
- const count_secs = secs > 9 ? secs : "0" + secs;
- $(".output").html(`${count_hrs}:${count_mins}:${count_secs}`);
- }
- }
- }
- reset() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- clearInterval(instance.timer);
- let timerreset = $('.output').text();
- let timerin = timerreset.includes("NaN");
- if (timerin == true) {
- $('.output').empty();
- $('.output').html(`00:00:00`);
- }
- else {
- $('.output').empty();
- $('.output').html(`00:00:00`);
- }
- }
- attenanceSnap() {
- let instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- let checkedIn = $("#check_in_btn").hasClass("d-none");
- let online_cather = window.navigator.onLine;
- if (checkedIn == false) {
- if (online_cather) {
- $("#check_in_btn").attr({ "data-toggle": "modal", "data-backdrop": "false", "data-target": "#caputerModel" });
- let shift_name = $('.shift_name').text();
- let shift_time = $('.shift_timeings').text();
- if (shift_name == '' && shift_time == '') {
- $('.close').removeClass("d-none");
- $('.shift_err').removeClass('d-none');
- }
- else {
- $("#caputer_video").removeClass("d-none");
- $("#user_location").removeClass("d-none");
- $("#CancelBtn").removeClass("d-none");
- $(".capture_err").addClass("d-none");
- $(".loader-icon").addClass("d-none");
- $('.checkIn_err').addClass('d-none');
- $("#modal_closebtn").addClass('d-none');
- $('#Check_in_time').removeClass("d-none");
- $("#cam").removeClass("d-none");
- $("#location_data").removeClass("d-none");
- $("#snapBtn").removeClass("d-none");
- $("#retakeBtn").addClass("d-none");
- $("#close_btn").addClass("d-none");
- }
- }
- else {
- $(this).removeAttr("data-target data-toggle data-backdrop");
- }
- }
- else {
- if (online_cather) {
- $("#check_out_btn").attr({ "data-toggle": "modal", "data-backdrop": "false", "data-target": "#caputerModel" });
- $("#caputer_video").removeClass("d-none");
- $(".capture_err").addClass("d-none");
- $(".loader-icon").addClass("d-none");
- $('#Check_in_time').removeClass("d-none");
- $("#cam").removeClass("d-none");
- $("#location_data").removeClass("d-none");
- $("#CancelBtn").removeClass("d-none");
- $("#snapBtn").removeClass("d-none");
- $("#retakeBtn").addClass("d-none");
- let removeVide = $('#modal_closebtn').hasClass("d-none");
- if (removeVide == false) {
- instance.mediaStream.getTracks().forEach((track) => {
- track.stop();
- });
- }
- }
- else {
- $(this).removeAttr("data-target data-toggle data-backdrop");
- }
- }
- }
- attendenceCheckIn() {
- if (isMobileApp()) {
- Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Camera, Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture);
- Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Location, Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location);
- }
- $("#check_in_btn").click(function () {
- $("#canvas").addClass("d-none");
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location();
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture();
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().attenanceSnap();
- });
- }
- attendencecheckout() {
- if (isMobileApp()) {
- Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Camera, Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture);
- Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Location, Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location);
- }
- $("#check_out_btn").click(function () {
- $("#canvas").addClass("d-none");
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().getAttendanceLogLastRecord();
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().Location();
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().cemeraCapture();
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().attenanceSnap();
- });
- }
- attendenceCancle() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- $("#CancelBtn").click(function () {
- $(this).addClass("d-none");
- $("#caputer_video").addClass("d-none");
- $("#photo").attr("src", '');
- $("#retakeBtn").addClass("d-none");
- $("#close_btn").addClass("d-none");
- $("#img_check").addClass("d-none");
- $(".cam_err").remove();
- $(".cam_loc_err").remove();
- instance.mediaStream.getTracks().forEach((track) => {
- track.stop();
- });
- $(".capture_err").addClass("d-none");
- $(".capture_err").parent().removeClass("align-items-end");
- });
- }
- modalcheckout() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- $('#modal_closebtn').click(function () {
- instance.mediaStream.getTracks().forEach((track) => {
- track.stop();
- });
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().reset();
- if (instance.startTime != null || instance.timer_arrref != null) {
- instance.startTime = undefined;
- instance.timer_arrref = undefined;
- instance.starttimerobj = undefined;
- }
- $(".output").removeClass("d-none");
- let re_btn = $(".output").hasClass("d-none");
- if (re_btn == false) {
- $(".output_re").empty();
- $('.output').html(`00:00:00`);
- $(".output_re").addClass("d-none");
- }
- $('.output').html(`00:00:00`);
- $("#check_out_btn").addClass("d-none");
- $("#check_in_btn").removeClass("d-none");
- $(".start_timing").addClass('d-none');
- $(".timing").removeClass('d-none');
- $(".output").removeClass("d-none");
- $(".output_re").addClass("d-none");
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().getAttendanceLog();
- });
- }
- takeImage() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- let emp_id = Unibase.Platform.Membership.Infos.Identity.currentUser.unibaseId;
- let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let userid = data.userId;
- $("#snapBtn").click(function (e) {
- return __awaiter(this, void 0, void 0, function* () {
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().takePicture();
- $("#cam").addClass("d-none");
- $(this).addClass("d-none");
- $("#img_check").removeClass("d-none");
- $("#canvas").addClass("d-none");
- $("#canvas").attr("style", "filter:blur(7px);transform:scaleX(-1);max-width:100%");
- instance.img_stored = $("#photo").attr("src");
- debugger;
- if (instance.img_stored !== '') {
- $("#canvas").removeClass("d-none");
- }
- else {
- $("#canvas").addClass("d-none");
- }
- var date = new Date();
- let get_month = date.getMonth();
- let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
- instance.startDate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatServerDateTime(date);
- let userCheckindetails = {
- "Latitude": instance.mylatitude,
- "Longitude": instance.mylongtitude,
- "Address": instance.address,
- "imageurl": instance.img_stored,
- "Userid": userid,
- "StartDate": instance.startDate,
- "user_url": window.location.host
- };
- var Attendenceid = instance.attendenceid;
- var Attendencelogid = instance.attendencelogid;
- let enddate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatServerDateTime(date);
- var Startdate = instance.startdate;
- var userCheckoutdetails = {
- CheckoutLocation: instance.address,
- CheckoutImage: instance.img_stored,
- Attendenceid: Attendenceid,
- Attendencelogid: Attendencelogid,
- Startdate: Startdate,
- EndDate: enddate,
- userid: userid,
- Latitude: instance.mylatitude,
- Longitude: instance.mylongtitude,
- user_url: window.location.host
- };
- var jsfiles = ['apps/hrms/managers/attendencemanager.js'];
- let checkin = $('#check_in_btn').hasClass("d-none");
- if (checkin == false) {
- instance.fileCacheHelper.loadJsFiles(jsfiles, function (response) {
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().SaveCheckInDetails(userCheckindetails).then(function (response) {
- var CheckIn_data = response.result;
- if (CheckIn_data == null) {
- $('#caputerModel').modal("show");
- $("#canvas").removeClass("d-none");
- $("#retakeBtn").removeClass("d-none");
- $(".loader-icon").addClass("d-none");
- $("#retakeBtn").removeClass("d-none");
- let html = `<span class="font-weight-600">${response.message}</span>`;
- $(".capture_err").html(html);
- $(".capture_err").removeClass("d-none");
- $("#img_check").addClass("d-none");
- }
- else {
- $('#caputerModel').modal("hide");
- $("#check_out_btn").attr({ "data-toggle": "modal", "data-backdrop": "false", "data-target": "#caputerModel" });
- $(".timing").addClass("d-none");
- $(".start_timing").removeClass("d-none");
- $('#snapBtn').addClass("d-none");
- $("#img_check").addClass("d-none");
- $("#caputer_video").addClass("d-none");
- $("#retakeBtn").addClass("d-none");
- $("#caputer_video").addClass("d-none");
- $("#retakeBtn").addClass("d-none");
- $("#check_in_btn").removeAttr("data-toggle data-backdrop data-target");
- $("#location_data").addClass("d-none");
- $("#check_in_btn").addClass("d-none");
- $("#check_out_btn").removeClass("d-none");
- instance.mediaStream.getTracks().forEach((track) => {
- track.stop();
- });
- instance.startTime = Date.now();
- instance.re_timer = Date.now();
- instance.starttimerobj = instance.re_timer;
- instance.timer = setInterval(instance.clockTick, 1000);
- instance.time_Now = new Date();
- let hours = instance.time_Now.getHours();
- let ampm = hours >= 12 ? 'PM' : 'AM';
- let time = instance.addzero(instance.twelvehours(instance.time_Now.getHours())) + ":" + instance.addzero(instance.time_Now.getMinutes());
- instance.Start_time = instance.addzero(instance.twelvehours(instance.time_Now.getHours())) + ":" + instance.addzero(instance.time_Now.getMinutes()) + ' ' + ampm;
- $('.start_time').html(instance.Start_time);
- }
- instance.attendenceid = CheckIn_data.Attendanceid;
- instance.attendencelogid = CheckIn_data._Id;
- instance.startdate = CheckIn_data.Checkin;
- let date_end = `${date.getDate()} ${months[get_month]} ${date.getFullYear()}`;
- let User_endTime = `${date_end} ${instance.Start_time}`;
- let User_name = Unibase.Platform.Membership.Infos.Identity.currentUser.name;
- let User_img = Unibase.Platform.Membership.Infos.Identity.currentUser.photoUrl;
- MessageHelper.Instance().ShowAttendenceSuccess(User_name, User_img, response.message, User_endTime, instance.address);
- $("#bizgaze_body").parent().find('.jq-toast-wrap').find('.d-flex.list-inline .mr-4').addClass("d-none");
- $("#bizgaze_body").parent().find('.jq-toast-wrap').find('.d-flex.list-inline h3.font-14.font-weight-400').addClass("d-none");
- });
- });
- }
- else {
- instance.fileCacheHelper.loadJsFiles(jsfiles, function (response) {
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().SaveCheckOutDetails(userCheckoutdetails).then(function (response) {
- var Check_data = response.result;
- if (Check_data == null) {
- $('#caputerModel').modal("show");
- $("#canvas").removeClass("d-none");
- $("#retakeBtn").removeClass("d-none");
- $(".loader-icon").addClass("d-none");
- $("#retakeBtn").removeClass("d-none");
- let html = `<span class="font-weight-600">${response.message}</span>`;
- $(".capture_err").html(html);
- $(".capture_err").removeClass("d-none");
- $("#img_check").addClass("d-none");
- }
- else {
- $('#caputerModel').modal("hide");
- instance.mediaStream.getTracks().forEach((track) => {
- track.stop();
- });
- $("#check_out_btn").addClass('d-none');
- $("#check_in_btn").removeClass("d-none");
- $('.starting_time').addClass("d-none");
- $(".start_timing").addClass("d-none");
- $("#canvas").addClass('d-none');
- $(".loader-pendulums").addClass('d-none');
- $("#location_data").addClass("d-none");
- $(".timing").removeClass("d-none");
- $("#Check_duration").removeClass("d-none");
- $("#check_out_btn").removeAttr("data-toggle data-backdrop data-target");
- let Current_Time = new Date();
- let hours = Current_Time.getHours();
- let ampm = hours >= 12 ? 'PM' : 'AM';
- instance.End_time = instance.addzero(instance.twelvehours(Current_Time.getHours())) + ":" + instance.addzero(Current_Time.getMinutes()) + ' ' + ampm;
- $(".end_time").html(instance.End_time);
- let key = "settingValue";
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().reset();
- if (instance.startTime != null || instance.timer_arrref != null) {
- instance.startTime = undefined;
- instance.timer_arrref = undefined;
- instance.starttimerobj = undefined;
- }
- $(".output").removeClass("d-none");
- let re_btn = $(".output").hasClass("d-none");
- if (re_btn == false) {
- $(".output_re").empty();
- $('.output').html(`00:00:00`);
- $(".output_re").addClass("d-none");
- }
- $('.output').html(`00:00:00`);
- let del_setting_val = instance.log_data.settings.filter(function (o) { return o.settingName === "checkin"; })[0];
- delete del_setting_val[key];
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().getAttendanceLog();
- let date_end = `${Current_Time.getDate()} ${months[get_month]} ${Current_Time.getFullYear()}`;
- let User_startTime = `${date_end} ${instance.End_time}`;
- let User_name = Unibase.Platform.Membership.Infos.Identity.currentUser.name;
- let User_img = Unibase.Platform.Membership.Infos.Identity.currentUser.photoUrl;
- MessageHelper.Instance().ShowAttendenceSuccess(User_name, User_img, response.message, User_startTime, instance.address);
- $("#bizgaze_body").parent().find('.jq-toast-wrap').find('.d-flex.list-inline .mr-4').addClass("d-none");
- $("#bizgaze_body").parent().find('.jq-toast-wrap').find('.d-flex.list-inline h3.font-14.font-weight-400').addClass("d-none");
- }
- });
- });
- }
- });
- });
- }
- retakeImage() {
- $("#retakeBtn").click(function () {
- $(this).addClass("d-none");
- Bizgaze.Apps.Hrms.Components.Attendence.Instance().takePicture();
- $("#cam").removeClass("d-none");
- $("#canvas").addClass('d-none');
- $("#snapBtn").removeClass("d-none");
- $("#close_btn").addClass("d-none");
- $("#photo").attr('src', '');
- $(".capture_err").addClass("d-none");
- $(".capture_err").parent().removeClass("align-items-end");
- });
- }
- viewattendenceReport() {
- $(".view_Details").click(function () {
- var uniqueid = 'Bizgaze_Platform_Analytics_Reports_AttendanceLogdashboard';
- var date_now = new Date();
- const fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate(date_now);
- Unibase.Platform.Analytics.Components.ReportViewer.Instance().getReportByUniqueId(uniqueid, null, null, null, fromDate, fromDate);
- });
- }
- afterload() {
- const instance = Bizgaze.Apps.Hrms.Components.Attendence.Instance();
- instance.log_data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let started_time = "";
- let _checkin = instance.log_data.settings.filter(function (o) { return o.settingName === "checkin"; });
- if (_checkin.length != 0) {
- started_time = _checkin[0].settingValue;
- }
- instance.employeeid = instance.log_data.userId;
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getLoginDetails(instance.employeeid).then(function (response) {
- if (started_time != '') {
- if (response.result != '' && response.result != null) {
- let last_record = response.result[response.result.length - 1];
- let timeno = last_record.CheckIn;
- instance.startdate = last_record.CheckIn;
- instance.attendenceid = last_record.AttendanceId;
- instance.attendencelogid = last_record.AttendancelogId;
- instance.time_ne = moment.utc(last_record.CheckIn).local();
- let Checkin_timee = new Date(instance.time_ne);
- let start_ampm = Checkin_timee.getHours() >= 12 ? 'PM' : 'AM';
- let start_times = Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checkin_timee.getHours())) + ":" + Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checkin_timee.getMinutes()) + ' ' + start_ampm;
- $('.start_time').html(start_times);
- if (timeno == undefined) {
- $("#check_in_btn").removeClass("d-none");
- $("#check_out_btn").addClass("d-none");
- }
- else {
- instance.startTime = instance.time_ne;
- let Checkin_time = new Date(instance.startTime);
- let time = Checkin_time.getTime();
- instance.timer_arrref = instance.startTime;
- instance.timer = setInterval(instance.clockTick, 1000);
- $("#check_in_btn").addClass("d-none");
- $("#check_out_btn").removeClass("d-none");
- $(".timing").addClass("d-none");
- $(".start_timing").removeClass("d-none");
- $(".output_re").removeClass("d-none");
- }
- }
- }
- else {
- if (response.result != '' && response.result != null) {
- let last_record = response.result[response.result.length - 1];
- let timeno = last_record.CheckIn;
- instance.startdate = last_record.CheckIn;
- instance.attendenceid = last_record.AttendanceId;
- instance.attendencelogid = last_record.AttendancelogId;
- instance.time_ne = moment.utc(last_record.CheckIn).local();
- let Checkin_timeer = new Date(instance.time_ne);
- let startt_ampm = Checkin_timeer.getHours() >= 12 ? 'PM' : 'AM';
- let start_timers = Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Bizgaze.Apps.Hrms.Components.Attendence.Instance().twelvehours(Checkin_timeer.getHours())) + ":" + Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(Checkin_timeer.getMinutes()) + ' ' + startt_ampm;
- $('.start_time').html(start_timers);
- if (timeno == undefined) {
- $("#check_in_btn").removeClass("d-none");
- $("#check_out_btn").addClass("d-none");
- }
- else {
- instance.startTime = instance.time_ne;
- instance.timer_arrref = instance.startTime;
- instance.timer = setInterval(instance.clockTick, 1000);
- $("#check_in_btn").addClass("d-none");
- $("#check_out_btn").removeClass("d-none");
- $(".timing").addClass("d-none");
- $(".start_timing").removeClass("d-none");
- $(".output_re").removeClass("d-none");
- }
- }
- }
- });
- }
- postUserDetect(payload) {
- return __awaiter(this, void 0, void 0, function* () {
- let instance = this;
- let res = yield Unibase.Apps.Collaboration.ResumeParsingManager.Instance().postUserDetect(payload);
- return res;
- });
- }
- SaveCheckOutDetails(enddate) {
- let img = $("#photo").attr("src");
- let instance = this;
- var Startdate = instance.startdate;
- var Attendenceid = instance.attendenceid;
- var Attendencelogid = instance.attendencelogid;
- var address = instance.address;
- var Latitude = instance.mylatitude;
- var Longitude = instance.mylongtitude;
- let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let userid = data.userId;
- var postData = {
- CheckoutLocation: address,
- CheckoutImage: img,
- Attendenceid: Attendenceid,
- Attendencelogid: Attendencelogid,
- EndDate: enddate,
- Startdate: Startdate,
- userid: userid,
- Latitude: Latitude,
- Longitude: Longitude
- };
- var jsfiles = ['apps/hrms/managers/attendencemanager.js'];
- instance.fileCacheHelper.loadJsFiles(jsfiles, function (response) {
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().SaveCheckOutDetails(postData).then(function (response) {
- $('#snapBtn').attr({
- "data-dismiss": "modal",
- "aria-label": "Close"
- });
- instance.mediaStream.getTracks().forEach((track) => {
- track.stop();
- });
- MessageHelper.Instance().showSuccess(response.message, '');
- });
- });
- }
- getUserApplicableShifts() {
- let instance = this;
- let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let userid = data.userId;
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getUserApplicableShifts(userid).then(function (response) {
- var data = response.result;
- if (data != null) {
- var ele_data = data.length;
- if (data != undefined && data != null && ele_data != 0) {
- instance.shiftfromtime = moment.utc(data[0].fromtime).local();
- let Checktime = new Date(instance.shiftfromtime);
- let LI_ampm = Checktime.getHours() >= 12 ? 'PM' : 'AM';
- 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;
- instance.shifttotime = moment.utc(data[0].totime).local();
- let Checktotime = new Date(instance.shifttotime);
- let Lo_ampm = Checktotime.getHours() >= 12 ? 'PM' : 'AM';
- 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;
- $(".shift_name").html(`${data[0].shiftname} :`);
- $(".shift_timeings").html(`${spl_val} - ${spls_val}`);
- }
- }
- });
- }
- getAttendanceLog() {
- let instance = this;
- let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let userid = data.userId;
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getAttendanceLog(userid).then(function (response) {
- if (response.result !== null) {
- instance.last_checkIn = moment.utc(response.result.CheckIn).local();
- let Checkin_time = new Date(instance.last_checkIn);
- let time = Checkin_time.getTime();
- instance.last_checkOut = moment.utc(response.result.CheckOut).local();
- let Checkout_time = new Date(instance.last_checkOut);
- let Ctime = Checkout_time.getTime();
- let LI_ampm = Checkin_time.getHours() >= 12 ? 'PM' : 'AM';
- 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;
- let LO_ampm = Checkout_time.getHours() >= 12 ? 'PM' : 'AM';
- 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;
- if (response.result != null) {
- $('.start_time').html(last_checkIn);
- $('.end_time').html(last_checkOut);
- let difference = Ctime - time;
- difference = difference / 1000;
- let hourDifference = Math.floor(difference / 3600);
- difference -= hourDifference * 3600;
- let minuteDifference = Math.floor(difference / 60);
- difference -= minuteDifference * 60;
- let due_time = `${Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(hourDifference)}:${Bizgaze.Apps.Hrms.Components.Attendence.Instance().addzero(minuteDifference)}`;
- if (hourDifference > 9 || hourDifference == 9) {
- $(".Duration_time").addClass("text-success").removeClass("text-danger");
- }
- else {
- $(".Duration_time").addClass("text-danger").removeClass("text-success");
- }
- $(".due_time").html(due_time);
- }
- }
- });
- }
- getAttendanceLogLastRecord() {
- let instance = this;
- let data = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let userid = data.userId;
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getAttendanceLogLastRecord(userid).then(function (response) {
- instance.last_checktable = response.result.CheckOut;
- if (instance.last_checktable == "0001-01-01T00:00:00") {
- $('.checkIn_err').addClass('d-none');
- }
- else {
- $('.checkIn_err').removeClass('d-none');
- $("#modal_closebtn").removeClass('d-none');
- $("#snapBtn").addClass('d-none');
- $("#cam").addClass('d-none');
- $("#user_location").addClass('d-none');
- $("#CancelBtn").addClass("d-none");
- }
- });
- }
- static Instance() {
- if (this.instance === undefined)
- this.instance = new Attendence();
- return this.instance;
- }
- }
- Components.Attendence = Attendence;
- })(Components = Hrms.Components || (Hrms.Components = {}));
- })(Hrms = Apps.Hrms || (Apps.Hrms = {}));
- })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
- })(Bizgaze || (Bizgaze = {}));
|