let temple_id; var email = ''; var password = ''; var token = ''; var form_house; var form_house_order_edit; $(document).ready(function () { loadData(); bindPageEvents(); bindModalEvents(); }); //---------取得資料----------- function loadData() { //用url判斷廟宇id let url = window.location.href; if (url.includes("yonglien")) { temple_id = 1; } else if (url.includes("Templeify")) { temple_id = 1; } else { temple_id = 0; } if (window.location.pathname.includes("/admin")) { window.location.href = "admin.html"; } if (url.indexOf('order_no') > -1 || url.indexOf('user_id') > -1) { var status = url.split('?')[1].split('&')[2].split('=')[1]; var user_email = url.split('?')[1].split('&')[0].split('=')[1]; if(status=='admin'){ setCookie('email', user_email, 1); } } //取得產品資料給產品介紹及選擇燈種modal $.ajax({ url: 'api/product.php?temple_id=' + temple_id, type: 'GET', success: function (data) { //產品介紹slider var html2 = ''; $('#slider_content').empty(); data.forEach(function (product) { //0:每盞 1:每戶 var category; if (product.category == '0') { category = '每盞:'; }else { category = '每戶:'; } var html1 = ''; html1 += '
'; html1 += '
'; html1 += '
' + product.name + '
'; html1 += '
'; html1 += '
' + product.name + '
'; //html += '
'; //html += '
2023 癸卯年限定
'; html1 += '
' + category + product.price + '
'; //html += '
'; //html += '
' + product.description + '
'; html1 += '
'; html1 += '
'; html1 += '
'; $('#slider_content').append(html1); if(data.indexOf(product) == 0){ html2 += '
'; }else{ html2 += '
'; } }); var html = ''; html += '
'; html += '
'; html += '
' + '添香油' + '
'; html += '
'; html += '
' + '添香油' + '
'; html += '
' + '隨緣樂助' + '
'; html += '
'; html += '
'; html += '
'; $('#slider_content').append(html); $('.w-slider-nav').html(html2); //Webflow.require('slider').redraw(); $('.right-arrow, .left-arrow, .slide-nav').hide(); //選擇燈種modal var html = ''; data.forEach(function (product) { html += '
'; html += '
'; }); $('#modal_select_light .modal-form').html(html); }, error: function () { alert('Failed to retrieve product.'); } }); email = getCookie('email'); password = getCookie('password'); if (email != '') { $('#nav_default').hide(); $('#nav_logged_in').css('display', 'flex'); $('#input_pay_email').val(email); loadFamilyData('#modal_family_data .form-house-wrapper'); if (payToken != '0') {} else { loadOrderData(); } } if (url.indexOf('user_id') > -1) { var user_email = url.split('?')[1].split('&')[0].split('=')[1]; var user_id = url.split('?')[1].split('&')[1].split('=')[1]; if(user_email = getCookie('email')){ var status = url.split('?')[1].split('&')[2].split('=')[1]; if(status == 'admin'){ $('.main-wrapper, .footer, #nav-quick-buy-2, #nav-messenger-2').hide(); $('#nav-account-data').remove(); $('#button_resend_order').show(); setTimeout(function(){ $('#nav-family-data').click(); }, 100); } } } urlLoadOrder(); disablePay(); disableFamilyData(); } function disablePay() { $('#input_pay_email').attr('disabled', true); $('#input_pay_name').attr('disabled', true); $('#input_pay_phone').attr('disabled', true); $('#input_pay_note').attr('disabled', true); $('input[name=radio_pay]').attr('disabled', true); $('.section_pay .input, .section_pay .input-amount, .section_pay .input-textarea').css('background-color', '#eee'); $('#button-send-pay').css('background-color', '#ddd'); $('#button-send-pay').css('pointer-events', 'none'); } function disableFamilyData(){ $('.section_buy input').attr('disabled', true); $('.section_buy a').css('background-color', '#eee'); $('.section_buy a[name=button-new-family-member], .section_buy a[name=button-edit-family], .section_buy a[name=button-new-family], .section_buy #button-confirm-buy').css('background-color', '#ddd'); $('.section_buy a').parent().css('pointer-events', 'none'); $('.section_buy .input, .section_buy .input-yellow').css('background-color', '#eee'); } //取得資料-家人資料 function loadFamilyData(form_house_wrapper) { //console.log(email); //讀取家人資料 var familyData = { type: 'get_family_member', email: email }; $.ajax({ url: 'api/familyMember.php', type: 'GET', data: familyData, success: function (data) { //console.log(data); var family_data_detail = data; if (family_data_detail.length == 0) { return; } //clone form-house var form_house = $(form_house_wrapper + ' .form-house').clone(); //clone family-member var family_member = form_house.find('div[form-input="family-member"]').clone(); //清空form-house $(form_house_wrapper).find('.form-house').remove(); for (var i = 0; i < family_data_detail.length; i++) { //比對地址,若相同則將家人資料填入 var address = family_data_detail[i].address; var isExist = false; $(form_house_wrapper + ' .form-house').each(function () { if ($(this).find('input[text-input="address"]').val() == address) { $(this).find('.form-family-input').append(family_member.clone()); $(this).find('a[name="btn_household_head"]').show(); if(family_data_detail[i].is_household_head == '1'){ $(this).find('.form-family-input div[form-input="family-member"]:last').find('a[name="btn_household_head"]').text('戶長').css('background-color', '#eba900'); } $(this).attr('id', 'family-' + $(this).closest('.form-house').attr('id').split('-')[1] + '-member-' + (i + 1)); $(this).find('.form-family-input div[form-input="family-member"]:last').find('input[text-input="name"]').val(family_data_detail[i].name); $(this).find('.form-family-input div[form-input="family-member"]:last').find('input[type="radio"]').attr('name', form_house_wrapper + 'radio-' + $(this).attr('id').split('-')[1] + "-" + (i + 1)); if(family_data_detail[i].gender == '1') { $(this).find('.form-family-input div[form-input="family-member"]:last').find('div[radio-input="gender"] input:first').click(); }else { $(this).find('.form-family-input div[form-input="family-member"]:last').find('div[radio-input="gender"] input:last').click(); } $(this).find('.form-family-input div[form-input="family-member"]:last').find('a[select-button="date"] div:first').text(family_data_detail[i].birthday); isExist = true; } }); //地址不存在 if (!isExist) { //新增form-house if(form_house_wrapper=='.form-buy-content'){ $(form_house_wrapper).parent().find('a[name="button-new-family"').parent().before(form_house.clone()); }else{ $(form_house_wrapper).append(form_house.clone()); } if(family_data_detail[i].is_household_head == '1'){ $(form_house_wrapper + ' .form-house:last').find('a[name="btn_household_head"]').text('戶長').css('background-color', '#eba900'); } $(form_house_wrapper + ' .form-house:last').find('input[text-input="address"]').val(address); //console.log($(form_house_wrapper + ' .form-house:last').find('input[text-input="address"]').val()); $(form_house_wrapper + ' .form-house:last').find('input[text-input="name"]').val(family_data_detail[i].name); var newFamilyCount = $(form_house_wrapper).find('.form-house').length; $(form_house_wrapper + ' .form-house:last').find('input[type="radio"]').attr('name', form_house_wrapper + 'radio-' + newFamilyCount + "-1"); if(family_data_detail[i].gender == '1') { $(form_house_wrapper + ' .form-house:last').find('div[radio-input="gender"] input:first').click(); }else { $(form_house_wrapper + ' .form-house:last').find('div[radio-input="gender"] input:last').click(); } $(form_house_wrapper + ' .form-house:last').find('a[select-button="date"] div:first').text(family_data_detail[i].birthday); } } //border變色 $(form_house_wrapper + ' .input, #modal_family_data .input-textarea').each(function () { if ($(this).find('input').val() != '') { $(this).css('border-color', '#BBBBBB'); } }); //日期設定 $(form_house_wrapper + ' div[form-input="family-member"]').each(function () { $(this).find('a[select-button="date"] div:first').removeClass('is-grey'); var year = parseInt($(this).find('a[select-button="date"] div:first').text().split('年')[0]); var month = parseInt($(this).find('a[select-button="date"] div:first').text().split('年')[1].split('月')[0]); var day = parseInt($(this).find('a[select-button="date"] div:first').text().split('月')[1].split('日')[0]); var ShiChen = $(this).find('a[select-button="date"] div:first').text().split('日')[1].split('時')[0].replace(/\s+/g, ''); var time = getHourFromShiChen(ShiChen); $(this).find('a[select-button="date"]').data('data-date', year + ',' + month + ',' + day + ',' + time); $(this).find('a[select-button="date"] div:last').remove(); }); //加入id $(form_house_wrapper).find('.form-house').each(function (i) { $(this).attr('id', 'family-' + (i + 1)); var houseNumber = i + 1; $(this).find('.input label:first').children('label').children('label:first').text('第' + numberToChinese(houseNumber) + '戶'); $(this).find('div[form-input="family-member"]').each(function (j) { $(this).attr('id', 'family-' + $(this).closest('.form-house').attr('id').split('-')[1] + '-member-' + (j + 1)); }); }); var newFamilyCount = $(form_house_wrapper).find('.form-house').length; $(form_house_wrapper).parent().find(' a[name="button-new-family"]').text("新增第" + numberToChinese(newFamilyCount + 1) + "戶"); function getHourFromShiChen(shiChen) { //shichen trim shiChen = shiChen.replace(/\s+/g, ''); if(shiChen == '吉') { return ''; } const shiChenNames = [ "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" ]; const shiChenIndex = shiChenNames.indexOf(shiChen); const hour = shiChenIndex * 2; return hour; } } }); } //取得資料-訂單 function loadOrderData() { var email = getCookie('email'); //讀取訂單資料 var orderData = { type: 'get_order_list', email: email, temple_id: temple_id }; //console.log(orderData); $.ajax({ url: 'api/order.php', type: 'GET', data: orderData, dataType: "json", //async: false, success: function (data) { //console.log(data); var email = getCookie('email'); var data_detail = data; var wrapper = $('#modal_order_list .order-list-wrapper'); /*if (data_detail.length == 0) { wrapper.hide(); return; }else{ wrapper.show(); } */ var item_first = $('#modal_order_list .order-list-item:first').clone(); var item = $('#modal_order_list .order-list-item:last').clone(); wrapper.empty(); if (data_detail.length == 0) { //wrapper append no order wrapper.append('
您尚未有訂單
'); return; } //填入資料 for (var i = 0; i < data_detail.length; i++) { if(i==0){ wrapper.append(item_first.clone()); }else{ wrapper.append(item.clone()); } //console.log(data); //console.log(data_detail[i].order_no); //console.log(data_detail[i].total_amount); //order_id wrapper.find('.order-list-item:last').attr('order_id', data_detail[i].order_id); wrapper.find('.order-list-item:last').find('div[label-order-item="orderno"]').text(data_detail[i].order_no); wrapper.find('.order-list-item:last').find('div[label-order-item="date"]').text(data_detail[i].date); wrapper.find('.order-list-item:last').find('div[label-order-item="amount"]').text('NT$ ' + formatNumber(data_detail[i].total_amount)); } //hover效果 $('#modal_order_list .order-list-item').hover(function () { $(this).css('background-color', '#F2F2F2'); }, function () { $(this).css('background-color', '#FFFFFF'); }); //點擊訂單 $('#modal_order_list .order-list-item').click(function () { var order_id = $(this).attr('order_id'); var order_no = $(this).find('div[label-order-item="orderno"]').text(); var date = $(this).find('div[label-order-item="date"]').text(); var list_amount = deFormatNumber($(this).find('div[label-order-item="amount"]').text()); function deFormatNumber(num_str) { var num = num_str.split('NT$ ')[1]; return num.toString().replace(/,/g, ''); } var orderData = { type: 'get_order_summary', email: email, order_id: order_id, temple_id: temple_id }; console.log(orderData); $.ajax({ url: 'api/order.php', type: 'GET', data: orderData, dataType: "json", success: function (data) { var data_detail = data; if (data_detail.length == 0 && list_amount == 0) { return; } var wrapper = $('#modal_order_detail .order-list-wrapper'); var item = $('#modal_order_detail .order-list-item:first').clone(); var item_total = $('#modal_order_detail .order-list-item:last').clone(); var total_amount = 0; wrapper.empty(); //填入資料 for (var i = 0; i < data_detail.length; i++) { wrapper.append(item.clone()); wrapper.find('.order-list-item:last').find('div[order_detail_label="name"]').text(data_detail[i].product_name + ' * ' + data_detail[i].quantity); wrapper.find('.order-list-item:last').find('div[order_detail_label="price"]').text('NT$ ' + formatNumber(data_detail[i].amount)); total_amount += parseInt(data_detail[i].amount); } //append 香油錢 if(total_amount != list_amount){ wrapper.append(item.clone()); wrapper.find('.order-list-item:last').find('div[order_detail_label="name"]').text('加購香油'); wrapper.find('.order-list-item:last').find('div[order_detail_label="price"]').text('NT$ ' + formatNumber(list_amount - total_amount)); } wrapper.append(item_total.clone()); wrapper.find('.order-list-item:last').find("#order_detail_amount").text('NT$ ' + formatNumber(list_amount)); $('#order_detail_title').text(order_no); $('#order_detail_title').attr('order_id', order_id); $('#order_detail_date').text(date); loadReceipt('click_order_list', order_id); $('#modal_order_list').fadeOut(200); $('#modal_order_detail').hide().fadeIn(200); } }); }); //點擊編輯訂單 $('#button_edit_order').click(function () { //if loaded before, do not load again /*if($('#modal_order_edit .form-house-wrapper').find('input[text-input="address"]').val() != ''){ //border變色 $('#modal_order_edit .input').each(function () { $(this).css('border-color', '#BBBBBB'); }); $('#modal_order_detail').fadeOut(200); $('#modal_order_edit').hide().fadeIn(200); return; }*/ var order_no = $('#order_detail_title').text(); var order_id = $('#order_detail_title').attr('order_id'); var orderData = { type: 'get_order_detail', email: email, order_no: order_no, order_id: order_id, temple_id: temple_id }; //console.log(orderData); $.ajax({ url: 'api/order.php', type: 'GET', data: orderData, dataType: "json", success: function (data) { //console.log(data); var data_detail = data; var form_house_wrapper = '#modal_order_edit .form-house-wrapper'; //clone form-house var form_house = form_house_order_edit.clone(); //clone family-member var family_member = form_house.find('div[form-input="family-member"]').clone(); //清空form-house $(form_house_wrapper).find('.form-house').remove(); for (var i = 0; i < data_detail.length; i++) { //比對地址,若相同則將家人資料填入 var address = data_detail[i].address; var isExist = false; $(form_house_wrapper + ' .form-house').each(function () { if ($(this).find('input[text-input="address"]').val() == address) { $(this).find('.form-family-input').append(family_member.clone()); $(this).find('a[name="btn_household_head"]').show(); if(data_detail[i].is_household_head == '1'){ $(this).find('.form-family-input div[form-input="family-member"]:last').find('a[name="btn_household_head"]').text('戶長').css('background-color', '#eba900'); } $(this).attr('id', 'family-' + $(this).closest('.form-house').attr('id').split('-')[1] + '-member-' + (i + 1)); $(this).attr('family_member_id', $(this).attr('family_member_id')+','+data_detail[i].id); $(this).find('.form-family-input div[form-input="family-member"]:last').attr('family_member_id', data_detail[i].id); $(this).find('.form-family-input div[form-input="family-member"]:last').find('input[text-input="name"]').val(data_detail[i].name); $(this).find('.form-family-input div[form-input="family-member"]:last').find('input[type="radio"]').attr('name', 'radio-edit-order-' + $(this).attr('id').split('-')[1] + "-" + (i + 1)); if(data_detail[i].gender == '1') { $(this).find('.form-family-input div[form-input="family-member"]:last').find('div[radio-input="gender"] input:first').click(); }else { $(this).find('.form-family-input div[form-input="family-member"]:last').find('div[radio-input="gender"] input:last').click(); } $(this).find('.form-family-input div[form-input="family-member"]:last').find('a[select-button="date"] div:first').text(data_detail[i].birthday); $(this).find('.form-family-input div[form-input="family-member"]:last').find('a[select-button="member-light"] div:first').text(data_detail[i].ordered_products); isExist = true; } }); //地址不存在 if (!isExist) { //新增form-house $(form_house_wrapper).append(form_house.clone()); $(form_house_wrapper + ' .form-house:last').find('input[text-input="address"]').val(address); if(data_detail[i].is_household_head == '1'){ $(form_house_wrapper + ' .form-house:last').find('a[name="btn_household_head"]').text('戶長').css('background-color', '#eba900'); } if(data_detail[i].name==""){ $(form_house_wrapper + ' .form-house:last').find('.form-family-input div[form-input="family-member"]').remove(); $(form_house_wrapper + ' .form-house:last').find('a[select-button="family-light"] div:first').text(data_detail[i].ordered_products); $(form_house_wrapper + ' .form-house:last').attr('family_member_id', data_detail[i].id); }else{ //console.log(data_detail[i].id); $(form_house_wrapper + ' .form-house:last').attr('family_member_id', data_detail[i].id); $(form_house_wrapper + ' .form-house:last').find('.form-family-input div[form-input="family-member"]').attr('family_member_id', data_detail[i].id); $(form_house_wrapper + ' .form-house:last').find('input[text-input="name"]').val(data_detail[i].name); var newFamilyCount = $(form_house_wrapper).find('.form-house').length; $(form_house_wrapper + ' .form-house:last').find('input[type="radio"]').attr('name', 'radio-edit-order-' + newFamilyCount + "-1"); if(data_detail[i].gender == '1') { $(form_house_wrapper + ' .form-house:last').find('div[radio-input="gender"] input:first').click(); }else { $(form_house_wrapper + ' .form-house:last').find('div[radio-input="gender"] input:last').click(); } $(form_house_wrapper + ' .form-house:last').find('a[select-button="date"] div:first').text(data_detail[i].birthday); $(form_house_wrapper + ' .form-house:last').find('a[select-button="member-light"] div:first').text(data_detail[i].ordered_products); } } } //border變色 $(form_house_wrapper + ' .input, #modal_family_data .input-textarea').each(function () { if ($(this).find('input').val() != '') { $(this).css('border-color', '#BBBBBB'); } }); //日期設定 $(form_house_wrapper + ' div[form-input="family-member"]').each(function () { $(this).find('a[select-button="date"] div:first').removeClass('is-grey'); //console.log($(this).find('a[select-button="date"] div:first').text()); var year = parseInt($(this).find('a[select-button="date"] div:first').text().split('年')[0]); var month = parseInt($(this).find('a[select-button="date"] div:first').text().split('年')[1].split('月')[0]); var day = parseInt($(this).find('a[select-button="date"] div:first').text().split('月')[1].split('日')[0]); var ShiChen = $(this).find('a[select-button="date"] div:first').text().split('日')[1].split('時')[0].replace(/\s+/g, ''); var time = getHourFromShiChen(ShiChen); $(this).find('a[select-button="date"]').data('data-date', year + ',' + month + ',' + day + ',' + time); $(this).find('a[select-button="date"] div:last').remove(); }); //點燈設定 $(form_house_wrapper + ' a[select-button="member-light"], ' + form_house_wrapper + ' a[select-button="family-light"]').each(function () { $(this).find('div:first').removeClass('is-grey'); $(this).find('div:last').remove(); //border變色 $(this).parent().css('border-color', '#EBA900'); //disable click pointer-events: none $(this).css('pointer-events', 'none'); }); //加入id $(form_house_wrapper).find('.form-house').each(function (i) { $(this).attr('id', 'family-' + (i + 1)); var houseNumber = i + 1; $(this).find('.input label:first').children('label').children('label:first').text('第' + numberToChinese(houseNumber) + '戶'); $(this).find('div[form-input="family-member"]').each(function (j) { $(this).attr('id', 'family-' + $(this).closest('.form-house').attr('id').split('-')[1] + '-member-' + (j + 1)); }); }); function getHourFromShiChen(shiChen) { //shichen trim shiChen = shiChen.replace(/\s+/g, ''); if(shiChen == '吉') { return ''; } const shiChenNames = [ "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" ]; const shiChenIndex = shiChenNames.indexOf(shiChen); const hour = shiChenIndex * 2; return hour; } $('#modal_order_detail').fadeOut(200); $('#modal_order_edit').hide().fadeIn(200); } }); }); //點擊編輯訂單送出 $('#button_edit_order_send').click(function () { var order_detail = []; $('#modal_order_edit .input').each(function () { if ($(this).css('border-color') == 'rgb(187, 187, 187)') { var family_member_id_list = $(this).closest('div[form-input="family-member"]').attr('family_member_id'); //if input is address if ($(this).find('input').attr('text-input') == 'address') { var family_member_id_list = $(this).closest('.form-house').attr('family_member_id'); var update_column = 'address'; var update_value = $(this).find('input').val(); }else if ($(this).find('input').attr('text-input') == 'name'){ var family_member_id_list = $(this).closest('div[form-input="family-member"]').attr('family_member_id'); var update_column = 'name'; var update_value = $(this).find('input').val(); }else if ($(this).find('div').attr('radio-input') == 'gender'){ var family_member_id_list = $(this).closest('div[form-input="family-member"]').attr('family_member_id'); var update_column = 'gender' var update_value = $(this).find('input[type="radio"]:checked').val(); }else if ($(this).find('a').attr('select-button') == 'date'){ var family_member_id_list = $(this).closest('div[form-input="family-member"]').attr('family_member_id'); var update_column = 'birthday'; var update_value = $(this).find('a[select-button="date"] div:first').text(); } order_detail.push({ family_member_id_list: family_member_id_list, update_column: update_column, update_value: update_value }); } }); //update btn_household_head $('#modal_order_edit a[name="btn_household_head"]').each(function () { var family_member_id_list = $(this).closest('div[form-input="family-member"]').attr('family_member_id'); var update_column = 'is_household_head'; if ($(this).text() == '戶長') { var update_value = '1'; }else{ var update_value = '0'; } order_detail.push({ family_member_id_list: family_member_id_list, update_column: update_column, update_value: update_value }); }); var order_no = $('#order_detail_title').text(); var orderData = { type: 'edit_order', email: email, order_no: order_no, temple_id: temple_id, order_detail: JSON.stringify(order_detail) }; $.ajax({ url: 'api/order.php', type: 'POST', data: orderData, success: function (data) { //console.log(data); $('#modal_order_edit').fadeOut(200); $('#modal_order_edit_success').hide().fadeIn(200); } }); }); //點擊下載訂單收據 $('#button_order_download_receipt').click(function () { /*var value = $("#print_parts").html(); var printPage = window.open("", "Printing...", 'scrollbars=1,width=900,height=900top=' + (screen.height - 700) / 2 + ',left=' + (screen.width - 700) / 2); printPage.document.open(); //printPage.document.write("訂單收據_蘆洲湧蓮寺
"); printPage.document.write("訂單收據_蘆洲湧蓮寺"); //printPage.document.write("
");
                printPage.document.write(value);
                //printPage.document.write("
"); printPage.document.close("
");*/ $("#print_parts").show(); var element = document.getElementById('print_parts'); html2canvas(element).then(canvas => { var imgData = canvas.toDataURL('image/jpeg', 1.0); var pdf = new jsPDF('p', 'mm', 'a4'); pdf.addImage(imgData, 'JPEG', 0, 0, 210, 297); pdf.save('2024線上點燈_訂單收據_蘆洲湧蓮寺.pdf'); $("#print_parts").hide(); }).catch(error => { console.error('Error generating PDF:', error); $("#print_parts").hide(); }); }); //訂單連結相關 var url = window.location.href; if (url.indexOf('order_no') > -1) { var email = url.split('?')[1].split('&')[0].split('=')[1]; var order_no = url.split('?')[1].split('&')[1].split('=')[1]; if(email = getCookie('email')){ //order-list-item if orderno = orderno click $('#modal_order_list .order-list-item').each(function () { //console.log($(this).find('div[label-order-item="orderno"]').text()); if ($(this).find('div[label-order-item="orderno"]').text() == order_no) { $(this).click(); } }); //admin顯示重寄訂單通知 var status = url.split('?')[1].split('&')[2].split('=')[1]; if(status == 'admin'){ //.main-wrapper hide $('.main-wrapper, .footer, #nav-quick-buy-2, #nav-messenger-2').hide(); $('#nav-account-data').remove(); $('#button_resend_order').show(); setTimeout(function(){ //$('#button_edit_order').click(); }, 100); } //點擊重寄訂單通知email $('#button_resend_order').click(function () { $("#print_parts").show(); var element = document.getElementById('print_parts'); html2canvas(element).then(canvas => { var imgData = canvas.toDataURL('image/jpeg', 1.0); var pdf = new jsPDF('p', 'mm', 'a4'); pdf.addImage(imgData, 'JPEG', 0, 0, 210, 297); //pdf.save('訂單收據_蘆洲湧蓮寺.pdf'); $("#print_parts").hide(); var formData = new FormData(); formData.append("pdf", pdf.output("blob")); formData.append("email", email); formData.append("order_no", order_no); $.ajax({ url: 'api/email.php', type: 'POST', data: formData, processData: false, contentType: false, dataType: "json", success: function (data) { //console.log(data); //setCookie('order_emailed', order_no, 30); $('#button_resend_order').text("已重新寄送"); $('#button_resend_order').css('pointer-events', 'none'); }, error: function () { alert('Failed to send email.'); } }); }).catch(error => { console.error('Error generating PDF:', error); $("#print_parts").hide(); }); }); //$('#modal_order_list').hide().fadeIn(200); //$('body').css('overflow', 'hidden'); } } } }); } //取得資料-訂單收據 function loadReceipt(type, data){ //載入收據HTML $('body').append(''); $("#print_parts").load("api/receipt.php", function () { if (type == 'pay_result') { //更新付款狀態,顯示付款結果,並載入收據內容 var payData = { type: 'update_order', payToken: data }; }else{ var payData = { type: 'order_receipt', order_id: data }; } //console.log(payData); $.ajax({ url: 'api/order.php', type: 'POST', data: payData, dataType: "json", //async: false, success: function (data) { //console.log(data); //console.log(data[1].email); if (type == 'pay_result') { var Status = data[0].TSResultContent.Status; var Description = data[0].TSResultContent.Description; }else{ var Status = "S"; } //真的或測試信用卡可以 if (Status == 'S'/* || Description == 'E2720 – 3D驗證失敗'*/) { //載入收據內容 $('#print_parts #order_number').text(data[1].order_no); $('#print_parts #customer').text(data[1].order_name); $('#print_parts #email').text(data[1].email); $('#print_parts #payment').text("信用卡"); if(data[1].note == "") $('#print_parts #remarks').text("無"); else $('#print_parts #remarks').text(data[1].note); $('#print_parts #order_date').text(data[1].date); $('#print_parts #order_status').text("已付款"); //$('#print_parts #amount_total').text(formatCurrency(data[1].total_amount)); $('#print_parts #payment_fee').text(formatCurrency(0)); $('#print_parts #shipping_fee').text(formatCurrency(0)); $('#print_parts #amount_return').text(formatCurrency(0)); $('#print_parts #total').text(formatCurrency(data[1].total_amount)); //console.log(data[2]); var order_detail = data[2]; var order_detail_html = ''; var total_quantity = 0; var total_amount = 0; for (var i = 0; i < order_detail.length; i++) { order_detail_html += ''; order_detail_html += '' + order_detail[i].name + ''; order_detail_html += '' + formatNumber(order_detail[i].quantity) + ''; order_detail_html += '' + formatCurrency(order_detail[i].price) + ''; order_detail_html += '' + formatCurrency(order_detail[i].amount) + ''; order_detail_html += ''; total_quantity += parseInt(order_detail[i].quantity); total_amount += parseInt(order_detail[i].amount); } //append 香油錢 if(total_amount != data[1].total_amount){ order_detail_html += ''; order_detail_html += '' + '加購香油' + ''; order_detail_html += ''; order_detail_html += ''; order_detail_html += '' + formatCurrency(data[1].total_amount - total_amount) + ''; order_detail_html += ''; } $('#print_parts #quantity_total').text(formatNumber(total_quantity)); $('#print_parts #sku_table').append(order_detail_html); if (type == 'pay_result') { var email = data[1].email; var order_no = data[1].order_no; if(getCookie('order_emailed') != order_no){ $("#print_parts").show(); var element = document.getElementById('print_parts'); html2canvas(element).then(canvas => { var imgData = canvas.toDataURL('image/jpeg', 1.0); var pdf = new jsPDF('p', 'mm', 'a4'); pdf.addImage(imgData, 'JPEG', 0, 0, 210, 297); //pdf.save('訂單收據_蘆洲湧蓮寺.pdf'); $("#print_parts").hide(); var formData = new FormData(); formData.append("pdf", pdf.output("blob")); formData.append("email", email); formData.append("order_no", order_no); $.ajax({ url: 'api/email.php', type: 'POST', data: formData, processData: false, contentType: false, dataType: "json", success: function (data) { //console.log(data); setCookie('order_emailed', order_no, 30); }, error: function () { alert('Failed to send email.'); } }); }).catch(error => { console.error('Error generating PDF:', error); $("#print_parts").hide(); }); } $('#modal_pay_result h4').text('付款成功'); /*if(Description == 'E2720 – 3D驗證失敗'){ $('#modal_pay_result h4').text('付款成功(測試信用卡)'); }*/ $('#modal_pay_result h4').siblings('div').text('感謝您的祈福'); $('#button_download_receipt').show(); } } else { $('#modal_pay_result h4').text('付款失敗'); $('#modal_pay_result h4').siblings('div').text('請重新確認付款資訊'); $('#button_download_receipt').hide(); } if (type == 'pay_result') { $('#modal_pay_result').hide().fadeIn(200); } }, error: function () { alert('Failed to send pay request.'); } }); }); } //取得資料-從訂單連結跳轉 function urlLoadOrder(){ var url = window.location.href; if (url.indexOf('order_no') > -1) { var email = url.split('?')[1].split('&')[0].split('=')[1]; var status = url.split('?')[1].split('&')[2].split('=')[1]; if(email != getCookie('email')){ if(status == '1'){ $('#input_log_in_email').val(email); //顯示登入 $('#modal_log_in').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }else if(status == '0'){ $('#input_sign_up_email').val(email); //顯示註冊 $('#modal_sign_up').hide().fadeIn(200); $('body').css('overflow', 'hidden'); } } } } //---------銷售頁----------- function bindPageEvents() { bindNavEvents(); bindBuyEvents(); bindPayEvents(); //點擊客服 $('#button-contact').click(function () { window.open('https://m.me/yonglientemple'); }); } //銷售頁-導覽列 function bindNavEvents() { //點擊登入 $('#nav-login').click(function () { $('#modal_log_in').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }); //點擊快速點燈(未登入) $('#nav-quick-buy').click(function () { $('#modal_log_in').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }); //點擊快速點燈 $('#nav-quick-buy-2').click(function () { $('.form-buy-content').find('.form-house').remove(); $('.form-buy-content').parent().find('a[name="button-new-family"').parent().before(form_house.clone()); loadFamilyData('.form-buy-content'); //scroll to section $('html, body').animate({ scrollTop: $('.section_buy').offset().top }, 500); }); //未登入查詢訂單 $('#nav-order').click(function () { $('#modal_sign_up').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }); //點擊查詢訂單 $('#nav-order-2').click(function () { $('#modal_order_list').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }); //點擊家人資料 $('#nav-family-data').click(function () { $('#modal_family_data').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }); //點擊客服 $('#nav-messenger, #nav-messenger-2').click(function () { window.open('https://m.me/yonglientemple'); }); //nav-member-2 click show vector-delete, second click show nav-text $('#nav-member-2').click(function () { if ($(this).find('.vector-delete').is(':visible')) { $('#nav-member-2 .vector-delete').hide(); $('#nav-member-2 .nav-text').show(); $('#nav-member-2 .nav-text').css({ 'transform': 'scale(0)', 'transition': 'all 0.3s' }); setTimeout(function () { $('#nav-member-2 .nav-text').css({ 'transform': 'scale(1)', 'transition': 'all 0.3s' }); }, 20); } else { $('#nav-member-2 .nav-text').hide(); $('#nav-member-2 .vector-delete').show(); $('#nav-member-2 .vector-delete').css({ 'transform': 'scale(1)', 'transition': 'all 0.3s' }); } }); } //銷售頁-線上登記 function bindBuyEvents() { //輸入欄位hover時變色 //console.log("bindBuyEvents"); $('.input, .input-yellow, .input-textarea').hover(function () { if($(this).find('input, textarea').attr('disabled') != 'disabled'){ $(this).css('background-color', '#fafafa'); $(this).find('input').css('background-color', '#fafafa'); } }, function () { if($(this).find('input, textarea').attr('disabled') != 'disabled'){ $(this).css('background-color', '#fff'); $(this).find('input').css('background-color', '#fff'); } }); //輸入後border變色 $(document).on('input', '.input, .input-textarea', function () { if ($(this).find('input').val() != '') { $(this).css('border-color', '#BBBBBB'); } else { $(this).css('border-color', '#EEEEEE'); } }); $('.input-yellow').on('input', function () { if ($(this).find('div').html() != '') { $(this).css('border-color', '#EBA900'); } else { $(this).css('border-color', '#F9E5B2'); } }); //點擊黑色區域關閉Modal $('.modal').on('click', function (event) { if ($(this).is(':visible') && !$(event.target).closest('.modal-content').length) { $(this).closest('.modal').fadeOut(200); $('body').css('overflow', 'auto'); } }); //點擊X關閉Modal $(document).on('click', '.button-close-modal', function () { $(this).closest('.modal').fadeOut(200); $('body').css('overflow', 'auto'); }); $('.form-house').attr('id', 'family-1'); $('.input-wrapper.is-family').attr('id', 'family-1-member-1'); form_house = $('.section_buy .form-house').clone(); form_house_order_edit = $('#modal_order_edit .form-house').clone(); var family_member_form = $('.section_buy .input-wrapper.is-family').clone(); var family_member_form_modal = $('#modal_family_data .input-wrapper.is-family').clone(); //點擊新增家人 $(document).on('click', 'a[name="button-new-family-member"]', function () { var family_member_form_clone = family_member_form.clone(); //if form-house has no input-yellow if ($(this).closest('.form-house').find('.input-yellow').length == 0) { family_member_form_clone = family_member_form_modal.clone(); } var editButton = $(this).closest('.form-house').find('a[name="button-edit-family"]'); $(this).closest('.form-house').find($('.form-family-input')).append(family_member_form_clone.hide().fadeIn()); if (editButton.text() === '修改完成') { family_member_form_clone.find('.delete-button').show(); } $(this).closest('.form-house').find('div[form-input="family-member"]').each(function (i) { $(this).attr('id', 'family-' + $(this).closest('.form-house').attr('id').split('-')[1] + '-member-' + (i + 1)); $(this).find('input[type="radio"]').attr('name', 'radio-buy-' + $(this).closest('.form-house').attr('id').split('-')[1] + "-" + (i + 1)); }); //show btn_household_head $(this).closest('.form-house').find('a[name="btn_household_head"]').show(); }); var family_form = $('.section_buy .form-house').clone(); var family_form_modal = $('#modal_family_data .form-house').clone(); //點擊新增一戶 $('a[name="button-new-family"]').click(function () { var family_form_clone = family_form.clone(); var form_house_wrapper = "form-buy-content"; //if parent element id have modal_family_data if ($(this).closest('.modal').attr('id') == "modal_family_data") { family_form_clone = family_form_modal.clone(); form_house_wrapper = "is-modal-full"; } //console.log($(this).closest('.'+form_house_wrapper).html()); $(this).closest('.'+form_house_wrapper).find('.form-house:last').after(family_form_clone.hide().fadeIn()); var newFamilyCount = $(this).closest('.'+form_house_wrapper).find('.form-house').length; $(this).text("新增第" + numberToChinese(newFamilyCount + 1) + "戶"); $(this).closest('.'+form_house_wrapper).find('.form-house:last').find('div[form-input="family-member"]').attr('id', 'family-' + newFamilyCount + '-member-1'); $(this).closest('.'+form_house_wrapper).find('.form-house:last').find('input[type="radio"]').attr('name', 'radio-buy-' + newFamilyCount + '-1'); $(this).closest('.'+form_house_wrapper).find('.form-house').each(function (i) { $(this).attr('id', 'family-' + (i + 1)); var houseNumber = i + 1; $(this).find('.input label:first').children('label').children('label:first').text('第' + numberToChinese(houseNumber) + '戶'); }); }); //點擊修改家人 $(document).on('click', 'a[name="button-edit-family"]', function () { //console.log("點擊修改家人"); var deleteButton = $(this).closest('.form-house').find($('.delete-button')); if (deleteButton.is(':visible')) { deleteButton.fadeOut(); $(this).css({ 'background-color': '#3982F7', 'transition': 'all 0.3s' }).text('編輯'); } else { deleteButton.hide().fadeIn(); $(this).css({ 'background-color': '#EBA900', 'transition': 'all 0.3s' }).text('編輯完成'); } }); //點擊刪除整戶 $(document).on('click', 'a[name="button-delete-family"]', function () { var form_house_wrapper = ".form-buy-content"; if ($('#modal_family_data').is(':visible')) { form_house_wrapper = "#modal_family_data"; } if ($(this).closest(form_house_wrapper).find('.form-house').length > 1) { $(this).closest('.form-house').fadeOut(200, function () { var newFamilyCount = $(form_house_wrapper).find('.form-house').length; $(form_house_wrapper).find('a[name="button-new-family"]').text("新增第" + numberToChinese(newFamilyCount) + "戶"); $(this).remove(); $(form_house_wrapper).find('.form-house').each(function (i) { var houseNumber = i + 1; $(this).find('.input label:first').children('label').children('label:first').text('第' + numberToChinese(houseNumber) + '戶'); }); calculateTotalPrice(); }); } else { alert('請登記至少一戶表單。'); } }); //點擊刪除家人 $(document).on('click', 'a[name="button-delete-family-member"]', function () { $(this).closest('.input-wrapper').fadeOut(200, function () { $(this).remove(); calculateTotalPrice(); }); }); //點擊設為戶長 $(document).on('click', 'a[name="btn_household_head"]', function () { $(this).closest('.form-house').find('a[name="btn_household_head"]').text('設為戶長').css('background-color', '#aaa'); $(this).text('戶長').css('background-color', '#eba900'); }); //點擊整戶點燈 $(document).on('click', 'a[select-button="family-light"]', function () { $('#modal_select_light input[type="checkbox"]:checked').click(); if ($(this).data("data-id") != undefined && $(this).data("data-id") != "") { var idList = $(this).data("data-id"); // assuming data-id="id1,id2,id3" var ids = idList.split(","); // split the string into an array ids.forEach(function (id) { $('#checkbox_' + id).click(); }); } else { $('#modal_select_light input[type="checkbox"]:checked').click(); } $('#modal_select_light').data('form-house-id', $(this).closest('.form-house').attr('id')); $('#modal_select_light').find('.input:has(.product-category:contains("0"))').hide(); $('#modal_select_light').find('.input:has(.product-category:contains("1"))').show(); $('#modal_select_light').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }); //點擊單人點燈 $(document).on('click', 'a[select-button="member-light"]', function () { $('#modal_select_light input[type="checkbox"]:checked').click(); if ($(this).data("data-id") != undefined && $(this).data("data-id") != "") { var idList = $(this).data("data-id"); // assuming data-id="id1,id2,id3" var ids = idList.split(","); // split the string into an array ids.forEach(function (id) { $('#checkbox_' + id).click(); }); } $('#modal_select_light').data('form-house-id', $(this).closest('div[form-input="family-member"]').attr('id')); $('#modal_select_light').find('.input:has(.product-category:contains("1"))').hide(); $('#modal_select_light').find('.input:has(.product-category:contains("0"))').show(); $('#modal_select_light').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }); //點擊確認燈種 $('#button_select_light').click(function () { $(this).closest('.modal').fadeOut(200); $('body').css('overflow', 'auto'); var selectedLightsName = []; var selectedLightsId = []; $('#modal_select_light input[type="checkbox"]:checked').each(function () { var id = $(this).data('id'); var name = $(this).data('name'); selectedLightsId.push(id); selectedLightsName.push(name); }); var formHouseId = $('#modal_select_light').data('form-house-id'); //selectedLights not empty if (selectedLightsName.length > 0) { $('#' + formHouseId + ' .input-yellow:first .select-button').data('data-id', selectedLightsId.join(',')); $('#' + formHouseId + ' .input-yellow:first .select-button').html('
' + selectedLightsName.join(',') + '
'); $('#' + formHouseId + ' .input-yellow:first').css('border-color', '#EBA900'); //reset selected lights $('#modal_select_light input[type="checkbox"]:checked').click(); } else { $('#' + formHouseId + ' .input-yellow:first .select-button').data('data-id', ''); $('#' + formHouseId + ' .input-yellow:first .select-button').html('
請選擇燈種
'); $('#' + formHouseId + ' .input-yellow:first').css('border-color', '#F9E5B2'); } calculateTotalPrice(); }); //點擊生日 $(document).on('click', 'a[select-button="date"]', function () { //重置生日 $('#modal_select_date input[type="radio"]:first').click(); $('#input_date_year, #input_date_month, #input_date_day, #input_date_time').val(''); //console.log($(this).data('data-date')); //設定生日 if ($(this).data('data-date') != undefined && $(this).data('data-date') != '') { var date = $(this).data('data-date'); var dateType = date.split(','); $('#modal_select_date input[type="radio"]:last').click(); $('#input_date_year').val(dateType[0]); $('#input_date_month').val(dateType[1]); $('#input_date_day').val(dateType[2]); $('#input_date_time').val(dateType[3]); } $('#modal_select_date').data('form-house-id', $(this).closest('div[form-input="family-member"]').attr('id')); $('#modal_select_date').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }); //點擊確認生日 $('#button_select_date').click(function () { var year = parseInt($('#input_date_year').val()); var month = parseInt($('#input_date_month').val()); var day = parseInt($('#input_date_day').val()); var currentYear = new Date().getFullYear(); // 驗證年份是否小於現在的年份 if (isNaN(year) || (year + 1911) > currentYear) { alert('請輸入正確的年份'); return; } // 驗證月份是否為數字且在 1~12 之間 if (isNaN(month) || month < 1 || month > 12) { alert('請輸入正確的月份'); return; } // 驗證日期是否為數字且在 1~31 之間 if (isNaN(day) || day < 1 || day > 31) { alert('請輸入正確的日期'); return; } $(this).closest('.modal').fadeOut(200); $('body').css('overflow', 'auto'); var dateType = $('#modal_select_date input[type="radio"]:checked').next('.form-radio-label').text(); if (dateType == '國曆') { var solar = Solar.fromYmd(year + 1911, month, day); var lunar = solar.getLunar(); year = lunar.getYear() - 1911; month = lunar.getMonth(); day = lunar.getDay(); } var time; if ($('#input_date_time').val() == '') { time = '吉'; } else { time = getShiChenFromHour($('#input_date_time').val()); } var date_chinese = year + '年' + month + '月' + day + '日' + ' ' + time + '時'; var formHouseId = $('#modal_select_date').data('form-house-id'); var form_house_wrapper = ".form-buy-content"; //if modal_select_date is visible if ($('#modal_family_data').is(':visible')) { form_house_wrapper = "#modal_family_data"; } //if modal_order_edit is visible if ($('#modal_order_edit').is(':visible')) { form_house_wrapper = "#modal_order_edit"; } $(form_house_wrapper + ' #' + formHouseId + ' a[select-button="date"]').data('data-date', year + ',' + month + ',' + day + ',' + $('#input_date_time').val()); $(form_house_wrapper + ' #' + formHouseId + ' a[select-button="date"]').html('
' + date_chinese + '
'); $(form_house_wrapper + ' #' + formHouseId + ' a[select-button="date"]').parent().css('border-color', '#BBBBBB'); }); function getShiChenFromHour(hour) { const shiChenNames = [ "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" ]; const shiChenIndex = Math.floor((parseInt(hour) + 1) / 2) % 12; const shiChenName = shiChenNames[shiChenIndex]; return shiChenName; } //加購香油 $("#amount_add_buy").change(function () { calculateTotalPrice(); }); calculateTotalPrice(); //總計計算 function calculateTotalPrice() { var totalPrice = 0; var productData = {}; $('.input-yellow .select-button').each(function () { var selectedLightsId = $(this).data('data-id'); if (selectedLightsId != undefined && selectedLightsId != '') { var selectedLightsIdArray = selectedLightsId.split(','); selectedLightsIdArray.forEach(function (id) { totalPrice += parseInt($('#checkbox_' + id).attr('data-price')); var name = $('#checkbox_' + id).data('name'); var price = $('#checkbox_' + id).data('price'); if (productData.hasOwnProperty(name)) { productData[name].price += parseInt(price); productData[name].count++; } else { productData[name] = { price: parseInt(price), count: 1 }; } }); } }); var addBuy = parseInt($('#amount_add_buy').val() ? $('#amount_add_buy').val() : 0); totalPrice += addBuy; $('#label_amount_buy, #label_amount_pay').text("NT$ " + totalPrice); totalPayAmount = totalPrice; // 顯示商品名稱及價格 var html = ''; for (var name in productData) { if (productData.hasOwnProperty(name)) { var price = productData[name].price; var count = productData[name].count; html += '
'; html += '
' + name + ' * ' + count + '
'; html += '
NT$ ' + price + '
'; html += '
'; } } // 加入加購香油 if (addBuy > 0) { html += '
'; html += '
加購香油
'; html += '
NT$ ' + addBuy + '
'; html += '
'; } // 加入分隔線 if (html != '') { html += '
'; } // 加入商品總計 html += '
'; html += '
總計
'; html += '
NT$ ' + totalPrice + '
'; html += '
'; $('#modal_confirm_buy .modal-form .input-wrapper').html(html); } //點擊點燈確認 $("#button-confirm-buy").click(function () { check_order_data(); if(isChecked){ $('#modal_confirm_buy').hide().fadeIn(200); $('body').css('overflow', 'hidden'); }else{ $('html, body').animate({ scrollTop: $('.section_buy').offset().top }, 500); } }); //點擊前往付款 $("#button_go_pay").click(function () { $('#modal_confirm_buy').fadeOut(200); $('body').css('overflow', 'auto'); //scroll to .section_pay $('html, body').animate({ scrollTop: $('.section_pay').offset().top }, 500); }); } var isChecked = false; function check_order_data() { isChecked = false; //檢查總金額是否為0 if (totalPayAmount == 0) { alert('請選擇燈種。'); return; } //地址必填 var isComplete = true; $('.section_buy input[text-input="address"]').each(function () { //console.log("地址:" + $(this).parent().css('border-color')); if ($(this).parent().css('border-color') == 'rgb(238, 238, 238)') { isComplete = false; } }); //家人資料必填 $('.section_buy a[select-button="member-light"]').each(function () { //console.log("單人點燈:" + $(this).parent().css('border-color')); //if ($(this).parent().css('border-color') == 'rgb(235, 169, 0)') { $(this).parent().parent().find('.input').each(function () { if ($(this).css('border-color') == 'rgb(238, 238, 238)') { isComplete = false; } }); //} }); /*$('.section_buy').find('.input, .input-textarea').each(function () { //console.log("地址"+$(this).css('border-color')); if ($(this).css('border-color') == 'rgb(238, 238, 238)') { isComplete = false; } });*/ if (!isComplete) { alert('請填寫完整家人資料。'); return; } var noHead = false; //每一戶都要有戶長 $('.section_buy .form-house').each(function () { var isComplete = false; $(this).find('a[name="btn_household_head"]').each(function () { if ($(this).text() == '戶長' || $(this).css('display') == 'none') { isComplete = true; } }); if (!isComplete) { alert('請選擇戶長。'); noHead = true; return; } }); if(noHead){ return; } isChecked = true; } var totalPayAmount = 0; //銷售頁-結帳 function bindPayEvents() { //點擊送出 $('#button-send-pay').click(function () { $('#button-send-pay').css('pointer-events', 'none'); setTimeout(function() { $('#button-send-pay').css('pointer-events', 'auto'); }, 4000); check_order_data(); if(!isChecked){ $('html, body').animate({ scrollTop: $('.section_buy').offset().top }, 500); return; } if ($('#input_pay_name').val() == '') { alert('請輸入收件人。'); return; } if ($('#input_pay_email').val() == '') { alert('請輸入Email。'); return; } if ($('#input_pay_phone').val() == '') { alert('請輸入電話。'); return; } var order_detail = []; $('a[select-button="family-light"], a[select-button="member-light"]').each(function () { //console.log($(this).data("data-id")); if ($(this).data("data-id") != undefined && $(this).data("data-id") != '') { var idList = $(this).data("data-id"); // assuming data-id="id1,id2,id3" var ids = idList.split(","); // split the string into an array var name = $(this).parent().parent().find('input[text-input="name"]').val(); var gender = $(this).parent().parent().find('input[type="radio"]:checked').val(); var birthday = $(this).parent().parent().find('a[select-button="date"] div').text(); var address = $(this).closest('.form-house').find('input[text-input="address"]').val(); if($(this).parent().parent().find('a[name="btn_household_head"]').css('display') == 'none'){ var is_household_head = '1'; }else{ var is_household_head = $(this).parent().parent().find('a[name="btn_household_head"]').text() == '戶長' ? '1' : '0'; } if (birthday === "") { birthday = null; } ids.forEach(function (id) { order_detail.push({ product_id: id, name: name, gender: gender, birthday: birthday, address: address, is_household_head: is_household_head }); }); //if有整戶點燈要幫沒有點個人燈的家人產生order_product if ($(this).attr('select-button') == 'family-light') { $(this).parent().parent().parent().find('div[form-input="family-member"]').each(function (i) { //if select-button="member-light" = undefined //console.log($(this).find('a[select-button="member-light"]').data("data-id")); if ($(this).find('a[select-button="member-light"]').data("data-id") == undefined || $(this).find('a[select-button="member-light"]').data("data-id") == '') { var name = $(this).find('input[text-input="name"]').val(); var gender = $(this).find('input[type="radio"]:checked').val(); var birthday = $(this).find('a[select-button="date"] div').text(); var address = $(this).closest('.form-house').find('input[text-input="address"]').val(); if($(this).find('a[name="btn_household_head"]').css('display') == 'none'){ var is_household_head = '1'; }else{ //console.log($(this).find('a[name="btn_household_head"]').text()); var is_household_head = $(this).find('a[name="btn_household_head"]').text() == '戶長' ? '1' : '0'; } if (birthday === "") { birthday = null; } product_id = null; order_detail.push({ product_id: product_id, name: name, gender: gender, birthday: birthday, address: address, is_household_head: is_household_head }); } }); } } }); //console.log(JSON.stringify(order_detail)); //呼叫付款API,跳轉至付款頁面 var orderData = { type: 'create_order', total_amount: totalPayAmount, name: $('#input_pay_name').val(), email: $('#input_pay_email').val(), phone: $('#input_pay_phone').val(), note: $('#input_pay_note').val(), temple_id: temple_id, order_detail: JSON.stringify(order_detail) }; //console.log(orderData); $.ajax({ url: 'api/order.php', type: 'POST', data: orderData, dataType: "json", success: function (data) { //console.log(data); //跳轉至付款頁面 var CardPayURL = data.CardParam.CardPayURL; window.location.href = CardPayURL; }, error: function () { alert('Failed to send pay request2.'); } }); }); //從付款頁面跳轉回來 if (payToken != '0') { //console.log('payToken:' + payToken); loadReceipt('pay_result', payToken); if(getCookie('email') != ""){ setTimeout(function () { loadOrderData(); }, 1000); } //下載收據 $('#button_download_receipt').click(function () { /*var value = $("#print_parts").html(); var printPage = window.open("", "Printing...", 'scrollbars=1,width=900,height=900top=' + (screen.height - 700) / 2 + ',left=' + (screen.width - 700) / 2); printPage.document.open(); //printPage.document.write("訂單收據_蘆洲湧蓮寺
"); printPage.document.write("訂單收據_蘆洲湧蓮寺"); //printPage.document.write("
");
            printPage.document.write(value);
            //printPage.document.write("
"); printPage.document.close("
");*/ $("#print_parts").show(); var element = document.getElementById('print_parts'); html2canvas(element).then(canvas => { var imgData = canvas.toDataURL('image/jpeg', 1.0); var pdf = new jsPDF('p', 'mm', 'a4'); pdf.addImage(imgData, 'JPEG', 0, 0, 210, 297); pdf.save('2024線上點燈_訂單收據_蘆洲湧蓮寺.pdf'); $("#print_parts").hide(); }).catch(error => { console.error('Error generating PDF:', error); $("#print_parts").hide(); }); }); //繼續點燈 $('#button_close_pay_result').click(function () { $('#modal_pay_result').fadeOut(200); }); } } //----------Modal----------- function bindModalEvents() { bindLoginAndSignUpModalEvents(); bindMemberModalEvents(); bindOrderModalEvents(); } //Modal-登入註冊 function bindLoginAndSignUpModalEvents() { const toggleButton = $(".toggle_password"); //點擊顯示/隱藏密碼 toggleButton.click(function() { const passwordInput = $(this).parent().find("input"); if (passwordInput.attr("type") === "password") { passwordInput.attr("type", "text"); $(this).find('i').removeClass('fa-eye').addClass('fa-eye-slash'); } else { passwordInput.attr("type", "password"); $(this).find('i').removeClass('fa-eye-slash').addClass('fa-eye'); } }); //點擊忘記密碼 $('#button_forget_password').click(function () { $('#modal_log_in').fadeOut(200); $('#modal_forget_password').hide().fadeIn(200); }); //點擊加入會員前往註冊 $('#button_go_sign_up').click(function () { $('#modal_log_in').fadeOut(200); $('#modal_sign_up').hide().fadeIn(200); }); //點擊回到登入頁 $('#button_back_log_in').click(function () { $('#modal_forget_password').fadeOut(200); $('#modal_log_in').hide().fadeIn(200); }); //點擊回到登入 $('#button_go_log_in').click(function () { $('#modal_sign_up').fadeOut(200); $('#modal_log_in').hide().fadeIn(200); }); //點擊回到註冊 $('#button_go_sign_up').click(function () { $('#modal_validate_email').fadeOut(200); $('#modal_sign_up').hide().fadeIn(200); }); //點擊直接前往點燈 $('#button_go_buy').click(function () { $('#modal_sign_up_success').fadeOut(200); }); //點擊加入會員 var validateCode = ''; $('#button_sign_up').click(function () { //檢查email格式 if ($('#input_sign_up_email').val() == '') { alert('請輸入email。'); return; } //密碼不得少於4碼 if ($('#input_sign_up_password').val().length < 4) { alert('密碼不得少於4碼,請重新輸入。'); return; } //比對密碼 if ($('#input_sign_up_password').val() != $('#input_sign_up_password_confirm').val()) { alert('密碼不相符,請重新輸入。'); return; } //呼叫驗證信API var signUpData = { action: 'signUp', email: $('#input_sign_up_email').val() } $.ajax({ url: 'api/email.php', type: 'POST', data: signUpData, success: function (data) { //console.log(data); if (JSON.parse(data).status == 'success') { $('#modal_sign_up').fadeOut(200); $('#modal_validate_email').hide().fadeIn(200); //儲存驗證碼 validateCode = JSON.parse(data).number; } else { //驗證信失敗 //alert(JSON.parse(data).message); alert('驗證信失敗,請檢查email是否正確。'); } }, error: function (data) { alert('驗證信失敗,請重新輸入。'); } }); }); //點擊完成註冊 $('#button_validate').click(function () { //比對驗證碼 if ($('#input_validate_code').val() != validateCode) { alert('驗證碼錯誤,請重新輸入。'); return; } if($('#input_sign_up_e_message').prop('checked')){ var e_message = '0'; }else{ var e_message = '1'; } //驗證註冊資料 var signUpData = { action: 'signUp', email: $('#input_sign_up_email').val(), password: $('#input_sign_up_password').val(), e_message: e_message, temple_id: temple_id }; $.ajax({ url: 'api/user.php', type: 'POST', data: signUpData, success: function (data) { $('#modal_validate_email').fadeOut(200); $('#modal_sign_up_success').hide().fadeIn(200); $('#nav_default').hide(); $('#nav_logged_in').css('display', 'flex'); email = $('#input_sign_up_email').val(); password = $('#input_sign_up_password').val(); $('#input_sign_up_email').val(''); $('#input_sign_up_password').val(''); //登入cookie setCookie('email', email, 30); setCookie('password', password, 30); $('#input_pay_email').val(email); loadFamilyData('#modal_family_data .form-house-wrapper'); loadOrderData(); }, error: function (data) { //註冊失敗 alert('註冊失敗,請重新輸入。'); } }); }); //重寄驗證信 $('#button_resend_validate').click(function () { //點擊加入會員 $('#button_sign_up').click(); }); var loginErrorCount = 0; //點擊登入 $('#button_log_in').click(function () { //驗證登入資料 var loginData = { action: 'logIn', email: $('#input_log_in_email').val(), password: $('#input_log_in_password').val() }; $.ajax({ url: 'api/user.php', type: 'POST', data: loginData, success: function (data) { //console.log(data); if (data.status == 'success') { //登入成功 $('#modal_log_in').fadeOut(200); $('body').css('overflow', 'auto'); $('#nav_default').hide(); $('#nav_logged_in').css('display', 'flex'); email = $('#input_log_in_email').val(); password = $('#input_log_in_password').val(); $('#input_log_in_email').val(''); $('#input_log_in_password').val(''); //登入cookie setCookie('email', email, 30); setCookie('password', password, 30); $('#input_pay_email').val(email); loadFamilyData('#modal_family_data .form-house-wrapper'); loadOrderData(); loginErrorCount = 0; } else { loginErrorCount++; //登入失敗 //密碼錯誤五次 if (loginErrorCount >= 5) { alert('密碼錯誤5次,請重新設定密碼。'); $('#button_forget_password').click(); $('#input_log_in_email').val(''); $('#input_log_in_password').val(''); loginErrorCount = 0; }else { alert('帳號或密碼錯誤。'); $('#input_log_in_password').val(''); } } } }); }); //點擊前往重設密碼 $('#button_go_reset').click(function () { //console.log('reset'); //檢查email格式 /*var email = $('#input_forget_password_email').val(); if (!email.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)) { alert('請輸入正確的email格式。'); return; }*/ //呼叫重設密碼API var resetData = { action: 'resetPassword', email: $('#input_forget_password_email').val() }; $.ajax({ url: 'api/email.php', type: 'POST', data: resetData, success: function (data) { //console.log(data); //console.log(JSON.parse(data).url); if (JSON.parse(data).status == 'success') { $('#button_go_reset').css('background-color', '#A0A0A0'); $('#button_go_reset').text('請前往信箱查看驗證信'); $('#button_go_reset').attr('disabled', true); } else { //驗證信失敗 alert(JSON.parse(data).message); } }, error: function (data) { alert('重設密碼失敗,請重新輸入。'); } }); }); //點擊重寄驗證信 $('#button_resend_reset').click(function () { //點擊重設密碼 $('#button_go_reset').attr('disabled', false); $('#button_go_reset').click(); }); //判斷跳轉URL,顯示重設密碼頁面 var url = window.location.href; //console.log(url); if (url.indexOf('token') > -1) { $('#modal_forget_password').fadeOut(200); $('#modal_reset_password').hide().fadeIn(200); email = url.split('?')[1].split('&')[0].split('=')[1]; token = url.split('?')[1].split('&')[1].split('=')[1]; } //點擊重設密碼 $('#button_reset_confirm').click(function () { if($('#input_reset_password').val() != $('#input_reenter_password').val()){ alert('請確認密碼是否相同。'); return; } if(getCookie('email') != ""){ token = "123456"; } //驗證重設密碼資料 var resetData = { password: $('#input_reset_password').val(), email: email, token: token, action: 'resetPassword', temple_id: temple_id }; $.ajax({ url: 'api/user.php', type: 'POST', data: resetData, success: function (data) { if(data.status == 'success'){ //重設密碼成功 $('#modal_reset_password').fadeOut(200); password = $('#input_reset_password').val(); setCookie('password', password, 30); $('#input_reset_password').val(''); $('#input_reenter_password').val(''); //reset url window.history.pushState({}, 0, window.location.href.split('?')[0]); } else { //重設密碼失敗 alert('重設密碼失敗,請重新輸入。'); } } }); }); } //Modal-會員 function bindMemberModalEvents() { //點擊會員資料 $('#nav-account-data').click(function () { $('#input_account_data_email').val(email); $('#input_account_data_password').val(password); //取得密碼 /*var accountData = { action: 'getAccountData', email: email }; $.ajax({ url: 'api/user.php', type: 'POST', data: accountData, success: function (data) { //console.log(data); $('#input_account_data_password').val(data.password); } }); */ $('#modal_account_data').hide().fadeIn(200); }); //點擊修改密碼 $('#button_change_password').click(function () { $('#modal_account_data').fadeOut(200); $('#modal_reset_password').hide().fadeIn(200); }); //點擊登出 $('#button_log_out').click(function () { $('#nav_default').css('display', 'flex'); $('#nav_logged_in').hide(); $('#modal_account_data').fadeOut(200); //delete cookie setCookie('email', '', 0); setCookie('password', '', 0); //reload page location.reload(); }); //點擊建立家人資料 $('#button_go_family_data').click(function () { $('#modal_sign_up_success').fadeOut(200); $('#modal_family_data').hide().fadeIn(200); }); //點擊儲存家人資料 $('#button_save_family_data').click(function () { //檢查填寫完整 var isComplete = true; $('#modal_family_data .input').each(function () { //console.log($(this).css('border-color')); if ($(this).css('border-color') == 'rgb(238, 238, 238)') { isComplete = false; } }); if (!isComplete) { alert('請填寫完整'); return; } //儲存家人資料 var family_data_detail = []; $('#modal_family_data div[form-input="family-member"]').each(function () { var name = $(this).find('input[text-input="name"]').val(); var gender = $(this).find('input[type="radio"]:checked').val(); var birthday = $(this).find('a[select-button="date"] div').text(); var address = $(this).closest('.form-house').find('input[text-input="address"]').val(); if($(this).find('a[name="btn_household_head"]').css('display') == 'none'){ var is_household_head = '1'; }else{ var is_household_head = $(this).find('a[name="btn_household_head"]').text() == '戶長' ? '1' : '0'; } if (birthday === "") { birthday = null; } family_data_detail.push({ name: name, gender: gender, birthday: birthday, address: address, is_household_head: is_household_head }); }); var familyData = { type: 'save_family_member', email: email, family_data_detail: JSON.stringify(family_data_detail) }; $.ajax({ url: 'api/familyMember.php', type: 'POST', data: familyData, success: function (data) { //console.log(data); $('#modal_family_data').fadeOut(200); $('body').css('overflow', 'auto'); } }); }); } //Modal-訂單 function bindOrderModalEvents() { //loadOrderData處理 } //-------輔助functions-------- function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 *1000)); var expires = "expires=" + d.toGMTString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; //console.log(document.cookie); } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); //console.log(decodedCookie); var ca = decodedCookie.split(';'); //console.log(ca); for (var i = 0; i < ca.length; i++) { var c = ca[i]; //console.log(c); while (c.charAt(0) == ' ') { c = c.substring(1); //console.log(c); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; //console.log(c); } //數字轉中文 function numberToChinese(number) { var chineseNumber = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十', '二十一', '二十二', '二十三', '二十四', '二十五', '二十六', '二十七', '二十八', '二十九', '三十']; return chineseNumber[number]; } function formatNumber(num) { if (num === "" || num === null) { return 0; } return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,'); } // format number with commas and dollar sign function formatCurrency(num) { return "$" + formatNumber(num); }