' +
'
' +
'
' + ItemImg + ' ';
if (IsCart || FromWidget) {
html += '
';
}
html += '
' + data.ItemName + ' ';
if (data.PartNo != "" && data.PartNo != null) {
html += '
SKU : ' + data.SKU + ' ( ' + data.PartNo + ' ) ';
}
else {
html += '
SKU : ' + data.SKU + ' ';
}
let Price_dataToggle = "";
Price_dataToggle = `data-toggle="collapse"`;
let compositeDecimalValue = 0;
let piecePriceDecimalValue = 0;
let compositePiecePriceDecimalvalue = 0;
let Item = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
if (Item != undefined) {
compositeDecimalValue = Item.CompositePrice;
piecePriceDecimalValue = Item.PiecePrice;
compositePiecePriceDecimalvalue = Item.CompositePiecePrice;
}
if (compositeDecimalValue == undefined)
compositeDecimalValue = 0;
if (instance.g_IsEnablePiecePrice) {
html += '
Piece Price : ( ' + Number(instance.roundOff(piecePriceDecimalValue)) + ' ';
}
else if (instance.g_IsEnableCompositePrice) {
html += '
Comp. Price : ( ' + Number(instance.roundOff(compositeDecimalValue)) + ' ';
}
else if (instance.g_IsEnableCompositePiecePrice) {
html += '
Comp. Piece Price : ( ' + Number(instance.roundOff(compositePiecePriceDecimalvalue)) + ' ';
}
else {
let PointsorPrice = "Price";
html += '
' + PointsorPrice + ' : ( ' + data.UnitPrice + ' ';
}
if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
if (instance._opportunity.g_IsAdmin == 1) {
if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces && !instance.g_IsEnablePacks) {
html += '
Avail : ' + data.TotalAvailablePieces + ' (' + data.AvailableQuantity + ') ';
}
else {
html += 'Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ') ';
}
}
else {
html += 'Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ') ';
}
}
else if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
if (instance._opportunity.g_IsAdmin == 1) {
html += 'Avail : ' + data.AvailableQuantity + ' ';
}
}
html += ' ';
let SuggestedPacks = 0;
html += '
';
html += instance.N_getInventoryDesign(ItemId, IsCart, SuggestedPacks, RefItemIds);
html += '
';
let classclaim = "";
classclaim = "col-sm-7";
html += '
' +
'
';
html += '';
return html;
}
roundOff(n, decimalValue = 2) {
return Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(n, decimalValue);
}
N_getInventoryDesign(ItemId, IsCart, SuggestedPacks = 0, RefItemIds) {
let instance = this;
let html = "";
let InvType = "", fltngclass_Cartons = "", fltngclass_Pieces = "", PP_Cartons = "", PP_Pieces = "", IsFocItem = false, DisableQuantityTxtBox = "", HideMinusPlusBtns = "";
if (SuggestedPacks != 0) {
PP_Cartons = SuggestedPacks.toString();
}
let CartItem_Index = -1;
CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
let CartItem = instance.g_CartItems_New[CartItem_Index];
if (CartItem != undefined) {
PP_Cartons = CartItem.Packs.toString();
PP_Pieces = CartItem.Pieces.toString();
IsFocItem = CartItem.IsFocItem;
}
if (PP_Cartons == "0") {
PP_Cartons = "";
}
if (PP_Cartons != "") {
fltngclass_Cartons = "floating-label-form-group-with-value";
}
if (PP_Pieces == "0") {
PP_Pieces = "";
}
if (PP_Pieces != "") {
fltngclass_Pieces = "floating-label-form-group-with-value";
}
if (IsFocItem) {
DisableQuantityTxtBox = "disabled style='cursor:not-allowed'";
HideMinusPlusBtns = "hidden";
}
let InventoryTypeId = instance._opportunity.g_InventoryApplyType;
let IsEnablePacks = instance.g_IsEnablePacks, IsEnablePieces = instance.g_IsEnablePieces;
if (IsFocItem) {
InventoryTypeId = Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity;
IsEnablePacks = true;
IsEnablePieces = false;
}
if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces && !instance.g_IsEnablePacks) {
$("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pr-90");
$("#spn_InventoryTitle").addClass("hidden").removeClass("pl-40");
$(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
$(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
}
else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs && !instance.g_IsEnablePieces) {
$("#spn_picesTitle").addClass("hidden").removeClass("pr-90");
$("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pl-40");
$(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
$(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
}
else if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
$("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pr-90");
$("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pl-40");
$(".ItemDetails").removeClass("col-sm-8").addClass("col-sm-6");
$(".InventoryTypesTextboxes").removeClass("col-sm-4").addClass("col-sm-6");
}
$("#spn_InventoryTitle").text("Cartons");
$("#spn_picesTitle").text("Pieces");
}
else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
$("#spn_InventoryTitle").text("Quantity");
$("#spn_picesTitle").addClass("hidden");
$("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12");
}
if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
InvType = "Quantity";
}
else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
InvType = "Cartons";
}
else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
InvType = "Pieces";
}
else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
InvType = "Cartons";
}
let cartItemQtyClass = "";
if (IsCart) {
cartItemQtyClass = "_editCartItemQuantity";
}
if (IsEnablePacks && !IsEnablePieces) {
html += '
';
}
else if (!IsEnablePacks && IsEnablePieces) {
html += '
';
}
if (IsEnablePacks && IsEnablePieces) {
html += '
';
}
html += '
';
return html;
}
N_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.N_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.N_UpdateItemsDesign(elem, evnt, true, IsFocItem);
$("#ulOrder_Cart").find(".chk_PurPlanItem").addClass("hidden");
instance.N_AllItemEvents(elem);
}
N_UpdateItemsDesign(elem, evnt, IsCart = false, IsFocItem = false) {
let instance = this;
let ItemId = Number($(elem).find(".hfOpportunity_ItemId").val());
let RefItemId = $(elem).find(".hfOpportunity_RefItemId").val();
let CartItem_Index = -1;
if (IsFocItem) {
CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemId);
}
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;
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._opportunity.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.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);
}
else {
$(elem).find(".chkItem_ExchangeDC").prop("checked", false);
}
let ItemIndex = $(elem).attr("class").toString().indexOf("variant-addeditem-" + Itm.ItemId);
if ((Itm.IsOfferAvailable && Itm.IsOfferDiscountApplied && IsCart && ItemIndex == -1) || (Itm.ExchangeDC)) {
$(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("#Ord_txtdiscount").removeAttr("disabled").removeAttr("style");
$(elem).find(".btnOrder_DiscType").removeAttr("disabled").removeAttr("style");
}
if (Itm.IsMultipleUOMs) {
$(elem).find("#ddl_MultipleUOMs_" + ItemId).val(Itm.SelectedUnitId);
if (Itm.SelectedUnitId != 1 && Itm.SelectedUnitId != 0) {
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();
}
}
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).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
$(elem).find("#QuantityAndDiscountSpan").text("");
}
else {
if (Itm.DiscountValue > 0) {
$(elem).find(".editItemPrice").text("(" + Itm.UnitPrice).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
$(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).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
$(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)).css({
'text-decoration': 'underline', 'color': '#5ba8fb'
});
$(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);
}
instance.N_getPriceTypeValues(ItemId, Itm.Packs, Itm.Pieces);
if (instance.g_IsEnablePiecePrice) {
let PiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.PiecePrice);
$(elem).find(".editItemPrice").text(PiecePrice);
if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
$(elem).find("#QuantityAndDiscountSpan").text(' (' + _quantity + ' ' + Itm.UnitName + ')');
}
else if (Itm.DiscountValue > 0) {
let DiscountAmount = Itm.DiscountValue * _quantity;
let RowTotal = PiecePrice - DiscountAmount;
$(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
$(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountValue + ') X ' + _quantity + ' ' + Itm.UnitName + ' = ' + RowTotal);
}
else if (Itm.DiscountPercent > 0) {
let Amount = (Itm.BaseQty * Itm.UnitPriceWithOutTax);
let DiscountAmount = (Amount * Itm.DiscountPercent) / 100;
let RowTotal = PiecePrice - DiscountAmount;
$(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + _quantity + ' ' + Itm.UnitName + ' = ' + RowTotal);
}
}
if (instance.g_IsEnableCompositePrice) {
let CompositePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.CompositePrice);
$(elem).find(".editItemPrice").text(CompositePrice);
if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
let RowTotal = instance.roundOffIgnoreZerosAfterDecimal(CompositePrice * _quantity);
$(elem).find("#QuantityAndDiscountSpan").text(' X ' + _quantity + ' ' + Itm.UnitName + ' = ' + RowTotal);
}
else if (Itm.DiscountValue > 0) {
let DiscountAmount = Itm.DiscountValue * _quantity;
let RowTotal = (Itm.UnitPriceWithOutTax * _quantity) - DiscountAmount;
let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
let RowTax = AmountWithTax[1];
$(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
$(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountValue + ') X ' + _quantity + ' ' + Itm.UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
}
else if (Itm.DiscountPercent > 0) {
let Amount = (Itm.BaseQty * Itm.UnitPriceWithOutTax);
let DiscountAmount = (Amount * Itm.DiscountPercent) / 100;
let RowTotal = (Itm.UnitPriceWithOutTax * _quantity) - DiscountAmount;
let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
let RowTax = AmountWithTax[1];
$(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
$(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + _quantity + ' ' + Itm.UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
}
}
if (instance.g_IsEnableCompositePiecePrice) {
let PiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.PiecePrice);
let CompositePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.CompositePrice);
$(elem).find(".editItemPrice").text(CompositePrice);
if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
let RowTotal = instance.roundOffIgnoreZerosAfterDecimal(CompositePrice * _quantity);
$(elem).find("#QuantityAndDiscountSpan").text(' X ' + _quantity + ' ' + Itm.UnitName + ' = ' + RowTotal);
}
else if (Itm.DiscountValue > 0) {
let DiscountAmount = Itm.DiscountValue * _quantity;
let RowTotal = PiecePrice - DiscountAmount;
let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
let RowTax = AmountWithTax[1];
$(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
$(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountValue + ') X ' + _quantity + ' ' + Itm.UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
}
else if (Itm.DiscountPercent > 0) {
let Amount = (Itm.BaseQty * Itm.UnitPriceWithOutTax);
let DiscountAmount = (Amount * Itm.DiscountPercent) / 100;
let RowTotal = PiecePrice - DiscountAmount;
let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
let RowTax = AmountWithTax[1];
$(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
$(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + _quantity + ' ' + Itm.UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
}
}
if (evnt == "RefreshAllItems_InventoryClickEvents" || evnt == "FromWidget") {
let html = instance.N_getInventoryDesign(ItemId, IsCart, 0, Itm.RefItemIds);
$(elem).find("#InventoryTypesTextboxes").html(html);
instance.N_AllItemEvents(elem);
}
}
N_DeleteCartItems(ItemId, FromWidget = false, RefItemIds = "") {
let instance = this;
let itemelement = $('.variant-addeditem-' + ItemId);
let element_name = "cartitem-";
if (FromWidget) {
element_name = "variant-addeditem-";
var itemindex = Bizgaze.Apps.Transact.Controls.AddOpportunityItems.Instance().g_ItemIds.findIndex(x => x == Number(ItemId));
Bizgaze.Apps.Transact.Controls.AddOpportunityItems.Instance().g_ItemIds.splice(itemindex, 1);
}
$("." + element_name + ItemId).remove();
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);
$("." + 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) {
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();
if (instance.g_CartItems_New.length == 0) {
$("#ulOrder_Cart").html('
Your Shopping Cart is empty. ');
}
instance.N_GetTotals();
instance.N_CheckErrors();
}
}
roundOffIgnoreZerosAfterDecimal(n, decimalValue = 2) {
n = Number(n);
return Number(n.toFixed(decimalValue));
}
getAmountWithTax(ItemId, Amount) {
let instance = this;
let TaxRate = 0, AmountWithTax = 0;
let LoadedItem = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
if (LoadedItem != undefined) {
let taxPercentList = LoadedItem.TaxPercentList;
if (taxPercentList != null) {
for (let i = 0; i < taxPercentList.length; i++) {
let percen = taxPercentList[i];
TaxRate += Amount * percen.Percentage / 100;
}
AmountWithTax = Amount + TaxRate;
}
}
return instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax) + '|' + instance.roundOffIgnoreZerosAfterDecimal(TaxRate);
}
N_getPriceTypeValues(ItemId, Packs = 0, Pieces = 0) {
let instance = this;
let taxpercentage = 0, TaxRate = 0, TaxRateAmount = 0, strTaxPercents = "", CompositePiecePriceTaxRate = 0;
let LoadedItem = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
if (LoadedItem != undefined) {
let taxPercentList = LoadedItem.TaxPercentList;
let PackSize = LoadedItem.PackSize;
let PackCount = LoadedItem.PackCount;
let ItemUnitPrices = instance.g_ItemsUnitPrice_New.find(x => x.ItemId == ItemId);
let UnitPrice = 0;
if (ItemUnitPrices != undefined) {
UnitPrice = ItemUnitPrices.UnitPrice;
}
let PiecePrice_BaseQty = PackSize;
let CartItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
if (Packs > 0 || Pieces > 0) {
PiecePrice_BaseQty = Number(PackCount) * Number(PackSize) * Number(Packs) + (Pieces * PackSize);
}
let piecePriceDecimalValue = 0;
let piecePrice = Number(UnitPrice) * Number(PiecePrice_BaseQty);
if (Number.isInteger(piecePrice))
piecePriceDecimalValue = piecePrice;
else
piecePriceDecimalValue = Number(UnitPrice) * Number(PiecePrice_BaseQty);
if (taxPercentList != null) {
for (let i = 0; i < taxPercentList.length; i++) {
let percen = taxPercentList[i];
taxpercentage += percen.Percentage;
TaxRate += UnitPrice * percen.Percentage / 100;
CompositePiecePriceTaxRate += piecePriceDecimalValue * percen.Percentage / 100;
strTaxPercents += percen.LedgerId + ":" + percen.Percentage + ",";
}
TaxRateAmount = UnitPrice + TaxRate;
}
let compositeDecimalValue = 0;
if (TaxRateAmount == 0) {
TaxRateAmount = UnitPrice;
compositeDecimalValue = Number(TaxRateAmount);
}
if (Number.isInteger(TaxRateAmount)) {
compositeDecimalValue = TaxRateAmount;
}
else
compositeDecimalValue = Number(TaxRateAmount);
let compositePiecePriceDecimalvalue = 0;
if (instance.g_IsEnableCompositePiecePrice) {
compositePiecePriceDecimalvalue = Number(CompositePiecePriceTaxRate) + piecePriceDecimalValue;
}
LoadedItem.CompositePrice = Number(instance.roundOff(compositeDecimalValue));
LoadedItem.PiecePrice = Number(instance.roundOff(piecePriceDecimalValue));
LoadedItem.CompositePiecePrice = Number(instance.roundOff(compositePiecePriceDecimalvalue));
if (CartItemIndex != -1) {
instance.g_CartItems_New[CartItemIndex].CompositePrice = Number(instance.roundOff(compositeDecimalValue));
instance.g_CartItems_New[CartItemIndex].PiecePrice = Number(instance.roundOff(piecePriceDecimalValue));
instance.g_CartItems_New[CartItemIndex].CompositePiecePrice = Number(instance.roundOff(compositePiecePriceDecimalvalue));
}
}
}
N_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;
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 (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.N_CheckErrors();
instance.CheckEnablePiece();
instance.CheckEnablePacks();
return errormessage;
}
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');
}
N_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._opportunity.g_IsApprovalRequired = false;
if (!$('.leverage-Warning').hasClass('hidden'))
$('.leverage-Warning').addClass('hidden');
}
else {
instance._opportunity.g_IsApprovalRequired = true;
if ($('.leverage-Warning').hasClass('hidden'))
$('.leverage-Warning').removeClass('hidden');
}
if (errors.length == 0) {
instance.EnableSave();
}
else {
instance.DisableSave();
}
}
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");
}
N_GetTotals() {
let instance = this;
let postdata = {
OrderItems: instance.g_CartItems_New,
IsCompositePrice: instance.g_IsEnableCompositePrice,
IsPiecePrice: instance.g_IsEnablePiecePrice,
IsTaxInclusive: instance._opportunity.g_IsTaxInclusive == undefined ? false : instance._opportunity.g_IsTaxInclusive,
IsCalculateTax: instance._opportunity.g_IsCalculateTax == undefined ? false : instance._opportunity.g_IsCalculateTax,
OrderTypeId: instance._opportunity.g_OpportunityTypeId,
BranchId: instance._opportunity.g_BranchId,
InventoryApplyType: instance._opportunity.g_InventoryApplyType,
};
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);
});
}
GetOpportunityItems(OpportunityId = 0) {
let instance = this;
if ($("#chk_recurringopportunity").is(":checked")) {
$(".dropdown_recurtenuretypeid").addClass("required");
if ($(".dropdown_recurtenuretypeid").val() == "0" || $(".dropdown_recurtenuretypeid").val() == 0) {
Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Open For is required");
return false;
}
}
let ItemList = new Array();
for (let c = 0; c < instance.g_CartItems_New.length; c++) {
let OpportunityItemIndex = 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) {
continue;
}
let Quantity = CartItem.Quantity;
if (CartItem.IsMultipleUOMs && CartItem.UOMQuantity > 0) {
Quantity = CartItem.UOMQuantity;
}
ItemList.push({
OpportunityItemId: CartItem.OpportunityItemId,
OpportunityId: OpportunityId,
OpportunityItemIndex: OpportunityItemIndex,
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,
RefItemId: 0,
FocItemIds: FocItemIds,
AlternateUnitId: CartItem.SelectedUnitId,
DefaultSize: CartItem.DefaultSize,
});
}
return ItemList;
}
N_RefreshAllItems(FromWidget = false, evnt) {
let instance = this;
for (let i = 0; i < instance.g_LoadedItems.length; i++) {
let Itm = instance.g_LoadedItems[i];
let elem = $(".variant-addeditem-" + Itm.ItemId);
if (elem != undefined && elem.length > 0) {
instance.N_updateItemsArray(elem, "RefreshAllItems_" + evnt, FromWidget);
}
}
}
itemSettings(FromWidget = false) {
let instance = this;
$(".InventorySettings").html(`
`);
$("#div_ItemList").html('
');
instance.g_CartItems_New = [];
instance.g_ItemsUnitPrice_New = [];
instance.g_SelectedItems = [];
instance.g_LoadedItems = [];
$("#chk_AllItems").unbind().click(function () {
if ($('#chk_AllItems').is(':checked')) {
$(".variant-list").find(".chk_PurPlanItem").each(function () {
let element = $(this).closest(".variant-item");
if (element.find("#txt_Cartons").val() != 0 && element.find("#txt_Cartons").val() != "") {
instance.N_updateItemsArray(element, "PurPlan_AllItems", false);
$(element).find(".chk_PurPlanItem").prop("checked", true);
}
});
}
else {
$(".variant-list").find(".chk_PurPlanItem").prop("checked", false);
instance.g_CartItems_New = [];
$("#ulOrder_Cart").find(".cartitem").remove();
$("#OverallOrderQuantity").text("0");
$("#totalOrderItems").text("0");
}
});
instance.inventoryTypeClickEvents(FromWidget);
instance.priceTypeClickEvents(FromWidget);
}
inventoryTypeClickEvents(FromWidget) {
let instance = this;
$('#chk_Pieces').click(function () {
if ($('#chk_Pieces').is(':checked')) {
instance.g_IsEnablePieces = true;
}
else
instance.g_IsEnablePieces = false;
instance.N_RefreshAllItems(FromWidget, "InventoryClickEvents");
});
$('#chk_Packs').click(function () {
if ($('#chk_Packs').is(':checked')) {
instance.g_IsEnablePacks = true;
}
else
instance.g_IsEnablePacks = false;
instance.N_RefreshAllItems(FromWidget, "InventoryClickEvents");
});
}
priceTypeClickEvents(FromWidget) {
let instance = this;
$('#chk_PiecePrice').click(function () {
if ($('#chk_PiecePrice').is(':checked')) {
if (instance.g_IsEnableCompositePrice) {
instance.g_IsEnableCompositePrice = false;
instance.g_IsEnablePiecePrice = false;
instance.g_IsEnableCompositePiecePrice = true;
}
else {
instance.g_IsEnablePiecePrice = true;
instance.g_IsEnableCompositePiecePrice = false;
instance.g_IsEnableCompositePrice = false;
}
}
else {
instance.g_IsEnablePiecePrice = false;
instance.g_IsEnableCompositePiecePrice = false;
instance.g_IsEnableCompositePrice = $('#chk_CompositePrice').is(':checked');
}
instance.N_RefreshAllItems(FromWidget, "PriceTypeClickEvents");
});
$('#chk_CompositePrice').click(function () {
if ($('#chk_CompositePrice').is(':checked')) {
if (instance.g_IsEnablePiecePrice) {
instance.g_IsEnableCompositePrice = false;
instance.g_IsEnableCompositePiecePrice = true;
instance.g_IsEnablePiecePrice = false;
}
else {
instance.g_IsEnableCompositePrice = true;
instance.g_IsEnableCompositePiecePrice = false;
instance.g_IsEnablePiecePrice = false;
}
}
else {
instance.g_IsEnableCompositePrice = false;
instance.g_IsEnableCompositePiecePrice = false;
instance.g_IsEnablePiecePrice = $('#chk_PiecePrice').is(':checked');
}
instance.setPriceType();
instance.N_RefreshAllItems(FromWidget, "PriceTypeClickEvents");
});
}
setPriceType() {
var instance = this;
if (instance.g_IsEnablePiecePrice) {
instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.PiecePrice;
}
else if (instance.g_IsEnableCompositePrice) {
instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.CompositePrice;
}
else if (instance.g_IsEnableCompositePiecePrice) {
instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.Both;
}
else {
instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.None;
}
}
showOfferItems(OrganizationId, ItemId, ItemName, OpportunityType, element) {
if (OpportunityType == 3)
OpportunityType = 1;
else
OpportunityType = 2;
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, OpportunityType, $(element), "Opportunity");
}, Unibase.Platform.Helpers.Size.Large);
});
}
checkOffers(FromWidget, evnt) {
return __awaiter(this, void 0, void 0, function* () {
let instance = this;
let ordItems = new Array();
let applyType = '';
if (instance._opportunity.g_OpportunityTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesOpportunity) {
applyType = 'Sales';
}
else if (instance._opportunity.g_OpportunityTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseOpportunity)
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;
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),
});
});
if (FromWidget) {
let OpportunityId = Bizgaze.Apps.Transact.Controls.AddOpportunityItems.Instance().g_OpportunityId;
let OpportunityItemId = Bizgaze.Apps.Transact.Controls.AddOpportunityItems.Instance().g_Edit_OpportunityItemId;
instance.fileCacheHelper.loadJsFile("apps/transact/managers/opportunity/opportunitymanager.js", function () {
Bizgaze.Apps.Transact.Managers.OpportunityManager.Instance().getOpportunityItemsById(OpportunityId).then(function (response) {
let data = response.result;
data = data.filter(x => x.OpportunityItemId != OpportunityItemId && x.IsFoc == false);
for (let d = 0; d < data.length; d++) {
let ItemId = data[d].ItemId;
let baseqty = Number(data[d].Quantity);
let unitPrice = Number(data[d].UnitPrice);
let rowTotal = instance.roundOff(baseqty * unitPrice);
ordItems.push({
ItemId: Number(ItemId),
Quantity: baseqty,
RowTotal: Number(rowTotal),
});
}
instance.bindOfferItems(FromWidget, ordItems);
});
});
}
else {
instance.bindOfferItems(FromWidget, ordItems);
}
});
}
bindOfferItems(FromWidget, ordItems) {
var instance = this;
let IsCart = false;
if ($("#ulOrder_Cart").is(":visible")) {
IsCart = true;
}
let ApplyDate1 = moment(instance.g_OfferApplyDate, "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
let ApplyDate = new Date(ApplyDate1);
let ApplyType = 1;
if (instance._opportunity.g_OpportunityTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseOpportunity)
ApplyType = 2;
let postData = {
OrderItems: ordItems,
ContactId: instance._opportunity.g_OrganizationId,
ApplyType: ApplyType,
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) {
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._opportunity.g_OrganizationId;
for (let j = 0; j < focItems.length; j++) {
let focItem_RefItemIds = focItems[j].RefItemIds;
let focItem_RefItemSKUs = 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);
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_RefItemSKUs);
}
else {
instance.editFocCartItem(focItems[j].ItemId, focItems[j].Quantity, FromWidget);
}
}
else if (CartItemIndex != -1) {
instance.N_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;
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);
}
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.N_UpdateItemsDesign(Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
instance.N_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.N_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.g_CartItems_New.filter(x => x.IsFocItem == false && x.IsOfferAvailable == true).forEach(function (c) {
if (!FromWidget) {
let Elem = $(".variant-addeditem-" + c.ItemId);
let Cart_Elem = $(".cartitem-" + c.ItemId);
let CartItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == c.ItemId);
if (CartItemIndex != -1) {
instance.g_CartItems_New[CartItemIndex].DiscountValue = 0;
instance.g_CartItems_New[CartItemIndex].DiscountPercent = 0;
instance.g_CartItems_New[CartItemIndex].IsFocAdded = false;
instance.g_CartItems_New[CartItemIndex].IsOfferDiscountApplied = false;
instance.g_CartItems_New[CartItemIndex].AppliedOfferVolume = 0;
instance.g_CartItems_New[CartItemIndex].DiscountAmount = 0;
instance.g_CartItems_New[CartItemIndex].AmountWithDiscount = instance.g_CartItems_New[CartItemIndex].Amount;
instance.g_CartItems_New[CartItemIndex].DiscountType = 2;
}
instance.N_UpdateItemsDesign(Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
instance.N_UpdateItemsDesign(Cart_Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
}
});
}
instance.N_GetTotals();
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 = $(".txtAutoComplete_shippingaddressid").val();
let BranchId = $(".txtAutoComplete_branchid").val();
let LobId = $(".txtAutoComplete_lobid").val();
let OpportunityItemId = 0;
if (FromWidget) {
ShippingAddressId = Bizgaze.Apps.Transact.Controls.AddOpportunityItems.Instance().g_ShippingAddressId;
BranchId = Bizgaze.Apps.Transact.Controls.AddOpportunityItems.Instance().g_BranchId;
LobId = Bizgaze.Apps.Transact.Controls.AddOpportunityItems.Instance().g_LobId;
let FocItem = Bizgaze.Apps.Transact.Controls.AddOpportunityItems.Instance().g_FocItems.find(x => x.ItemId == ItemId);
if (FocItem != undefined) {
OpportunityItemId = FocItem.OrderItemId;
}
}
let postdata = {
PriceCodeId: Number(instance._opportunity.g_PriceCodeId),
ContactId: ContactId,
ShippingAddressId: Number(ShippingAddressId),
BranchId: Number(BranchId),
WareHouseId: Number(instance.g_WarehouseId),
LobId: Number(LobId),
OrderType: instance._opportunity.g_OpportunityTypeId,
OfferOnly: false,
IsExcise: instance.g_IsExcise,
SearchTerm: "",
Page: 0,
IsCompositePrice: instance.g_IsEnableCompositePrice,
IsPiecePrice: instance.g_IsEnablePiecePrice,
IsCompositePiecePrice: instance.g_IsEnableCompositePiecePrice,
Rows: 10,
ItemId: ItemId.toString(),
CountryId: instance._opportunity.g_CountryId,
ItemGroupId: 0,
Tags: "",
IsPoints: false,
Points: instance._opportunity.g_LoyaltyPoints,
IsEligibleItemsOnly: instance._opportunity.g_LoadEligibleItemsOnly
};
Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getVariantsForOrder(postdata).then(function (response) {
let data = response.result[0];
let LoadedItem_Index = instance.g_LoadedItems.findIndex(z => z.ItemId == data.ItemId);
if (LoadedItem_Index == -1) {
instance.g_LoadedItems.push(data);
}
else {
instance.g_LoadedItems[LoadedItem_Index].TaxPercentList = data.TaxPercentList;
}
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._opportunity.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.N_getPriceTypeValues(ItemId);
if (instance.g_IsEnablePiecePrice) {
UnitPrice = data.PiecePrice;
instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.PiecePrice;
}
else if (instance.g_IsEnableCompositePrice) {
UnitPrice = data.CompositePrice;
instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.CompositePrice;
}
else if (instance.g_IsEnableCompositePiecePrice) {
UnitPrice = data.CompositePiecePrice;
instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.Both;
}
else {
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({
OpportunityItemId: OpportunityItemId,
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,
AppliedOfferVolume: 0,
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
});
if (FromWidget) {
if (RefItemIds == undefined) {
RefItemIds = "";
}
data.RefItemIds = RefItemIds;
let html = instance.N_getItemDesign(data, FromWidget);
$(".variant-item:last").after(html);
let elem = $('.variant-addeditem-' + ItemId + "-" + RefItemIds.replace(/,/g, "-"));
if (elem != undefined && elem.length > 0) {
instance.N_UpdateItemsDesign(elem, "FromWidget_FocItem", false, true);
}
$(".defaultSelectedCartons").addClass("floating-label-form-group-with-value");
}
else {
instance.N_AddCartItem(ItemId, true);
}
instance.N_GetTotals();
});
}
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._opportunity.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, "-"));
}
instance.N_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.type == "input") {
const inputVal = $(evt.currentTarget).val();
$(evt.currentTarget).val(inputVal.replace(/\D/g, ''));
}
else {
if (evt.which != 8 && evt.which != 0 && (evt.which < 48 || evt.which > 57)) {
return false;
}
}
return true;
}
validateFloatKeyPress(el, evt) {
var instance = this;
if (evt.type == "input") {
const inputVal = $(el).val();
$(el).val(inputVal.replace(/[^\d.]|\.(?=.*\.)/g, ''));
return;
}
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;
}
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._opportunity.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Cartons);
$('.cartitem-' + ItemId).find('#txt_Cartons').val(Cartons);
}
else if (instance._opportunity.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
let Pieces = Math.ceil((Qty) / LoadedItem.PackSize);
$('.variant-addeditem-' + ItemId).find('#txt_Pieces').val(Pieces);
$('.cartitem-' + ItemId).find('#txt_Pieces').val(Pieces);
}
else if (instance._opportunity.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
if (Cartons > 0) {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Cartons);
$('.cartitem-' + ItemId).find('#txt_Cartons').val(Cartons);
}
else {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val("");
$('.cartitem-' + ItemId).find('#txt_Cartons').val("");
}
}
else {
$('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Qty);
$('.cartitem-' + ItemId).find('#txt_Cartons').val(Qty);
}
let element = $('.variant-addeditem-' + ItemId);
instance.N_updateItemsArray(element, "ApplyOffer", false, Qty);
}
static Instance() {
if (this.instance === undefined) {
this.instance = new OpportunityItem();
}
return this.instance;
}
}
Controls.OpportunityItem = OpportunityItem;
})(Controls = Transact.Controls || (Transact.Controls = {}));
})(Transact = Apps.Transact || (Apps.Transact = {}));
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
})(Bizgaze || (Bizgaze = {}));