';
html += '
';
}
html += instance.getInventoryDesign(ItemId, IsCart, SuggestedPacks, RefItemIds);
if (IsCart) {
html += `
Delete`;
html += '
';
}
html += '
';
let classclaim = "col-sm-2";
html += '
';
html += '';
return html;
}
setItemAvatarText(itemId, itemName, isCart) {
let avatarTxt = "";
if (itemName) {
let headingTxt = itemName;
let matches = headingTxt.match(/\b(\w)/g);
if (matches.length == 1) {
avatarTxt = $.trim(headingTxt).substr(0, 2);
}
else {
avatarTxt = matches.join('').slice(0, 2);
}
let avatarHtml = `
${avatarTxt}
`;
if (isCart) {
$(`.cartitem-${itemId}`).find('.item-img-link').html(avatarHtml);
}
else {
$(".variant-addeditem-" + itemId).find('.item-img-link').html(avatarHtml);
}
}
}
updateItemsDesign(elem, evnt, IsCart = false, IsFocItem = false) {
let instance = this;
let ItemId = $(elem).find(".hfOrder_ItemId").val();
let RefItemIds = $(elem).find(".hfOrder_RefItemId").val();
let CartItem_Index = -1;
if (IsFocItem) {
CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
}
else {
CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
}
let Itm = instance.g_CartItems_New[CartItem_Index];
let UnitPrice = Itm.UnitPrice;
if (Itm.IsWishList == true && Itm.Quantity == 0) {
}
else {
$(elem).removeAttr("style");
}
let pricelabel = "Price";
if (instance.g_IsEnablePiecePrice)
pricelabel = "Piece Price";
if (instance.g_IsEnableCompositePrice) {
pricelabel = "Comp. Price";
}
if (instance.g_IsEnableCompositePiecePrice) {
pricelabel = "Comp. Piece Price";
}
$(".sp_PriceType").text(pricelabel + " : ");
let Cond = $("#ulOrder_Cart").is(":visible") || evnt == "BindItemList" || evnt == "FromWidget_FocItem" || evnt == "EditOrderItem" || evnt == "FromWidget" || evnt == "AddFocItem_IsOfferDiscountApplied" || evnt == "EditFocItem_IsOfferDiscountApplied" || evnt == "DeleteCartItem";
if (IsCart) {
Cond = !$("#ulOrder_Cart").is(":visible") || evnt == "EditFocItem" || evnt == "AddFocItem_IsOfferDiscountApplied" || evnt == "EditFocItem_IsOfferDiscountApplied";
}
if (Cond) {
let Cartons = Itm.Quantity;
if (instance.g_InventoryApplyType != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
Cartons = Itm.Packs;
}
if (Cartons > 0) {
$(elem).find(".txtOrder_ItemCount").val(Cartons);
}
else {
$(elem).find(".txtOrder_ItemCount").val("");
}
if (Itm.Pieces > 0) {
$(elem).find(".txtOrder_ItemPieceCount").val(Itm.Pieces);
}
else {
$(elem).find(".txtOrder_ItemPieceCount").val("");
}
$(elem).find("#txt_editItemPrice").val(Itm.UnitPriceWithOutTax);
$(elem).find(".btnOrder_DiscType").val(Itm.DiscountType);
let Discount = Itm.DiscountValue == 0 ? Itm.DiscountPercent : Itm.DiscountValue;
if (Discount == 0) {
$(elem).find("#Ord_txtdiscount").val("");
}
else {
$(elem).find("#Ord_txtdiscount").val(Discount);
}
}
if (!Itm.IsWishList) {
$(elem).find(".WishList").addClass("fa-heart-o").removeClass("fa-heart");
}
else {
$(elem).find(".WishList").addClass("fa-heart").removeClass("fa-heart-o");
}
if (Itm.Packs > 0) {
$(elem).find(".defaultSelectedCartons").addClass("floating-label-form-group-with-value");
}
if (Itm.Pieces > 0) {
$(elem).find(".defaultSelectedPieces").addClass("floating-label-form-group-with-value");
}
$(elem).find(".CompositePriceCalBreak").html('');
if (Itm.ExchangeDC) {
$(elem).find(".chkItem_ExchangeDC").prop("checked", true);
$(elem).find("#Ord_txtdiscount").attr("disabled", "disabled").css("cursor", "not-allowed");
$(elem).find(".btnOrder_DiscType").attr("disabled", "disabled").css("cursor", "not-allowed");
}
else {
$(elem).find(".chkItem_ExchangeDC").prop("checked", false);
$(elem).find("#Ord_txtdiscount").removeAttr("disabled").removeAttr("style");
$(elem).find(".btnOrder_DiscType").removeAttr("disabled").removeAttr("style");
}
if (Itm.IsOfferAvailable) {
$(elem).find(".offerBadge").removeClass("hidden");
$(elem).find("#Ord_txtdiscount").attr("disabled", "disabled").css("cursor", "not-allowed");
$(elem).find(".btnOrder_DiscType").attr("disabled", "disabled").css("cursor", "not-allowed");
}
else {
$(elem).find(".offerBadge").addClass("hidden");
$(elem).find("#Ord_txtdiscount").removeAttr("disabled").removeAttr("style");
$(elem).find(".btnOrder_DiscType").removeAttr("disabled").removeAttr("style");
}
if (Itm.IsBoMAvailable) {
$(elem).find(".bomBadge").removeClass("hidden");
}
else {
$(elem).find(".bomBadge").addClass("hidden");
}
if (Itm.IsMultipleUOMs) {
$(elem).find("#ddl_MultipleUOMs_" + ItemId).val(Itm.SelectedUnitId);
if (Itm.SelectedUnitId != 1 && Itm.SelectedUnitId != 0 && !isNaN(Itm.SelectedUnitId)) {
let UOM = Itm.MultipleUOMs.find(x => x.SchemaDetailId == Itm.SelectedUnitId);
let Conversion = UOM.AlternateSize + " " + UOM.AlternateUnitName + " = " + UOM.DefaultSize + " " + UOM.DefaultUnitName;
$(".ItemConversion_" + Itm.ItemId).text(Conversion);
}
else {
$(".ItemConversion_" + Itm.ItemId).text("");
}
}
if (IsCart) {
if (Itm.ExchangeDC) {
UnitPrice = -Itm.UnitPrice;
let ItemName = Itm.ItemName + " (Exchange) ";
$(".cartitem-" + ItemId).find(".CartItemName").html(ItemName);
$(".cartitem-" + ItemId).find(".CartItemName").append("
After Tax");
}
else {
$(".cartitem-" + ItemId).find(".CartItemName").html(Itm.ItemName);
$(".cartitem-" + ItemId).find(".CartItemName").find(".divAfterTax").remove();
}
if (!$(".cartitem-" + ItemId).find('.item-img-link').data('src')) {
instance.setItemAvatarText(ItemId, Itm.ItemName, IsCart);
}
}
if (Itm.SKU != undefined) {
$(elem).find("#ItemSKU").text(Itm.SKU);
}
let _quantity = instance.roundOffIgnoreZerosAfterDecimal(Itm.BaseQty);
if (Itm.IsMultipleUOMs && Itm.UOMQuantity > 0) {
_quantity = Itm.UOMQuantity;
}
let AmountWithDiscount = instance.roundOffIgnoreZerosAfterDecimal(Number(Itm.AmountWithDiscount));
if (Itm.Packs == 0 && Itm.Pieces == 0) {
$(elem).find(".editItemPrice").text(Itm.UnitPrice);
$(elem).find("#QuantityAndDiscountSpan").text("");
}
else {
if (Itm.DiscountValue > 0) {
$(elem).find(".editItemPrice").text("(" + Itm.UnitPrice);
$(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountValue) + ") X " + _quantity + '(' + Itm.UnitName + ')' + " = " + AmountWithDiscount);
$(elem).find(".discountFloatLabels").addClass("floating-label-form-group-with-value");
}
else if (Itm.DiscountPercent > 0) {
$(elem).find(".editItemPrice").text("(" + Itm.UnitPrice);
$(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountPercent) + "%) x " + _quantity + '(' + Itm.UnitName + ')' + " = " + AmountWithDiscount);
$(elem).find(".discountFloatLabels").addClass("floating-label-form-group-with-value");
}
else {
$(elem).find(".editItemPrice").text(Number(UnitPrice));
$(elem).find("#QuantityAndDiscountSpan").text(" X " + _quantity + '(' + Itm.UnitName + ')' + " = " + AmountWithDiscount);
$(elem).find(".discountFloatLabels").removeClass("floating-label-form-group-with-value");
}
}
if (Itm.IsFocItem) {
$(elem).find(".editItemPrice").removeAttr("style").removeAttr("data-toggle").removeAttr("data-collapse").attr("disabled", "true").css("cursor", "not-allowed");
$(elem).find(".focBadge").removeClass("hidden");
$(elem).find("#FocBadgeSKU").text(Itm.RefItemSKUs);
}
if (Itm.Quantity == 0) {
$(".cartitem-" + Itm.ItemId).find('.offerstatusapplied').addClass('d-none');
$(".cartitem-" + Itm.ItemId).find('.offerstatusavailable').removeClass('d-none');
}
if (evnt == "RefreshAllItems_InventoryClickEvents" || evnt == "FromWidget") {
let html = instance.getInventoryDesign(ItemId, IsCart, 0, Itm.RefItemIds);
$(elem).find("#InventoryTypesTextboxes").html(html);
instance.allItemEvents(elem);
}
instance.checkErrors();
}
allItemEvents(elem) {
let instance = this;
if (!instance.g_PacksFocus && !instance.g_PiecesFocus) {
if (instance.g_IsEnablePacks) {
instance.g_PacksFocus = true;
}
else if (instance.g_IsEnablePieces) {
instance.g_PiecesFocus = false;
}
}
let timer;
$(".mouseHoverClass").hover(function () {
$(this).closest(".variant-item").find('.mouseHoverClass').css({ 'font-weight': 'bold' });
}, function () { $(this).closest(".variant-item").find('.mouseHoverClass').css({ 'font-weight': '' }); });
$(".editCartItemQuantity").unbind().click(function () {
let element = elem;
element.find("._editCartItemQuantity").toggleClass("hidden");
element.find(".editCartItemQuantity").toggleClass("hidden");
element.find(".CartAvailability").toggleClass("hidden");
});
$(elem).find('.txtOrder_ItemCount').unbind().click(function () {
instance.g_PacksFocus = true;
instance.g_PiecesFocus = false;
});
$(elem).find('.txtOrder_ItemPieceCount').unbind().click(function () {
instance.g_PiecesFocus = true;
instance.g_PacksFocus = false;
});
$(elem).find(".txteditItemPrice").unbind().keyup(function () {
clearTimeout(timer);
timer = setTimeout(function () {
let element = elem;
instance.updateItemsArray(element, "UnitPrice");
}, 300);
});
$(elem).find(".quantity-plus").unbind().click(function () {
let element = elem;
if (instance.g_PacksFocus) {
if (element.find("#txt_Pieces").val() == 0) {
element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
}
element.find('.divOrders_ItemCount').addClass('floating-label-form-group-with-value');
let Packs = Number(element.find(".txtOrder_ItemCount").val());
let incVal = instance.getIncrementValue(Packs);
let val = instance.roundOffIgnoreZerosAfterDecimal(Packs + incVal);
element.find(".txtOrder_ItemCount").val(val);
}
if (instance.g_PiecesFocus) {
element.find('.divOrders_ItemPieceCount').addClass('floating-label-form-group-with-value');
let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
let incVal = instance.getIncrementValue(Pieces);
let val = instance.roundOffIgnoreZerosAfterDecimal(Pieces + incVal);
element.find(".txtOrder_ItemPieceCount").val(val);
}
instance.updateItemsArray(element, "Plus");
});
$(elem).find(".quantity-minus").unbind().click(function () {
let element = elem;
let ItemId = element.find(".hfOrder_ItemId").val();
let Packs = Number(element.find(".txtOrder_ItemCount").val());
let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
if (instance.g_PacksFocus) {
if (element.find("#txt_Pieces").val() == 0) {
element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
}
element.find('.divOrders_ItemCount').addClass('floating-label-form-group-with-value');
let incVal = instance.getIncrementValue(Packs);
if (Packs - incVal == 0 && Pieces == 0 && !instance.g_IsCheckOutForm) {
let html = `
`;
$(element).find(".InventoryTypesTextboxes").html(html);
instance.allItemEvents(elem);
}
if (Packs > 0) {
let val = instance.roundOffIgnoreZerosAfterDecimal(Packs - incVal);
element.find(".txtOrder_ItemCount").val(val);
}
else if (Packs == 0 && Pieces > 0) {
element.find(".txtOrder_ItemCount").val(instance.roundOffIgnoreZerosAfterDecimal(Packs));
}
else {
element.find('.divOrders_ItemCount').removeClass('floating-label-form-group-with-value');
instance.deleteCartItems(ItemId);
return false;
}
}
if (instance.g_PiecesFocus) {
element.find('.divOrders_ItemPieceCount').addClass('floating-label-form-group-with-value');
let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
let incVal = instance.getIncrementValue(Pieces);
if (Pieces - incVal == 0 && Packs == 0 && !instance.g_IsCheckOutForm) {
let html = `
`;
$(element).find(".InventoryTypesTextboxes").html(html);
instance.allItemEvents(elem);
}
if (Pieces > 0) {
let val = instance.roundOffIgnoreZerosAfterDecimal(Pieces - incVal);
element.find(".txtOrder_ItemPieceCount").val(val);
}
else if (Pieces == 0 && Packs > 0) {
element.find(".txtOrder_ItemPieceCount").val(instance.roundOffIgnoreZerosAfterDecimal(Pieces));
}
else {
element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
instance.deleteCartItems(ItemId);
return false;
}
}
instance.updateItemsArray(element, "Minus");
});
$(elem).find('.chkItem_ExchangeDC').unbind().change(function () {
let element = elem;
let ItemId = element.find(".hfOrder_ItemId").val();
if (element.find('.chkItem_ExchangeDC').prop("checked")) {
element.find('#Ord_txtdiscount').val('').prop("disabled", true).css("cursor", "not-allowed");
$(".cartitem-" + ItemId).find("#Ord_txtdiscount").val('').prop("disabled", true).css("cursor", "not-allowed");
}
else {
element.find('#Ord_txtdiscount').prop("disabled", false).css("cursor", "auto");
$(".cartitem-" + ItemId).find('#Ord_txtdiscount').prop("disabled", false).css("cursor", "auto");
}
instance.updateItemsArray(element, "Exchange");
});
$(elem).find(".txtOrder_ItemCount").keyup(function () {
clearTimeout(timer);
timer = setTimeout(function () {
instance.updateItemsArray(elem, "Packs");
}, 300);
});
$(elem).find(".txtOrder_ItemPieceCount").keyup(function () {
clearTimeout(timer);
timer = setTimeout(function () {
instance.updateItemsArray(elem, "Pieces");
}, 300);
});
$(elem).find(".btnOrder_DiscType").unbind().change(function () {
instance.updateItemsArray(elem, "DiscountType");
});
$(elem).find("#Ord_txtdiscount").unbind().keyup(function () {
clearTimeout(timer);
timer = setTimeout(function () {
instance.updateItemsArray(elem, "Discount");
}, 300);
});
$(elem).find("#txt_Description").unbind().keyup(function () {
clearTimeout(timer);
timer = setTimeout(function () {
let ItemId = elem.find(".hfOrder_ItemId").val();
let CartItem = instance.g_CartItems_New.find(x => x.ItemId == ItemId && x.RefItemIds == "");
CartItem.Description = elem.find("#txt_Description").val().toString();
}, 300);
});
$(elem).find(".delete").unbind().click(function () {
let FromWidget = false, isCenterVertical = false;
if (instance.g_CartItems_New.length <= 10) {
$(".CartItemFindTxt").addClass('hidden');
}
let message = "

Are you sure!
Do you want to delete this item?
";
if (instance.g_CartItems_New.length == 1)
message = "

Are you sure!
Do you want to empty your cart?
";
let itemid = $(this).parents(".cartitem").find(".hfOrder_ItemId").val();
if (itemid == undefined) {
itemid = $(this).parents(".variant-addeditem").find(".hfOrder_ItemId").val();
}
if ($(window).width() <= 767.98) {
isCenterVertical = true;
}
if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
FromWidget = true;
}
bootbox.confirm({
message: message,
closeButton: true,
className: 'delete-item-bootbox',
buttons: {
confirm: {
label: 'Confirm',
className: 'btn-success'
},
cancel: {
className: 'd-none'
}
},
centerVertical: isCenterVertical,
callback: function (result) {
if (result) {
instance.deleteCartItems(itemid, FromWidget);
}
}
});
});
$(elem).find(".div_MultipleUOMs").change(function () {
instance.updateItemsArray(elem, "UOMChange");
});
$(elem).find("#AddItemToWishList").click(function () {
$(elem).find(".WishList").toggleClass("fa-heart-o").toggleClass("fa-heart");
instance.updateItemsArray(elem, "WishList");
});
$(elem).find(".AddToCart").unbind().click(function () {
let element = elem;
let ItemId = element.find(".hfOrder_ItemId").val();
let html = instance.getInventoryDesign(ItemId, true, 0, 0, "IsAddToCart");
$(element).find(".InventoryTypesTextboxes").html(html);
instance.allItemEvents(element);
instance.g_PacksFocus = true;
instance.g_PiecesFocus = false;
element.find(".txtOrder_ItemCount").val(1);
instance.updateItemsArray(element, "Plus");
});
}
showBOMItems(ItemId, ItemName, element) {
Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/transact/components/orders/itembomselection.js"], function () {
Unibase.Platform.Helpers.NavigationHelper.Instance().popup(0, "", Bizgaze.Apps.Transact.Components.Orders.ItemBOMSelection.Instance(), function () {
Bizgaze.Apps.Transact.Components.Orders.ItemBOMSelection.Instance().LoadBOMItems(ItemId, ItemName);
}, Unibase.Platform.Helpers.Size.Large);
});
}
itemSettingsEvents() {
let instance = this;
let timer;
$("#txt_SearchItem").off().on('input', function () {
clearTimeout(timer);
timer = setTimeout(function () {
instance.g_PageIndex = 0;
instance.checkIsCheckOutForm();
$("#div_ItemList").html('
');
instance.loadItems($("#txt_SearchItem").val());
}, 1500);
});
$("#ItemLoadType").unbind().change(function () {
instance.checkIsCheckOutForm();
$("#txt_SearchItem").val('');
$("#ItemLoadType option[value='0']").remove();
let type = $("#ItemLoadType option:selected").text();
if (type != "Filter" && !Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_OnlyFilters) {
instance.g_IsFilterApplied = false;
instance.g_FilteredTags = '';
Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_TagArray = [];
Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_ClearingTags = "";
}
instance.g_PageIndex = 0;
if (type == "Filter") {
instance.navigationHelper.popup("POS", '', Bizgaze.Apps.Transact.Components.OrderFilter.Instance(), null, Unibase.Platform.Helpers.Size.Medium);
}
else {
$("#div_ItemList").html('');
instance.loadItems(type);
}
});
$(".ContinueShopping").unbind().click(function () {
instance.navigationHelper.closePopUp();
instance.closePlaceAnOrder("ContinueShopping");
instance.g_CartItems_New = [];
instance.g_SelectedItems = [];
instance.checkIsCheckOutForm();
if (!$(".variant-list").is(":visible")) {
instance.fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () {
Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getDashboardGroupbyName("Place An Order").then(function (res) {
$(".liDashboardGroup_" + res.result.DashboardGroupId).click();
Unibase.Themes.Compact.Components.Nav.Instance().loadDashboardsInDashboard(res.result.DashboardGroupId, 0, true);
});
});
}
instance.checkIsCheckOutForm();
});
}
closePlaceAnOrder(evnt) {
let instance = this;
instance.g_CartItems_New = [];
instance.g_SelectedItems = [];
instance.checkIsCheckOutForm();
$("#div_ItemList").html('');
$("#ItemLoadType").val(1);
instance.g_PageIndex = 0;
if ($(".variant-list").length != 0) {
instance.bindCartItems();
}
else {
if (evnt == "CloseForm") {
instance.fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () {
Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getDashboardGroupbyName("My Cart").then(function (res) {
$(".liDashboardGroup_" + res.result.DashboardGroupId).click();
Unibase.Themes.Compact.Components.Nav.Instance().loadDashboardsInDashboard(res.result.DashboardGroupId, 0, true);
});
});
}
}
}
showOfferItems(OrganizationId, ItemId, ItemName, OrderType, element) {
Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/transact/components/invoices/itemofferselection.js", "apps/transact/controls/invoices/invoiceitem.component.js"], function () {
Unibase.Platform.Helpers.NavigationHelper.Instance().popup(0, "", Bizgaze.Apps.Transact.Components.Invoices.ItemOfferSelection.Instance(), function () {
Bizgaze.Apps.Transact.Components.Invoices.ItemOfferSelection.Instance().LoadOfferItems(OrganizationId, ItemId, ItemName, OrderType, $(element), "POS_Order");
}, Unibase.Platform.Helpers.Size.Large);
});
}
applyOffer(Item) {
let instance = this;
let ItemId = Item[0].ItemId;
let Qty = Item[0].Volume;
let LoadedItem = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
let Cartons = Math.ceil(Qty / (LoadedItem.PackCount * LoadedItem.PackSize));
if (instance.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
if (!instance.g_IsCheckOutForm) {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Cartons);
$('.variant-addeditem-' + ItemId).find('#txt_Pieces').val("");
}
else {
$('.cartitem-' + ItemId).find('#txt_Cartons').val(Cartons);
$('.cartitem-' + ItemId).find('#txt_Pieces').val("");
}
}
else if (instance.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
let Pieces = Math.ceil((Qty) / LoadedItem.PackSize);
if (!instance.g_IsCheckOutForm) {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val("");
$('.variant-addeditem-' + ItemId).find('#txt_Pieces').val(Pieces);
}
else {
$('.cartitem-' + ItemId).find('#txt_Cartons').val(0);
$('.cartitem-' + ItemId).find('#txt_Pieces').val(Pieces);
}
}
else if (instance.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
if (!instance.g_IsCheckOutForm) {
if (Cartons > 0) {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Cartons);
}
else {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val("");
}
}
else {
if (Cartons > 0) {
$('.cartitem-' + ItemId).find('#txt_Cartons').val(Cartons);
}
else {
$('.cartitem-' + ItemId).find('#txt_Cartons').val("");
}
}
}
else {
if (!instance.g_IsCheckOutForm) {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Qty);
$('.variant-addeditem-' + ItemId).find('#txt_Pieces').val(0);
}
else {
$('.cartitem-' + ItemId).find('#txt_Cartons').val(Qty);
$('.cartitem-' + ItemId).find('#txt_Pieces').val(0);
}
}
if (!instance.g_IsCheckOutForm) {
let element = $('.variant-addeditem-' + ItemId);
instance.updateItemsArray(element, "ApplyOffer", false, 0);
}
else {
let element = $('.cartitem-' + ItemId);
instance.updateItemsArray(element, "ApplyOffer", false, 0);
}
}
checkOffers(FromWidget, ItemId, evnt) {
return __awaiter(this, void 0, void 0, function* () {
let instance = this;
let IsCart = false;
if ($("#ulOrder_Cart").is(":visible")) {
IsCart = true;
}
let ordItems = new Array();
let applyType = '';
if (instance.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim) {
applyType = 'Sales';
}
else if (instance.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Purchase || instance.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim)
applyType = 'Purchases';
instance.g_CartItems_New.filter(x => x.IsFocItem == false).forEach(function (c) {
c.IsFocAdded = false;
c.FocItemIds = '';
c.IsOfferDiscountApplied = false;
c.AppliedOfferVolume = 0;
c.AppliedPlanVolumeId = 0;
c.AppliedOfferId = 0;
let ItemId = c.ItemId;
let baseqty = Number(c.BaseQty);
let unitPrice = Number(c.UnitPrice);
let rowTotal = instance.roundOff(baseqty * unitPrice);
ordItems.push({
ItemId: Number(ItemId),
Quantity: baseqty,
RowTotal: Number(rowTotal),
});
});
let ApplyDate = new Date();
let postData = {
OrderItems: ordItems,
ContactId: instance.g_OrganizationId,
ApplyType: instance.g_OrderTypeId,
ApplyDate: ApplyDate
};
Bizgaze.Apps.Transact.Managers.OfferManager.Instance().getRelatedOffersByItem(postData).then(function (response) {
return __awaiter(this, void 0, void 0, function* () {
if (response != null && response.Result.length != 0) {
instance.g_CartItems_New.filter(x => x.RefItemIds == "").forEach(function (c) {
c.DiscountPercent = 0;
c.DiscountValue = 0;
c.IsOfferApplied = false;
$(".cartitem-" + c.ItemId).find('.offerstatusapplied').addClass('d-none');
$(".cartitem-" + c.ItemId).find('.offerstatusavailable').removeClass('d-none');
});
let AllFocItems = [];
for (let i = 0; i < response.Result.length; i++) {
let data = response.Result[i];
let appliedItems = data.applyIds.split(',');
let discValue = 0;
let discPercent = 0;
if (data.PayoutValue > 0)
discValue = data.PayoutValue;
else if (data.OPayoutValue > 0)
discValue = data.OPayoutValue;
else if (data.PayoutPercent > 0)
discPercent = data.PayoutPercent;
let volume = data.Volume;
let focItems = data.ItemVolumePayouts;
for (let f = 0; f < focItems.length; f++) {
if (focItems[f].Quantity != 0) {
AllFocItems.push(focItems[f]);
}
}
let contactId = instance.g_OrganizationId;
for (let j = 0; j < focItems.length; j++) {
let focItem_RefItemIds = focItems[j].RefItemIds;
let focItem_RefSKUs = focItems[j].RefItemSKUs;
let ValidFocIndex = instance.g_ValidFocItems.findIndex(x => x.ItemId == focItems[j].ItemId && x.RefItemIds == focItem_RefItemIds);
let CartItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == focItems[j].ItemId);
let focRefItem_Ids = focItem_RefItemIds.split(",");
for (let f = 0; f < focRefItem_Ids.length; f++) {
let focRefItem = instance.g_CartItems_New.find(x => x.ItemId == focRefItem_Ids[f] && x.RefItemIds == "");
focRefItem.IsOfferApplied = true;
$(".cartitem-" + focRefItem.ItemId).find('.offerstatusapplied').removeClass('d-none');
$(".cartitem-" + focRefItem.ItemId).find('.offerstatusavailable').addClass('d-none');
}
if (focItems[j].Quantity > 0 && ((ValidFocIndex != -1 && focItems[j].IsFoC) || (!focItems[j].IsFoC))) {
let FocItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == focItems[j].ItemId && x.RefItemIds == focItem_RefItemIds);
if (FocItem_Index == -1) {
instance.addFocItemToCart(contactId, focItems[j].ItemId, focItems[j].Quantity, focItems[j].Discount, focItem_RefItemIds, FromWidget, focItem_RefSKUs);
}
else {
instance.editFocCartItem(focItems[j].ItemId, focItems[j].Quantity, FromWidget);
}
}
else if (CartItemIndex != -1) {
instance.deleteCartItems(focItems[j].ItemId, FromWidget, focItem_RefItemIds);
}
}
for (let m = 0; m < appliedItems.length; m++) {
let n = instance.g_CartItems_New.findIndex(x => x.ItemId == appliedItems[m] && x.RefItemIds == "");
if (n != -1) {
if (discValue > 0 || discPercent > 0) {
instance.g_CartItems_New[n].DiscountValue = discValue;
instance.g_CartItems_New[n].DiscountPercent = discPercent;
instance.g_CartItems_New[n].IsFocAdded = true;
instance.g_CartItems_New[n].IsOfferDiscountApplied = true;
instance.g_CartItems_New[n].AppliedOfferVolume = volume;
instance.g_CartItems_New[n].AppliedPlanVolumeId = data.PlanVolumeId;
instance.g_CartItems_New[n].AppliedOfferId = data.OfferId;
instance.g_CartItems_New[n].IsOfferApplied = true;
$(".cartitem-" + instance.g_CartItems_New[n].ItemId).find('.offerstatusapplied').removeClass('d-none');
$(".cartitem-" + instance.g_CartItems_New[n].ItemId).find('.offerstatusavailable').addClass('d-none');
let Elem = $(".variant-addeditem-" + instance.g_CartItems_New[n].ItemId);
let Cart_Elem = $(".cartitem-" + instance.g_CartItems_New[n].ItemId);
let Discount = discValue == 0 ? discPercent : discValue;
$(Elem).find("#Ord_txtdiscount").val(Discount);
$(Cart_Elem).find("#Ord_txtdiscount").val(Discount);
let DiscountType = discValue == 0 ? 1 : 2;
$(Elem).find(".btnOrder_DiscType").val(DiscountType);
$(Cart_Elem).find(".btnOrder_DiscType").val(DiscountType);
let AssessableAmount = Number(instance.g_CartItems_New[n].Amount);
let discVal = Number(instance.g_CartItems_New[n].DiscountValue) * Number(instance.g_CartItems_New[n].BaseQty);
let DiscAmount = Number((instance.g_CartItems_New[n].Amount * discPercent) / 100) + Number(discVal);
let discAmt = DiscAmount + Number(instance.g_CartItems_New[n].optoutAmount);
AssessableAmount = Number(AssessableAmount) - Number(discAmt);
let AmountWithDiscount = Number(instance.g_CartItems_New[n].Amount) - Number(DiscAmount);
instance.g_CartItems_New[n].DiscountAmount = discAmt;
instance.g_CartItems_New[n].AmountWithDiscount = AmountWithDiscount;
instance.g_CartItems_New[n].DiscountType = DiscountType;
}
let amount = Number(instance.g_CartItems_New[n].UnitPrice) * Number(instance.g_CartItems_New[n].BaseQty);
let discAmt = Number(instance.roundOff((amount * discPercent) / 100)) + Number(instance.roundOff(discValue));
if (discAmt != 0) {
let assessableAmount = Number(amount) - Number(discAmt);
let orderType = instance.g_OrderType;
let billingAddressId = Number($('.txtAutoComplete_billfromaddressid').val());
let BillToAddressId = Number($('.txtAutoComplete_billingaddressid').val());
}
else {
}
}
instance.g_CartItems_New.filter(x => x.IsFocItem == false).forEach(function (c) {
if (!FromWidget) {
let Elem = $(".variant-addeditem-" + c.ItemId);
let Cart_Elem = $(".cartitem-" + c.ItemId);
instance.updateItemsDesign(Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
instance.updateItemsDesign(Cart_Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
}
});
}
}
let Ref_Items = instance.g_CartItems_New.filter(x => x.RefItemIds != "");
for (let r = 0; r < Ref_Items.length; r++) {
let a = AllFocItems.findIndex(x => x.ItemId == Ref_Items[r].ItemId);
if (a == -1) {
instance.deleteCartItems(Ref_Items[r].ItemId, FromWidget, Ref_Items[r].RefItemIds);
}
}
}
else {
instance.g_CartItems_New.filter(x => x.IsFocItem == true).forEach(function (c) {
let Foc_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == c.ItemId && x.RefItemIds != "");
instance.g_CartItems_New.splice(Foc_Index, 1);
$(".cartitem-" + c.ItemId + "-" + c.RefItemIds.replace(/,/g, "-")).remove();
if (FromWidget) {
$(".variant-addeditem-" + c.ItemId + "-" + c.RefItemIds.replace(/,/g, "-")).remove();
}
});
}
instance.getTotals(ItemId);
if (instance.g_CartItems_New.length == 0) {
$("#ulOrder_Cart").html(' - Your Shopping Cart is empty.
');
}
else {
$(".EmptyCartLi").remove();
}
});
});
});
}
addFocItemToCart(ContactId, ItemId, Quantity, Discount, RefItemIds, FromWidget, RefItemSKUs = "") {
let instance = this;
let ShippingAddressId = instance.g_ShippingAddressId;
let BranchId = instance.g_BranchId;
let LobId = instance.g_LobId;
let OrderItemId = 0;
if (FromWidget) {
ShippingAddressId = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_ShippingAddressId;
BranchId = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_BranchId;
LobId = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_LobId;
let FocItem = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_FocItems.find(x => x.ItemId == ItemId);
if (FocItem != undefined) {
OrderItemId = FocItem.OrderItemId;
}
}
let postdata = {
PriceCodeId: Number(instance.g_PriceCodeId),
ContactId: ContactId,
ShippingAddressId: Number(ShippingAddressId),
BranchId: Number(BranchId),
WareHouseId: Number(instance.g_WarehouseId),
LobId: Number(LobId),
OrderType: instance.g_OrderTypeId,
OfferOnly: false,
IsExcise: instance.g_IsExcise,
SearchTerm: "",
Page: instance.g_PageIndex,
IsCompositePrice: instance.g_IsEnableCompositePrice,
IsPiecePrice: instance.g_IsEnablePiecePrice,
IsCompositePiecePrice: instance.g_IsEnableCompositePiecePrice,
Rows: instance.g_PageSize,
ItemId: ItemId.toString(),
CountryId: instance.g_CountryId,
ItemGroupId: 0,
Tags: "",
IsPoints: false,
Points: 0,
IsEligibleItemsOnly: false,
ProductId: 0,
IsFocItem: true
};
Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getVariantsForOrder(postdata).then(function (response) {
let data = response.result[0];
instance.g_LoadedItems.push(data);
let ItemName = data.ItemName;
let ItemId = Number(data.ItemId);
let Packs = 0;
let PackCount = data.PackCount;
let PackSize = data.PackSize;
let UnitPrice = data.UnitPrice;
let UnitName = data.UnitName;
let ExpectedPrice = data.UnitPrice;
let discType = 1;
let DiscPercent = 0;
let DiscVal = 0;
let PriceListId = 0;
let AvailablePacks = data.AvailablePacks;
let AvailablePieces = data.AvailablePieces;
let AvailableQuantity = data.AvailableQuantity;
let TotalAvailablePieces = data.TotalAvailablePieces;
let SKU = data.SKU;
if (Number(PackCount) == 0)
PackCount = 1;
if (Number(PackSize) == 0)
PackSize = 1;
Quantity = instance.roundOffIgnoreZerosAfterDecimal(Quantity);
Packs = Number(Quantity) / (PackCount * PackSize);
let amount = Number(Quantity) * UnitPrice;
let assessableAmount = Number(amount);
let discAmt = 0;
if (discType == 2) {
DiscVal = Discount;
discAmt = Number(DiscVal) * Number(Quantity);
assessableAmount = instance.roundOff(amount - discAmt);
}
else if (discType == 1) {
DiscPercent = Discount;
discAmt = Number((amount * DiscPercent) / 100);
assessableAmount = instance.roundOff(Number(assessableAmount) - Number(discAmt));
if (amount == 0)
assessableAmount = 0;
}
let BaseQty = Number(PackCount) * Number(PackSize) * Number(Packs);
let IsCalculateTax = instance.g_IsCalculateTax;
let TaxGroupId = 0;
let TaxAmount = 0;
let StrTaxPercents = "";
let TaxGroupName = "";
let IsTaxError = false;
if (IsCalculateTax) {
if (data.TaxGroupId == 0) {
IsTaxError = true;
}
else {
TaxGroupId = data.TaxGroupId;
TaxGroupName = data.TaxGroupName;
for (let p = 0; p < data.TaxPercentList.length; p++) {
let percen = data.TaxPercentList[p];
let tax = assessableAmount * percen.Percentage / 100;
TaxAmount += tax;
}
StrTaxPercents = data.strTaxPercents;
instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.None;
}
}
let CItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds != "");
if (CItemIndex != -1) {
instance.g_CartItems_New.splice(CItemIndex, 1);
}
let ItemIndex = instance.g_CartItems_New.length + 1;
instance.g_CartItems_New.push({
OrderItemId: OrderItemId,
ItemIndex: ItemIndex,
ItemId: ItemId,
ItemName: ItemName,
Packs: Quantity,
Pieces: 0,
PriceListId: 0,
UnitPrice: UnitPrice,
UnitPriceWithOutTax: UnitPrice,
ExpectedPrice: ExpectedPrice,
ActualPrice: UnitPrice,
PackCount: PackCount,
PackSize: PackSize,
UnitName: UnitName,
Quantity: Quantity,
SKU: SKU,
PartNo: "",
Amount: amount,
AmountWithDiscount: assessableAmount,
DiscountPercent: DiscPercent,
DiscountValue: DiscVal,
DiscountType: discType,
DiscountAmount: discAmt,
ItemValueAfterDiscount: assessableAmount,
StrTaxPercents: StrTaxPercents,
AvailableQuantity: AvailableQuantity,
AvailablePacks: AvailablePacks,
AvailablePieces: AvailablePieces,
TotalAvailablePieces: TotalAvailablePieces,
ExchangeDC: false,
IsAfterTax: false,
BaseQty: BaseQty,
IsFocItem: true,
optoutAmount: 0,
TaxGroupId: TaxGroupId,
TaxGroupName: TaxGroupName,
TaxAmount: TaxAmount,
TaxRateAmount: 0,
TaxRate: data.TaxRate,
TaxPercentage: data.TaxPercentage,
IsOfferAvailable: false,
Description: "",
Discountable: false,
PiecePrice: 0,
CompositePrice: 0,
CompositePiecePrice: 0,
IsCheckPendingItems: false,
IsError: false,
ErrorMsg: "",
ErrorClass: "text-danger",
IsTaxError: IsTaxError,
IsLeverageError: false,
IsFocAdded: false,
RefItemIds: RefItemIds,
RefItemSKUs: RefItemSKUs,
FocItemIds: "",
DiscountGroupId: 0,
IsOfferDiscountApplied: false,
IsOfferApplied: false,
AppliedOfferVolume: 0,
AppliedPlanVolumeId: 0,
AppliedOfferId: 0,
OffersCount: data.OffersCount,
optoutOfferGroupId: 0,
SuggestedPacks: 0,
MinPacks: 0,
AvgPacks: 0,
InwardOrderPacks: 0,
OutwardOrderPacks: 0,
IsMultipleUOMs: data.IsMultipleUOMs,
UOMSchemaId: data.UOMSchemaId,
MultipleUOMs: data.MultipleUOMs,
SelectedUnitId: 1,
DefaultSize: data.DefaultSize,
IsBoMAvailable: data.IsBoMAvailable,
UOMQuantity: 0,
ProductId: data.ProductId,
IsWishList: false,
OldUnitPrice: 0,
InstalledAppId: data.InstalledAppId,
});
if (FromWidget) {
if (RefItemIds == undefined) {
RefItemIds = "";
}
data.RefItemIds = RefItemIds;
let html = instance.getItemDesign(data, FromWidget);
$(".variant-item:last").after(html);
let elem = $('.variant-addeditem-' + ItemId + "-" + RefItemIds.replace(/,/g, "-"));
if (elem != undefined && elem.length > 0 && !instance.g_IsCheckOutForm) {
instance.updateItemsDesign(elem, "FromWidget_FocItem", false, true);
}
$(".defaultSelectedCartons").addClass("floating-label-form-group-with-value");
}
else {
if (instance.g_IsCheckOutForm) {
instance.addCartItem(ItemId, true);
}
}
instance.getTotals(ItemId);
});
}
editFocCartItem(ItemId, Quantity, FromWidget) {
let instance = this;
let CartItem = instance.g_CartItems_New.find(x => x.ItemId == ItemId && x.RefItemIds != "");
let PackCount = CartItem.PackCount;
let PackSize = CartItem.PackSize;
let UnitPrice = CartItem.UnitPrice;
let discType = CartItem.DiscountType;
let DiscVal = CartItem.DiscountValue;
let DiscPercent = CartItem.DiscountPercent;
let discAmt = CartItem.DiscountAmount;
Quantity = instance.roundOffIgnoreZerosAfterDecimal(Quantity);
let Packs = Number(Quantity) / (PackCount * PackSize);
let amount = Number(Quantity) * UnitPrice;
let assessableAmount = Number(amount);
let DiscAmount = Number((amount * DiscPercent) / 100) + Number(DiscVal);
assessableAmount = instance.roundOff(amount - DiscAmount);
if (amount == 0)
assessableAmount = 0;
let BaseQty = Number(PackCount) * Number(PackSize) * Number(Packs);
let IsCalculateTax = instance.g_IsCalculateTax;
let AmountWithDiscount = Number(amount) - Number(DiscAmount);
let TaxAmount = 0;
let LoadedItem = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
if (IsCalculateTax) {
if (LoadedItem.TaxGroupId != 0) {
for (let p = 0; p < LoadedItem.TaxPercentList.length; p++) {
let percen = LoadedItem.TaxPercentList[p];
let tax = assessableAmount * percen.Percentage / 100;
TaxAmount += tax;
}
}
}
CartItem.BaseQty = BaseQty;
CartItem.TaxAmount = TaxAmount;
CartItem.Packs = Quantity;
CartItem.Amount = amount;
CartItem.Quantity = Quantity;
CartItem.AmountWithDiscount = AmountWithDiscount;
let Foc_elem = $(".cartitem-" + ItemId + "-" + CartItem.RefItemIds.replace(/,/g, "-"));
if (FromWidget) {
Foc_elem = $('.variant-addeditem-' + ItemId + "-" + CartItem.RefItemIds.replace(/,/g, "-"));
}
if (Foc_elem.length > 0) {
instance.updateItemsDesign(Foc_elem, "EditFocItem_IsOfferDiscountApplied", true, true);
}
}
getSelectionStart(o) {
}
isNumberKey(evt) {
if (evt.type == "paste") {
let pastedData = evt.clipboardData.getData('text');
let regExp = /[a-zA-Z]/g;
if (regExp.test(pastedData)) {
evt.preventDefault();
return false;
}
}
else {
if (evt.which != 8 && evt.which != 0 && (evt.which < 48 || evt.which > 57)) {
return false;
}
}
return true;
}
validateFloatKeyPress(el, evt) {
let instance = this;
let charCode = (evt.which) ? evt.which : evt.keyCode;
let number = el.value.split('.');
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
if (number.length > 1 && charCode == 46) {
return false;
}
let caratPos = instance.getSelectionStart(el);
let dotPos = el.value.indexOf(".");
if (caratPos > dotPos && dotPos > -1 && (number[1].length > 1)) {
return false;
}
return true;
}
countDecimals(n) {
let decimalcount = 0;
let decimal = n.toString().split(".");
if (decimal.length == 1) {
decimalcount = 0;
}
else {
decimalcount = decimal[1].length;
}
return decimalcount;
}
getIncrementValue(n) {
let instance = this;
let incVal = 1;
let decimalCount = instance.countDecimals(n);
if (decimalCount == 0) {
incVal = 1;
}
else {
let dv = "0.";
for (let i = 0; i < decimalCount - 1; i++) {
dv += "0";
}
dv += "1";
incVal = Number(dv);
}
return incVal;
}
checkValidations(ItemId, IsCart) {
let instance = this;
let errormessage = "";
if (ItemId != 0) {
let element;
let Item;
if (IsCart) {
let CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
Item = instance.g_CartItems_New[CartItem_Index];
element = $(".cartitem-" + ItemId);
}
else {
let SelectedItem_Index = instance.g_SelectedItems.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
Item = instance.g_SelectedItems[SelectedItem_Index];
element = $(".variant-addeditem-" + ItemId);
}
if (Item != undefined) {
element.find(".tax-error").text("");
Item.IsError = false;
let price = Item.UnitPrice;
let actualprice = Item.ActualPrice;
let oldunitprice = Item.OldUnitPrice;
if (price == 0) {
Item.ErrorMsg += "\n Unit price is zero";
element.find(".tax-error").text("Unit price is zero").removeClass("text-danger").addClass("text-warning");
}
if (price < actualprice) {
Item.IsError = true;
element.find(".tax-error").text("Unit price must be greater than " + actualprice + "").addClass("text-danger").removeClass("text-warning");
Item.ErrorMsg += "\n Unit price must greater than " + actualprice + "";
}
if (!instance.g_IsAdmin) {
if (Item.DiscountPercent > instance.g_LeveragePercent && instance.g_IsLeverageApplied == true) {
Item.IsLeverageError = true;
$(element).find("#LeverageErrorTxt").removeClass("hidden");
$('.empLeverage').text(instance.g_LeveragePercent.toString());
if ($('.leverage-Warning').hasClass('hidden'))
$('.leverage-Warning').removeClass('hidden');
}
else {
Item.IsLeverageError = false;
$(element).find("#LeverageErrorTxt").addClass("hidden");
if (!$('.leverage-Warning').hasClass('hidden'))
$('.leverage-Warning').addClass('hidden');
}
}
else {
Item.IsLeverageError = false;
}
let WishListCartItemsWithZeroQuantity = instance.g_CartItems_New.filter(x => x.Quantity == 0 && x.IsWishList == true);
if (WishListCartItemsWithZeroQuantity.length > 0) {
$(".cart-Warning").removeClass("hidden");
$(".cartitem-warning").text("Some of the wishlist items are not added to cart");
}
else {
$(".cart-Warning").addClass("hidden");
}
if (Item.IsTaxError && Item.BaseQty != 0) {
Item.IsError = true;
Item.ErrorMsg = "Tax not assigned";
element.find(".tax-error").text("Tax not assigned").addClass("text-danger").removeClass("text-warning");
}
if (Item.DiscountPercent > 100) {
element.find(".tax-error").text("Discount % can't be greater than 100").addClass("text-danger").removeClass("text-warning");
Item.ErrorMsg += "\n Discount % can't be greater than 100";
Item.IsError = true;
}
}
}
instance.checkErrors();
instance.checkEnablePiece();
instance.checkEnablePacks();
return errormessage;
}
checkErrors() {
let instance = this;
let IsCart = false;
if (!$("#Items-list").is(":visible")) {
IsCart = true;
}
let Items = [];
if (IsCart) {
Items = instance.g_CartItems_New;
}
else {
Items = instance.g_SelectedItems;
}
let errors = Items.filter(x => x.IsError == true);
let leverageErrors = Items.filter(x => x.IsLeverageError == true);
if (leverageErrors.length == 0) {
instance.g_IsApprovalRequired = false;
if (!$('.leverage-Warning').hasClass('hidden'))
$('.leverage-Warning').addClass('hidden');
}
else {
instance.g_IsApprovalRequired = true;
$('.empLeverage').text(instance.g_LeveragePercent.toString());
if ($('.leverage-Warning').hasClass('hidden'))
$('.leverage-Warning').removeClass('hidden');
}
if (errors.length == 0) {
instance.enableSave();
}
else {
instance.disableSave();
}
}
checkEnablePiece() {
let instance = this;
let picesfound = instance.g_CartItems_New.filter(x => x.Pieces > 0);
if (picesfound.length > 0)
$('#chk_Pieces').attr('disabled', "true");
else
$('#chk_Pieces').removeAttr('disabled');
}
checkEnablePacks() {
let instance = this;
let packsfound = instance.g_CartItems_New.filter(x => x.Packs > 0);
if (packsfound.length > 0)
$('#chk_Packs').attr('disabled', "true");
else
$('#chk_Packs').removeAttr('disabled');
}
disableSave() {
$(".btn_Save_Form").find("button").attr("disabled", "disabled").css("cursor", "not-allowed");
$("#btn_Checkout").attr("disabled", "disabled").css("cursor", "not-allowed");
return false;
}
enableSave() {
$(".btn_Save_Form").find("button").removeAttr("disabled").css("cursor", "auto");
$("#btn_Checkout").removeAttr("disabled").css("cursor", "pointer");
}
addCartItem(ItemId, IsFocItem = false) {
let instance = this;
let CartItems_Index = -1;
if (IsFocItem) {
CartItems_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds != "");
}
else {
CartItems_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
}
let CartItm = instance.g_CartItems_New[CartItems_Index];
let html = instance.getItemDesign(CartItm, false, true);
$("#ulOrder_Cart").append(html);
let elem = $(".cartitem-" + ItemId);
let evnt = "EditCartItem";
if (CartItm.IsFocItem) {
evnt = "EditFocItem";
}
let RefItemIds = CartItm.RefItemIds;
if (RefItemIds != "") {
elem = $(".cartitem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-"));
}
instance.updateItemsDesign(elem, evnt, true, IsFocItem);
$("#ulOrder_Cart").find(".chk_PurPlanItem").addClass("hidden");
instance.allItemEvents(elem);
}
deleteCartItems(ItemId, FromWidget = false, RefItemIds = "") {
let instance = this;
let itemelement = $('.variant-addeditem-' + ItemId);
let element_name = "cartitem-";
let FocItems = instance.g_CartItems_New.filter(x => x.RefItemIds.indexOf(ItemId) != -1);
for (let f = 0; f < FocItems.length; f++) {
let Foc_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == FocItems[f].ItemId && x.RefItemIds == FocItems[f].RefItemIds);
$("." + element_name + FocItems[f].ItemId + "-" + FocItems[f].RefItemIds.replace(/,/g, "-")).remove();
instance.g_CartItems_New.splice(Foc_Index, 1);
}
let deletecartitemindex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
let deleteitemindex = instance.g_SelectedItems.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
if (deleteitemindex != -1) {
instance.g_SelectedItems.splice(deleteitemindex, 1);
}
if (deletecartitemindex != -1) {
let ItemElem = $('.variant-addeditem-' + ItemId);
let html = ``;
if (ItemElem.length > 0 && instance.g_IsCheckOutForm) {
$(ItemElem).find(".InventoryTypesTextboxes").html(html);
instance.allItemEvents(ItemElem);
}
$('.variant-addeditem-' + ItemId).find(".txtOrder_ItemCount,.txtOrder_ItemPieceCount").val("");
$('.variant-addeditem-' + ItemId).find("#DiscountOpenBracket").addClass('hidden');
$('.variant-addeditem-' + ItemId).find("#QuantityAndDiscountSpan").text('');
$('.variant-addeditem-' + ItemId).find(".editItemPrice").text(instance.g_CartItems_New[deletecartitemindex].UnitPrice);
$('.variant-addeditem-' + ItemId).find(".defaultSelectedCartons").removeClass('floating-label-form-group-with-value');
if (deletecartitemindex != -1) {
instance.g_CartItems_New.splice(deletecartitemindex, 1);
if (RefItemIds != "") {
$("." + element_name + ItemId + "-" + RefItemIds.replace(/,/g, "-")).remove();
}
else {
$("." + element_name + ItemId).remove();
}
}
$(this).parents(".cartitem").remove();
instance.checkOffers(false, ItemId, "DeleteCartItem");
if (instance.g_CartItems_New.length == 0) {
$("#ulOrder_Cart").html(' - Your Shopping Cart is empty.
');
}
instance.getTotals(ItemId);
instance.checkErrors();
}
}
bindCartItems() {
let instance = this;
$("#txt_SearchItem").val("");
instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getCartItems(instance.g_OrganizationId, instance.g_LobId).then(function (response) {
instance.g_AddedCartItemIds = "";
instance.g_IsTaxInclusive = response.result.IsTaxInclusive;
for (let c = 0; c < response.result.length; c++) {
let data = response.result[c];
let DiscountType = 2;
if (data.DiscountPercent > 0) {
DiscountType = 1;
}
let ItemData = {
OrderItemId: 0,
ItemIndex: 0,
ItemId: data.ItemId,
ItemName: "",
Packs: data.Packs,
Pieces: data.Pieces,
PriceListId: 0,
UnitPrice: data.UnitPrice,
UnitPriceWithOutTax: data.UnitPrice,
ExpectedPrice: data.UnitPrice,
ActualPrice: data.UnitPrice,
PackCount: data.PackCount,
PackSize: data.PackSize,
UnitName: "",
Quantity: data.Quantity,
SKU: "",
PartNo: "",
Amount: 0,
AmountWithDiscount: 0,
DiscountPercent: data.DiscountPercent,
DiscountValue: data.DiscountValue,
DiscountType: DiscountType,
DiscountAmount: 0,
ItemValueAfterDiscount: 0,
StrTaxPercents: "",
AvailableQuantity: 0,
AvailablePacks: 0,
AvailablePieces: 0,
TotalAvailablePieces: 0,
ExchangeDC: false,
IsAfterTax: false,
BaseQty: data.Quantity,
IsFocItem: false,
optoutAmount: 0,
TaxGroupId: 0,
TaxGroupName: "",
TaxAmount: 0,
TaxRateAmount: 0,
TaxRate: 0,
TaxPercentage: 0,
IsOfferAvailable: false,
Description: "",
Discountable: true,
PiecePrice: 0,
CompositePrice: 0,
CompositePiecePrice: 0,
IsCheckPendingItems: false,
IsError: false,
ErrorMsg: "",
ErrorClass: "text-danger",
IsTaxError: false,
IsLeverageError: false,
IsFocAdded: false,
RefItemIds: "",
RefItemSKUs: "",
FocItemIds: "",
DiscountGroupId: 0,
IsOfferDiscountApplied: false,
IsOfferApplied: false,
AppliedOfferVolume: 0,
AppliedPlanVolumeId: 0,
AppliedOfferId: 0,
OffersCount: data.OffersCount,
optoutOfferGroupId: 0,
SuggestedPacks: 0,
MinPacks: 0,
AvgPacks: 0,
InwardOrderPacks: 0,
OutwardOrderPacks: 0,
IsMultipleUOMs: false,
UOMSchemaId: 0,
MultipleUOMs: [],
SelectedUnitId: 0,
DefaultSize: 0,
IsBoMAvailable: false,
UOMQuantity: 0,
ProductId: 0,
IsWishList: data.IsWishList,
OldUnitPrice: data.UnitPrice,
InstalledAppId: 0,
};
let SelectedItems_Index = instance.g_SelectedItems.findIndex(x => x.ItemId == data.ItemId);
let CartItems_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == data.ItemId);
if (SelectedItems_Index == -1) {
instance.g_SelectedItems.push(ItemData);
}
else {
instance.g_SelectedItems[SelectedItems_Index] = ItemData;
}
if (CartItems_Index == -1) {
instance.g_CartItems_New.push(ItemData);
}
else {
instance.g_CartItems_New[CartItems_Index] = ItemData;
}
if (data.ProductId != instance.g_ProductId) {
instance.g_AddedCartItemIds += data.ItemId + ",";
}
}
instance.loadItems("", true);
});
});
}
roundOff(n, decimalValue = 2) {
return Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(n, decimalValue);
}
roundOffIgnoreZerosAfterDecimal(n, decimalValue = 2) {
n = Number(n);
return Number(n.toFixed(decimalValue));
}
getTotals(ItemId = 0, event = "") {
let instance = this;
let BranchId = 0;
if (instance.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim)
BranchId = Number($(".txtAutoComplete_billfromaddressid").val());
else
BranchId = Number($(".txtAutoComplete_billingaddressid").val());
$(".hdn_branchid").val(BranchId);
if (event == "BindCartItems" || event == "LoadItems") {
ItemId = 0;
}
let postdata = {
OrderItems: instance.g_CartItems_New,
IsCompositePrice: instance.g_IsEnableCompositePrice,
IsPiecePrice: instance.g_IsEnablePiecePrice,
IsTaxInclusive: instance.g_IsTaxInclusive == undefined ? false : instance.g_IsTaxInclusive,
IsCalculateTax: instance.g_IsCalculateTax == undefined ? false : instance.g_IsCalculateTax,
OrderTypeId: instance.g_OrderTypeId,
BranchId: instance.g_BranchId,
InventoryApplyType: instance.g_InventoryApplyType,
ContactId: instance.g_OrganizationId,
LobId: instance.g_LobId,
ModifiedItem: instance.g_CartItems_New.find(x => x.ItemId == ItemId && x.RefItemIds == ""),
ItemId: Number(ItemId),
IsCart: instance.g_IsCheckOutForm
};
instance.g_AppliedTaxGroups = new Array();
Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getTotals(postdata).then(function (response) {
instance.g_Totals = response.result;
let res = instance.g_Totals;
if (instance.roundOff(res.TotalScrapDiscountAmount) > 0)
$("#div_ScrapDiscount").removeClass("hidden");
else
$("#div_ScrapDiscount").addClass("hidden");
$('#lblSummary_GrossAmount').text(instance.roundOff(res.GrossAmount));
$('#lblSummary_TotalDiscount').text(instance.roundOff(res.TotalDiscount));
$('#lblSummary_AssessableTotal').text(instance.roundOff(res.AssessableAmount));
$('#lblSummary_TaxTotal').text(instance.roundOff(res.TotalTax));
$('#lblSummary_ScrapDiscountAmount').text('-' + (instance.roundOff(res.TotalScrapDiscountAmount)));
$('#lblSummary_NetTotal').text(instance.roundOff(res.NetTotal));
$('#OverallOrderQuantity').text(instance.roundOffIgnoreZerosAfterDecimal(res.TotalQuantity, 2));
$(".netpacks").text(instance.g_CartItems_New.length);
if (instance.g_CartItems_New.length == 0) {
$("#btnDynamicSave").attr("disabled", "true").css("cursor", "not-allowed");
}
let WishListCartItemsWithZeroQuantity = instance.g_CartItems_New.filter(x => x.Quantity == 0 && x.IsWishList == true);
if (WishListCartItemsWithZeroQuantity.length > 0) {
$(".cart-Warning").removeClass("hidden");
$(".cartitem-warning").text("Some of the wishlist items are not added to cart");
}
else {
$(".cart-Warning").addClass("hidden");
}
let index = instance.g_CartPageIndex * instance.g_PageSize;
if (instance.g_CartItems_New.length > index) {
$("#poscheckoutitemsloadmore").addClass("d-md-flex").removeClass("hidden");
}
else {
$("#poscheckoutitemsloadmore").addClass("hidden").removeClass("d-md-flex");
}
$("#ulOrder_Cart").find("li").addClass("hidden").removeClass("d-md-flex");
for (let k = 0; k < index; k++) {
$($("#ulOrder_Cart").find("li")[k]).removeClass("hidden").addClass("d-md-flex");
}
if (instance.g_CartItems_New.length == 0) {
$("#ulOrder_Cart").find(".cartitem").addClass("hidden");
$(".divOrderCartQty, .divOrderCart, .divOrderCartItems").addClass("hidden");
$("#ulOrder_Cart").find(".cartitem").removeClass("d-md-flex");
}
else {
$(".divOrderCartQty, .divOrderCart, .divOrderCartItems").removeClass("hidden");
}
});
}
getCartItems(OrderId = 0) {
let instance = this;
let ItemList = new Array();
for (let c = 0; c < instance.g_CartItems_New.length; c++) {
let orderItemIndex = c;
let CartItem = instance.g_CartItems_New[c];
let FocItemIds = "";
instance.g_CartItems_New.filter(z => z.RefItemIds.indexOf(CartItem.ItemId.toString()) > -1).forEach(x => {
FocItemIds += x.ItemId + "|";
});
if (CartItem.IsFocItem || CartItem.Quantity == 0) {
continue;
}
let Quantity = CartItem.Quantity;
if (CartItem.IsMultipleUOMs && CartItem.UOMQuantity > 0) {
Quantity = CartItem.UOMQuantity;
}
ItemList.push({
OrderItemId: CartItem.OrderItemId,
OrderId: OrderId,
OrderItemIndex: orderItemIndex,
ItemId: CartItem.ItemId,
ItemName: CartItem.ItemName,
UnitPrice: CartItem.UnitPriceWithOutTax,
PriceListId: CartItem.PriceListId,
ExpectedPrice: CartItem.ExpectedPrice,
Quantity: Quantity,
TaxGroupId: CartItem.TaxGroupId,
TaxGroupName: CartItem.TaxGroupName,
TaxTotal: CartItem.TaxAmount,
Description: CartItem.Description,
DiscountPercent: CartItem.DiscountPercent,
DiscountAmount: CartItem.DiscountAmount,
DiscountValue: CartItem.DiscountValue,
DiscountGroupId: CartItem.DiscountGroupId,
RefNo: "",
RowTotal: CartItem.Amount,
AvailableQty: CartItem.AvailableQuantity,
ExchangeDC: CartItem.ExchangeDC,
HideOnInvoice: false,
Packs: CartItem.Packs,
Pieces: CartItem.Pieces,
IsAfterTax: CartItem.IsAfterTax,
OptOutAmount: CartItem.optoutAmount,
OptOutCampaignGroupId: CartItem.optoutOfferGroupId,
IsFoc: CartItem.IsFocItem,
OrderFromEstimate: false,
PriceTypeId: Number(instance.g_PriceTypeId),
RefItemIds: CartItem.RefItemIds,
FocItemIds: FocItemIds,
AlternateUnitId: isNaN(CartItem.SelectedUnitId) ? 0 : CartItem.SelectedUnitId,
DefaultSize: CartItem.DefaultSize,
});
}
return ItemList;
}
loadChildTagsOrProducts(ParentTagId, TagInstalledAppId) {
Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/components/orders/orderfilter.js", function () {
Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags = ParentTagId.toString();
Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(ParentTagId, TagInstalledAppId, null, ' ', true);
});
}
loadItemsByProduct(ProductId, ProductInstalledAppId) {
Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(ProductId, ProductInstalledAppId, null, ' ', true);
}
loadDetail_UI(Name) {
let instance = this;
let poslength = $("#defaultwidgetcallbackfn").length;
if (poslength > 0) {
let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
$("#" + VisibleContainerId).on("remove", function () {
let ContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
var installedappid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + ContainerId].InstalledAppId;
Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + ContainerId].InputParameters;
Unibase.Themes.Providers.DetailHelper.installedAppId = installedappid;
var TagId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_tagid") == undefined ? 0 : Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_tagid").Value);
if (TagId > 0) {
Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags = TagId.toString();
}
});
$("#" + VisibleContainerId).find('.Mobile-mode .div_details_stages').removeClass('d-block').addClass('d-none');
let TagNameLink = ` ` + Name + ``;
instance.g_TagsLink.push({ "ContainerId": VisibleContainerId, "Link": TagNameLink });
let Link = instance.getLink();
$("#" + VisibleContainerId).find(".portletwidget-addeditem").addClass("hidden");
$("#" + VisibleContainerId).find("#layout-detail-tabs-container").addClass("hidden");
$("#" + VisibleContainerId).find(".block-on-mobile").removeClass("d-flex").addClass("hidden");
$("#" + VisibleContainerId).find(".app_defaultwidget").html("");
$("#" + VisibleContainerId).find(".check-mobile-mode").addClass('align-items-center w-100');
$("#" + VisibleContainerId).find(".Mobile-mode").addClass('w-90');
$("#" + VisibleContainerId).find('[data-TagNameLink="' + Name + '" ]').siblings('.blackSlash').last().remove();
$("#" + VisibleContainerId).find('[data-TagNameLink="' + Name + '" ]').siblings('span:nth-last-child(2)').addClass('back-Active');
$("#" + VisibleContainerId).find('[data-TagNameLink="' + Name + '" ]').last().remove();
let element = $("#" + VisibleContainerId).find(".three-dots").css({ 'white-space': 'nowrap', 'overflow': 'hidden' });
if (element != undefined && element[0] != undefined) {
if (element[0].offsetWidth > 200) {
$(element).addClass('w-200p');
$("#" + VisibleContainerId).find(".three-dots-binding").html('...').addClass('w-5');
}
}
}
}
loadPlaceOrderDashboardGroup() {
let instance = this;
let poslength = $("#defaultwidgetcallbackfn").length;
if (poslength > 0) {
instance.fileCacheHelper.loadJsFile("platform/dashboards/managers/dashboardmanager.js", function () {
Unibase.Platform.Dashboards.Managers.DashboardManager.Instance().getDashboardGroupbyName("Place an Order").then(function (res) {
$(".liDashboardGroup_" + res.result.DashboardGroupId).click();
Unibase.Themes.Compact.Components.Nav.Instance().loadDashboardsInDashboard(res.result.DashboardGroupId, 0, true);
});
});
}
}
detailClose() {
let instance = this;
if (instance.g_TagsLink.length != 0) {
instance.g_PacksFocus = true;
instance.g_PiecesFocus = false;
instance.g_TagsLink.splice(instance.g_TagsLink.length - 1, 1);
}
}
removeBeforeContainers(ContainerId) {
let instance = this;
instance.g_PacksFocus = true;
instance.g_PiecesFocus = false;
let ModalContainerIds = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds;
let ModalContainerIndex = ModalContainerIds.findIndex(x => x == ContainerId);
let len = ModalContainerIds.length;
for (let i = ModalContainerIndex + 1; i < len; i++) {
$("#" + ModalContainerIds[i]).remove();
}
ModalContainerIds.splice(ModalContainerIndex + 1);
let TagLinkIndex_1 = instance.g_TagsLink.findIndex(x => x.ContainerId == ContainerId);
instance.g_TagsLink.splice(TagLinkIndex_1 + 1);
$("#" + ModalContainerIds[ModalContainerIndex]).removeClass("hidden");
var installedappid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + ContainerId].InstalledAppId;
Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + ModalContainerIds[ModalContainerIndex]].InputParameters;
Unibase.Themes.Providers.DetailHelper.installedAppId = installedappid;
var TagId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_tagid") == undefined ? 0 : Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_tagid").Value);
if (TagId > 0) {
Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags = TagId.toString();
}
}
getLink() {
let instance = this;
let Link = "";
for (let i = 0; i < instance.g_TagsLink.length; i++) {
if (i == 0) {
Link = instance.g_TagsLink[i].Link;
}
else {
Link += "
" + instance.g_TagsLink[i].Link;
}
}
return Link;
}
static Instance() {
if (this.instance === undefined) {
this.instance = new POSCartItems();
}
return this.instance;
}
}
Controls.POSCartItems = POSCartItems;
})(Controls = Transact.Controls || (Transact.Controls = {}));
})(Transact = Apps.Transact || (Apps.Transact = {}));
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
})(Bizgaze || (Bizgaze = {}));