Untitled

mail@pastecode.io avatar
unknown
plain_text
3 months ago
12 kB
8
No Index
Never

add_action('wp_head', function(){
	?>
	<script>
	jQuery(document).ready(function(){
		setTimeout(function(){
			jQuery('body').off('click', '.b2bking_offer_download');
			jQuery('body').on('click','.b2bking_offer_download', function(){

				var buttondownload = jQuery(this);
				var initialclicktime = Date.now();

				// replace icon with loader
				jQuery('<img class="b2bking_loader_icon_button" src="'+b2bking_display_settings.loadertransparenturl+'">').insertBefore(jQuery(this).find('.b2bking_myaccount_individual_offer_bottom_line_button_icon'));
				jQuery(this).find('.b2bking_myaccount_individual_offer_bottom_line_button_icon').css('display','none');

				var logoimg = b2bking_display_settings.offers_logo;
				var offernr = jQuery(this).parent().parent().parent().find('#b2bking_offer_id').val();

				// if images are lazy-loaded, replace
				let logodatasrc = jQuery('#b2bking_img_logo').attr('data-src');
				if (logodatasrc !== undefined && logodatasrc !== ''){
					jQuery('#b2bking_img_logo').attr('src', logodatasrc);
				}

				jQuery('.b2bking_hidden_img').each(function(i){
					let logodatasrcth = jQuery(this).attr('data-src');
					if (logodatasrcth !== undefined && logodatasrcth !== ''){
						jQuery(this).attr('src', logodatasrcth);
					}
				});


				var imgToExport = document.getElementById('b2bking_img_logo');
				var canvas = document.createElement('canvas');
			    canvas.width = imgToExport.width; 
			    canvas.height = imgToExport.height; 
			    canvas.getContext('2d').drawImage(imgToExport, 0, 0);
					var dataURL = canvas.toDataURL("image/png"); 

					// get all thumbnails 
					var thumbnails = [];
					var thumbnr = 0;
					
					if (parseInt(b2bking_display_settings.offers_images_setting) === 1){
			  		// get field;
			  		let field = jQuery(this).parent().parent().parent().find('.b2bking_offers_thumbnails_str').val();
			  		let itemsArray = field.split('|');
			  		// foreach condition, add condition, add new item
			  		itemsArray.forEach(function(item){
			  			if (item !== 'no'){
			  				var idimg = 'b2bking_img_logo'+thumbnr+offernr;
								var imgToExport = document.getElementById(idimg);
								var canvas = document.createElement('canvas');
						        canvas.width = imgToExport.width; 
						        canvas.height = imgToExport.height; 
						        canvas.getContext('2d').drawImage(imgToExport, 0, 0);
						  		let datau = canvas.toDataURL("image/png"); 
						  		thumbnr++;
						  		thumbnails.push(datau);
			  			} else {
			  				thumbnails.push('no');
			  			}
			  		});
			  	}

			  	thumbnr = 0;
				var customtext = jQuery(this).parent().parent().parent().find('.b2bking_myaccount_individual_offer_custom_text').text();
				customtext = customtext.replace('\t','').trim();

				var customtextvendor = jQuery(this).parent().parent().parent().find('.b2bking_myaccount_individual_offer_custom_text_vendor').text();
				customtextvendor = customtextvendor.replace('\t','').trim();


				var customtexttitle = b2bking_display_settings.offer_custom_text;
				if (customtext.length === 0 && customtextvendor.length === 0){
					customtexttitle = '';
				}

				


				var bodyarray = [];
				bodyarray.push([{ text: b2bking_display_settings.item_name, style: 'tableHeader', margin: [7, 7, 7, 7] }, { text: b2bking_display_settings.item_quantity, style: 'tableHeader', margin: [7, 7, 7, 7] }, { text: b2bking_display_settings.unit_price, style: 'tableHeader', margin: [7, 7, 7, 7] }, { text: b2bking_display_settings.item_subtotal, style: 'tableHeader', margin: [7, 7, 7, 7] }]);

				// get values
				jQuery(this).parent().parent().parent().find('.b2bking_myaccount_individual_offer_element_line').each(function(i){
					let tempvalues = [];

					if (parseInt(b2bking_display_settings.offers_images_setting) === 1){
						if (thumbnails[thumbnr] !== 'no'){
							// add name + images
							tempvalues.push([{ text: jQuery(this).find('.b2bking_myaccount_individual_offer_element_line_item_name').first().text(), margin: [7, 7, 7, 7] },{
									image: thumbnails[thumbnr],
									width: 40,
									margin: [15, 5, 5, 5]
								}]);
						} else {
							// add name only
							tempvalues.push({ text: jQuery(this).find('.b2bking_myaccount_individual_offer_element_line_item_name').first().text(), margin: [7, 7, 7, 7] });
						}
						thumbnr++;
					} else {
						// add name only
						tempvalues.push({ text: jQuery(this).find('.b2bking_myaccount_individual_offer_element_line_item_name').first().text(), margin: [7, 7, 7, 7] });
					}


					tempvalues.push({ text: jQuery(this).find('.b2bking_myaccount_individual_offer_element_line_item:nth-child(2)').text(), margin: [7, 7, 7, 7] });
					tempvalues.push({ text: jQuery(this).find('.b2bking_myaccount_individual_offer_element_line_item:nth-child(3)').text(), margin: [7, 7, 7, 7] });
					tempvalues.push({ text: jQuery(this).find('.b2bking_myaccount_individual_offer_element_line_item:nth-child(4)').text(), margin: [7, 7, 7, 7] });
					bodyarray.push(tempvalues);
				});



				bodyarray.push(['','',{ text: b2bking_display_settings.offer_total+': ', margin: [7, 7, 7, 7], bold: true },{ text: jQuery(this).parent().parent().parent().find('.b2bking_myaccount_individual_offer_bottom_line_total strong').text(), margin: [7, 7, 7, 7], bold: true }]);

				let imgobj = {
							image: dataURL,
							width: parseInt(b2bking_display_settings.offerlogowidth),
							margin: [0, parseInt(b2bking_display_settings.offerlogotopmargin), 0, 30]
						};


				var contentarray =[
						{ text: b2bking_display_settings.offer_details, fontSize: 14, bold: true, margin: [0, 20, 0, 20] },
						{
							style: 'tableExample',
							table: {
								headerRows: 1,
								widths: ['*', '*', '*', '*'],
								body: bodyarray,
							},
							layout: 'lightHorizontalLines'
						},
						{ text: b2bking_display_settings.offer_go_to, link: b2bking_display_settings.offers_endpoint_link, decoration: 'underline', fontSize: 13, bold: true, margin: [0, 20, 40, 8], alignment:'right' },
						{ text: customtexttitle, fontSize: 14, bold: true, margin: [0, 50, 0, 8] },
						{ text: customtextvendor, fontSize: 12, bold: false, margin: [0, 8, 0, 8] },
						{ text: customtext, fontSize: 12, bold: false, margin: [0, 8, 0, 8] },

					];

				var mention_offer_requester = b2bking_display_settings.mention_offer_requester;

				var custom_content_after_logo_left_1 = b2bking_display_settings.custom_content_after_logo_left_1;
				var custom_content_after_logo_left_2 = b2bking_display_settings.custom_content_after_logo_left_2;
				var custom_content_after_logo_center_1 = b2bking_display_settings.custom_content_after_logo_center_1;
				var custom_content_after_logo_center_2 = b2bking_display_settings.custom_content_after_logo_center_2;
				if (custom_content_after_logo_left_1.length !== 0){
					let custom_content = { text: custom_content_after_logo_left_1, fontSize: 12, bold: true, margin: [0, 0, 0, 20], alignment:'left' };
					contentarray.unshift(custom_content);
				}

				if (mention_offer_requester.length !== 0){
					let custom_content = { text: mention_offer_requester + jQuery(this).data('customer'), fontSize: 14, bold: true, margin: [0, 12, 0, 12], alignment:'left' };
					contentarray.unshift(custom_content);
				}
				
				if (custom_content_after_logo_left_2.length !== 0){
					let custom_content = { text: custom_content_after_logo_left_2, fontSize: 12, bold: true, margin: [0, 12, 0, 12], alignment:'left' };
					contentarray.unshift(custom_content);
				}
				if (custom_content_after_logo_center_1.length !== 0){
					let custom_content = { text: custom_content_after_logo_center_1, fontSize: 12, bold: true, margin: [0, 0, 0, 20], alignment:'center' };
					contentarray.unshift(custom_content);
				}
				if (custom_content_after_logo_center_2.length !== 0){
					let custom_content = { text: custom_content_after_logo_center_2, fontSize: 12, bold: true, margin: [0, 12, 0, 12], alignment:'center' };
					contentarray.unshift(custom_content);
				}

				if (logoimg.length !== 0){
					contentarray.unshift(imgobj);
				}

				var custom_content_center_1 = b2bking_display_settings.custom_content_center_1;
				var custom_content_center_2 = b2bking_display_settings.custom_content_center_2;
				var custom_content_left_1 = b2bking_display_settings.custom_content_left_1;
				var custom_content_left_2 = b2bking_display_settings.custom_content_left_2;
				if (custom_content_center_1.length !== 0){
					let custom_content = { text: custom_content_center_1, fontSize: 12, bold: true, margin: [0, 0, 0, 20], alignment:'center' };
					contentarray.unshift(custom_content);
				}
				if (custom_content_center_2.length !== 0){
					let custom_content = { text: custom_content_center_2, fontSize: 12, bold: true, margin: [0, 12, 0, 12], alignment:'center' };
					contentarray.unshift(custom_content);
				}
				if (custom_content_left_1.length !== 0){
					let custom_content = { text: custom_content_left_1, fontSize: 12, bold: true, margin: [0, 0, 0, 20], alignment:'left' };
					contentarray.unshift(custom_content);
				}
				if (custom_content_left_2.length !== 0){
					let custom_content = { text: custom_content_left_2, fontSize: 12, bold: true, margin: [0, 12, 0, 12], alignment:'left' };
					contentarray.unshift(custom_content);
				}

				
				var docDefinition = {
					content: contentarray
				};
				

				if(b2bking_display_settings.pdf_download_lang === 'thai'){

					pdfMake.fonts = {
					  THSarabunNew: {
					    normal: 'THSarabunNew.ttf',
					    bold: 'THSarabunNew-Bold.ttf',
					    italics: 'THSarabunNew-Italic.ttf',
					    bolditalics: 'THSarabunNew-BoldItalic.ttf'
					  }
					};

					docDefinition = {
					  content: contentarray,
					  defaultStyle: {
					    font: 'THSarabunNew'
					  }
					}
				}

				if(b2bking_display_settings.pdf_download_lang === 'japanese'){

					pdfMake.fonts = {
					  Noto: {
					    normal: 'Noto.ttf',
					    bold: 'Noto.ttf',
					    italics: 'Noto.ttf',
					    bolditalics: 'Noto.ttf'
					  }
					};

					docDefinition = {
					  content: contentarray,
					  defaultStyle: {
					    font: 'Noto'
					  }
					}
				}

				if(b2bking_display_settings.pdf_download_font !== 'standard'){

					pdfMake.fonts = {
					  Customfont: {
					    normal: b2bking_display_settings.pdf_download_font,
					    bold: b2bking_display_settings.pdf_download_font,
					    italics: b2bking_display_settings.pdf_download_font,
					    bolditalics: b2bking_display_settings.pdf_download_font
					  }
					};

					docDefinition = {
					  content: contentarray,
					  defaultStyle: {
					    font: 'Customfont'
					  }
					}
				}
				

				pdfMake.createPdf(docDefinition).download(b2bking_display_settings.offer_file_name + '.pdf', function() { 

					// set a minimum of 600ms show time for the loader icon

					var finaltime = Date.now();
					var differenceTime = finaltime-initialclicktime;
					var leftToPass = 600-differenceTime;
					if (leftToPass < 1){
						leftToPass = 1; // should not be negative
					}
					setTimeout(function(){
						// replace loader with icon
						jQuery(buttondownload).html('<svg class="b2bking_myaccount_individual_offer_bottom_line_button_icon" xmlns="http://www.w3.org/2000/svg" width="21" height="19" fill="none" viewBox="0 0 23 23" style="display: block;"><path fill="#fff" d="M11.5 1.438a10.063 10.063 0 1 0 0 20.125 10.063 10.063 0 0 0 0-20.125Zm-1.438 14.08L6.47 11.924l1.143-1.143 2.45 2.451 5.326-5.326 1.148 1.14-6.474 6.472Z"></path></svg> PDF');
						jQuery(buttondownload).find('.b2bking_loader_icon_button').css('display','none');
					}, leftToPass);
					

				});
			});
		}, 50);
		
	});
	</script>
	<?php
});
Leave a Comment