123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- var Bizgaze;
- (function (Bizgaze) {
- let Apps;
- (function (Apps) {
- let Hrms;
- (function (Hrms) {
- let Components;
- (function (Components) {
- class AttendanceRequest extends Unibase.Platform.Core.BaseComponent {
- init(formpropertyid, prop, callback) {
- }
- loadControl(containerid, prop) {
- let html = '';
- html = `<div class="card attendace_card_view d-none"><div class="card-header d-sm-block d-none"><div class="row text-dark"><div class="col-11"><div class="row"><div class="col-sm-2"></div><div class="col-sm-5"><div class="row"><div class="col-6">Check-in <span class="text-dark">*</span></div><div class="col-6">Check-out <span class="text-dark">*</span></div></div></div><div class="col-sm-2">Total Hours</div><div class="col-sm-3">Description</div></div></div><div class="col-1"></div></div></div><div class="card-body"><ul class="attendance_list"></ul><input type="hidden" id = "hdn_AttendanceRequestControl" class="value-control" value = "Bizgaze.Apps.Hrms.Components.AttendanceRequest.Instance().Attendancerequestobj();" ></div></div>`;
- $('#' + containerid).html(html);
- }
- loadControlSettings(controlsettingjson, formpropertyid) {
- return null;
- }
- loadPropertySettings(propertysettings, formpropertyid, DocPropertyName) {
- return null;
- }
- bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
- var id = propval;
- let html = `<div class="row text-dark"><div class="col-sm-2"></div><div class="col-sm-5"><div class="row"><div class="col-6">Check-in <span class="text-dark">*</span></div><div class="col-6">Check-out <span class="text-dark">*</span></div></div></div><div class="col-sm-2">Total Hours</div><div class="col-sm-3">Description</div></div>;`;
- return html;
- }
- getEmployeeCheckinAndCheckout(employeeid, fromdate, todate) {
- debugger;
- var fdate = moment(fromdate.replaceAll("/", "-"), "DD-MM-YYYY").format("YYYY-MM-DD");
- var tdate = moment(todate.replaceAll("/", "-"), "DD-MM-YYYY").format("YYYY-MM-DD");
- if (tdate < fdate) {
- MessageHelper.Instance().showError("Todate cannot be lesser than Fromdate", 'div_ErrorMessage_' + $('#' + Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId()).find('#hf_FormId').val());
- }
- let Todatehf = moment(todate, "DD/MM/YYYY").format("YYYY/MM/DD");
- let Fromdatehf = moment(fromdate, "DD/MM/YYYY").format("YYYY/MM/DD");
- $(".hfdate_fromdate").val(Fromdatehf);
- $(".hfdate_todate").val(Todatehf);
- $(".attendace_card_view").removeClass("d-none");
- if ($("#div_FormName").text() == "Create Regularization") {
- this.fileCacheHelper.loadJsFile("apps/hrms/managers/attendencemanager.js", function () {
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getEmployeeCheckinAndCheckout(employeeid, fdate, tdate).then(function (response) {
- $('.attendance_list').html('');
- const datestotal = [];
- function getDates(startDate, endDate) {
- const dates = [];
- let currentDate = startDate;
- const addDays = function (days) {
- const date = new Date(this.valueOf());
- date.setDate(date.getDate() + days);
- return date;
- };
- while (currentDate <= endDate) {
- dates.push(currentDate);
- currentDate = addDays.call(currentDate, 1);
- }
- return dates;
- }
- let totaldates, html_content = '';
- const dates = getDates(new Date(fdate), new Date(tdate));
- dates.forEach(function (date) {
- datestotal.push(date);
- });
- totaldates = datestotal;
- for (let j = 0; j < totaldates.length; j++) {
- let selecteddates = totaldates[j];
- let datesbetween = moment(selecteddates).format("YYYY-MM-DD");
- let displaydate = moment(selecteddates).format('llll');
- displaydate = displaydate.substring(0, 17);
- html_content = `<li class="row align-items-center text-dark py-2 border-bottom datesbetween" id='` + datesbetween + `'>
- <div class="col-sm-11 col-11"><div class="row">
- <div class="col-sm-2 text-left px-1">
- <div class="date font-weight-500">` + displaydate + `</div>
- </div> <div class="row"> <div class="col-3 hf_date">
- <input type ="hidden" class="hf_date" id = "hf_date" value=` + datesbetween + `></div></div>
- <div class="row"> <div class="col-3 hf_attendanceid">
- <input type ="hidden" class="hf_attendanceid" id = "hf_attendanceid" value="0"></div></div>
- <div class="row"> <div class="col-3 hf_regularizationapprovalid">
- <input type ="hidden" class="hf_regularizationapprovalid" id = "hf_regularizationapprovalid" value="0"></div></div>
-
- <div class="col-sm-5">
- <div class="row">
- <div class="col-6 check_in"><input type="time" id="Check_in" class="Check_in_btn form-control datepicker-input hasDatepicker floating-label-control date_startdate hello" ></div>
- <div class="col-6 check_out"><input type="time" id="Check_out" class="Check_out_btn form-control type-control datepicker-input hasDatepicker floating-label-control date_startdate" ></div>
- </div>
- </div>
- <div class="col-sm-2 totaltime">00:00</div>
- <div class="col-sm-3 txt_Description">
- <input type ="text" class="form-control floating-label-control txt_Description" id="txt_Description" data-isdynamic="false" placeholder="Enter Description" data-placeholder="Description" data-label="Description" >
- </div>
- </div>
- </div>
- <div class="col-1 col-sm-1 text-right">
- <input type="checkbox" id="txt_checkbox" class="floating-label-control txt_checkbox hidden"></div>
- </li>`;
- $('.attendance_list').append(html_content);
- }
- if (response.result.length > 0) {
- for (var i = 0; i < response.result.length; i++) {
- var data = response.result[i];
- let attendanceid = data.AttendanceId, date = data, checkindate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatLocalDateTime(data.CheckIn), checkindate_format = moment(data.Date).format("YYYY-MM-DD"), checkoutdate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatLocalDateTime(data.CheckOut), totaltime = data.TotalMinutes, description = data.Description;
- let attendeddate = checkindate.substring(0, 10);
- if (checkindate.length != 0) {
- let ckeckintime = checkindate.substring(11, 16);
- let checkindates = moment(ckeckintime, 'HHmm').format("HH:mm");
- $("#" + checkindate_format).find(".check_in").html(`<input type="time" id="Check_in" class="Check_in_btn form-control datepicker-input hasDatepicker" value=` + checkindates + ` >`);
- }
- if (checkoutdate > checkindate) {
- if (checkoutdate.length != 0) {
- let ckeckouttime = checkoutdate.substring(11, 16);
- let checkoutdates = moment(ckeckouttime, 'HHmm').format("HH:mm");
- $("#" + checkindate_format).find(".check_out").html(`<input type="time" id="Check_out" class="Check_out_btn form-control datepicker-input hasDatepicker " value=` + checkoutdates + ` >`);
- }
- }
- if (description != null && description != "") {
- $("#" + checkindate_format).find(".txt_Description").html(`<input type="text" id="txt_Description" class="form-control" value=` + description + ` >`);
- }
- if (totaltime != 0) {
- var m = totaltime % 60;
- var h = (totaltime - m) / 60;
- var HHMM = (h < 10 ? "0" : "") + h.toString() + ":" + (m < 10 ? "0" : "") + m.toString();
- $("#" + checkindate_format).find(".totaltime").html(HHMM);
- }
- if (attendanceid != 0) {
- $("#" + checkindate_format).find(".hf_attendanceid").html(`<input type ="hidden" id="hf_attendanceid" class="form-control" value=` + attendanceid + ` >`);
- }
- }
- }
- $(".Check_out_btn,.Check_in_btn").change(function () {
- debugger;
- var checkin = $(this).parents(".datesbetween").find("#Check_in").val();
- var checkout = $(this).parents(".datesbetween").find("#Check_out").val();
- var start = new Date("01/01/2007 " + checkin).getTime();
- var end = new Date("01/01/2007 " + checkout).getTime();
- let difference = Math.abs(end - start);
- difference = difference / 1000;
- let hourDifference = Math.floor(difference / 3600);
- difference -= hourDifference * 3600;
- let minuteDifference = Math.floor(difference / 60);
- difference -= minuteDifference * 60;
- var value = (hourDifference < 10 ? "0" : "") + hourDifference.toString() + ":" + (minuteDifference < 10 ? "0" : "") + minuteDifference.toString();
- $(this).parents(".datesbetween").find(".totaltime").html(value);
- });
- });
- });
- }
- else {
- this.fileCacheHelper.loadJsFile("apps/hrms/managers/attendencemanager.js", function () {
- Bizgaze.Apps.Hrms.Managers.AttendenceManager.Instance().getRegularizationCheckinAndCheckout(employeeid, fdate, tdate).then(function (response) {
- $('.attendance_list').html('');
- const datestotal = [];
- function getDates(startDate, endDate) {
- const dates = [];
- let currentDate = startDate;
- const addDays = function (days) {
- const date = new Date(this.valueOf());
- date.setDate(date.getDate() + days);
- return date;
- };
- while (currentDate <= endDate) {
- dates.push(currentDate);
- currentDate = addDays.call(currentDate, 1);
- }
- return dates;
- }
- let totaldates, html_content = '';
- const dates = getDates(new Date(fdate), new Date(tdate));
- dates.forEach(function (date) {
- datestotal.push(date);
- });
- totaldates = datestotal;
- for (let j = 0; j < totaldates.length; j++) {
- let selecteddates = totaldates[j];
- let datesbetween = moment(selecteddates).format("YYYY-MM-DD");
- let displaydate = moment(selecteddates).format('llll');
- displaydate = displaydate.substring(0, 17);
- html_content = `<li class="row align-items-center text-dark py-2 border-bottom datesbetween" id='` + datesbetween + `'>
- <div class="col-sm-11 col-11"><div class="row">
- <div class="col-sm-2 text-left px-1">
- <div class="date font-weight-500">` + displaydate + `</div>
- </div> <div class="row"> <div class="col-3 hf_date">
- <input type ="hidden" class="hf_date" id = "hf_date" value=` + datesbetween + `></div></div>
- <div class="row"> <div class="col-3 hf_attendanceid">
- <input type ="hidden" class="hf_attendanceid" id = "hf_attendanceid" value="0"></div></div>
- <div class="row"> <div class="col-3 hf_regularizationapprovalid">
- <input type ="hidden" class="hf_regularizationapprovalid" id = "hf_regularizationapprovalid" value="0"></div></div>
-
- <div class="col-sm-5">
- <div class="row">
- <div class="col-6 check_in"><input type="time" id="Check_in" class="Check_in_btn form-control datepicker-input hasDatepicker floating-label-control date_startdate hello" ></div>
- <div class="col-6 check_out"><input type="time" id="Check_out" class="Check_out_btn form-control type-control datepicker-input hasDatepicker floating-label-control date_startdate" ></div>
- </div>
- </div>
- <div class="col-sm-2 totaltime">00:00</div>
- <div class="col-sm-3 txt_Description">
- <input type ="text" class="form-control floating-label-control txt_Description" id="txt_Description" data-isdynamic="false" placeholder="Enter Description" data-placeholder="Description" data-label="Description" >
- </div>
- </div>
- </div>
- <div class="col-1 col-sm-1 text-right">
- <input type="checkbox" id="txt_checkbox" class="floating-label-control txt_checkbox hidden"></div>
- </li>`;
- $('.attendance_list').append(html_content);
- }
- if (response.result.length > 0) {
- debugger;
- for (var i = 0; i < response.result.length; i++) {
- var data = response.result[i];
- let attendanceid = data.attendanceid, regularizationapprovalid = data.regularizationapprovalid, date = data, checkindate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatLocalDateTime(data.checkin), checkindate_format = moment(data.date).format("YYYY-MM-DD"), checkoutdate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatLocalDateTime(data.checkout), totaltime = data.totalminutes, description = data.description;
- let attendeddate = checkindate.substring(0, 10);
- if (checkindate.length != 0) {
- let ckeckintime = checkindate.substring(11, 16);
- let checkindates = moment(ckeckintime, 'HHmm').format("HH:mm");
- $("#" + checkindate_format).find(".check_in").html(`<input type="time" id="Check_in" class="Check_in_btn form-control datepicker-input hasDatepicker" value=` + checkindates + ` >`);
- }
- if (checkoutdate.length != 0) {
- let ckeckouttime = checkoutdate.substring(11, 16);
- let checkoutdates = moment(ckeckouttime, 'HHmm').format("HH:mm");
- $("#" + checkindate_format).find(".check_out").html(`<input type="time" id="Check_out" class="Check_out_btn form-control datepicker-input hasDatepicker " value=` + checkoutdates + ` >`);
- }
- if (description != null && description != "") {
- $("#" + checkindate_format).find(".txt_Description").html(`<input type="text" id="txt_Description" class="form-control" value=` + description + ` >`);
- }
- if (totaltime != 0) {
- var m = totaltime % 60;
- var h = (totaltime - m) / 60;
- var HHMM = (h < 10 ? "0" : "") + h.toString() + ":" + (m < 10 ? "0" : "") + m.toString();
- $("#" + checkindate_format).find(".totaltime").html(HHMM);
- }
- if (attendanceid != 0) {
- $("#" + checkindate_format).find(".hf_attendanceid").html(`<input type ="hidden" id="hf_attendanceid" class="form-control" value=` + attendanceid + ` >`);
- }
- if (regularizationapprovalid != 0) {
- $("#" + checkindate_format).find(".hf_regularizationapprovalid").html(`<input type ="hidden" id="hf_regularizationapprovalid" class="form-control" value=` + regularizationapprovalid + ` >`);
- }
- }
- }
- $(".Check_out_btn ,.Check_in_btn").change(function () {
- debugger;
- var checkin = $(this).parents(".datesbetween").find("#Check_in").val();
- var checkout = $(this).parents(".datesbetween").find("#Check_out").val();
- var start = new Date("01/01/2007 " + checkin).getTime();
- var end = new Date("01/01/2007 " + checkout).getTime();
- let difference = Math.abs(end - start);
- difference = difference / 1000;
- let hourDifference = Math.floor(difference / 3600);
- difference -= hourDifference * 3600;
- let minuteDifference = Math.floor(difference / 60);
- difference -= minuteDifference * 60;
- var value = (hourDifference < 10 ? "0" : "") + hourDifference.toString() + ":" + (minuteDifference < 10 ? "0" : "") + minuteDifference.toString();
- $(this).parents(".datesbetween").find(".totaltime").html(value);
- });
- if ($("#div_FormName").text() == "Regularization_ApprovedForm") {
- $(".txt_checkbox").removeClass("hidden");
- $(".Check_out_btn").attr("disabled", "disabled");
- $(".Check_in_btn").attr("disabled", "disabled");
- $(".dropdown_periodtypeid").attr("disabled", "disabled");
- $(".txtAutoComplete_employeeid").attr("disabled", "disabled");
- $(".date_fromdate").attr("disabled", "disabled");
- $(".date_todate").attr("disabled", "disabled");
- $(".calender_fromdate").addClass("hidden");
- $(".calender_todate").addClass("hidden");
- }
- });
- });
- }
- }
- Attendancerequestobj() {
- debugger;
- var attendanceRequest = new Array();
- $('.datesbetween').each(function (index) {
- var element = $(this);
- var date_nontz = element.find("#hf_date").val();
- var date_withtz = new Date(date_nontz.toString());
- var isApproved = $(this).find('.txt_checkbox').is(':checked');
- attendanceRequest.push({
- Date: date_withtz,
- Description: element.find('#txt_Description').val(),
- CheckIn: element.find('#Check_in').val(),
- CheckOut: element.find('#Check_out').val(),
- AttendanceId: Number(element.find('#hf_attendanceid').val()),
- RegularizationapprovalId: Number(element.find('#hf_regularizationapprovalid').val()),
- IsApproved: isApproved,
- });
- });
- return attendanceRequest;
- }
- regularizationapprove() {
- let detailContainer = $("._bizgaze_detail_container:visible");
- let refstatusId = (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.filter(function (o) {
- return o.Key === "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_refstatusid";
- })[0].Value);
- $(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Approve').addClass('hidden');
- if (refstatusId != '3' && refstatusId != '5') {
- $(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Approve').removeClass('hidden');
- }
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new AttendanceRequest();
- }
- return this.instance;
- }
- }
- Components.AttendanceRequest = AttendanceRequest;
- })(Components = Hrms.Components || (Hrms.Components = {}));
- })(Hrms = Apps.Hrms || (Apps.Hrms = {}));
- })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
- })(Bizgaze || (Bizgaze = {}));
|