설명 없음
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

select_delivery.js 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737
  1. function initSelectDevlivery() {
  2. let editMode = false;
  3. let countryId = null;
  4. let currencyId = null;
  5. let billingInfo = null;
  6. let userName = null;
  7. let stateArr = [];
  8. debugger;
  9. let Newuser =window.localStorage.getItem('isaccountCreated');
  10. let Loginstatus =window.localStorage.getItem('Isloggedintoaster')
  11. if(Newuser == 'true'){
  12. toasterHelper("success","Account Created Successfully");
  13. window.localStorage.removeItem('isaccountCreated')
  14. }
  15. if(Loginstatus == 'true'){
  16. toasterHelper("success","Isloggedintoaster");
  17. window.localStorage.removeItem('Isloggedintoaster')
  18. }
  19. $('.mianselectdelivery').removeClass('d-none');
  20. $('.containermaindev').removeClass('d-none');
  21. let orderBtnAction = {
  22. removeOrdernowBtn() {
  23. $('.ordernowbtn').parent().addClass('d-none');
  24. },
  25. addOrdernowBtn() {
  26. $('.ordernowbtn').parent().removeClass('d-none');
  27. }
  28. }
  29. let addresslistAction = {
  30. removeAddressContainer(){
  31. $('.addresslist').addClass('d-none');
  32. },
  33. addAddressContainer(){
  34. $('.addresslist').removeClass('d-none');
  35. }
  36. }
  37. let changeAddressBtnAction = {
  38. removeChangeAddressBtn() {
  39. $('.changeAddressBtn').addClass('d-none');
  40. },
  41. addChangeAddressBtn() {
  42. $('.changeAddressBtn').removeClass('d-none');
  43. }
  44. }
  45. let changesaveCancelBtnAction = {
  46. removeChangeCancelBtn() {
  47. $('.saveanddeliverCanel').addClass('d-none');
  48. },
  49. addChangeCancelBtn() {
  50. $('.saveanddeliverCanel').removeClass('d-none');
  51. }
  52. }
  53. let saveFormLoading = {
  54. addSpinner(){
  55. $('.saveanddeliver').find('.spinner-border').removeClass('d-none');
  56. $('.saveanddeliver').find('span').addClass('d-none');
  57. },
  58. removeSpinner(){
  59. $('.saveanddeliver').find('.spinner-border').addClass('d-none');
  60. $('.saveanddeliver').find('span').removeClass('d-none');
  61. },
  62. }
  63. let paymentgatewaypageAction = {
  64. addPaymentgatewaypage(){
  65. $('.paymentgatewaypage').removeClass('d-none');
  66. },
  67. removePaymentgatewaypage(){
  68. $('.paymentgatewaypage').addClass('d-none');
  69. }
  70. }
  71. let paymentContainerAction = {
  72. paymentContainerAdd(){
  73. $('.orderslist').parent().removeClass('d-none');
  74. },
  75. paymentContainerRemove(){
  76. $('.orderslist').parent().addClass('d-none');
  77. }
  78. }
  79. const {phonenumber_errorhandler,addressdes_errorhandler,zipcode_errorhandler,state_errorhandler} = factoryErrorControl();
  80. function init() {
  81. getAddressRes();
  82. loadEvents();
  83. updateSummaryPriceAdd();
  84. // changeAddressBtnAction.removeChangeAddressBtn();
  85. }
  86. function removeAllFormError(){
  87. phonenumber_errorhandler.removeError();
  88. addressdes_errorhandler.removeError();
  89. zipcode_errorhandler.removeError();
  90. state_errorhandler.removeError();
  91. $('.errMsgFormEdit').addClass('d-none');
  92. $('.errMsgFormEdit').html('');
  93. }
  94. function clearAllInputs(){
  95. $("#state").select2({
  96. placeholder: "Select a City",
  97. allowClear: true
  98. });
  99. $('#phonenumber').val(null);
  100. $('#addressdes').val(null);
  101. $('#zipcode').val(null);
  102. }
  103. async function appendFormDetails(){
  104. let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
  105. console.log(cookieRes);
  106. const { errorMsg, isError, response } = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getbillinginfo/contactid/${cookieRes.userId}`);
  107. let res = JSON.parse(response.result)[0];
  108. debugger;
  109. const {cityid, lobid,organizationname,addressline,cityname,phonenumber,zipcode,name } =res;
  110. setAddressHeader({name:organizationname,phonenumber,addressline,cityname,zipcode});
  111. $('#phonenumber').val(phonenumber);
  112. $('#addressdes').val(addressline);
  113. $('#zipcode').val(zipcode);
  114. debugger;
  115. $('.userNamelogin').html(`${userName}`);
  116. editMode = true;
  117. console.log(stateArr);
  118. renderStates(stateArr);
  119. }
  120. async function getAddressRes() {
  121. let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
  122. console.log(cookieRes);
  123. const { errorMsg, isError, response } = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getbillinginfo/contactid/${cookieRes.userId}`);
  124. let res = JSON.parse(response.result);
  125. console.log(res, 'befores');
  126. res = res[res.length - 1];
  127. //createBillingForm();
  128. const {cityid, lobid,organizationname,addressline,cityname,phonenumber,zipcode,name } =res;
  129. billingInfo = res;
  130. debugger;
  131. console.log(res);
  132. if (cityid != 0) {
  133. $('.addnewAddressContainer').addClass('d-none');
  134. $('.detailsAddressBg').removeClass('detailsAddressBg');
  135. $('.ordersummaryheader').addClass('detailsAddressBg');
  136. $('.displayadress').removeClass('d-none')
  137. // $('.addresslist').removeClass('d-none');
  138. loadShippingProducts();
  139. userName = organizationname;
  140. setAddressHeader({name:organizationname,phonenumber,addressline,cityname,zipcode});
  141. debugger;
  142. editMode = true;
  143. // adding values
  144. $('#phonenumber').val(phonenumber);
  145. $('#addressdes').val(addressline);
  146. $('#zipcode').val(zipcode);
  147. debugger;
  148. $('.userNamelogin').html(`${userName}`);
  149. changeAddressBtnAction.addChangeAddressBtn()
  150. getCountryStateCurrency();
  151. }else{
  152. $('.userNamelogin').html(`${organizationname}`);
  153. loadShippingProducts();
  154. paymentContainerAction.paymentContainerRemove();
  155. getCountryStateCurrency();
  156. orderBtnAction.removeOrdernowBtn();
  157. $('.detailsAddressBg').removeClass('detailsAddressBg');
  158. $('.selectAddress').addClass('detailsAddressBg');
  159. }
  160. }
  161. function setAddressHeader({name,phonenumber,addressline,cityname,zipcode}){
  162. $('.innerDisplayAddress').html(`${name}-${phonenumber}, ${addressline}, ${cityname} - `);
  163. $('.zipcodeAddress').html(`${zipcode}`);
  164. }
  165. function checkForm(){
  166. let number = $('#phonenumber').val();
  167. let zipcode = $('#zipcode').val();
  168. let state = $('#state').val();
  169. let address = $('#addressdes').val();
  170. let isTrue = false;
  171. if(!number || number.length!=10){
  172. isTrue = true;
  173. phonenumber_errorhandler.addError();
  174. }
  175. if(zipcode.length<6 || zipcode.length>6){
  176. isTrue = true;
  177. zipcode_errorhandler.addError();
  178. }
  179. if(!state){
  180. isTrue = true;
  181. state_errorhandler.addError();
  182. }
  183. if(!address){
  184. isTrue = true;
  185. addressdes_errorhandler.addError();
  186. }
  187. return isTrue;
  188. }
  189. async function createBillingForm(){
  190. debugger;
  191. let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
  192. let { userId, name } = cookieRes;
  193. const ctyId = await getCountryId();
  194. let stateId = parseInt($('#state').val());
  195. let payload = {
  196. "cityid": stateId,
  197. "CityName":$(`[data-id="${stateId}"`).html(),
  198. "addressline1": $('#addressdes').val(),
  199. "OrganizationType": 2,
  200. "organizationname": name,
  201. //"OrganizationId":,
  202. "ContactName": name,
  203. "ContactId": userId,
  204. "countryname": 'india',
  205. "countryid": ctyId,
  206. "statename":$(`[data-id="${stateId}"`).html(),
  207. "phonenumber": $('#phonenumber').val(),
  208. "OrganizationId": userId,
  209. "currencyid": 2,
  210. "taxno": '0',
  211. "BillingInfoExists": false,
  212. "lobid": 0,
  213. "lobname": "IT Products",
  214. "gstindetailid": 0,
  215. zipcode:$('#zipcode').val()
  216. }
  217. const res = await API_SERVICES_ACTIONS.postAPIService('apis/v4/bizgaze/crm/address/savebillinginfo', payload);
  218. // http://localhost:3088/apis/v4/bizgaze/crm/address/savebillinginfo
  219. setAddressHeader({name,phonenumber:$('#phonenumber').val(),addressline: $('#addressdes').val(),cityname:$(`[data-id="${stateId}"`).html(),zipcode:$('#zipcode').val()});
  220. return new Promise((reslove,reject) => {
  221. reslove(res);
  222. })
  223. console.log(res);
  224. }
  225. async function saveForm() {
  226. let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
  227. let { userId, name } = cookieRes;
  228. const { errorMsg, isError, response } = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getbillinginfo/contactid/${cookieRes.userId}`);
  229. let resAnwi = JSON.parse(response.result);
  230. console.log(resAnwi, 'befores');
  231. resAnwi = resAnwi[resAnwi.length - 1];
  232. let stateId = parseInt($('#state').val());
  233. let payload = {
  234. ...resAnwi,
  235. phonenumber:$('#phonenumber').val(),
  236. addressline1:$('#addressdes').val(),
  237. zipcode:$('#zipcode').val(),
  238. cityid:stateId,
  239. CityName:$(`[data-id="${stateId}"`).html(),
  240. }
  241. console.log(payload,"ertyuioghjkl");
  242. //
  243. const res = await API_SERVICES_ACTIONS.postAPIService('apis/v4/bizgaze/crm/address/savebillinginfo', payload);
  244. return new Promise((reslove,reject) => {
  245. reslove(res);
  246. })
  247. }
  248. async function loadEvents() {
  249. $('.addnewAddressContainer').off('click').click(function (e) {
  250. $('.addnewAddressContainer').addClass('d-none');
  251. $('.addresslist').removeClass('d-none');
  252. changeAddressBtnAction.removeChangeAddressBtn();
  253. changesaveCancelBtnAction.addChangeCancelBtn();
  254. });
  255. $('.saveanddeliverCanel').off('click').click(function (){
  256. if(!editMode){
  257. $('.addnewAddressContainer').removeClass('d-none');
  258. $('.addresslist').addClass('d-none');
  259. changeAddressBtnAction.removeChangeAddressBtn();
  260. changesaveCancelBtnAction.removeChangeCancelBtn();
  261. }else{
  262. loadShippingProducts();
  263. addresslistAction.removeAddressContainer()
  264. changeAddressBtnAction.addChangeAddressBtn();
  265. paymentContainerAction.paymentContainerAdd();
  266. $('.displayadress').removeClass('d-none');
  267. }
  268. clearAllInputs();
  269. });
  270. $('.changeAddressBtn').off('click').click(function (e){
  271. console.log(e.target);
  272. //getAddressRes();
  273. appendFormDetails();
  274. removeOrderSummary();
  275. changeAddressBtnAction.removeChangeAddressBtn();
  276. $('.displayadress').addClass('d-none')
  277. })
  278. $('.saveanddeliver').off('click').click(async function (e) {
  279. saveFormLoading.addSpinner()
  280. let isErrorForm = checkForm();
  281. if(isErrorForm){
  282. saveFormLoading.removeSpinner();
  283. return;
  284. }
  285. let res;
  286. if(editMode){
  287. res = await saveForm();
  288. }else{
  289. res = createBillingForm();
  290. }
  291. saveFormLoading.removeSpinner();
  292. const {isError,errorMsg,response} = res;
  293. console.log(errorMsg);
  294. if(isError){
  295. $('.errMsgFormEdit').removeClass('d-none');
  296. $('.errMsgFormEdit').html(`${errorMsg.message}`);
  297. return;
  298. }
  299. debugger;
  300. editMode = true;
  301. let {name} = COOKIE_HELPER.getCookie();
  302. // phonenumber:$('#phonenumber').val(),
  303. // addressline1:$('#addressdes').val(),
  304. // zipcode:$('#zipcode').val(),
  305. // cityid:stateId,
  306. // CityName:$(`[data-id="${stateId}"`).html(),
  307. let stateId = parseInt($('#state').val());
  308. setAddressHeader({name,addressline:$('#addressdes').val(),cityname:$(`[data-id="${stateId}"`).html(),phonenumber:$('#phonenumber').val(),zipcode:$('#zipcode').val()});
  309. $('.errMsgFormEdit').html('');
  310. loadShippingProducts();
  311. addresslistAction.removeAddressContainer()
  312. changeAddressBtnAction.addChangeAddressBtn();
  313. paymentContainerAction.paymentContainerAdd();
  314. $('.displayadress').removeClass('d-none');
  315. });
  316. $('.ordernowbtn').off().click(async function (e){
  317. let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
  318. let { userId, name } = cookieRes;
  319. paymentgatewaypageAction.addPaymentgatewaypage();
  320. let payload = {
  321. "OrganizationName": name,
  322. "BranchId": 106632280000001,
  323. "OrderItems": [
  324. {
  325. "UnitPrice": 20,
  326. "Quantity": 1,
  327. "SKU": "11",
  328. "DiscountValue": 0,
  329. "DiscountPercent": 0
  330. }
  331. ]
  332. }
  333. $('.paymentgatewaypage').removeClass('d-none');
  334. const data = getCartData();
  335. let orderItems = [];
  336. for(let i in data){
  337. const {price,quantity,sku} = data[i];
  338. let payload = {
  339. "UnitPrice": price,
  340. "Quantity": quantity,
  341. "SKU": sku,
  342. "DiscountValue": 0,
  343. "DiscountPercent": 0
  344. }
  345. orderItems.push(payload)
  346. }
  347. payload['OrderItems'] = orderItems;
  348. debugger;
  349. try {
  350. const res = await API_SERVICES_ACTIONS.postAPIService(`apis/v4/bizgaze/integrations/salesorder/save`,payload);
  351. console.log(res.response.result);;
  352. if(!res.response.result){
  353. paymentgatewaypageAction.removePaymentgatewaypage();
  354. }
  355. // `http://localhost:3088/apis/v4/bizgaze/transact/orders/getpaymentgatewaytransaction/refid/106633780000069`
  356. let response = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/transact/orders/getpaymentgatewaytransaction/refid/${res.response.result}`);
  357. let {PaymentLink} = JSON.parse(response.response.result);
  358. window.location.href = PaymentLink;
  359. } catch (error) {
  360. paymentgatewaypageAction.removePaymentgatewaypage();
  361. }
  362. });
  363. }
  364. function getItemProductHTML(item) {
  365. const { img, name, price, quantity, sku, id } = item;
  366. return ` <div class="align-items-center item-product-add d-flex w-100" data-id="${id}" data-sku="${sku}">
  367. <div style="max-width: 100px;" class="">
  368. <img class="w-100" src="${img}" alt="">
  369. </div>
  370. <div class="" style="margin-left:10px">
  371. <div>
  372. <div style="font-size:12px">${name}</div>
  373. </div>
  374. <div>
  375. <span style="font-size:12px" class="font-weight-600">${getCurrencySymbol(price)}</span> <span>x <span class="qtyitem" style="font-size:12px">${quantity}</span></span>
  376. </div>
  377. </div>
  378. </div>`;
  379. return ` <div class="item-product-add" data-id="${id}" data-sku="${sku}">
  380. <div class="row py-2">
  381. <div class="col-sm-2">
  382. <div class="w-100 d-flex justify-content-around">
  383. <div class="d-flex flex-column align-items-baseline">
  384. <div class="px-4 py-2 selectaddressimgshow">
  385. <img class="w-100" src="${img}" alt="" class="w-100">
  386. </div>
  387. <div class="addresscontrol w-100 d-flex justify-content-center gap-1">
  388. <div class="rounded-contain btnminus">
  389. -
  390. </div>
  391. <div class="w-100p">
  392. <input class="qtyshowinput" disabled value="${quantity}" type="number">
  393. </div>
  394. <div class="rounded-contain btnplus">
  395. +
  396. </div>
  397. </div>
  398. </div>
  399. </div>
  400. </div>
  401. <div class="col-sm-10">
  402. <div class="row h-100">
  403. <div class="col-sm-8">
  404. <div class="h-100 d-flex flex-column justify-content-between">
  405. <div> ${name}</div>
  406. <div>
  407. <span>$</span> ${price} <span class="d-none">56% Off 2 offers applied</span>
  408. </div>
  409. <div class="d-flex gap-3">
  410. <span class="text-uppercase d-none">Save for later</span>
  411. <span class="text-uppercase cursor-pointer removecartItem">Remove</span>
  412. </div>
  413. </div>
  414. </div>
  415. </div>
  416. </div>
  417. </div>
  418. </div>`;
  419. }
  420. async function getCountryId(){
  421. const countryRes = await API_SERVICES_ACTIONS.getAPIService('apis/v4/bizgaze/integrations/products/getcountry');;
  422. if (countryRes.isError) {
  423. alert("something went wrong");
  424. console.log(countryRes);
  425. return;
  426. }
  427. let ctyId = 0
  428. let countryData = JSON.parse(countryRes.response.result);
  429. console.log(countryData);
  430. for (let i = 0; i < countryData.length; i++) {
  431. if (countryData[i].countryname.toLowerCase() === 'india') {
  432. debugger;
  433. countryId = countryData[i].countryid;
  434. ctyId = countryId
  435. countrynameData = countryData[i].countryname;
  436. break;
  437. }
  438. }
  439. return ctyId;
  440. }
  441. function renderStates(data){
  442. $('#state').off('select2:select');
  443. let html = '';
  444. for (let i = 0; i < data.length; i++) {
  445. html += `<option value="${data[i].cityid}" data-id="${data[i].cityid}">${data[i].cityname}</option>`
  446. }
  447. $('#state').append(html);
  448. $("#state").select2({
  449. placeholder: "Select a City",
  450. allowClear: true
  451. });
  452. }
  453. async function getCountryStateCurrency() {
  454. const countryRes = await API_SERVICES_ACTIONS.getAPIService('apis/v4/bizgaze/integrations/products/getcountry');;
  455. if (countryRes.isError) {
  456. alert("something went wrong");
  457. console.log(countryRes);
  458. return;
  459. }
  460. let countryData = JSON.parse(countryRes.response.result);
  461. console.log(countryData);
  462. for (let i = 0; i < countryData.length; i++) {
  463. if (countryData[i].countryname.toLowerCase() === 'india') {
  464. countryID = countryData[i].countryid;
  465. countrynameData = countryData[i].countryname;
  466. break;
  467. }
  468. }
  469. const stateRes = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getcities/countryid/${countryID}`);
  470. if (stateRes.isError) {
  471. alert("something went wrong");
  472. console.log(stateRes);
  473. return;
  474. }
  475. let stateData = JSON.parse(stateRes.response.result);
  476. console.log(stateData, 'state');
  477. $('#state').html('');
  478. console.log("start")
  479. let html = '';
  480. statesList = stateData;
  481. stateArr = stateData;
  482. renderStates(stateArr)
  483. const currencyRes = await API_SERVICES_ACTIONS.getAPIService('apis/v4/bizgaze/integrations/products/getcurrencies');
  484. if(currencyRes.isError){
  485. alert("something went wrong");
  486. console.log(currencyRes);
  487. return;
  488. }
  489. let currencyData = JSON.parse(currencyRes.response.result);
  490. console.log(currencyData,'currencyDatacurrencyDatacurrencyData');
  491. for(let i=0;i<currencyData.length;i++){
  492. const curr = currencyData[i];
  493. if(curr.currencyname.toLowerCase().includes('india')){
  494. currencyid = curr.currencyid;
  495. }
  496. }
  497. }
  498. function loadShippingProducts(){
  499. $('.detailsAddressBg').removeClass('detailsAddressBg');
  500. $('.ordersummaryheader ').addClass('detailsAddressBg')
  501. debugger;
  502. const products = getCartData();
  503. console.log(products);
  504. if (Object.keys(products||{}).length) orderBtnAction.addOrdernowBtn();
  505. let productsHTML = '';
  506. for (let item in products) {
  507. const currItem = products[item];
  508. productsHTML += getItemProductHTML({ ...currItem, id: item })
  509. }
  510. $('.orderlistcart').html(productsHTML);
  511. // $('.orderslist').html(productsHTML);
  512. $('.orderslist').addClass("p-3")
  513. $('.orderslist').html(` <label for="online">
  514. Online
  515. <input checked data-op="online" name="payment" type="radio" class="paymentbtn " id="online">
  516. </label>
  517. <label for="cod">
  518. Cash on delivery
  519. <input data-op="cod" name="payment" type="radio" class="paymentbtn " id="cod">
  520. </label>`);
  521. $('.paymentbtn').off().click(function (e){
  522. const data = $(e.target).data('op');
  523. if(data == 'online'){
  524. orderBtnAction.addOrdernowBtn();
  525. }else{
  526. orderBtnAction.removeOrdernowBtn();
  527. }
  528. })
  529. $('.btnminus').each(function (i, el) {
  530. $(el).off().click(function (elm) {
  531. let id = $(elm.target).parents('.item-product-add').data('id');
  532. let val = parseInt($(elm.target).parents('.item-product-add').find('.qtyshowinput').val());
  533. if (val <= 1) return;
  534. val--;
  535. updateCartQuantity(id, val)
  536. $(elm.target).parents('.item-product-add').find('.qtyshowinput').val(val)
  537. });
  538. })
  539. $('.btnplus').each(function (i, el) {
  540. $(el).off().click(function (elm) {
  541. let id = $(elm.target).parents('.item-product-add').data('id');
  542. let val = parseInt($(elm.target).parents('.item-product-add').find('.qtyshowinput').val());
  543. if (val >= 11) return;
  544. val++;
  545. updateCartQuantity(id, val)
  546. $(elm.target).parents('.item-product-add').find('.qtyshowinput').val(val);
  547. });
  548. })
  549. $('.removecartItem').each(function (i, el) {
  550. $(el).click(function (elm) {
  551. let id = $(elm.target).parents('.item-product-add').data('id');
  552. let len = removeCartItem(id);
  553. $(`.item-product-add[data-id="${id}"]`).remove();
  554. if (!len) {
  555. orderBtnAction.removeOrdernowBtn();
  556. }
  557. });
  558. })
  559. }
  560. function removeOrderSummary(){
  561. $('.detailsAddressBg').removeClass('detailsAddressBg');
  562. $('.selectAddress').addClass('detailsAddressBg');
  563. $('.orderslist').html('');
  564. $('.orderslist').removeClass("p-3");
  565. orderBtnAction.removeOrdernowBtn();
  566. // $('.detailsAddressBtn').addClass('d-none');
  567. addresslistAction.addAddressContainer();
  568. $('.saveanddeliver').removeClass('d-none');
  569. $('.saveanddeliverCanel').removeClass('d-none')
  570. }
  571. function factoryErrorControl(){
  572. let inputsArr = ['phonenumber','addressdes','zipcode','state'];
  573. let controls = {};
  574. for(let i=0;i<inputsArr.length;i++){
  575. const id =inputsArr[i];
  576. controls[`${id}_errorhandler`] = {
  577. addError(){
  578. debugger;
  579. $(`#${id}`).parents('.col-sm-6').find('.invalid-feedback').addClass('d-block');
  580. },
  581. removeError(){
  582. $(`#${id}`).parents('.col-sm-6').find('.invalid-feedback').addClass('d-block');
  583. }
  584. }
  585. }
  586. return controls;
  587. }
  588. init();
  589. }
  590. checkValidAuth(initSelectDevlivery);