var Unibase;
(function (Unibase) {
let Forms;
(function (Forms) {
let Controls;
(function (Controls) {
class Scan {
constructor() {
this.data = [];
this.setparameter = "";
this.propobj = "";
this.propEle = null;
}
init(formpropertyid, prop, callback) {
var instance = Scan.Instance();
instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId);
instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId);
this.propEle = prop;
$("#crpnrd_btn_OpenScanner_" + prop.UniqueId).click(function () {
if (isMobileApp()) {
Unibase.Platform.Helpers.MobileHelper.Instance().openQrScanner('Unibase.Forms.Controls.Scan.Instance().readScanner', prop.UniqueId.toString());
}
});
$("#scan_" + prop.UniqueId).on('change', function (event) {
Unibase.Forms.Controls.Scan.Instance().executeRedeemProcess(Unibase.Forms.Controls.Scan.Instance().propEle);
$("#scan_" + prop.UniqueId).focus();
});
if (callback != null)
callback();
}
executeRedeemProcess(prop) {
var data = JSON.parse(prop.ControlJsonText);
var SumColumn = data.SumColumn;
var EnableCount = data.EnableCount;
var Displaytext = data.DisplayText;
var filtercolumn = data.FilterColumn;
var text = $("#scan_" + prop.UniqueId).val();
text = text.toString().toUpperCase().trim();
$("#divDisplayText").text(Displaytext);
var IsLengthChecked = true;
function isValid(str) {
return !/[~`!#$%\^&@*+=\-\[\]\\';.|,/{}|\\":<>\?]/g.test(str);
}
let validate = isValid(text);
if (!validate) {
$("#divErrors").append("Special Characters not allowed
");
$("#scan_" + prop.UniqueId).val('');
return false;
}
if (data.ReportId != 0) {
var ColumnName = "0";
var Value = "0";
var Parameters = Unibase.Forms.Controls.Scan.Instance().setparameter;
var cpnobj = Unibase.Forms.Controls.Scan.Instance().propobj;
if (Parameters != null && Parameters != "") {
ColumnName = Parameters.map(function (item) { return item.ColumnName; }).toString();
Value = Parameters.map(function (item) { return item.Value + "|"; }).toString();
}
var totalcount = 0;
var totalsum = 0;
if ($("#div_FormName").text() != "Serial No") {
Unibase.Platform.Forms.Managers.FormManager.Instance().getScanPropertyData(prop.FormPropertyId, text.toString(), ColumnName, Value).then(function (response) {
if (response.status == Unibase.Data.Status.Error) {
$("#divErrors").append("" + response.message + "
");
$("#scan_" + prop.UniqueId).val('');
}
else {
var jsondata = response.result;
if (jsondata != null && jsondata != undefined && $("#div_FormName").text() != "Serial No" && $("#div_FormName").text() != 'Coupon Redemption' && $("#div_FormName").text() != 'Loyalty Points') {
var templateScript = Handlebars.compile(data.TemplateText);
var html = '';
totalsum = Number($("#lblSum_" + prop.UniqueId).text());
totalcount = Number($("#lblCount_" + prop.UniqueId).text());
$("#lblCount_" + prop.UniqueId).text(totalcount + jsondata.length);
for (var i = 0; i < jsondata.length; i++) {
var dataExist = eval("Unibase.Forms.Controls.Scan.Instance().data.filter(x => x." + filtercolumn + " == jsondata[i]." + filtercolumn + ").length");
if (dataExist <= 0) {
totalsum = totalsum + eval("jsondata[i]." + SumColumn);
html += templateScript(jsondata[i]);
Unibase.Forms.Controls.Scan.Instance().data.push(jsondata[i]);
}
else {
$("#divErrors").append("" + text + "-" + filtercolumn + " already added" + "
");
$("#scan_" + prop.UniqueId).val('');
return false;
}
}
$("#lblSum_" + prop.UniqueId).text(totalsum);
$("#divHtmlContainer").after(html);
Unibase.Forms.Controls.Scan.Instance().callbackmethod(data, text, prop);
}
else {
Unibase.Forms.Controls.Scan.Instance().callbackmethod(data, text, prop);
}
}
});
}
else {
Unibase.Forms.Controls.Scan.Instance().callbackmethod(data, text, prop);
}
}
}
callbackmethod(data, text, prop) {
var Maxlength = data.MaxLength;
var container = "#divHtmlContainer";
var settingMethod = data.SettingMethod;
if (settingMethod != null && settingMethod != "") {
Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile(data.JsUrl, function () {
eval(settingMethod + "('" + text + "','" + container + "',Unibase.Forms.Controls.Scan.Instance().propobj,function(response){Unibase.Forms.Controls.Scan.Instance().data=response;});");
});
}
$("#scan_" + prop.UniqueId).val('');
}
readScanner(capturedValue, uniqueId) {
if (capturedValue != "" && capturedValue != null && capturedValue != undefined) {
$("#scan_" + uniqueId).val(capturedValue).trigger("change");
}
}
obj() {
return Unibase.Forms.Controls.Scan.Instance().data;
}
scan(text) {
$("#scan_" + Unibase.Forms.Controls.Scan.Instance().UniqueId).val(text);
$("#scan_" + Unibase.Forms.Controls.Scan.Instance().UniqueId).trigger('keyup');
}
loadControl(containerid, prop) {
var regExpr = "";
var ErrMsg = "";
var validationlist = prop.Validations;
if (validationlist != null) {
for (var i = 0; i < validationlist.length; i++) {
regExpr += validationlist[i].RegularExp + '||';
ErrMsg += validationlist[i].ErrorMessage + '||';
}
}
var Isrequired = prop.IsRequired != true ? 'hidden' : '';
var requiredClass = prop.IsRequired != true ? '' : 'required';
var reqMark = prop.IsRequired != true ? '' : '*';
var CurrentStageId = $("#hf_" + $("#hfLayout_InstalledPageId").val() + "_StageId").val();
if (prop.IncludedStages != null && prop.IncludedStages != "") {
var StagesForRequired = prop.IncludedStages.split('|');
Isrequired = StagesForRequired.find(x => x == CurrentStageId) ? '' : 'hidden';
requiredClass = StagesForRequired.find(x => x == CurrentStageId) ? 'required' : '';
reqMark = StagesForRequired.find(x => x == CurrentStageId) ? '*' : '';
}
if (prop.ExcludedStages != null && prop.ExcludedStages != "") {
var ExcludedStages = prop.ExcludedStages.split('|');
Isrequired = ExcludedStages.find(x => x == CurrentStageId) ? 'hidden' : '';
requiredClass = ExcludedStages.find(x => x == CurrentStageId) ? '' : 'required';
reqMark = ExcludedStages.find(x => x == CurrentStageId) ? '' : '*';
}
let ControlId = 'scan_' + prop.UniqueId;
if (prop.IsRequired)
requiredClass = 'required';
var scansetting = JSON.parse(prop.ControlJsonText);
const { helpTooltipHtml, helpTextHtml } = Unibase.Platform.Forms.Components.FormViewer.Instance().getControlHelpHtml(prop);
let html = '