Nessuna descrizione
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.

order_summary.js 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. async function order_summary() {
  2. let cookieRes = COOKIE_HELPER_ACTIONS.getCookie();
  3. let { userId } = cookieRes;
  4. let filesInputSupport = [];
  5. // let res = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/Bizgaze/integrations/products/salesorderdetailsbyorgid/organizationid/${userId}`,true);
  6. // https://templateserver.bizgaze.com/apis/v4/bizgaze/integrations/products/getordersbyid/organizationid/{organizationid}/orderno/{orderno}
  7. let orderno = window.location.hash.split('#')[1];
  8. let res = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getordersbyid/organizationid/${userId}/orderno/${orderno}`);
  9. if (res.isError) {
  10. return;
  11. }
  12. const orderDetailsres = JSON.parse(res.response.result);
  13. let new_arrr = orderDetailsres;
  14. console.log(new_arrr)
  15. let orderNumber = window.location.hash.split('#')[1];
  16. let filteredOrders = new_arrr.filter(function (order) {
  17. return order.OrderNo === orderNumber;
  18. });
  19. for (let i = 0; i < filteredOrders.length; i++) {
  20. let order = filteredOrders[i];
  21. let Delivery_status = order.stageshortcode
  22. let deliverdCard = appendItemHTML(order);
  23. $('.deliverd-card').append(deliverdCard)
  24. if (Delivery_status == 'CMD') {
  25. $('.delivery_status').html('Deliverd')
  26. }
  27. if (Delivery_status == 'APL') {
  28. $('.delivery_status').html('Approval')
  29. }
  30. }
  31. $('.supportBtn').click(function (e) {
  32. let parentEl = $(e.target).parents('.card-body');
  33. const orderName = $(parentEl).find('.ordernameModal').text();
  34. const img = $(parentEl).find('.order_img').attr('src');
  35. $('#exampleModalsupport').find('.order_img').attr('src', img);
  36. $('.modalitemname').text(orderName);
  37. const orderQty = $(parentEl).find('.orderqtymodalinfo').text();
  38. const orderPrice = $(parentEl).find('.order_price').text();
  39. const [symbol, price] = getCurrencySymbol(orderPrice)
  40. $('.modalitemqty').html(orderQty);
  41. $('.modalprice').html(`${symbol} ${price}`);
  42. console.log(orderName);
  43. });
  44. // modal start
  45. // files append html ui
  46. function getInputsListHTML(arr){
  47. let html = '';
  48. for(let i=0;i<arr.length;i++){
  49. const {FileName,FileType} = arr[i];
  50. html += `<span class='p-1 rounded text-truncate containerfilesupport' data-name="${FileName}.${FileType}" >
  51. <span class="border p-1 rounded"> <span class=" w-50 filenamesupportticket"> ${FileName}.${FileType}</span>
  52. <span class=' text-center bg-white rounded removeFilesupportticket'>
  53. <i class='p-1 fa fa-close'></i>
  54. </span></span>
  55. </span>`
  56. }
  57. return html;
  58. }
  59. // files onchange handler for input files
  60. async function fileUploadSaveHandler(e){
  61. const promiseFiles = await getMulFileToGetBase64(e);
  62. // console.log(promiseFiles,'promisepromise');
  63. filesInputSupport = promiseFiles;
  64. let html = getInputsListHTML(filesInputSupport);
  65. $('.inputlistsupportcontainer').html(html);
  66. $('.removeFilesupportticket').off('click').click(function (e){
  67. let el = $(this);
  68. let nameWithExt = $(el).parents('.containerfilesupport').data('name')
  69. console.log(nameWithExt);
  70. filterRemoveInputsFiles(nameWithExt)
  71. });
  72. }
  73. function filterRemoveInputsFiles(nameWithExt){
  74. console.log("okay");
  75. console.log(filesInputSupport);
  76. filesInputSupport = filesInputSupport.filter(function (e){
  77. const {FileName,FileType} = e;
  78. const str = `${FileName}.${FileType}`;
  79. if(str != nameWithExt) return e;
  80. });
  81. console.log(filesInputSupport);
  82. }
  83. $('#supportattachfile').off().change(function (e){
  84. debugger;
  85. if(!e.target.files.length) return;
  86. fileUploadSaveHandler(e);
  87. });
  88. // submit support ticket
  89. $('.submitsupportticket').off('click').click(async function (e) {
  90. console.log("tick");
  91. let supportGroup = $('#supportgroups').val();
  92. let priortyGroup = $('#supportlevel').val();
  93. let description = $('.desmodalsupportarea').val()?.trim();
  94. let isErrorValidtion = false;
  95. if (!supportGroup) {
  96. isErrorValidtion = true;
  97. $('#supportgroups').parent().find('.invalid-feedback').addClass('d-block');
  98. } else {
  99. $('#supportgroups').parent().find('.invalid-feedback').removeClass('d-block');
  100. }
  101. if (!priortyGroup) {
  102. isErrorValidtion = true;
  103. $('#supportlevel').parent().find('.invalid-feedback').addClass('d-block');
  104. } else {
  105. $('#supportlevel').parent().find('.invalid-feedback').removeClass('d-block');
  106. }
  107. if (!description) {
  108. isErrorValidtion = true;
  109. $('.desmodalsupportarea').parent().find('.invalid-feedback').addClass('d-block');
  110. } else {
  111. $('.desmodalsupportarea').parent().find('.invalid-feedback').removeClass('d-block');
  112. }
  113. if (isErrorValidtion) return;
  114. const payload = {
  115. ticketgroupid: Number(supportGroup),
  116. description: description,
  117. documents: filesInputSupport.length > 0 ? filesInputSupport : 0,
  118. PriorityId: Number(priortyGroup),
  119. ticketid: 0,
  120. contactid: Number(userId)
  121. }
  122. $('.supportticketsubmit').removeClass('d-none');
  123. $('.supportticketsubmitbtn').addClass('d-none');
  124. $('.closesupportticket').attr('disabled', true);
  125. console.log(payload);
  126. const res = await API_SERVICES_ACTIONS.postAPIService(`apis/v4/hyperfusion/hireserver/machines/saveticket`, payload);
  127. console.log(res);
  128. if (res.isError) {
  129. toasterHelper("error", res.errorMsg, `toast-top-right`);
  130. $('.supportticketsubmit').addClass('d-none');
  131. $('.supportticketsubmitbtn').removeClass('d-none');
  132. $('.closesupportticket').attr('disabled', false);
  133. return;
  134. }
  135. $('.supportticketsubmit').addClass('d-none');
  136. $('.supportticketsubmitbtn').removeClass('d-none');
  137. $('.closesupportticket').attr('disabled', false);
  138. toasterHelper("success", 'Ticket successfully submitted!', `toast-top-right`);
  139. // $('#supportgroups').val(null);
  140. // $('#supportlevel').val(null);
  141. $('.desmodalsupportarea').val('');
  142. $("#exampleModalsupport .closesupportticket").click()
  143. });
  144. // modal end
  145. $('.warrantybtn').click(function (e) {
  146. let parentEl = $(e.target).parents('.card-body');
  147. const orderName = $(parentEl).find('.ordernameModal').text();
  148. $('#warrenymodalname').html(orderName);
  149. });
  150. let summary = `<div class="bg-gradient-anwi card-body"><div><p class="mb-0 fw-500">Order : <span>${orderNumber}</span><small class=" "> ( ${filteredOrders.length} items )</samll><p class="mb-0 ">Order placed on ${filteredOrders[0].OrderDate}</p></div>`;
  151. $('.Order_details_section .order_tax').html(filteredOrders[0].taxamount)
  152. $('.Order_details_section .Order_total').html(filteredOrders[0].nettotal)
  153. $('.Order_details_section .order_price').html(filteredOrders[0].assessableamount)
  154. $('.Order_details_section .order-summary').html(summary);
  155. $('.back_to_orders').click(function () {
  156. $(this).attr('href', './myaccount.html')
  157. });
  158. function appendItemHTML(order) {
  159. return `<div class="card rounded-0 bg-white mb-3 "><div class=card-body><div class="align-items-center row"><div class=col-md-6><div class=d-flex><img class=img-fluid src=""></div><div class="d-flex align-items-center"><div class="text-secondary">Delivery Status : </div><div class=" delivery_status text-blue fw-600" data-status="${order.stageshortcode}"></div></div></div><div class="col-md-6 text-end"><button data-bs-toggle="modal" data-bs-target="#exampleModalwarrenty" class=" bg-gradient-anwi-outline btn-sm btn warrantybtn ">Claim warranty</button> <button data-bs-toggle="modal" data-bs-target="#exampleModalsupport" class="supportBtn bg-gradient-anwi-outline btn-sm btn ">Support</button></div></div><div><small class=" text-secondary me-2">Delivered To : </small><small class="fw-600 user_name">${order.OrganizationName}</div><div class="row pb-4 pb-md-0 align-items-center"><div class="col-md-4 text-center"><img class="img-fluid order_img w-75"src=https://appassets.bizgaze.app/${order.imageurl?.replaceAll(" ", "%20")}></div><div class="col-md-8 position-relative"><small class=" mb-0 order_itemname"><span ><span class="ordernameModal">${order.itemname}</span> (<span class="orderqtymodalinfo">${order.Quantity}</span> items)</span><small class=" align-items-center d-flex fw-600 mb-3"><svg class="bi bi-currency-rupee"fill=currentColor height=16 viewBox="0 0 16 16"width=16 xmlns=http://www.w3.org/2000/svg><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"></path></svg><small class="order_price fs-6">${order.itemtotal}</small><p class=" mb-0 close_exchange position-absolute d-none text-secondary">Return/Exchange window closed on Friday,24 March <a class=text-primary href=#>Why?</a></div></div></div></div>`;
  160. }
  161. async function supportModalInit() {
  162. $.fn.modal.Constructor.prototype.enforceFocus = function () { };
  163. let ticketGroupRes = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/anwisystems/integrations/anwiauth/getticketgoups`);
  164. if (ticketGroupRes.isError) {
  165. console.log(ticketGroupRes.errorMsg);
  166. return;
  167. }
  168. ticketGroupRes = JSON.parse(ticketGroupRes.response.result);
  169. console.log(ticketGroupRes);
  170. let htmlTGroup = '';
  171. for (let i = 0; i < ticketGroupRes.length; i++) {
  172. htmlTGroup += `<option value="${ticketGroupRes[i].ticketgroupid}" data-id="${ticketGroupRes[i].ticketgroupid}">${ticketGroupRes[i].ticketgroupname}</option>`
  173. }
  174. $('#supportgroups').html(htmlTGroup);
  175. // priopty
  176. let prioritiesRes = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/anwisystems/integrations/anwiauth/getticketpriorities`);
  177. if (prioritiesRes.isError) {
  178. console.log(prioritiesRes.errorMsg);
  179. return;
  180. }
  181. prioritiesRes = JSON.parse(prioritiesRes.response.result);
  182. console.log(prioritiesRes, 'prioritiesRes');
  183. let htmlTpriorites = '';
  184. for (let i = 0; i < prioritiesRes.length; i++) {
  185. htmlTpriorites += `<option value="${prioritiesRes[i].priorityid}" data-id="${prioritiesRes[i].priorityid}">${prioritiesRes[i].priorityname}</option>`
  186. }
  187. $('#supportlevel').html(htmlTpriorites);
  188. }
  189. supportModalInit();
  190. }
  191. order_summary()