HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/amberconcept/wp-content/themes/zeen-child/functions.php20220811a
<?php
/* custom function (do not remove) */
/* ====================================================== */
// for commission page
function get_custom_currency_list(){
	global $wpdb;
	$currency_list = array();
	$result = $wpdb->get_results("SELECT * FROM `custom_currency` WHERE status = 1 ORDER BY id");
		foreach ( $result as $idx=>$currency ) {
			array_push($currency_list,$currency);
		}
	return $currency_list;
}
// for commission page
function get_custom_supplier_list(){
	global $wpdb;
	$supplier_list = array();
	$result = $wpdb->get_results("SELECT * FROM `custom_supplier` WHERE status = 1 ORDER BY id");
		foreach ( $result as $idx=>$supplier ) {
			array_push($supplier_list,$supplier);
		}
	return $supplier_list;
}

// for commission page
function get_custom_vendor_list(){
	global $wpdb;
	$vendor_list = array();
	$result = $wpdb->get_results("SELECT * FROM `custom_vendor` WHERE status = 1 ORDER BY id");
		foreach ( $result as $idx=>$vendor ) {
			array_push($vendor_list,$vendor);
		}
	return $vendor_list;
}

// for PO pdf
function get_value_from_cover_box_material($key, $field){	
	global $wpdb;
	$result = $wpdb->get_results("SELECT * FROM `custom_lookup_cover_box_material` WHERE hash = '".trim($key)."' LIMIT 1");
	if($result)
		return $result[0]->$field;
	else {
		return "";
	}
}
// for PO pdf
function get_display_binding($size, $orientation, $binding){	
	global $wpdb;	
	$result = $wpdb->get_results("SELECT display_binding FROM `custom_lookup_size_binding_material` WHERE size = '".trim($size)."' AND orientation = '".trim($orientation)."' AND binding = '".trim($binding)."' LIMIT 1");
	if($result)
		return $result[0]->display_binding;
	else {
		return "";
	}
}
// for PO pdf
function get_inner_paper_material($size, $orientation, $binding, $spreads){	
	global $wpdb;	
	if ($spreads <= 23){
		$field = "inner_page_material";	
	} else {
		$field = "inner_page_material2";
	}
	$result = $wpdb->get_results("SELECT `".$field."` FROM `custom_lookup_size_binding_material` WHERE size = '".trim($size)."' AND orientation = '".trim($orientation)."' AND binding = '".trim($binding)."' LIMIT 1");
	if($result)
		return $result[0]->$field;
	else {
		return "";
	}
}
// for PO pdf
function get_display_size($size, $orientation){	
	global $wpdb;	

	$result = $wpdb->get_results("SELECT display_size FROM `custom_lookup_size_binding_material` WHERE size = '".trim($size)."' AND orientation = '".trim($orientation)."' LIMIT 1");
	if($result)
		return $result[0]->display_size;
	else {
		return "";
	}
}
// for PO pdf
function get_lining_material($size, $orientation, $binding) {
	global $wpdb;	
	$result = $wpdb->get_results("SELECT lining_material FROM `custom_lookup_size_binding_material` WHERE size = '".trim($size)."' AND orientation = '".trim($orientation)."' AND binding = '".trim($binding)."' LIMIT 1");
	if($result)
		return $result[0]->lining_material;
	else {
		return "";
	}	
}
// for PO pdf
function get_display_finishing($finishing){
	global $wpdb;	
	$result = $wpdb->get_results("SELECT display_finishing FROM `custom_lookup_finishing` WHERE finishing = '".trim($finishing)."' LIMIT 1");
	if($result)
		return $result[0]->display_finishing;
	else {
		return "";
	}	
}
// for PO pdf
function get_finishing_material($finishing){
	global $wpdb;	
	$result = $wpdb->get_results("SELECT finishing_material FROM `custom_lookup_finishing` WHERE finishing = '".trim($finishing)."' LIMIT 1");
	if($result)
		return $result[0]->finishing_material;
	else {
		return "";
	}	
}
// for PO pdf
function get_display_fonts($fonts){
	global $wpdb;	
	$result = $wpdb->get_results("SELECT display_fonts FROM `custom_lookup_fonts` WHERE fonts = '".trim($fonts)."' LIMIT 1");
	if($result)
		return $result[0]->display_fonts;
	else {
		return "";
	}	
}
// for PO pdf
function get_display_position($position){
	global $wpdb;	
	$result = $wpdb->get_results("SELECT display_position FROM `custom_lookup_position` WHERE position = '".trim($position)."' LIMIT 1");
	if($result)
		return $result[0]->display_position;
	else {
		return "";
	}	
}
// for PO pdf
function get_customer_logo_po($name){
	global $wpdb;		
	$result = $wpdb->get_results("SELECT po FROM `custom_lookup_customer_logo_po` WHERE customer = '".trim($name)."' LIMIT 1");
	if($result)
		return $result[0]->po;
	else {
		return "";
	}	
}

// for PO pdf
function get_customer_logo_remark($name){
	global $wpdb;		
	$result = $wpdb->get_results("SELECT remark FROM `custom_lookup_customer_logo_po` WHERE customer = '".trim($name)."' LIMIT 1");
	if($result)
		return $result[0]->remark;
	else {
		return "";
	}	
}

/* ====================================================== */

function generate_po($order_id){
		
		
	require_once('TCPDF/data/tcpdf_include.php');
	date_default_timezone_set("Asia/Hong_Kong"); 
	
	//$order_id = $_GET['order_id'];
	$order = wc_get_order($order_id);
	//if(!$order) return ;
	$isFotomax = $order->get_user_id()==7?true:false;
	
	// draw header table
	$htmlHeader = '<div id="headerSection">
		<table cellspacing="2" cellpadding="2">
			<tr>
				<td>
					<table id="po_table" cellspacing="1" cellpadding="1">
						<tr>
							<td colspan="2"><h1>PURCHASE ORDER</h1></td>
						</tr>
						<tr>
							<td></td><td></td>
						</tr>
						<tr>					
							<td>DATE:</td><td>'.date('F d, Y', strtotime($order->get_date_created())).'</td>
						</tr>
						<tr>					
							<td>VENDOR NO.:</td><td>Wink Impression</td>
						</tr>
						<tr>					
							<td>ORDER ID:</td><td>PO# '.$order->get_order_number().'</td>					
						</tr>
					</table>
				</td>
				<td></td>
				<td>
					<table id="amber_table" cellspacing="1" cellpadding="1" style="text-align: right;">
						<tr>
							<td><img src="custom/image/Amber.png" width="150"></td>
						</tr>				
						<tr>					
							<td><small>Flat 6A, Kin Ho Industrial Building, Block 1<br>14-24 Au Pui Wan Street, Fotan, NT, HK</small></td>
						</tr>
						<tr>					
							<td><small>Tel: 852-2278 5768<br>Fax: 852-2691 0724<br>Email: cs.hk@amberconcept.com</small></td>
						</tr>				
					</table>
				</td>
			</tr>
		</table>
	</div>';
	
	// draw address table
	$htmlAddress = '<div id="addressSection">
		<table cellspacing="0" cellpadding="0" border="1">
			<tr>
				<td width="30%">
					<table id="vendor_table" cellspacing="1" cellpadding="1">
						<tr style="background-color:#000;color:#FFF">
							<td>Vendor</td>
						</tr>
						<tr>
							<td>Wink Impression</td>
						</tr>
						<tr>
							<td>中國廣東省東莞市樟木頭鎮莞樟東路311號</td>
						</tr>
						<tr>
							<td>Tel: (+86) 076987191122</td>
						</tr>	
						<tr>
							<td>Fax: (+86) 076987782619</td>
						</tr>	
						<tr>
							<td>Email: hongli_pang@w-impression.com</td>
						</tr>	
						<tr>
							<td>Attn: 紅麗</td>
						</tr>																					
					</table>
				</td>  
				<td width="30%">
					<table id="ship_table" cellspacing="1" cellpadding="1">
						<tr style="background-color:#000;color:#FFF">
							<td>Ship To</td>
						</tr>
						<tr>
							<td>Amber Concept Ltd.</td>
						</tr>
						<tr>
							<td>Flat 6A, Blk 1, Kin Ho Industrial Building</td>
						</tr>
						<tr>
							<td>14-24 Au Pui Wan St. Fotan, HK</td>
						</tr>				
						<tr>
							<td>Tel: (852) 2278 5700</td>
						</tr>	
						<tr>
							<td>Fax: (852) 2691 0724</td>
						</tr>	
						<tr>
							<td>Email: sam.lee@amberconcept.com</td>
						</tr>	
						<tr>
							<td>Attn: Sam Lee</td>
						</tr>																					
					</table>
				</td> 
				<td width="40%">
					<table id="other_table" cellspacing="1" cellpadding="1">
						<tr style="background-color:#000;color:#FFF">
							<td colspan="2">Other Information</td>
						</tr>
						<tr>
							<td>Ship Via: </td><td>'.$order->get_shipping_method().'</td>
						</tr>
						<tr>
							<td>Shipment Term: </td><td>FOB</td>
						</tr>
						<tr>
							<td>Payment Term: </td><td>Net 30 Days</td>
						</tr>	
						<tr>
							<td>Request Delivery Date: </td><td>'.($isFotomax?'Fotomax單, 7日內交':'10日內交').'</td>
						</tr>
						<tr>
							<td>Courier: </td><td>Fedex/SF Express/GE-DHL</td>
						</tr>	
						<tr>
							<td>Shippng Document Value: </td><td>US$50 /pc</td>
						</tr>																									
						<tr>
							<td>Weight & Ctn Size: </td><td>Pls see packing list</td>
						</tr>
					</table>
				</td> 				      
			</tr>	
		</table>
	</div>';
	
	// draw footer cell (right)
	$htmlPrice = '
	<table cellspacing="1" cellpadding="1" border="1">
		<tr>
			<td width="70%" align="right" style="background-color:#000;color:#FFF">Sub Total:</td>
			<td width="30%" align="center"></td>					
		</tr>
		<tr>
			<td width="70%" align="right" style="background-color:#000;color:#FFF">Discount:</td>
			<td width="30%" align="center"></td>					
		</tr>
		<tr>
			<td width="70%" align="right" style="background-color:#000;color:#FFF">Sales Tax Rate:</td>
			<td width="30%" align="center"></td>					
		</tr>
		<tr>
			<td width="70%" align="right" style="background-color:#000;color:#FFF">Sales Tax:</td>
			<td width="30%" align="center"></td>					
		</tr>
		<tr>
			<td width="70%" align="right" style="background-color:#000;color:#FFF">Other Cost:</td>
			<td width="30%" align="center"></td>					
		</tr>
		<tr>
			<td width="70%" align="right" style="background-color:#000;color:#FFF">Grand Total:</td>
			<td width="30%" align="center"></td>					
		</tr>
	</table>';
	
	
	// draw date cell (left)
	$htmlDate = '<table id="dateSection" width="100%">
					<tr>
						<td><h1>'.date('F d, Y', strtotime($order->get_date_created())).'</h1></td>
					</tr>
					<tr>
						<td><hr></td>
					</tr>
					<tr>
						<td>Date</td>
					</tr>								
				 </table>';
						 
	// draw sign cell (right)			 
	$htmlSign = '<table id="signSection" width="100%">
					<tr>
						<td><h1>Sam Lee</h1></td>
					</tr>
					<tr>
						<td><hr></td>
					</tr>
					<tr>
						<td>Authorized Signature</td>
					</tr>								
				 </table>';	
	
	// Extend the TCPDF class to create custom Header and Footer
	class MYPDF extends TCPDF {
	
		public $htmlHeader;
		public $htmlAddress;
		public $htmlShipping;
		public $htmlPrice;
		public $htmlDate;
		public $htmlSign;
	
		//Page header
		public function Header() {		
			$this->writeHTML($this->htmlHeader, true, false, false, false, '');		
			$this->Line(10, 38, 200, 38, array('width' => 0.7));	
			$this->writeHTML($this->htmlAddress, true, false, false, false, '');			
		}
	
		// Page footer
		public function Footer() {
			// Position at 60 mm from bottom
			$this->SetY(-60);
			
			$this->SetFillColor(204,204,204);
			$this->SetTextColor(0, 0, 0);
			$this->writeHTMLCell(60, '', 10, 235, $this->htmlShipping, 0, 1, 1, true, 'L', true);		
			
			$this->SetFillColor(255, 255, 255);
			$this->writeHTMLCell(60, '', 140, 235, $this->htmlPrice, 0, 1, 1, true, 'J', true);
			$this->writeHTMLCell(60, '', 10, 265, $this->htmlDate, 0, 1, 1, true, 'J', true);
			$this->writeHTMLCell(60, '', 140, 265, $this->htmlSign, 0, 1, 1, true, 'J', true);	
			
			$this->Line(10, 286, 200, 286, array('width' => 0.3));	
			// Page number
			$this->Cell(205, 20, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'R', 0, '', 0, false, 'T', 'M');
			
		}
	}
	
	// create new PDF document
	$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
	$pdf->htmlHeader = $htmlHeader;
	$pdf->htmlAddress = $htmlAddress;
	$pdf->htmlPrice = $htmlPrice;
	$pdf->htmlDate = $htmlDate;	
	$pdf->htmlSign = $htmlSign;	
	
	// set document information
	$pdf->SetCreator(PDF_CREATOR);
	$pdf->SetAuthor('WH-HKMIS');
	$pdf->SetTitle('AMBER PO');
	$pdf->SetSubject('AMBER PO');
	$pdf->SetKeywords('AMBER PO');
	
	// set default header data
	$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
	
	// set header and footer fonts
	$pdf->setHeaderFont(Array('DroidSansFallback', '', PDF_FONT_SIZE_DATA));
	$pdf->setFooterFont(Array('DroidSansFallback', '', PDF_FONT_SIZE_DATA));
	
	// set default monospaced font
	$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
	
	// set margins
	$pdf->SetMargins(PDF_MARGIN_LEFT, 80, PDF_MARGIN_RIGHT);
	$pdf->SetHeaderMargin(10);
	$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
	
	// set auto page breaks
	$pdf->SetAutoPageBreak(TRUE, 60);
	
	// set image scale factor
	$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
	
	// ---------------------------------------------------------
	
	// set font
	$pdf->SetFont('DroidSansFallback', '', 8, '', true);
	
	// add a page
	$pdf->AddPage();
	
	// draw product table
	$i = 1;
	foreach( $order->get_items() as $item_id => $item ) {			
		
			$htmlProduct = '<div id="productSection">';
			
			$htmlProduct .= '<table cellspacing="0" cellpadding="0" border="1" nobr="true"><tr><td>
			<table cellspacing="1" cellpadding="3" border="1">
				<tr style="background-color:#000;color:#FFF">
					<td width="20%" align="left">Description '.$i.'</td>
					<td width="50%" align="left"></td>
					<td width="10%" align="center">Qty.</td>
					<td width="10%" align="center">Unit Price</td>
					<td width="10%" align="center">Total</td>
				</tr> ';
	
			$i++;	
			$product = wc_get_product( $item->get_product_id());
			$formatted_meta_data = $item->get_formatted_meta_data( '_', true );		
			$htmlProduct .= '
							<tr>
								<td>Name 產品名稱</td>
								<td>'.$item->get_name().'</td>
								<td align="center">'.$item->get_quantity().'</td>
								<td align="center"></td>
								<td align="center"></td>
							</tr>';
	
			$array_attributes = array();
			foreach($formatted_meta_data as $metaObj){
				$array_attributes[$metaObj->display_key] = strip_tags($metaObj->display_value);
			}
			
			/*
			if(!isset($array_attributes['Orientation'])){
				$array_attributes['Orientation'] = "Lanscape";
			}
			*/
			
			$array_orientation = array(
				'Portrait' => '直度',
				'Square' => '正方',
				'Lanscape' => '橫度'
			);
			
			$bill_to_name = $order->get_formatted_billing_full_name();
			
			$array_logo_file = array(
				'Upload' => get_customer_logo_po($bill_to_name)!=""?get_customer_logo_po(trim($bill_to_name)):'Logo圖樣',
				'Letterpress' => "壓字粒"
			);	
			
			//print_r($array_attributes);	
			
			foreach($array_attributes as $display_name => $display_value) {
				$display_value = trim($display_value);
				switch(trim($display_name)){			
					case "Color":										
						$htmlProduct .= '<tr><td>'.$display_name.' 封殼物料</td><td colspan="4">'.$display_value.' ('.get_value_from_cover_box_material($display_value,'cover_material').')</td></tr>';
						break;
					case "Binding":										
						$htmlProduct .= '<tr><td>'.$display_name.' 釘裝方式</td><td colspan="4">'.$display_value.' ('.get_display_binding($array_attributes['Size'],$array_attributes['Orientation'],$display_value).')</td></tr>';
						$htmlProduct .= '<tr><td>Inner Paper</td><td colspan="4">'.get_inner_paper_material($array_attributes['Size'],$array_attributes['Orientation'],$array_attributes['Binding'],$array_attributes['Spreads']).'</td></tr>';
						if(get_display_binding($array_attributes['Size'],$array_attributes['Orientation'],$display_value)=="雜誌裝"){
							$htmlProduct .= '<tr><td>Book Tap 書頭布</td><td colspan="4">'.get_value_from_cover_box_material($array_attributes['Color'],'book_tape').'</td></tr>';					
						}
						$htmlProduct .= '<tr><td>Lining Material 襯層物料</td><td colspan="4">'.get_lining_material($array_attributes['Size'],$array_attributes['Orientation'],$display_value).'</td></tr>';					
						break;	
					case "Size":										
						$htmlProduct .= '<tr><td>'.$display_name.' 尺寸</td><td colspan="4">'.get_display_size($display_value,$array_attributes['Orientation']).'</td></tr>';
						break;
					case "Orientation":										
						$htmlProduct .= '<tr><td>'.$display_name.' 方向</td><td colspan="4">'.$array_orientation[$display_value].'</td></tr>';
						break;	
					case "Logo File":										
						$htmlProduct .= '<tr><td>'.$display_name.'</td><td colspan="4">'.$array_logo_file[$display_value].'</td></tr>';
						break;										
					case "Logo Finishing":										
						$htmlProduct .= '<tr><td>'.$display_name.' 相冊後工序</td><td colspan="4">'.get_display_finishing($display_value).' ('.get_finishing_material($display_value).')</td></tr>';
						break;	
					case "Font":										
						$htmlProduct .= '<tr><td>'.$display_name.' 字款</td><td colspan="4">'.get_display_fonts($display_value).'</td></tr>';
						break;	
					case "Logo Position":										
						$htmlProduct .= '<tr><td>'.$display_name.' 位置</td><td colspan="4">'.get_display_position($display_value).'</td></tr>';
						break;	
						
					case "Letterpress Finishing":										
						$htmlProduct .= '<tr><td>'.$display_name.' 相冊後工序</td><td colspan="4">'.get_display_finishing($display_value).' ('.get_finishing_material($display_value).')</td></tr>';
						break;	
						
					case "Letterpress Position":										
						$htmlProduct .= '<tr><td>'.$display_name.' 位置</td><td colspan="4">'.get_display_position($display_value).'</td></tr>';
						break;	
						
					case "Text on Lining":										
						$htmlProduct .= '<tr><td>'.$display_name.'</td><td colspan="4">文字: '.$display_value.'</td></tr>';
						$htmlProduct .= '<tr><td><span style="color:#FFF">'.$display_name.'</span></td><td colspan="4">字款: Avenir 25pt</td></tr>';
						$htmlProduct .= '<tr><td><span style="color:#FFF">'.$display_name.'</span></td><td colspan="4">位置: 上下左右分中</td></tr>';
						$htmlProduct .= '<tr><td><span style="color:#FFF">'.$display_name.'</span></td><td colspan="4">顏色: White 白色</td></tr>';
						break;																
						
					case "Spreads":										
						$htmlProduct .= '<tr><td>'.$display_name.' 頁數</td><td colspan="4">'.$display_value.'P</td></tr>';
						break;	
						
					case "Remark":										
						$htmlProduct .= '<tr><td>'.$display_name.' 備註</td><td colspan="4">'.$display_value.'</td></tr>';
						break;						
						
					case "Box":		
						//$htmlProduct .= '<tr><td colspan="3">'.$display_value.'</td></tr>';
						if(trim($display_value)!="None"){
						
							if(trim($display_value)=="Matte Box"){
								$htmlProduct .= '<tr><td>Box 盒子</td><td colspan="4">天地蓋黑盒 ('.get_value_from_cover_box_material($array_attributes['Color'],'matte_box_material').')</td></tr>';
								$htmlProduct .= '<tr><td>Ribbon 絲帶</td><td colspan="4">'.get_value_from_cover_box_material($array_attributes['Color'],'matte_box_ribbon').'</td></tr>';
							}
							
							if(trim($display_value)=="Luxe Presentation Box"){
								$htmlProduct .= '<tr><td>Box 盒子</td><td colspan="4">配色掀蓋盒 ('.get_value_from_cover_box_material($array_attributes['Color'],'luxe_presentation_box_material').')</td></tr>';
								$htmlProduct .= '<tr><td>Ribbon 絲帶</td><td colspan="4">'.get_value_from_cover_box_material($array_attributes['Color'],'luxe_presentation_box_ribbon').'</td></tr>';
							}		
															
							$htmlProduct .= '<tr><td>Box Finishing 盒面後工序</td><td colspan="4">跟相薄封面</td></tr>';
							$htmlProduct .= '<tr><td>Box Size 盒尺寸</td><td colspan="4">適合放入相冊尺寸</td></tr>';
						}
						break;		
						
					case "Black Matt Box":	
						if(trim($display_value)!="None"){
							if(strpos($display_value,"Yes")!==false){									
								$htmlProduct .= '<tr><td>Box 盒子</td><td colspan="4">天地蓋黑盒 ('.get_value_from_cover_box_material($array_attributes['Color'],'matte_box_material').')</td></tr>';
								$htmlProduct .= '<tr><td>Ribbon 絲帶</td><td colspan="4">'.get_value_from_cover_box_material($array_attributes['Color'],'matte_box_ribbon').'</td></tr>';
							}
							$htmlProduct .= '<tr><td>Box Finishing 盒面後工序</td><td colspan="4">跟相薄封面</td></tr>';
							$htmlProduct .= '<tr><td>Box Size 盒尺寸</td><td colspan="4">適合放入相冊尺寸</td></tr>';	
						}
						break;	
						
																																								
					default:
						$htmlProduct .= '<tr><td>'.$display_name.'</td><td colspan="4">'.$display_value.'</td></tr>';
						break;											
				
				}			
			}
	
			if($isFotomax){
				$htmlProduct .= '<tr><td>Remark 備註</td><td colspan="4">封底內頁底部左下角燙Amber logo,右下角燙fotomax logo (跟PO100000548-1)</td></tr>';	
			}
					
			$htmlProduct .= '<tr><td>Packaging 包裝方式</td><td colspan="4">產品用氣泡袋及海棉護角保護後入AMBER坑箱</td></tr>';		
	
			if(trim($item->get_name())=="Canvas"){
				$file = get_post_meta($order_id, '_wcuf_uploaded_files', true);
				if($file!=""){
					foreach($file as $fileArr){					
						$htmlProduct .= '<tr><td colspan="5"><img src="'.$fileArr['absolute_path'][0].'" width="300"><img></td></tr>';	
					}
				}
			}
			//Image(file, x = '', y = '', w = 0, h = 0, type = '', link = nil, align = '', resize = false, dpi = 300, palign = '', ismask = false, imgmask = false, border = 0, fitbox = false, hidden = false, fitonpage = false) 
			//$pdf->Image('/var/www/html/amberconcept/document/file/Tulips.jpg', 10, 140, 0, 50, 'JPG', '', '', true, 150, '', false, false, 0, false, false, false);
			
			$htmlProduct .= '</table></td></tr></table>';
			$htmlProduct .= '</div>';
			$pdf->writeHTML($htmlProduct, true, false, false, false, '');
			
			// draw footer cell (left)
			if($isFotomax){
				$htmlShipping = "Fotomax<br>(".trim($array_attributes['Fotomax PO']).")";
			} else {
				$fullname = $order->get_formatted_shipping_full_name()==""?"":$order->get_formatted_shipping_full_name();
				$company = $order->get_shipping_company()==""?"":"<br>".$order->get_shipping_company();
				$address1 = $order->get_shipping_address_1()==""?"":"<br>".$order->get_shipping_address_1();
				$address2 = $order->get_shipping_address_2()==""?"":"<br>".$order->get_shipping_address_2();
				$city = $order->get_shipping_city()==""?"":"<br>".$order->get_shipping_city();
				$state = $order->get_shipping_state()==""?"":"<br>".$order->get_shipping_state();
				$country = $order->get_shipping_country()==""?"":"<br>".$order->get_shipping_country();
				
				$htmlShipping = $fullname.$company.$address1.$address2.$city.$state.$country;
			}
			
			$pdf->htmlShipping = $htmlShipping;		
			
			//$pdf->lastPage();
			
	}
	
	// ---------------------------------------------------------
	
	$output_path = "/var/www/html/amberconcept/document/po/";
	//Close and output PDF document
	$pdf->Output($output_path.'PO'.$order->get_order_number().'.pdf', 'F');
	//$pdf->Output('PO'.$order->get_order_number().'.pdf', 'I');
	//echo $htmlProduct;
	//============================================================+
	// END OF FILE
	//============================================================+
	
	/* upload to ftp (need to configure) in upload_to_ftp function */
	//upload_to_ftp('PO'.$order->get_order_number().'.pdf');
}
// upload file to remote ftp server
function upload_to_ftp($file){
	$ftp_server = "ftp.winghung.com";
	$ftp_user_name = "whmis";
	$ftp_user_pass = "WHServer&*)1";
	
	$ftp = ftp_connect($ftp_server); 
	
	// login with username and password
	$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass); 
	
	$passive = true;
	//echo "Setting Passive Mode=$passive<br>";
	ftp_pasv($ftp, $passive);
	
	// check connection
	if ((!$ftp) || (!$login_result)) { 		
		exit; 
	}	
	/*
	if ((!$ftp) || (!$login_result)) { 
		echo "FTP connection has failed!<br>";
		echo "Attempted to connect to $ftp_server for user $ftp_user_name<br>"; 
		exit; 
	} else {
		echo "Connected to $ftp_server, for user $ftp_user_name<br>";
	}
	*/
	$dir = "Test/hkmis";
	if (ftp_nlist($ftp, $dir) === false) {
		ftp_mkdir($ftp, $dir);		
	}	
	
	//ftp_mkdir($ftp, $dir);
	/*
	if (ftp_mkdir($ftp, $dir)) {
		echo "successfully created $dir<br>";
	} else {
		echo "There was a problem while creating $dir<br>";
	}
	*/
	
	$source_file = "/var/www/html/amberconcept/document/po/".$file;
	$destination_file = $dir."/".$file;
	// upload the file
	$upload = ftp_put($ftp, $destination_file, $source_file, FTP_BINARY); 
	
	// check upload status
	/*
	if (!$upload) { 
		echo "FTP upload has failed!<br>";
	} else {
		echo "Uploaded $source_file to $ftp_server as $destination_file<br>";
	}
	*/
	// close the FTP connection 
	ftp_close($ftp); 
	
	
}


// generate po (only when order placed at frontend) 
add_action( 'woocommerce_thankyou', 'create_po', 10, 1 );
function create_po($order_id) {
    if ( ! $order_id )
        return;
		
	generate_po($order_id);
}

// add button to edit order page
add_action( 'add_meta_boxes', 'po_meta_boxes' );
function po_meta_boxes(){
    add_meta_box(
        'woocommerce-order-po',
        __( 'Export PO' ),
        'order_meta_box_po',
        'shop_order',
        'side',
        'default'
    );
}
function order_meta_box_po(){
  $post_id = isset($_GET['post']) ? $_GET['post'] : false;
  if(!$post_id) return; // Exit	
  echo '<a href="https://www.amberconcept.com/print_po.php?order_id='.$post_id.'" target="_blank"><input type="button" value="PDF PO" class="button button-primary"></input></a>';
}



/*
/**
 * Zeen Child Theme functions and definitions.
 */
function zeen_child_enqueue_styles() {
	wp_enqueue_style( 'zeen-child-style' , get_stylesheet_directory_uri() . '/style.css', array( 'zeen-style' ), ZEEN_VERSION );
}
add_action(  'wp_enqueue_scripts', 'zeen_child_enqueue_styles' );

/**--Spreads min&max page*/
add_action('wp_footer', 'settap_number_field', 99);
function settap_number_field() {
 if(is_single()) {
     ?>
        <script type="text/javascript">
         (function($) {
         $("#m_8x12_spreads, #m_10x10_spreads, #m_10x14_spreads, #m_12x12_spreads, #m_12x16_spreads, #sammsspreads, #sammmspreads, #sammlspreads").attr({
              "max" : 45,
              "min" : 15
           });
         $("#f_8x12_spreads, #f_10x10_spreads, #f_10x14_spreads, #f_12x12_spreads, #f_12x16_spreads, #samfsspreads, #samfmspreads, #samflspreads").attr({
              "max" : 40,
              "min" : 10
           });
         })(jQuery, window, document)
        </script>

     <?php
 }
} 
/**--*/

// Declare WooShippedmerce support.
/*
add_theme_support( 'wooShippedmerce', array(
'thumbnail_image_width' => 200,
'gallery_thumbnail_image_width' => 100,
'single_image_width' => 500,
) );

*/

//
//from::https://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column

// For displaying in columns.

add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns2' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns3' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns4' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns5' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns6' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns7' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns8' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns9' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns10' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns11' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns12' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns13' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns14' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns15' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns16' );
add_filter( 'manage_edit-shop_order_columns', 'set_custom_edit_shop_order_columns17' );


function set_custom_edit_shop_order_columns($columns) {
    $columns['Rebate_amount'] = __( 'Rebate_amount', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}

function set_custom_edit_shop_order_columns2($columns) {
    $columns['Cost1_amount'] = __( 'Cost1_amount', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}

function set_custom_edit_shop_order_columns3($columns) {
    $columns['Cost1_currency'] = __( 'Cost1_currency', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns4($columns) {
    $columns['Payment'] = __( 'Payment', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns5($columns) {
    $columns['Cost1_supplier'] = __( 'Cost1_supplier', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns6($columns) {
    $columns['Cost2_amount'] = __( 'Cost2_amount', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}

function set_custom_edit_shop_order_columns7($columns) {
    $columns['Cost2_currency'] = __( 'Cost2_currency', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns8($columns) {
    $columns['Cost2_supplier'] = __( 'Cost2_supplier', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns9($columns) {
    $columns['Payment_remark'] = __( 'Payment_remark', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns10($columns) {
    $columns['Cost3_amount'] = __( 'Cost3_amount', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}

function set_custom_edit_shop_order_columns11($columns) {
    $columns['Cost3_currency'] = __( 'Cost3_currency', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns12($columns) {
    $columns['Cost3_supplier'] = __( 'Cost3_supplier', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns13($columns) {
    $columns['Cost1_po'] = __( 'Cost1_po', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns14($columns) {
    $columns['Cost2_po'] = __( 'Cost2_po', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns15($columns) {
    $columns['Cost3_po'] = __( 'Cost3_po', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}

function set_custom_edit_shop_order_columns16($columns) {
    $columns['Rebate_to'] = __( 'Rebate_to', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}
function set_custom_edit_shop_order_columns17($columns) {
    $columns['Customer_po'] = __( 'Customer_po', 'https://wp.amberconcept.Shipped/' );
    return $columns;
}

// Add the data to the custom columns for the order post type:
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column2', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column3', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column4', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column5', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column6', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column7', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column8', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column9', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column10', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column11', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column12', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column13', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column14', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column15', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column16', 10, 2 );
add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_column17', 10, 2 );

function custom_shop_order_column( $column, $post_id ) {
    switch ( $column ) {

        case 'Rebate_amount' :
            echo esc_html( get_post_meta( $post_id, 'Rebate_amount', true ) );
            break;

    }
}

function custom_shop_order_column2( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost1_amount' :
            echo esc_html( get_post_meta( $post_id, 'Cost1_amount', true ) );
            break;

    }
}

function custom_shop_order_column3( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost1_currency' :
            echo esc_html( get_post_meta( $post_id, 'Cost1_currency', true ) );
            break;

    }
}

function custom_shop_order_column4( $column, $post_id ) {
    switch ( $column ) {
        case 'Payment' :
            echo esc_html( get_post_meta( $post_id, 'Payment', true ) );
            break;
    }
}

function custom_shop_order_column5( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost1_supplier' :
            echo esc_html( get_post_meta( $post_id, 'Cost1_supplier', true ) );
            break;

    }
}
function custom_shop_order_column6( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost2_amount' :
            echo esc_html( get_post_meta( $post_id, 'Cost2_amount', true ) );
            break;

    }
}

function custom_shop_order_column7( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost2_currency' :
            echo esc_html( get_post_meta( $post_id, 'Cost2_currency', true ) );
            break;

    }
}

function custom_shop_order_column8( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost2_supplier' :
            echo esc_html( get_post_meta( $post_id, 'Cost2_supplier', true ) );
            break;

    }
}
function custom_shop_order_column9( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost3_amount' :
            echo esc_html( get_post_meta( $post_id, 'Cost3_amount', true ) );
            break;

    }
}

function custom_shop_order_column10( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost3_currency' :
            echo esc_html( get_post_meta( $post_id, 'Cost3_currency', true ) );
            break;

    }
}

function custom_shop_order_column11( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost3_supplier' :
            echo esc_html( get_post_meta( $post_id, 'Cost3_supplier', true ) );
            break;

    }
}

function custom_shop_order_column12( $column, $post_id ) {
    switch ( $column ) {

        case 'Payment_remark' :
            echo esc_html( get_post_meta( $post_id, 'Payment_remark', true ) );
            break;

    }
}
function custom_shop_order_column13( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost1_po' :
            echo esc_html( get_post_meta( $post_id, 'Cost1_po', true ) );
            break;

    }
}
function custom_shop_order_column14( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost2_po' :
            echo esc_html( get_post_meta( $post_id, 'Cost2_po', true ) );
            break;

    }
}
function custom_shop_order_column15( $column, $post_id ) {
    switch ( $column ) {

        case 'Cost3_po' :
            echo esc_html( get_post_meta( $post_id, 'Cost3_po', true ) );
            break;

    }
}
function custom_shop_order_column16( $column, $post_id ) {
    switch ( $column ) {

        case 'Rebate_to' :
            echo esc_html( get_post_meta( $post_id, 'Rebate_to', true ) );
            break;

    }
}
function custom_shop_order_column17( $column, $post_id ) {
    switch ( $column ) {

        case 'Customer_po' :
            echo esc_html( get_post_meta( $post_id, 'Customer_po', true ) );
            break;

    }
}


// For display and saving in order details page.
add_action( 'add_meta_boxes', 'add_shop_order_meta_box' );
function add_shop_order_meta_box() {
    add_meta_box(
        'Payment',
        __( 'Payment', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback',
		'shop_order'
    );
}

// draw payment option in admin order page
function shop_order_display_callback( $post ) {

   $value = get_post_meta( $post->ID, 'Payment', true );
   
   $arr_payment = array("Bank transfer", "Cash", "Cheque", "FPS", "PayMe","Paypal","Stripe");   
   
   echo '<select style="width:50%"name="Payment" id="Payment">';
	   echo '<option value=""></option>';
	   
	   foreach($arr_payment as $payment){
	   echo '<option value="'.$payment.'" '; 
	   if($value==$payment) echo 'selected';
	  	 echo '>'.$payment.'</option>';
	   } 
		 
   echo '</select>';
}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box12' );
function add_shop_order_meta_box12() {

    add_meta_box(
        'Payment_remark',
        __( 'Payment_remark', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback12',
		'shop_order'
    );

}

// For display and saving in order details page.

add_action( 'add_meta_boxes', 'add_shop_order_meta_box2' );
function add_shop_order_meta_box2() {

    add_meta_box(
        'Cost1_currency',
        __( 'Cost1_currency', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback2',
		'shop_order'
    );

}


add_action( 'add_meta_boxes', 'add_shop_order_meta_box3' );
function add_shop_order_meta_box3() {

    add_meta_box(
        'Rebate_amount',
        __( 'Rebate_amount', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback3',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box4' );
function add_shop_order_meta_box4() {

    add_meta_box(
        'Cost1_amount',
        __( 'Cost1_amount', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback4',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box5' );
function add_shop_order_meta_box5() {

    add_meta_box(
        'Cost1_supplier',
        __( 'Cost1_supplier', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback5',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box6' );
function add_shop_order_meta_box6() {

    add_meta_box(
        'Cost2_currency',
        __( 'Cost2_currency', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback6',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box7' );
function add_shop_order_meta_box7() {

    add_meta_box(
        'Cost2_amount',
        __( 'Cost2_amount', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback7',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box8' );
function add_shop_order_meta_box8() {

    add_meta_box(
        'Cost2_supplier',
        __( 'Cost2_supplier', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback8',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box9' );
function add_shop_order_meta_box9() {

    add_meta_box(
        'Cost3_currency',
        __( 'Cost3_currency', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback9',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box10' );
function add_shop_order_meta_box10() {

    add_meta_box(
        'Cost3_amount',
        __( 'Cost3_amount', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback10',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box11' );
function add_shop_order_meta_box11() {

    add_meta_box(
        'Cost3_supplier',
        __( 'Cost3_supplier', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback11',
		'shop_order'
    );

}

add_action( 'add_meta_boxes', 'add_shop_order_meta_box13' );
function add_shop_order_meta_box13() {

    add_meta_box(
        'Cost1_po',
        __( 'Cost1_po', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback13',
		'shop_order'
    );

}
add_action( 'add_meta_boxes', 'add_shop_order_meta_box14' );
function add_shop_order_meta_box14() {

    add_meta_box(
        'Cost2_po',
        __( 'Cost2_po', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback14',
		'shop_order'
    );

}
add_action( 'add_meta_boxes', 'add_shop_order_meta_box15' );
function add_shop_order_meta_box15() {

    add_meta_box(
        'Cost3_po',
        __( 'Cost3_po', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback15',
		'shop_order'
    );

}
add_action( 'add_meta_boxes', 'add_shop_order_meta_box16' );
function add_shop_order_meta_box16() {

    add_meta_box(
        'Rebate_to',
        __( 'Rebate_to', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback16',
		'shop_order'
    );

}
add_action( 'add_meta_boxes', 'add_shop_order_meta_box17' );
function add_shop_order_meta_box17() {

    add_meta_box(
        'Customer_po',
        __( 'Customer_po', 'https://wp.amberconcept.Shipped/' ),
		'shop_order_display_callback17',
		'shop_order'
    );

}


function shop_order_display_callback2( $post ) {

    $value = get_post_meta( $post->ID, 'Cost1_currency', true );

    echo '<input type="text" style="width:100%" id="Cost1_currency" name="Cost1_currency" value="'.esc_attr( $value ).'">';
}


function shop_order_display_callback3( $post ) {

    $value = get_post_meta( $post->ID, 'Rebate_amount', true );

    echo '<input type="text" style="width:100%" id="Rebate_amount" name="Rebate_amount" value="'.esc_attr( $value ).'">';
}

function shop_order_display_callback4( $post ) {

    $value = get_post_meta( $post->ID, 'Cost1_amount', true );

    echo '<input type="text" style="width:100%" id="Cost1_amount" name="Cost1_amount" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback5( $post ) {

    $value = get_post_meta( $post->ID, 'Cost1_supplier', true );

    echo '<input type="text" style="width:100%" id="Cost1_supplier" name="Cost1_supplier" value="'.esc_attr( $value ).'">';
}

function shop_order_display_callback6( $post ) {

    $value = get_post_meta( $post->ID, 'Cost2_currency', true );

    echo '<input type="text" style="width:100%" id="Cost2_currency" name="Cost2_currency" value="'.esc_attr( $value ).'">';
}

function shop_order_display_callback7( $post ) {

    $value = get_post_meta( $post->ID, 'Cost2_amount', true );

    echo '<input type="text" style="width:100%" id="Cost2_amount" name="Cost2_amount" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback8( $post ) {

    $value = get_post_meta( $post->ID, 'Cost2_supplier', true );

    echo '<input type="text" style="width:100%" id="Cost2_supplier" name="Cost2_supplier" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback9( $post ) {

    $value = get_post_meta( $post->ID, 'Cost3_currency', true );

    echo '<input type="text" style="width:100%" id="Cost3_currency" name="Cost3_currency" value="'.esc_attr( $value ).'">';
}

function shop_order_display_callback10( $post ) {

    $value = get_post_meta( $post->ID, 'Cost3_amount', true );

    echo '<input type="text" style="width:100%" id="Cost3_amount" name="Cost3_amount" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback11( $post ) {

    $value = get_post_meta( $post->ID, 'Cost3_supplier', true );

    echo '<input type="text" style="width:100%" id="Cost3_supplier" name="Cost3_supplier" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback12( $post ) {

    $value = get_post_meta( $post->ID, 'Payment_remark', true );

    echo '<input type="text" style="width:100%" id="Payment_remark" name="Payment_remark" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback13( $post ) {

    $value = get_post_meta( $post->ID, 'Cost1_po', true );

    echo '<input type="text" style="width:100%" id="Cost1_po" name="Cost1_po" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback14( $post ) {

    $value = get_post_meta( $post->ID, 'Cost2_po', true );

    echo '<input type="text" style="width:100%" id="Cost2_po" name="Cost2_po" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback15( $post ) {

    $value = get_post_meta( $post->ID, 'Cost3_po', true );

    echo '<input type="text" style="width:100%" id="Cost3_po" name="Cost3_po" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback16( $post ) {

    $value = get_post_meta( $post->ID, 'Rebate_to', true );

    echo '<input type="text" style="width:100%" id="Rebate_to" name="Rebate_to" value="'.esc_attr( $value ).'">';
}
function shop_order_display_callback17( $post ) {

    $value = get_post_meta( $post->ID, 'Customer_po', true );

    echo '<input type="text" style="width:100%" id="Customer_po" name="Customer_po" value="'.esc_attr( $value ).'">';
}

// For saving.

function save_shop_order_meta_box_data( $post_id ) {
	global $wpdb;	

    // If this is an autosave, our form has not been submitted, so we don't want to do anything.
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }

    // Check the user's permissions.
    if ( isset( $_POST['post_type'] ) && 'shop_order' == $_POST['post_type'] ) {
        if ( ! current_user_can( 'edit_shop_order', $post_id ) ) {
            return;
        }
    }
	
	// check if this is an admin order page
	if(!is_admin()){
		 return;
	}
	
	//handling Rebate_amount
	if (isset( $_POST['Rebate_amount'])){
		update_post_meta( $post_id, 'Rebate_amount', sanitize_text_field( $_POST['Rebate_amount'] ));	
	}
		//handling Cost1_amount
        if (isset( $_POST['Cost1_amount'])){
            update_post_meta( $post_id, 'Cost1_amount', sanitize_text_field( $_POST['Cost1_amount'] ));	
        }
    

    		//handling Cost1_currency
            if (isset( $_POST['Cost1_currency'])){
                update_post_meta( $post_id, 'Cost1_currency', sanitize_text_field( $_POST['Cost1_currency'] ));	
            }

        	//handling Cost1_supplier
                if (isset( $_POST['Cost1_supplier'])){
                    update_post_meta( $post_id, 'Cost1_supplier', sanitize_text_field( $_POST['Cost1_supplier'] ));	
                    }
    		//handling Cost2_amount
            if (isset( $_POST['Cost2_amount'])){
                update_post_meta( $post_id, 'Cost2_amount', sanitize_text_field( $_POST['Cost2_amount'] ));	
            }
                //handling Cost2_currency
                if (isset( $_POST['Cost2_currency'])){
                    update_post_meta( $post_id, 'Cost2_currency', sanitize_text_field( $_POST['Cost2_currency'] ));	
                }
    
                //handling Cost2_supplier
                    if (isset( $_POST['Cost2_supplier'])){
                        update_post_meta( $post_id, 'Cost2_supplier', sanitize_text_field( $_POST['Cost2_supplier'] ));	
                        }     
        		//handling Cost3_amount
                if (isset( $_POST['Cost3_amount'])){
                    update_post_meta( $post_id, 'Cost3_amount', sanitize_text_field( $_POST['Cost3_amount'] ));	
                }
                    //handling Cost3_currency
                    if (isset( $_POST['Cost3_currency'])){
                        update_post_meta( $post_id, 'Cost3_currency', sanitize_text_field( $_POST['Cost3_currency'] ));	
                    }
        
                    //handling Cost3_supplier
                        if (isset( $_POST['Cost3_supplier'])){
                            update_post_meta( $post_id, 'Cost3_supplier', sanitize_text_field( $_POST['Cost3_supplier'] ));	
                            }     
                    //handling Payment_remark
                    if (isset( $_POST['Payment_remark'])){
                        update_post_meta( $post_id, 'Payment_remark', sanitize_text_field( $_POST['Payment_remark'] ));	
                        }                                 
                    //handling Cost1_po
                    if (isset( $_POST['Cost1_po'])){
                        update_post_meta( $post_id, 'Cost1_po', sanitize_text_field( $_POST['Cost1_po'] ));	
                        }    
                    //handling Cost2_po
                    if (isset( $_POST['Cost2_po'])){
                        update_post_meta( $post_id, 'Cost2_po', sanitize_text_field( $_POST['Cost2_po'] ));	
                        }    
                    //handling Cost3_po
                    if (isset( $_POST['Cost3_po'])){
                        update_post_meta( $post_id, 'Cost3_po', sanitize_text_field( $_POST['Cost3_po'] ));	
                        }    
                    //handling Rebate_to
                    if (isset( $_POST['Rebate_to'])){
                        update_post_meta( $post_id, 'Rebate_to', sanitize_text_field( $_POST['Rebate_to'] ));	
                        }    
                    //handling Customer_po
                    if (isset( $_POST['Customer_po'])){
                        update_post_meta( $post_id, 'Customer_po', sanitize_text_field( $_POST['Customer_po'] ));	
                        }                                                                                                    
	//handling payment
    $original_Payment = get_post_meta( $post_id, 'Payment', true );
	
    if ( ! isset( $_POST['Payment'] )) {
        ;
    }elseif($original_Payment==$_POST['Payment']){
		;
	}else{    
	    update_post_meta( $post_id, 'Payment', sanitize_text_field( $_POST['Payment'] ));	
		if($_POST['Payment']!=""){
			wc_create_order_note($post_id, "Payment: ".sanitize_text_field( $_POST['Payment'] ), false, true);
		}
	}		
}
	
add_action( 'save_post', 'save_shop_order_meta_box_data',10,1);

//
function wpblog_wc_register_post_statuses() {
    register_post_status( 'wc-shipping-progress', array(
		'label' => _x( 'Completed', 'WooShippedmerce Order status', 'text_domain' ),
		'public' => true,
		'exclude_from_search' => false,
		'show_in_admin_all_list' => true,
		'show_in_admin_status_list' => true,
		'label_count' => _n_noop( 'Completed (%s)', 'Completed (%s)', 'text_domain' )
    ) );
}
add_filter( 'init', 'wpblog_wc_register_post_statuses' );

function wpblog_wc_add_order_statuses( $order_statuses ) {
	$order_statuses['wc-shipping-progress'] = _x( 'Completed', 'WooShippedmerce Order status', 'text_domain' );
	return $order_statuses;
}
add_filter( 'wc_order_statuses', 'wpblog_wc_add_order_statuses' );


/**20220113
 * Change a currency symbol
 */
add_filter( 'woocommerce_currencies', 'add_my_currency' );
  
function add_my_currency( $currencies ) {
     $currencies['HKD'] = __( 'Currency name', 'woocommerce' );
     return $currencies;
}
  
add_filter('woocommerce_currency_symbol', 'add_my_currency_symbol', 10, 2);
  
function add_my_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
          case 'HKD': $currency_symbol = 'HK$'; break;
     }
     return $currency_symbol;
}

/* 20220510 */
function get_product_cost($order_item_id) {
	
	global $wpdb;
	$item = new WC_Order_Item_Product($order_item_id);
	
	$item_data = $item->get_data();
	$item_meta_data = $item->get_meta_data();
	
	$item_id = $item->get_ID();	
	$item_name = $item->get_name();		
	$qty = $item->get_quantity();
	
	if(stripos($item_name, "Fotomax")!==false){
		
		$base_spread = 0;		
		$base_cost = 0;		
		$additional_cost_per_sheet = 0;	
		$box = "";
		$box_cost = 0;
		$logo_cost = 0;		
		$logo = "";
		$sql_spreads = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key LIKE '%size' AND meta_key NOT LIKE '#_%' ESCAPE '#' ";
		
		$result = $wpdb->get_results($sql_spreads);			
		
		foreach($result as $record){
		   $size_key = $record->meta_key;
		   $size = $record->meta_value;
		}
		
		$sql_binding = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key = 'fotomaxbinding' ";
		
		$result = $wpdb->get_results($sql_binding);			
		
		foreach($result as $record){
		   $binding_key = $record->meta_key;
		   $binding = $record->meta_value;
		   if($binding=="Magazine"){
				$base_spread = 8;	  
		   } elseif($binding = "Flush Mount") {
				$base_spread = 8;	  
		   }
		}
		
		
		$sql_spreads = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key LIKE '%spread%' AND meta_key NOT LIKE '#_%' ESCAPE '#' ";
		
		$result = $wpdb->get_results($sql_spreads);		
		
		foreach($result as $record){
		   $spread_key = $record->meta_key;
		   $total_spread = $record->meta_value;		
			$paper_cost_result = get_paper_cost($spread_key);
			$base_cost = $paper_cost_result['base_cost'];
			$additional_cost_per_sheet = $paper_cost_result['additional_cost_per_sheet']*($total_spread-$base_spread);	
			if($additional_cost_per_sheet<0){
				$additional_cost_per_sheet = 0;
			}
		}		
		
		
		
		$sql_box = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key LIKE '%box' AND meta_key NOT LIKE '#_%' ESCAPE '#' ";
		
		$result = $wpdb->get_results($sql_box);		
		
		foreach($result as $record){
		   $box_key = $record->meta_key;
		   $box = $record->meta_value;		
		   if($box=="Yes"){
			   $lookup_key = "box_".$size;
			   $box_material = "Matte Box";
			   $box_cost = get_extra_cost($lookup_key, $box_material);				   
		   }
			
		}				
		

		$sql_logo = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key = 'fotomaxletterpress' ";
		
		$result = $wpdb->get_results($sql_logo);		
		
		foreach($result as $record){
		   $logo_key = $record->meta_key;
		   $logo = $record->meta_value;	
		   if($logo=="Yes"){
			   $logo_cost = 3*10;
		   } elseif($logo=="None") {
			   $logo_cost = 10;
		   }
		}			
			
			
		$total_cost = $base_cost + $additional_cost_per_sheet + $box_cost + $logo_cost;
		
	}elseif($item_name!="Canvas") {
	
		//$binding = $item->get_meta("binding");
		
		// calculate paper cost
		$sql_spreads = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key LIKE '%spreads%' AND meta_key NOT LIKE '#_%' ESCAPE '#' ";
		
		$result = $wpdb->get_results($sql_spreads);
		
		foreach($result as $record){
		   $spread_key = $record->meta_key;
		   $total_spread = $record->meta_value;
		}
		
		$arr_spread_key = explode("_",$spread_key);
		
		$layout = $arr_spread_key[0];
		
		if($layout=="m"){
			$binding = "Magazine";
			$base_spread = 15;	
		} elseif($layout=="f"){
			$binding = "Flush Mount";
			$base_spread = 10;			
		}
		
		$size = $arr_spread_key[1];
		
		$paper_cost_result = get_paper_cost($spread_key);
		$base_cost = $paper_cost_result['base_cost'];
		$additional_cost_per_sheet = $paper_cost_result['additional_cost_per_sheet']*($total_spread-$base_spread);
		
		// calculate box cost
		$sql_box = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key LIKE '%box%' AND meta_key NOT LIKE '#_%' ESCAPE '#' ";
		
		$result = $wpdb->get_results($sql_box);
		
		$has_box = false;
		
		foreach($result as $record){
		   $box_key = $record->meta_key;
		   $box = $record->meta_value;
		   
		   if($record->meta_value!="None" && $record->meta_value!="" ){
			   $has_box = true;
		   }
		   
		}
		
		$box_cost = get_extra_cost($box_key, $box);
		
		// calculate logo cost
		$sql_logo = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key LIKE '%logo' AND meta_key NOT LIKE '#_%' ESCAPE '#' ";
		
		$result = $wpdb->get_results($sql_logo);		
		
		$logo_cost = 0;
		
		foreach($result as $record){
		   $logo_key = $record->meta_key;
		   $logo = $record->meta_value;
		   
		   if($record->meta_value=="Yes"){
			  $logo_cost = get_extra_cost($logo_key, $logo); 
		   }		   
		}		
		
	   if($has_box){
		   $logo_cost = $logo_cost * 2;
	   }		
	   
	   $total_cost = $base_cost + $additional_cost_per_sheet + $box_cost + $logo_cost;
	   
	} else {
		
		$binding = "";	
		$base_spread = "";
		$base_cost = "";
		$total_spread = "";
		$additional_cost_per_sheet = "";
		$box = "";
		$box_cost = "";
		$logo = "";
		$logo_cost = "";			
		
		// calculate logo cost
		$sql_canvassize = "SELECT * FROM wp_woocommerce_order_itemmeta WHERE order_item_id = '".$item_id."' AND meta_key LIKE '%canvassize' ";
		
		$result = $wpdb->get_results($sql_canvassize);		
		
		$total_cost = 0;
		
		foreach($result as $record){
		   $size_key = $record->meta_key;
		   $size = $record->meta_value;
		   
		   $total_cost = get_extra_cost($size_key, $size);  
		}		
							
	}	
	
	return $total_cost;
	
}


function get_paper_cost($key){
	global $wpdb;
	
	$cost = array("base_cost"=>0, "additional_cost_per_sheet"=>0);
	
	$sql_cost = "SELECT * FROM custom_lookup_paper_cost WHERE attribute_name = '".$key."' LIMIT 1 ";
	
	$result = $wpdb->get_results($sql_cost);
	
	foreach($result as $record){
	   $cost['base_cost'] = $record->base_cost;
	   $cost['additional_cost_per_sheet'] = $record->additional_cost_per_sheet;
	}		
	
	return $cost;
	
}

function get_extra_cost($key, $value){
	global $wpdb;
	
	$cost = 0;
	
	$sql_cost = "SELECT * FROM custom_lookup_extra_cost WHERE attribute_name = '".$key."' AND option_value = '".$value."' LIMIT 1 ";
	
	$result = $wpdb->get_results($sql_cost);
	
	foreach($result as $record){
	   $cost = $record->cost;	  
	}		
	
	return $cost;
	
}

function add_po_empty_line(){
	$select_box = "<select class='form-control item_type' name='item_type[]'><option>Product Cost</option><option>Shipping Cost</option><option selected>Other Cost</option></select>";	
	$check_box = "<div class='form-check'><input class='form-check-input checkbox-1x item_checkbox'type='checkbox' name='item_checkbox[]' checked><input type='hidden' name='checkbox_value[]' value='1'></div>";		
	$html="<tr>";
		//$html.="<td align='center'>".$check_box."</td>";
		$html.="<td><input type='number' class='form-control item_sequence' name='item_sequence[]' value='' step='1'></td>";
		$html.="<td>".$select_box."</td>";
		//$html.="<td><input type='text' class='form-control item_name' name='item_name[]' value=''></td>";	
		$html.="<td><textarea class='form-control item_name' name='item_name[]' rows='1'></textarea></td>";
		$html.="<td><input type='number' class='form-control item_qty' name='item_qty[]' value='1' step='1'></td>";
		$html.="<td><input type='number' class='form-control item_unit_price' name='item_unit_price[]' value='0' step='Any'></td>";
		$html.="<td><input type='number' class='form-control item_total' name='item_total[]' value='0' step='Any' readonly></td>";	
		$html.="<td><i class='fas fa-2x fa-times-square text-danger remove_line_btn' aria-hidden='true' title='Remove Line'></i></td>";		
	$html.="</tr>";	
	return $html;
}

function get_item_content($order_id, $order_item_id) {

	global $wpdb;
	$content = "";
	
	$item = new WC_Order_Item_Product($order_item_id);
	
	$order = wc_get_order($order_id);
	$isFotomax = $order->get_user_id()==7?true:false;	
	
	$item_data = $item->get_data();
	$item_meta_data = $item->get_meta_data();
	
	$item_id = $item->get_ID();	
	$item_name = $item->get_name();		
	$qty = $item->get_quantity();

	$product = wc_get_product( $item->get_product_id());
	$formatted_meta_data = $item->get_formatted_meta_data( '_', true );	
	
	// product name
	$content .= "Name 產品名稱:: ".$item->get_name();
	
	
	$array_attributes = array();
	foreach($formatted_meta_data as $metaObj){
		$array_attributes[$metaObj->display_key] = strip_tags($metaObj->display_value);
	}		
	
	$bill_to_name = $order->get_formatted_billing_full_name();
	
	$array_orientation = array(
		'Portrait' => '直度',
		'Square' => '正方',
		'Lanscape' => '橫度'
	);	
	
	$array_logo_file = array(
		'Upload' => get_customer_logo_po($bill_to_name)!=""?get_customer_logo_po(trim($bill_to_name)):'Logo圖樣',
		'Letterpress' => "壓字粒"
	);	
	
	foreach($array_attributes as $display_name => $display_value) {
		$display_value = trim($display_value);
		switch(trim($display_name)){			
			case "Color":										
				$content .= "\r\n".$display_name.' 封殼物料:: '.$display_value.' ('.get_value_from_cover_box_material($display_value,'cover_material').')';
				break;			
			case "Binding":										
				$content .= "\r\n".$display_name.' 釘裝方式:: '.$display_value.' ('.get_display_binding($array_attributes['Size'],$array_attributes['Orientation'],$display_value).')';
				$content .= "\r\nInner Paper:: ".get_inner_paper_material($array_attributes['Size'],$array_attributes['Orientation'],$array_attributes['Binding'],$array_attributes['Spreads']);
				if(get_display_binding($array_attributes['Size'],$array_attributes['Orientation'],$display_value)=="雜誌裝"){
					$content .= "\r\nBook Tap 書頭布:: ".get_value_from_cover_box_material($array_attributes['Color'],'book_tape');					
				}
				$content .= "\r\nLining Material 襯層物料:: ".get_lining_material($array_attributes['Size'],$array_attributes['Orientation'],$display_value);				
				break;	
			case "Size":										
				$content .= "\r\n".$display_name.' 尺寸:: '.get_display_size($display_value,$array_attributes['Orientation']);
				break;
			case "Orientation":										
				$content .= "\r\n".$display_name.' 方向:: '.$array_orientation[$display_value];
				break;	
			case "Logo File":										
				$content .= "\r\n".$display_name.':: '.$array_logo_file[$display_value];
				break;										
			case "Logo Finishing":										
				$content .= "\r\nFinishing相冊後工序:: ".get_display_finishing($display_value);
				$content .= "\r\n顏色:: ".get_finishing_material($display_value);
				break;				
			case "Font":										
				$content .= "\r\n".$display_name.' 字款:: '.get_display_fonts($display_value);
				break;	
			case "Logo Position":										
				$content .= "\r\n".$display_name.' 位置:: '.get_display_position($display_value);
				break;					
			case "Letterpress Finishing":										
				$content .= "\r\n".$display_name.' 相冊後工序:: '.get_display_finishing($display_value).' ('.get_finishing_material($display_value).')';
				break;					
			case "Letterpress Position":										
				$content .= "\r\n".$display_name.' 位置:: '.get_display_position($display_value);
				break;					
			case "Text on Lining":										
				$content .= "\r\n".$display_name.' 文字:: '.$display_value;
				$content .= "\r\n".$display_name.' 字款:: Avenir 25pt';
				$content .= "\r\n".$display_name.' 位置:: 上下左右分中';
				$content .= "\r\n".$display_name.' 顏色:: White 白色';
				break;	
			case "Spreads":										
				$content .= "\r\n".$display_name.' 頁數:: '.$display_value.'P';
				break;					
			
			case "Remark":										
				$content .= "\r\n".$display_name.' 備註:: '.$display_value;
				break;	
			case "Box":		

				if(trim($display_value)!="None"){				
					if(trim($display_value)=="Matte Box"){
						$content .= "\r\nBox 盒子:: 天地蓋黑盒 (".get_value_from_cover_box_material($array_attributes['Color'],'matte_box_material').')';
						$content .= "\r\nRibbon 絲帶:: ".get_value_from_cover_box_material($array_attributes['Color'],'matte_box_ribbon');
					}					
					if(trim($display_value)=="Luxe Presentation Box"){
						$content .= "\r\nBox 盒子:: 配色掀蓋盒 (".get_value_from_cover_box_material($array_attributes['Color'],'luxe_presentation_box_material').')';
						$content .= "\r\nRibbon 絲帶:: ".get_value_from_cover_box_material($array_attributes['Color'],'luxe_presentation_box_ribbon');
					}								
					$content .= "\r\nBox Finishing 盒面後工序:: 跟相薄封面";
					$content .= "\r\nBox Size 盒尺寸:: 適合放入相冊尺寸";
				}
				break;		
				
			case "Black Matt Box":	
				if(trim($display_value)!="None"){
					if(strpos($display_value,"Yes")!==false){									
						$content .= "\r\nBox 盒子:: 天地蓋黑盒 (".get_value_from_cover_box_material($array_attributes['Color'],'matte_box_material').')';
						$content .= "\r\nRibbon 絲帶:: ".get_value_from_cover_box_material($array_attributes['Color'],'matte_box_ribbon');
					}
					$content .= "\r\nBox Finishing 盒面後工序:: 跟相薄封面";
					$content .= "\r\nBox Size 盒尺寸:: 適合放入相冊尺寸";
				}
				break;	

			default:
				$content .= "\r\n".$display_name.':: '.$display_value;
				break;											
		
		}			
	}

	if($isFotomax){
		$content .= "\r\nRemark 備註:: 封底內頁底部左下角燙Amber logo,右下角燙fotomax logo (跟PO100000548-1)";	
	} else {		
		$content .= "\r\nRemark 備註:: ".get_customer_logo_remark($bill_to_name);
	}
			
	$content .= "\r\nPackaging 包裝方式:: 產品用氣泡袋及海棉護角保護後入AMBER坑箱";	

	return $content;
	
}

function get_formatted_item_content($order_id, $order_item_id) {
	$arr_break = array("Name 產品名稱", "Orientation 方向", "Logo Position 位置", "Lining Material 襯層物料", "Book Tap 書頭布", "Spreads 頁數", "Remark 備註", "Fotomax PO", "Packaging 包裝方式");
	
	$arr_sequence = array(
		"Name 產品名稱" => 1,
		"Color 封殼物料" => 2,
		"Size 尺寸" => 3,
		"Orientation 方向" => 4,		
		"Letterpress" => 5,
		"Letterpress Finishing 相冊後工序" => 6,
		"Text" => 7,
		"Font 字款" => 8,
		"Logo File" => 9,	
		"Logo Position 位置" => 10,		
		"Inner Paper" => 11,
		"Lining Material 襯層物料" => 12,		
		"Binding 釘裝方式" => 13,
		"Book Tap 書頭布" => 14,		
		"Spreads 頁數" => 15,		
		"Remark 備註" => 16,		
		"Box 盒子" => 17,
		"Ribbon 絲帶" => 18,
		"Box Finishing 盒面後工序" => 19,
		"Box Size 盒尺寸" => 20,
		"Fotomax PO" => 21,		
		"Packaging 包裝方式" => 22
	);
	$i=100;
	$content = get_item_content($order_id, $order_item_id);

	//echo $content;

	$arr_content = explode("\r\n", $content);
	$arr_result = array();
	foreach($arr_content as $arr_line) {
		$header = explode("::",$arr_line);
		if(in_array($header[0], $arr_break)) {
			$arr_line = $arr_line."\r\n";
		} 
		if(in_array($header[0], $arr_sequence)) {
			$arr_result[$arr_sequence[$header[0]]] = $arr_line;
		} else {
			$arr_result[$i] = $arr_line;
			$i++;
		}
	}
	
	ksort($arr_result);
	
	$result = implode("\r\n",$arr_result);

	return $result;
}