var Bizgaze; (function (Bizgaze) { let Apps; (function (Apps) { let Transact; (function (Transact) { let Controls; (function (Controls) { class Eb extends Unibase.Platform.Core.BaseComponent { constructor() { super(...arguments); this.ebcontainer = ""; this.deleted_EBs = new Array(); this.itemIds = new Array(); } init(formpropertyid, prop, callback) { let instance = this; let jsFiles = ["apps/transact/controls/invoices/invoiceitem.component.js", "apps/crm/contacts/managers/contactmanager.js", "apps/transact/managers/invoicemanager.js", "platform/core/helpers/numberhelper/numberhelper.js", "libs/jquery/pagination/jquery.pagination.js"]; instance.fileCacheHelper.loadJsFiles(jsFiles, function () { instance._invoiceItems = Bizgaze.Apps.Transact.Controls.InvoiceItem.Instance(); instance.deleted_EBs = []; instance.itemIds = []; instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId); instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId); }); } loadControl(containerid, prop) { var instance = this; let html = `
EB Name
Fill Type
Volume
Add EB
`; $("#" + containerid).html(html); instance.ebcontainer = containerid; } loadControlSettings(controlsettingjson, formpropertyid) { var instance = this; instance.loadEBs(); } loadPropertySettings(propertysettings, formpropertyid) { return null; } bindEditFormDetails(formpropertyid, propval, DocPropertyName) { return null; } getEbItems() { var instance = this; var EBs = instance.getEBs(); return EBs; } addEBDatarow() { var instance = this; $('.divDescriptionDetails').addClass('hidden'); instance.addEBRow(0, 0, 0, "", 0.0, 0, 1, "", null); } addEBRow(orderId, EBId, EBContactId, EBName, volume, InvoiceId, FillType, Notes, EBItemList) { var instance = this; var padding = ""; if (EBId) { padding = "m-t"; } var html = '
' + '
' + '' + '
' + '
'; if (EBId != 0) { html += '' + EBName + ''; } else { html += `' + '
' + '
' + '
' + '
' + '
' + '
' + volume + '
' + '' + '
'; $(".EB-row:last").after(html); var element = $(".EB-row:last"); element.find('.EB_Volume').on('click', function () { $(".divDescriptionDetails").addClass("hidden"); $(this).parents('.addedEB-row').find(".divDescriptionDetails").removeClass('hidden'); }); if (EBItemList != null || EBItemList != undefined) { for (var i = 0; i < EBItemList.length; i++) { instance.addEBItemrow(EBItemList[i], element); } } else { instance.addEBItemrow(null, element); } element.find(".EBDesc").val(Notes); element.find("#cmbFillType").val(FillType); var TotalVolume = 0; element.find(".EB-Itemrow").each(function () { if ($(this).find(".EBItem_Volume").val() != 0 && $(this).find(".EBItem_Volume").val() != undefined) { TotalVolume += Number($(this).find(".EBItem_Volume").val()); } }); element.find(".EB_Volume").text(TotalVolume); element.find(".txt_EBName,.EBName-link").focusin(function () { if (element.find(".hf_EBId").val() != -1) { $(".divDescriptionDetails").addClass("hidden"); element.find(".divDescriptionDetails").toggleClass("hidden"); } }); var txtEBName = element.find(".txt_EBName"); var hfSelectedEBId = element.find(".hf_EBId"); if (hfSelectedEBId.val() == -1) { $("#addEBrow").addClass('hidden'); } var url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/contacts/getcontactebs'; AutoCompleteHelper.getHelper().Create(txtEBName, hfSelectedEBId, url, function (response) { if (hfSelectedEBId.val() != 0) { element.find(".EB_volume").removeClass('hidden'); $(".divDescriptionDetails").addClass('hidden'); element.find(".divDescriptionDetails").removeClass('hidden'); } if (hfSelectedEBId.val() == -1) { $(".divDescriptionDetails").addClass('hidden'); $("#addEBrow").addClass('hidden'); } else { var hfSelectedEBItemId = element.find(".hf_EBItemId"); instance.loadItemAutoComplete(element, "0", hfSelectedEBItemId); } $('.txt_EBName + .select2-container').width(421.987); }); element.find(".EBdelete").on('click', function () { bootbox.confirm("You are about to delete the EB. Are you sure?", function (result) { if (result) { element.find(".EB-Itemrow").each(function () { var Ebid = $(this).find(".hf_InvEBId").val(); element.remove(); if (Ebid != "0" && Ebid != undefined) { instance.deleted_EBs.push(Number(Ebid)); } }); if (hfSelectedEBId.val() == -1) { $("#addEBrow").removeClass('hidden'); } } }); }); element.find("#addEBItemrow").on('click', function () { instance.addEBItemrow(null, element); }); } addEBItemrow(EBItemList, EBelement) { var instance = this; var ItemName = ""; var ItemId = 0; var Volume = 0; var EBId = 0; var SKU = ""; if (EBItemList != null || EBItemList != undefined) { EBId = EBItemList.EBId; ItemName = EBItemList.ItemName; ItemId = EBItemList.ItemId; Volume = EBItemList.Volume; SKU = EBItemList.SKU; } var floting = ""; if (ItemId == 0) { } floting = "floating-label-form-group"; var html = '
' + '
' + ' '; if (ItemId != 0) { html += '' + SKU + "-" + ItemName + ''; } else { html += ''; } html += '
' + '
' + '
'; EBelement.find(".EB-Itemrow:last").after(html); var element = EBelement.find(".EB-Itemrow:last"); var lobid = $(".hfAutoCompleteId_lobid").val(); var Dcid = Controls.InvoiceItem.Instance().dcid; if (lobid == 0) lobid = $("#cmbInv_Lob").val(); var txtEBItemName = element.find(".txt_EBItemName"); var hfSelectedEBItemId = element.find(".hf_EBItemId"); var selectitemids = ""; EBelement.find(".EB-Itemrow").each(function () { if ($(this).find(".hf_EBItemId").val() != 0 && $(this).find(".hf_EBItemId").val() != undefined) { selectitemids += $(this).find(".hf_EBItemId").val() + ","; } }); var url = ""; var invoiceid = $(".hdn_invoiceid").val(); if (selectitemids == '') selectitemids = '0'; if ($(".hdn_invoiceid").val() != 0 && $(".hdn_invoiceid").val() != undefined) { url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/invoices/autopendingebitemsforinvoicebyinvoiceid/invoiceid/' + $(".hdn_invoiceid").val() + '/itemids/' + selectitemids; AutoCompleteHelper.getHelper().Create(txtEBItemName, hfSelectedEBItemId, url, function (response) { var data = response; }); } else { instance.loadItemAutoComplete(element, selectitemids, hfSelectedEBItemId); } element.find(".EBItemdelete").on('click', function () { bootbox.confirm("You are about to delete the EB. Are you sure?", function (result) { if (result) { var Ebid = element.find(".hf_InvEBId").val(); element.remove(); if (Ebid != "0") { $(this).parent().find(".EB_Volume").val(); instance.deleted_EBs.push(Number(Ebid)); var TotalVolume = Number(EBelement.find(".EB_Volume").html()); TotalVolume -= Number(element.find(".EBItem_Volume").val()); EBelement.find(".EB_Volume").text(TotalVolume); } } }); }); element.find(".EBItem_Volume").blur(function () { var TotalVolume = 0; if (element.find(".hf_EBItemId").val() == 0) { MessageHelper.Instance().showError("please select EB Item", $("#form-container-" + $("#hf_FormId").val()).find(".bizgaze_FormErrorMessages").attr('id')); return false; } var checkingInvoiceItemQty = true; $(".InvoiceItems").find(".item-row").each(function () { if ($(this).children().length > 0) { if ($(this).find(".selectedItemId").val() == element.find(".hf_EBItemId").val()) { if ($(this).find(".selectedItemId").val() != "" && $(this).find(".selectedItemId").val() != "0" && $(this).find(".prodQuantity").val() > 0) { var invoiceQty = Number($(this).find(".prodQuantity").val()); if (checkingInvoiceItemQty) checkingInvoiceItemQty = instance.checkingInvoiceItemQuantitywithEBItemQuantity(invoiceQty, $(this).find(".selectedItemId").val()); } } } }); if (!checkingInvoiceItemQty) { if ($(".hdn_invoiceid").val() != 0) MessageHelper.Instance().showError("EB Volume must be less than or equal to invoiced Quantity", $("#form-container-" + $("#hf_FormId").val()).find(".bizgaze_FormErrorMessages").attr('id')); else MessageHelper.Instance().showError("Please Adjust the EB Volumes", $("#form-container-" + $("#hf_FormId").val()).find(".bizgaze_FormErrorMessages").attr('id')); element.find(".EBItem_Volume").val(0); return false; } EBelement.find(".EB-Itemrow").each(function () { if ($(this).find(".EBItem_Volume").val() != 0 && $(this).find(".EBItem_Volume").val() != undefined) { TotalVolume += Number($(this).find(".EBItem_Volume").val()); } }); EBelement.find(".EB_Volume").text(TotalVolume); }); } checkingInvoiceItemQuantitywithEBItemQuantity(invoiceItemQty, ItemId) { var EBItemQuantity = 0; $(".EB-row").each(function () { if ($(this).find(".hf_EBId").val() != undefined || $(this).find(".hf_EBId").val() != -1) { $(this).find(".EB-Itemrow").each(function () { if ($(this).find(".hf_EBItemId").val() != undefined && $(this).find(".hf_EBItemId").val() == ItemId) { EBItemQuantity += Number($(this).find(".EBItem_Volume").val()); } }); } }); if (EBItemQuantity > invoiceItemQty) { return false; } else return true; } loadEBs() { var instance = this; $('.addedEB-row').remove(); var url = ""; if ($(".hdn_invoiceid").val() != 0) url = '/apis/v4/bizgaze/transact/invoices/GetOpportunityEBsByInvoiceId/InvoiceId/' + $(".hdn_invoiceid").val(); else url = '/apis/v4/bizgaze/transact/invoices/GetEBsDetailsByOrderId/OrderId/' + Number($(".hdn_orderid").val()); Bizgaze.Apps.Transact.Managers.InvoiceManager.Instance().loadEbs(url).then(function (response) { var data = response; if (data.result.length > 0) { var EbsList = instance.EBsgroupByEbContactId(data.result, 'EBContactId'); Object.keys(EbsList).forEach(function (k) { var Ebdata = EbsList[k]; var EBItemList = new Array(); for (var i = 0; i < Ebdata.length; i++) { EBItemList.push({ EBId: Number(Ebdata[i].EBId), ItemId: Number(Ebdata[i].ItemId), Volume: Number(Ebdata[i].Volume), ItemName: Ebdata[i].ItemName, SKU: Ebdata[i].SKU }); } instance.addEBRow(Ebdata[0].OrderId, Ebdata[0].EBId, Ebdata[0].EBContactId, Ebdata[0].EBName, Ebdata[0].Volume, Ebdata[0].InvoiceId, Ebdata[0].FillType, Ebdata[0].Notes, EBItemList); }); } else { instance.addEBRow(0, 0, 0, "", 0.0, 0, 1, "", null); } }, function (response) { Unibase.Platform.Forms.Components.FormViewer.Instance().showError(response.responseText); }); } EBsgroupByEbContactId(objectArray, property) { return objectArray.reduce((acc, obj) => { const key = obj[property] + '-' + obj["FillType"]; if (!acc[key]) { acc[key] = []; } acc[key].push(obj); return acc; }, {}); } getEBs() { var instance = this; var checkingInvoiceItemQty = true; $(".InvoiceItems").find(".item-row").each(function () { if ($(this).find(".selectedInvoiceItemId").val() != undefined) { if ($(this).find(".selectedItemId").val() != "" && $(this).find(".selectedItemId").val() != "0" && $(this).find(".prodQuantity").val() > 0) { var invoiceQty = Number($(this).find(".prodQuantity").val()); if (checkingInvoiceItemQty) checkingInvoiceItemQty = instance.checkingInvoiceItemQuantitywithEBItemQuantity(invoiceQty, $(this).find(".selectedItemId").val()); } } }); if (!checkingInvoiceItemQty) { if ($(".hdn_invoiceid").val() != 0) MessageHelper.Instance().showError("EB Volume must be less than or equal to invoiced Quantity", $("#form-container-" + $("#hf_FormId").val()).find(".bizgaze_FormErrorMessages").attr('id')); else MessageHelper.Instance().showError("EB volume (EB Info section) cannot be more than Total volume", $("#form-container-" + $("#hf_FormId").val()).find(".bizgaze_FormErrorMessages").attr('id')); return; } var EBList = new Array(); $(".EB-row").each(function () { if ($(this).find(".hf_EBId").val() != undefined) { if ($(this).find(".hf_EBId").val() != "" && $(this).find(".hf_EBId").val() != "0") { var OrderId = Number($(this).find("hfOrderEBId").val()); var EBContactId = Number($(this).find(".hf_EBId").val()); var FillType = Number($(this).find('#cmbFillType').val()); var Notes = $(this).find('.EBDesc').val(); if (OrderId == null) OrderId = 0; if ($(this).find(".hf_EBId").val() != -1) { $(this).find(".EB-Itemrow").each(function () { if ($(this).find(".hf_EBItemId").val() != undefined && $(this).find(".hf_EBItemId").val() != 0) { EBList.push({ OrderId: isNaN(OrderId) ? 0 : OrderId, EBId: Number($(this).find(".hf_InvEBId").val()), EBContactId: Number(EBContactId), Volume: Number($(this).find(".EBItem_Volume").val()), InvoiceId: 0, ItemId: Number($(this).find(".hf_EBItemId").val()), FillType: FillType, Notes: Notes, DeletedEbs: [] }); } }); } else { EBList.push({ OrderId: isNaN(OrderId) ? 0 : OrderId, EBId: isNaN(Number($(this).find(".hf_InvEBId").val())) ? 0 : Number($(this).find(".hf_InvEBId").val()), EBContactId: EBContactId, Volume: 0, InvoiceId: 0, ItemId: 0, FillType: FillType, Notes: Notes, DeletedEbs: [] }); } } } }); if ($('.section_Ebs').is(":visible") && EBList.length == 0) { MessageHelper.Instance().showError("EB information is mandatory.", $("#form-container-" + $("#hf_FormId").val()).find(".bizgaze_FormErrorMessages").attr('id')); return false; } else if (instance.deleted_EBs.length > 0) { EBList[0].DeletedEbs = instance.deleted_EBs; } return EBList; } loadItemAutoComplete(element, selectitemids, hfSelectedEBItemId) { let userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser(); let sessionid = userinfo.sessionId; let postData = null; var selecteditems = selectitemids.split(','); var ids = []; for (var i = 0; i <= Controls.InvoiceItem.instance.itemIds.length; i++) { let index = Controls.InvoiceItem.instance.itemIds.findIndex(x => x == selecteditems[i]); if (index == -1 && Controls.InvoiceItem.instance.itemIds[i] != null) { ids.push(Controls.InvoiceItem.instance.itemIds[i]); } } element.find(".txt_EBItemName").select2({ placeholder: "Select", tags: false, allowClear: true, theme: "default select2ErrorClass w-100", data: [], ajax: { url: function (request) { let reqUrl = _appsettings.server_url() + '/apis/v4/bizgaze/transact/items/getebitemsforinvoice'; return reqUrl; }, type: "POST", contentType: 'application/json', dataType: 'json', data: function (params) { let Term = params.term; sessionid = sessionid.replace('#', ''); if (selectitemids == '') { ids = Controls.InvoiceItem.instance.itemIds; } postData = { LobId: Number($(".hfAutoCompleteId_lobid").val()), ItemIds: ids, term: Term, }; return JSON.stringify(postData); }, beforeSend: function (xhr) { if (userinfo !== undefined && userinfo !== null) { xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId); xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.lgId); } }, processResults: function (data) { return { results: jQuery.map(JSON.parse(data.result), function (item) { return { id: item.Value, text: item.SelectText, addlInfo: item.addlData }; }) }; }, }, }).on('select2:select', function (e) { var result = e.params.data; $(hfSelectedEBItemId).val(result.id); }); } static Instance() { if (this.instance === undefined) { this.instance = new Eb(); } return this.instance; } } Controls.Eb = Eb; })(Controls = Transact.Controls || (Transact.Controls = {})); })(Transact = Apps.Transact || (Apps.Transact = {})); })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {})); })(Bizgaze || (Bizgaze = {}));