Цей коміт міститься в:
2023-04-24 15:15:49 +05:30
джерело 0bfbd9cabf
коміт ee730c9a18
25 змінених файлів з 2994 додано та 951 видалено
+208
Переглянути файл
@@ -0,0 +1,208 @@
const CART_DATA = 'CART_DATA';
let cartLength = 0;
const CART_ADD = 'CART_ADD';
function getCartData(){
const data = localStorage.getItem(CART_DATA);
if(data) return JSON.parse(data);
return null;
}
function removeCartData(){
localStorage.removeItem(CART_DATA);
}
function setCartData(data){
localStorage.setItem(CART_DATA,JSON.stringify(data));
}
function setLengthCart(){
const data = getCartData();
if(!data) return;
let length = 0;
for(let item in data){
let curr = data[item];
length += parseInt(curr.quantity);
}
if(length>0){
$('.cartnumcount').removeClass('d-none').html(length);
}else{
$('.cartnumcount').addClass('d-none').html(0);
}
}
function getQuantityById(id){
const data = getCartData();
if(!data) return;
for(let item in data){
if(id == item){
$('#quantity').val(products[item].quantity);
}
}
}
function updateCartQuantity(id,val){
const data = getCartData();
if(!data) return;
data[id].quantity = val;
setCartData(data);
updateSummaryPriceAdd();
}
function removeCartItem(id){
debugger;
let data = getCartData();
if(!data) return;
let newdata = {};
for(let item in data){
if(item != id){
newdata[item] = data[item];
}
}
setCartData(newdata);
updateSummaryPriceAdd();
return Object.keys(newdata).length;
}
function updateSummaryPriceAdd(){
let data = getCartData();
let totalSummaryPrice = $('.totalSummaryPrice');
let totalPrice = $('.totalPrice');
let currecy = $('.currecy');
let noofitems = $('.noofitems');
if(!data) return;
let len = 0;
let totalAmt = 0;
for(let item in data) {
let {price,quantity} = data[item];
totalAmt += parseInt(price*quantity);
len += parseInt(quantity);
}
const [currencySymbol,amount] = getCurrencySymbol(totalAmt);
noofitems.html(len);
totalSummaryPrice.html(amount);
totalPrice.html(amount);
currecy.html(currencySymbol);
}
function initAddToCart(){
addEventListeners();
function addToCartFun(){
const data = getCartData();
let id = window.location.search.split('=')[1];
if(!data){
let cartObj = {};
debugger;
cartObj[$('#skudetailitem').val()] = {
name:$('.productname').html(),
price:$('.price').html(),
quantity:$('#quantity').val(),
img:$('.productDetailsMain img').attr('src'),
sku:$('#skudetailitem').val()
}
addtoCart(cartObj);
//$('.cartnumcount').removeClass('d-none').html(1);
setLengthCart();
}else{
//if(!data[id]) data['length']++;
let name = $('.productname').html();
let price = $('.price').html();
let quantity = $('#quantity').val();
let img = $('.productDetailsMain img').attr('src');
let sku = $('#skudetailitem').val();
if(data[$('#skudetailitem').val()]){
data[$('#skudetailitem').val()] = {
name:name,
price:price,
quantity: parseInt(data[sku].quantity)+parseInt(quantity),
img:img,
sku:sku
}
addtoCart(data);
}else{
data[$('#skudetailitem').val()] = {
name:name,
price:price,
quantity:parseInt(quantity),
img:img,
sku:sku
}
addtoCart(data);
}
}
setLengthCart();
}
function addEventListeners(){
$('#addtocart').html('Add to cart')
$('#addtocart').off().click((e)=>{
debugger
$('#addtocart').off().click(function (el){
window.location.href = '/shopping-cart.html';
});
addToCartFun();
debugger;
toasterHelper('success',"Item added to cart");
$('#addtocart').html('Go to cart');
});
$('.buynow').off('click').click(async (e)=>{
addToCartFun();
const res = await COOKIE_HELPER.validateToken();
if(!res.response){
localStorage.setItem(CART_ADD,true);
window.location.href = '/login.html';
$('.checkoutbtn').find('span').removeClass('d-none');
$('.checkoutbtn').find('div').addClass('d-none');
return;
}
window.location.href = '/selectdelivery.html';
});
}
function addtoCart(data){
const currData = getCartData();
let newData = {...currData,...data};
setCartData(newData);
}
}
initAddToCart();
+665
Переглянути файл
@@ -0,0 +1,665 @@
function initSelectDevlivery() {
let editMode = false;
let countryId = null;
let currencyId = null;
let billingInfo = null;
let userName = null;
let orderBtnAction = {
removeOrdernowBtn() {
$('.ordernowbtn').parent().addClass('d-none');
},
addOrdernowBtn() {
$('.ordernowbtn').parent().removeClass('d-none');
}
}
let addresslistAction = {
removeAddressContainer(){
$('.addresslist').addClass('d-none');
},
addAddressContainer(){
$('.addresslist').removeClass('d-none');
}
}
let changeAddressBtnAction = {
removeChangeAddressBtn() {
$('.changeAddressBtn').addClass('d-none');
},
addChangeAddressBtn() {
$('.changeAddressBtn').removeClass('d-none');
}
}
let changesaveCancelBtnAction = {
removeChangeCancelBtn() {
$('.saveanddeliverCanel').addClass('d-none');
},
addChangeCancelBtn() {
$('.saveanddeliverCanel').removeClass('d-none');
}
}
let saveFormLoading = {
addSpinner(){
$('.saveanddeliver').find('.spinner-border').removeClass('d-none');
$('.saveanddeliver').find('span').addClass('d-none');
},
removeSpinner(){
$('.saveanddeliver').find('.spinner-border').addClass('d-none');
$('.saveanddeliver').find('span').removeClass('d-none');
},
}
let paymentgatewaypageAction = {
addPaymentgatewaypage(){
$('.paymentgatewaypage').removeClass('d-none');
},
removePaymentgatewaypage(){
$('.paymentgatewaypage').addClass('d-none');
}
}
let paymentContainerAction = {
paymentContainerAdd(){
$('.orderslist').parent().removeClass('d-none');
},
paymentContainerRemove(){
$('.orderslist').parent().addClass('d-none');
}
}
const {phonenumber_errorhandler,addressdes_errorhandler,zipcode_errorhandler,state_errorhandler} = factoryErrorControl();
function init() {
getAddressRes();
loadEvents();
updateSummaryPriceAdd();
// changeAddressBtnAction.removeChangeAddressBtn();
}
function removeAllFormError(){
phonenumber_errorhandler.removeError();
addressdes_errorhandler.removeError();
zipcode_errorhandler.removeError();
state_errorhandler.removeError();
$('.errMsgFormEdit').addClass('d-none');
$('.errMsgFormEdit').html('');
}
async function getAddressRes() {
let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
console.log(cookieRes);
const { errorMsg, isError, response } = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getbillinginfo/contactid/${cookieRes.userId}`);
let res = JSON.parse(response.result);
console.log(res, 'befores');
res = res[res.length - 1];
//createBillingForm();
const {cityid, lobid,organizationname,addressline,cityname,phonenumber,zipcode,name } =res;
billingInfo = res;
debugger;
console.log(res);
if (cityid != 0) {
$('.addnewAddressContainer').addClass('d-none');
$('.detailsAddressBg').removeClass('detailsAddressBg');
$('.ordersummaryheader').addClass('detailsAddressBg');
$('.displayadress').removeClass('d-none')
// $('.addresslist').removeClass('d-none');
loadShippingProducts();
userName = organizationname;
setAddressHeader({name:organizationname,phonenumber,addressline,cityname,zipcode});
debugger;
editMode = true;
// adding values
$('#phonenumber').val(phonenumber);
$('#addressdes').val(addressline);
$('#zipcode').val(zipcode);
debugger;
$('.userNamelogin').html(`${userName}`);
changeAddressBtnAction.addChangeAddressBtn()
getCountryStateCurrency();
}else{
$('.userNamelogin').html(`${organizationname}`);
loadShippingProducts();
paymentContainerAction.paymentContainerRemove();
getCountryStateCurrency();
orderBtnAction.removeOrdernowBtn();
$('.detailsAddressBg').removeClass('detailsAddressBg');
$('.selectAddress').addClass('detailsAddressBg');
}
}
function setAddressHeader({name,phonenumber,addressline,cityname,zipcode}){
$('.innerDisplayAddress').html(`${name}-${phonenumber}, ${addressline}, ${cityname} - `);
$('.zipcodeAddress').html(`${zipcode}`);
}
function checkForm(){
let number = $('#phonenumber').val();
let zipcode = $('#zipcode').val();
let state = $('#state').val();
let address = $('#addressdes').val();
let isTrue = false;
if(!number || number.length!=10){
isTrue = true;
phonenumber_errorhandler.addError();
}
if(zipcode.length<6 || zipcode.length>6){
isTrue = true;
zipcode_errorhandler.addError();
}
if(!state){
isTrue = true;
state_errorhandler.addError();
}
if(!address){
isTrue = true;
addressdes_errorhandler.addError();
}
return isTrue;
}
async function createBillingForm(){
debugger;
let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
let { userId, name } = cookieRes;
const ctyId = await getCountryId();
let stateId = parseInt($('#state').val());
let payload = {
"cityid": stateId,
"CityName":$(`[data-id="${stateId}"`).html(),
"addressline1": $('#addressdes').val(),
"OrganizationType": 2,
"organizationname": name,
//"OrganizationId":,
"ContactName": name,
"ContactId": userId,
"countryname": 'india',
"countryid": ctyId,
"statename":$(`[data-id="${stateId}"`).html(),
"phonenumber": $('#phonenumber').val(),
"OrganizationId": userId,
"currencyid": 2,
"taxno": '0',
"BillingInfoExists": false,
"lobid": 0,
"lobname": "IT Products",
"gstindetailid": 0,
zipcode:$('#zipcode').val()
}
const res = await API_SERVICES_ACTIONS.postAPIService('apis/v4/bizgaze/crm/address/savebillinginfo', payload);
// http://localhost:3088/apis/v4/bizgaze/crm/address/savebillinginfo
setAddressHeader({name,phonenumber:$('#phonenumber').val(),addressline: $('#addressdes').val(),cityname:$(`[data-id="${stateId}"`).html(),zipcode:$('#zipcode').val()});
return new Promise((reslove,reject) => {
reslove(res);
})
console.log(res);
}
async function saveForm() {
let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
let { userId, name } = cookieRes;
const { errorMsg, isError, response } = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getbillinginfo/contactid/${cookieRes.userId}`);
let resAnwi = JSON.parse(response.result);
console.log(resAnwi, 'befores');
resAnwi = resAnwi[resAnwi.length - 1];
let stateId = parseInt($('#state').val());
let payload = {
...resAnwi,
phonenumber:$('#phonenumber').val(),
addressline1:$('#addressdes').val(),
zipcode:$('#zipcode').val(),
cityid:stateId,
CityName:$(`[data-id="${stateId}"`).html(),
}
console.log(payload,"ertyuioghjkl");
//
const res = await API_SERVICES_ACTIONS.postAPIService('apis/v4/bizgaze/crm/address/savebillinginfo', payload);
return new Promise((reslove,reject) => {
reslove(res);
})
}
async function loadEvents() {
$('.addnewAddressContainer').off('click').click(function (e) {
$('.addnewAddressContainer').addClass('d-none');
$('.addresslist').removeClass('d-none');
changeAddressBtnAction.removeChangeAddressBtn();
changesaveCancelBtnAction.addChangeCancelBtn();
});
$('.saveanddeliverCanel').off('click').click(function (){
if(!editMode){
$('.addnewAddressContainer').removeClass('d-none');
$('.addresslist').addClass('d-none');
changeAddressBtnAction.removeChangeAddressBtn();
changesaveCancelBtnAction.removeChangeCancelBtn();
}else{
loadShippingProducts();
addresslistAction.removeAddressContainer()
changeAddressBtnAction.addChangeAddressBtn();
paymentContainerAction.paymentContainerAdd();
$('.displayadress').removeClass('d-none');
}
});
$('.saveanddeliver').off('click').click(async function (e) {
saveFormLoading.addSpinner()
let isErrorForm = checkForm();
if(isErrorForm){
saveFormLoading.removeSpinner();
return;
}
let res;
if(editMode){
res = await saveForm();
}else{
res = createBillingForm();
}
saveFormLoading.removeSpinner();
const {isError,errorMsg,response} = res;
console.log(errorMsg);
if(isError){
$('.errMsgFormEdit').removeClass('d-none');
$('.errMsgFormEdit').html(`${errorMsg.message}`);
return;
}
debugger;
editMode = true;
let {name} = COOKIE_HELPER.getCookie();
// phonenumber:$('#phonenumber').val(),
// addressline1:$('#addressdes').val(),
// zipcode:$('#zipcode').val(),
// cityid:stateId,
// CityName:$(`[data-id="${stateId}"`).html(),
let stateId = parseInt($('#state').val());
setAddressHeader({name,addressline:$('#addressdes').val(),cityname:$(`[data-id="${stateId}"`).html(),phonenumber:$('#phonenumber').val(),zipcode:$('#zipcode').val()});
$('.errMsgFormEdit').html('');
loadShippingProducts();
addresslistAction.removeAddressContainer()
changeAddressBtnAction.addChangeAddressBtn();
paymentContainerAction.paymentContainerAdd();
$('.displayadress').removeClass('d-none');
});
$('.changeAddressBtn').off('click').click(function (e){
console.log(e.target);
removeOrderSummary();
changeAddressBtnAction.removeChangeAddressBtn();
$('.displayadress').addClass('d-none')
})
$('.ordernowbtn').off().click(async function (e){
let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
let { userId, name } = cookieRes;
paymentgatewaypageAction.addPaymentgatewaypage();
let payload = {
"OrganizationName": name,
"BranchId": 106632280000001,
"OrderItems": [
{
"UnitPrice": 20,
"Quantity": 1,
"SKU": "11",
"DiscountValue": 0,
"DiscountPercent": 0
}
]
}
$('.paymentgatewaypage').removeClass('d-none');
const data = getCartData();
let orderItems = [];
for(let i in data){
const {price,quantity,sku} = data[i];
let payload = {
"UnitPrice": price,
"Quantity": quantity,
"SKU": sku,
"DiscountValue": 0,
"DiscountPercent": 0
}
orderItems.push(payload)
}
payload['OrderItems'] = orderItems;
debugger;
try {
const res = await API_SERVICES_ACTIONS.postAPIService(`apis/v4/bizgaze/integrations/salesorder/save`,payload);
console.log(res.response.result);;
if(!res.response.result){
paymentgatewaypageAction.removePaymentgatewaypage();
}
// `http://localhost:3088/apis/v4/bizgaze/transact/orders/getpaymentgatewaytransaction/refid/106633780000069`
let response = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/transact/orders/getpaymentgatewaytransaction/refid/${res.response.result}`);
let {PaymentLink} = JSON.parse(response.response.result);
window.location.href = PaymentLink;
} catch (error) {
paymentgatewaypageAction.removePaymentgatewaypage();
}
});
}
function getItemProductHTML(item) {
const { img, name, price, quantity, sku, id } = item;
return ` <div class="align-items-center item-product-add d-flex justify-content-between" data-id="${id}" data-sku="${sku}">
<div style="max-width: 100px;" class="">
<img class="w-100" src="${img}" alt="">
</div>
<div>
<div>
<div style="font-size:12px">${name}</div>
</div>
<div>
<span style="font-size:12px" class="font-weight-600">${getCurrencySymbol(price)}</span> <span>x <span class="qtyitem" style="font-size:12px">${quantity}</span></span>
</div>
</div>
</div>`;
return ` <div class="item-product-add" data-id="${id}" data-sku="${sku}">
<div class="row py-2">
<div class="col-sm-2">
<div class="w-100 d-flex justify-content-around">
<div class="d-flex flex-column align-items-baseline">
<div class="px-4 py-2 selectaddressimgshow">
<img class="w-100" src="${img}" alt="" class="w-100">
</div>
<div class="addresscontrol w-100 d-flex justify-content-center gap-1">
<div class="rounded-contain btnminus">
-
</div>
<div class="w-100p">
<input class="qtyshowinput" disabled value="${quantity}" type="number">
</div>
<div class="rounded-contain btnplus">
+
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-10">
<div class="row h-100">
<div class="col-sm-8">
<div class="h-100 d-flex flex-column justify-content-between">
<div> ${name}</div>
<div>
<span>$</span> ${price} <span class="d-none">56% Off 2 offers applied</span>
</div>
<div class="d-flex gap-3">
<span class="text-uppercase d-none">Save for later</span>
<span class="text-uppercase cursor-pointer removecartItem">Remove</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>`;
}
async function getCountryId(){
const countryRes = await API_SERVICES_ACTIONS.getAPIService('apis/v4/bizgaze/integrations/products/getcountry');;
if (countryRes.isError) {
alert("something went wrong");
console.log(countryRes);
return;
}
let ctyId = 0
let countryData = JSON.parse(countryRes.response.result);
console.log(countryData);
for (let i = 0; i < countryData.length; i++) {
if (countryData[i].countryname.toLowerCase() === 'india') {
countryId = countryData[i].countryid;
ctyId = countryId
countrynameData = countryData[i].countryname;
break;
}
}
return ctyId;
}
async function getCountryStateCurrency() {
const countryRes = await API_SERVICES_ACTIONS.getAPIService('apis/v4/bizgaze/integrations/products/getcountry');;
if (countryRes.isError) {
alert("something went wrong");
console.log(countryRes);
return;
}
let countryData = JSON.parse(countryRes.response.result);
console.log(countryData);
for (let i = 0; i < countryData.length; i++) {
if (countryData[i].countryname.toLowerCase() === 'india') {
countryID = countryData[i].countryid;
countrynameData = countryData[i].countryname;
break;
}
}
const stateRes = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getcities/countryid/${countryID}`);
if (stateRes.isError) {
alert("something went wrong");
console.log(stateRes);
return;
}
let stateData = JSON.parse(stateRes.response.result);
console.log(stateData, 'state');
$('#state').html('');
console.log("start")
let html = '';
statesList = stateData;
for (let i = 0; i < stateData.length; i++) {
html += `<option value="${stateData[i].cityid}" data-id="${stateData[i].cityid}">${stateData[i].cityname}</option>`
}
$('#state').append(html);
$("#state").select2({
placeholder: "Select a City",
allowClear: true
});
const currencyRes = await API_SERVICES_ACTIONS.getAPIService('apis/v4/bizgaze/integrations/products/getcurrencies');
if(currencyRes.isError){
alert("something went wrong");
console.log(currencyRes);
return;
}
let currencyData = JSON.parse(currencyRes.response.result);
console.log(currencyData,'currencyDatacurrencyDatacurrencyData');
for(let i=0;i<currencyData.length;i++){
const curr = currencyData[i];
if(curr.currencyname.toLowerCase().includes('india')){
currencyid = curr.currencyid;
}
}
}
function loadShippingProducts(){
$('.detailsAddressBg').removeClass('detailsAddressBg');
$('.ordersummaryheader ').addClass('detailsAddressBg')
debugger;
const products = getCartData();
console.log(products);
if (Object.keys(products||{}).length) orderBtnAction.addOrdernowBtn();
let productsHTML = '';
for (let item in products) {
const currItem = products[item];
productsHTML += getItemProductHTML({ ...currItem, id: item })
}
$('.orderlistcart').html(productsHTML);
// $('.orderslist').html(productsHTML);
$('.orderslist').html(` <label for="online">
Online
<input checked data-op="online" name="payment" type="radio" class="paymentbtn " id="online">
</label>
<label for="cod">
Cash on develiop
<input data-op="cod" name="payment" type="radio" class="paymentbtn " id="cod">
</label>`);
$('.paymentbtn').off().click(function (e){
const data = $(e.target).data('op');
if(data == 'online'){
orderBtnAction.addOrdernowBtn();
}else{
orderBtnAction.removeOrdernowBtn();
}
})
$('.btnminus').each(function (i, el) {
$(el).off().click(function (elm) {
let id = $(elm.target).parents('.item-product-add').data('id');
let val = parseInt($(elm.target).parents('.item-product-add').find('.qtyshowinput').val());
if (val <= 1) return;
val--;
updateCartQuantity(id, val)
$(elm.target).parents('.item-product-add').find('.qtyshowinput').val(val)
});
})
$('.btnplus').each(function (i, el) {
$(el).off().click(function (elm) {
let id = $(elm.target).parents('.item-product-add').data('id');
let val = parseInt($(elm.target).parents('.item-product-add').find('.qtyshowinput').val());
if (val >= 11) return;
val++;
updateCartQuantity(id, val)
$(elm.target).parents('.item-product-add').find('.qtyshowinput').val(val);
});
})
$('.removecartItem').each(function (i, el) {
$(el).click(function (elm) {
let id = $(elm.target).parents('.item-product-add').data('id');
let len = removeCartItem(id);
$(`.item-product-add[data-id="${id}"]`).remove();
if (!len) {
orderBtnAction.removeOrdernowBtn();
}
});
})
}
function removeOrderSummary(){
$('.detailsAddressBg').removeClass('detailsAddressBg');
$('.selectAddress').addClass('detailsAddressBg');
$('.orderslist').html('');
orderBtnAction.removeOrdernowBtn();
// $('.detailsAddressBtn').addClass('d-none');
addresslistAction.addAddressContainer();
$('.saveanddeliver').removeClass('d-none');
$('.saveanddeliverCanel').removeClass('d-none')
}
function factoryErrorControl(){
let inputsArr = ['phonenumber','addressdes','zipcode','state'];
let controls = {};
for(let i=0;i<inputsArr.length;i++){
const id =inputsArr[i];
controls[`${id}_errorhandler`] = {
addError(){
debugger;
$(`#${id}`).parents('.col-sm-6').find('.invalid-feedback').addClass('d-block');
},
removeError(){
$(`#${id}`).parents('.col-sm-6').find('.invalid-feedback').addClass('d-block');
}
}
}
return controls;
}
init();
}
checkValidAuth(initSelectDevlivery);
+228
Переглянути файл
@@ -0,0 +1,228 @@
shoppingCartInit();
debugger;
function shoppingCartInit() {
shoppingCartAppend();
function shoppingCartAppend() {
let data = getCartData();
if (!data) {
$('.emptyShow').removeClass('d-none');
$('.checkoutbtn').addClass('d-none');
return;
};
let html = '';
let products = data;
// for(let i=0;i<products.length;i++){
// const {img,name,price,quantity,total} = products[i];
// debugger;
// html += shoppingCartDesktopHTML(products[i]);
// }
if(Object.keys(data).length === 0) {
$('.checkoutbtn').addClass('d-none');
$('.emptyShow').removeClass('d-none');
}
setLengthCart();
for (let product in products) {
html += shoppingCartDesktopHTML({ ...products[product], total: products[product].quantity * products[product].price, id: product });
}
$('.appendItems').html(html);
addEventListenerCart();
}
// event listeners
function addEventListenerCart() {
$('.quantitySelect').each(function (i, element) {
if (!$(element).hasClass('d-none')) {
$(element).off().change(function (e) {
let num = e.target.value;
if (num == 5) {
$(e.target).parents('.mainselectcontainer').find('.inputcartaddmore').removeClass('d-none');
$(e.target).addClass('d-none');
$(e.target).parents('.mainselectcontainer').find('.inputcartaddmore button').off().click(function (item) {
const val = $(item.target).parent().find('input').val()
let id = $(item.target).parents('.mainselectcontainer').data('id');
updateCartQuantity(id, val);
// $(item.target).parents('.mainselectcontainer').find('.inputcartaddmore').addClass('d-none');
// $(e.target).removeClass('d-none');
setLengthCart();
shoppingCartAppend();
})
} else {
let id = $(e.target).parents('.mainselectcontainer').data('id');
updateCartQuantity(id, num);
setLengthCart();
shoppingCartAppend();
}
});
} else {
$(element).parents('.mainselectcontainer').find('.inputcartaddmore button').off().click(function (item) {
const val = $(item.target).parent().find('input').val()
let id = $(item.target).parents('.mainselectcontainer').data('id');
updateCartQuantity(id, val);
// $(item.target).parents('.mainselectcontainer').find('.inputcartaddmore').addClass('d-none');
// $(e.target).removeClass('d-none');
setLengthCart();
shoppingCartAppend();
})
}
});
$('.btndeletecart').each(function (i, element) {
$(element).click(function (e) {
const cardId = $(e.target).data('cartid');
let data = getCartData();
console.log(data, 'cardId', cardId);
if (!data) return;
debugger;
const products = data;
const productsFilter = {};
for (let product in products) {
if (product != cardId) productsFilter[product] = products[product];
}
data = productsFilter;
let len = Object.keys(data).length
if(!len){
$('.checkoutbtn').addClass('d-none');
$('.emptyShow').removeClass('d-none');
}else{
$('.checkoutbtn').removeClass('d-none');
$('.emptyShow').addClass('d-none');
}
setCartData(data);
setLengthCart();
shoppingCartAppend();
});
});
$('.checkoutbtn').click(async function (e){
$('.checkoutbtn').find('span').addClass('d-none');
$('.checkoutbtn').find('div').removeClass('d-none');
const res = await COOKIE_HELPER.validateToken();
if(!res.response){
localStorage.setItem(CART_ADD,true);
window.location.href = '/login.html';
$('.checkoutbtn').find('span').removeClass('d-none');
$('.checkoutbtn').find('div').addClass('d-none');
return;
}
window.location.href = '/selectdelivery.html';
$('.checkoutbtn').find('span').removeClass('d-none');
$('.checkoutbtn').find('div').addClass('d-none');
});
}
function getQuantityHTML(value, id) {
return `<div data-id="${id}" class="mainselectcontainer w-100">
<div class="w-100">
<label>Qty</label>
<select class="quantitySelect form-select ${value >= 5 ? 'd-none' : ''}" value="${value}">
<option ${value == 1 ? 'selected="selected"' : null} value="1">
1
</option>
<option ${value == 2 ? 'selected="selected"' : null} value="2">
2
</option>
<option ${value == 3 ? 'selected="selected"' : null} value="3">
3
</option>
<option ${value == 4 ? 'selected="selected"' : null} value="4">
4
</option>
<option ${value == 5 ? 'selected="selected"' : null} value="5">
5+
</option>
</select>
</div>
<div class=" inputcartaddmore d-flex gap-2 ${value >= 5 ? '' : 'd-none'}">
<input min="1" class="form-control" style="max-width:100px" value="${value <= 5 ? '5' : value}" type="number" />
<button class="btn border-none bg-info">Add</button>
</div>
</div>`
}
function shoppingCartDesktopHTML({ id, img, name, price, description, quantity, total }) {
const [currencySymbol,amt] = getCurrencySymbol(price);
return `
<div class="row bg-white mt-3 rounded py-3 d-flex ">
<div class="col-md-2 text-center"><img src="${img}" alt="${name}" class="img-fluid"></div>
<div class="col-md-4 d-flex justify-content-center align-items-center">
<a class="text-decoration-none text-dark cursor-pointer" href="/productdetails.html?productId=${id}">${name}</a>
<small>${description||''}</small>
<span class="badge d-none text-bg-warning">8 Offers ></span>
</div>
<div class="col-md-2 d-flex justify-content-center align-items-center">
<p class="text-right"><span>${currencySymbol}</span> ${amt}</p>
</div>
<div class="col-md-2 d-flex justify-content-center align-items-center">
${getQuantityHTML(quantity, id)}
</div>
<div class="col-md-2 d-flex justify-content-center align-items-center">
<div class="d-flex justify-content-between w-100">
<p class="fw-bold"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-currency-rupee" viewBox="0 0 16 16">
<path d="M4 3.06h2.726c1.22 0 2.12.575 2.325 1.724H4v1.051h5.051C8.855 7.001 8 7.558 6.788 7.558H4v1.317L8.437 14h2.11L6.095 8.884h.855c2.316-.018 3.465-1.476 3.688-3.049H12V4.784h-1.345c-.08-.778-.357-1.335-.793-1.732H12V2H4v1.06Z"/>
</svg>${total}</p>
<span class="btndeletecart cursor-pointer" data-cartid="${id}">x</span>
</div>
</div>
<div class="warrenty-sec px-3 sec-space-4 d-none">
<div class="row align-items-center border
py-2 mx-4">
<div class="col-md-8">
<p class="mb-0"> <img src="./dist/assets/imgs/Home/Anwi-cart-logo.png" alt="shopping-cart-item-img"> Anwi Extended Warranty 2 Year: Protect your Laptop for another 2 years Learn more </p>
</div>
<div class="col-md-3">
<p class="text-end mb-0"> ₹3,200 (2 year)
</p>
</div>
</div>
<div class="row align-items-center border
py-2 mx-4 mt-3">
<div class="col-md-8">
<p class="mb-0"> <img src="./dist/assets/imgs/Home/Anwi-cart-logo-2.png" alt="shopping-cart-item-img"> Anwi Extended Warranty 2 Year: Protect your Laptop for another 2 years Learn more </p>
</div>
<div class="col-md-3">
<p class="text-end mb-0"> ₹2,900 (2 year)
</p>
</div>
</div>
</div>
</div>
<div class=" bg-white mt-3 rounded py-3 d-block d-sm-none ">
<div class="row">
<div class=""></div>
</div>
<div>
</div>
</div>
`;
}
}