<?php
/**
 * @author william-fan
 * @todo 判断国家的袋号
 */
class Service_ChangePack{
	/**
	 * @author william-fan
	 * @todo 用于得到包袋号
	 */
	public static function getPackNo($country_code,$postCode){
		$packNo = '';
		//echo $country_code,$postCode;
		switch ($country_code){
			case "US":
				//美国
				$packNo = self::getUsPackNo($postCode);
				break;
			case "AU":
				//澳洲
				$packNo = self::getAuPackNo($postCode);
				break;
			case "CA":
				//加拿大
				$packNo = self::getCaPackNo($postCode);
				break;
			case "IN":
				//印度
				$packNo = self::getInPackNo($postCode);
				break;
			default:			
		}
		return $packNo;		
	}
	/**
	 * @author william-fan
	 * @todo 得到美国的袋号
	 */
	public static function getUsPackNo($postCode){
		$postCode = trim($postCode);
		$firstPostCode = $postCode{0};
		//echo $firstPostCode;
		$changePack = '';
		switch($firstPostCode){
			case "0":
			case "1":
			case "2":
			case "3":
				$changePack = 'JFK';
				break;
			case "4":
			case "5":
			case "6":
			case "7":
				$changePack = 'ORD';
				break;
			case "8":
				$pattern = '/^8[5-9][0-1][0-9a-zA-Z]{2}/i';
				if(preg_match($pattern, $postCode)){
					$changePack = 'LAX';
				}else{
					$changePack = 'SFO';
				}
				break;
			case "9":
				 $changePack = 'SFO';
				 $pattern = '/^9[0-3][0-5][0-9a-zA-Z]{2}/i';
				 if(preg_match($pattern, $postCode)){
				 	$changePack = 'LAX';
				 }
				 $pattern1 = '/^96[7-8][0-9a-zA-Z]{2}/i';
				 if(preg_match($pattern1, $postCode)){
				 	$changePack = 'HNL';
				 }
				break;
		}
		return  $changePack;
	}
	/**
	 * @author william-fan
	 * @todo 得到澳洲的袋号
	 */
	public static function getAuPackNo($postCode){
		$postCode = trim($postCode);
		$firstPostCode = $postCode{0};
		//echo $firstPostCode;
		$changePack = '';
		switch($firstPostCode){
			case "0":
			case "1":
			case "2":
				$changePack = 'SYD';
				break;
			case "3":
			case "5":
			case "7":
			case "8":
				$changePack = 'MEL';
				break;
			case "6":
				$changePack = 'PER';
				break;
			case "4":
			case "9":
				$changePack = 'BNE';
				break;
		}
		return  $changePack;
	}
	/**
	 * @author william-fan
	 * @todo 得到加拿大的袋号
	 */
	public static function getCaPackNo($postCode){
		$postCode = trim($postCode);
		$firstPostCode = $postCode{0};
		
		
		$pattern = '/^[A-P]/i';
		$changePack = '';
		if(preg_match($pattern, $postCode)){
			$changePack = 'YTO';
		}
		$pattern2 = '/^[R-Y]/i';
		if(preg_match($pattern2, $postCode)){
			$changePack = 'YVR';
		}
		return $changePack;
	}
	/**
	 * @author william-fan
	 * @todo 用于印度的袋号
	 */
	public static function getInPackNo($postCode){
		$postCode = trim($postCode);
		//$firstPostCode = $postCode{0};
		$pattern = "/^3[5-9][1-9]|^[4-6][0-9]{2}[a-z0-9A-Z]{3}/i";
		
		$changePack = 'DEL';
		if(preg_match($pattern, $postCode)){
			$changePack = 'BOM';
		}
		return $changePack;
	}
}
