123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- 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("<span style='color:red;'>Special Characters not allowed </span><br/>");
- $("#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("<span style='color:red;'>" + response.message + "</span><br/>");
- $("#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("<span style='color:red;'>" + text + "-" + filtercolumn + " already added" + "</span><br/>");
- $("#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 = '<div class="floating-label-form-group">' +
- '<label for="lbl" id="lbl_' + prop.ControlId + '">' + helpTooltipHtml + '<span class="label-name">' + prop.LabelName + '</span><span class="text-danger ' + Isrequired + '" id="spnIsRequired_' + prop.FormPropertyId + '"> *</span></label>' +
- '<div class="input-group">' +
- '<input type="hidden" class="value-control" value="Unibase.Forms.Controls.Scan.Instance().obj();" /><input type="text" id="' + ControlId + '" class="type-control form-control type-control value-control ' + requiredClass + ' floating-label-control scan_' + prop.DocPropertyName + ' scan_' + prop.FormPropertyName + '" placeholder="' + prop.LabelName + " " + reqMark + '" data-placeholder="' + prop.Placeholder + '" data-label="' + prop.LabelName + " " + reqMark + '" data-regularexp="' + regExpr + '" data-validatemsg="' + ErrMsg + '" MaxLength="' + scansetting.MaxLength + '" />' +
- '<a id = "crpnrd_btn_OpenScanner_' + prop.UniqueId + '" class="input-group-append"><span class="input-group-text" > <i class="fa fa-qrcode" > </i></span ></a>' +
- '<input type="hidden" id="hf_' + prop.ControlId + '" />' +
- '</div>' + helpTextHtml + '</div>';
- html = `<div class="card-body pa-0" id="scan_control">
- <div class="form-coupon row mx-10">
- <input type="hidden" class="value-control" value="Unibase.Forms.Controls.Scan.Instance().obj();" />
- <div class="col-sm-4 form-coupon-left pa-20" id="coupon_img">
- <div class="avatar">
- <span class="avatar-icon avatar-icon-inv-orange rounded-circle">
- <span class="initial-wrap"><span><i class="dripicons dripicons-ticket"></i></span></span>
- </span>
- </div>
- <br/> <span class="font-14 font-weight-500 text-dark" id="divDisplayText">You can apply multiple coupons</span><div class="d-flex align-items-center justify-content-center mt-5">
- <div>
- <h5 class="text-green"><span class="font-14 font-weight-500 mr-10 text-dark" id="divsumDisplayText"></span> <span class="spanpoints">₹ </span> <span id="lblSum_` + prop.UniqueId + `" class="lblSum">0</span></h5>
- </div>
- <div class="ml-10 font-weight-500">(<span id="lblCount_` + prop.UniqueId + `" class="lblCount">0</span>)</div></div>
- </div>
- <div class="col-sm-8 form-coupon-right pa-20 pa-sm-25 pt-0 pt-sm-20" id="div_scan">
- <div class="input-group">
- <input type="hidden" class="value-control" value="Unibase.Forms.Controls.Scan.Instance().obj();" /><input id="` + ControlId + `" class="form-control type-control value-control input-focus text-center ` + requiredClass + ` scan_` + prop.DocPropertyName + ` scan_` + prop.FormPropertyName + `" placeholder="` + prop.LabelName + ` ` + reqMark + `" data-placeholder="` + prop.Placeholder + `" data-label="` + prop.LabelName + ` ` + reqMark + `" data-regularexp="` + regExpr + `" data-validatemsg="` + ErrMsg + `" type="text" maxlength="` + scansetting.MaxLength + `" />
- <a href="#" id = "crpnrd_btn_OpenScanner_` + prop.UniqueId + `" class="input-group-append">
- <span class="input-group-text"><i class="fa fa-qrcode"></i></span>
- </a>
-
- </div>
- </div>
- </div> </div><input type="hidden" id="hf_` + prop.ControlId + `" />` +
- `<div class="row col-sm-12" id="divMainContainer"><div class="col-sm-6 pull-left " id="divErrors"></div><div class="col-sm-6 pull-right" id="divListContainer"><div class="" id="divHtmlContainer"></div></div></div>`;
- $("#" + containerid).append(html);
- var data = JSON.parse(prop.ControlJsonText);
- if (data.EnableCount == false) {
- $("#coupon_img").addClass('hidden');
- $("#divSum").addClass('hidden');
- $("#div_scan").addClass('col-sm-12');
- }
- }
- loadControlSettings(controlsettingjson, formpropertyid) {
- return null;
- }
- loadPropertySettings(propertysettings, formpropertyid) {
- if (propertysettings != null) {
- for (var i = 0; i < propertysettings.length; i++) {
- var data = propertysettings[i];
- if (data.ControlPropertyName == "MaxLength" && data.ControlPropertyValue != "") {
- $("#txt_" + formpropertyid).attr("MaxLength", data.ControlPropertyValue);
- }
- }
- }
- }
- bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
- $('#scan_' + formpropertyid).val('').trigger('change');
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new Scan();
- }
- return this.instance;
- }
- }
- Controls.Scan = Scan;
- })(Controls = Forms.Controls || (Forms.Controls = {}));
- })(Forms = Unibase.Forms || (Unibase.Forms = {}));
- })(Unibase || (Unibase = {}));
|