<?php
/**
 * @author solar
 * @todo 批量订单转换
 */
require_once ('config.php');
date_default_timezone_set('Asia/Shanghai');
$date	= date("Y-m-d H:i:s");
set_time_limit(0);
$orderInfo	= Service_ExchangeOrder::getByCondition(array('exchange_status'=>0));
foreach($orderInfo as $key=>$val){
	try {
		$db = Common_Common::getAdapter();
		$db->beginTransaction();
		Service_ExchangeOrder::update(array('exchange_status'=>1),$val['eo_id']);
		$warehouseInfo	= Service_Warehouse::getByField($val['warehouse_code'],'warehouse_code','*');
		$logisticsOrderParam	= array(
			'logistics_code'		=> $val['order_code'],
			'customer_id'			=> '',
			'customer_code'			=> '',
			'warehouse_id'			=> $warehouseInfo['warehouse_id'],
			'reference_no'			=> $val['reference_no'],
			'sm_code'				=> '',
			'lo_weight'				=> $val['order_weight'],
			'lo_status'				=> 2,
			'lo_create_time'		=> $date,
			'ref_tracking_number'	=> $val['tracking_number'],
		);
		Service_LogisticsOrder::add($logisticsOrderParam);
		
		$logisticsOrderAddressParam1	= array(
			'logistics_code'	=> $val['order_code'],
			'loa_name'			=> $val['shipper_contact'],
			'loa_company'		=> $val['shipper_company'],
			'loa_country'		=> $val['shipper_country_id'],
			'loa_zipcode'		=> $val['shipper_postal_code'],
			'loa_phone'			=> $val['shipper_phone'],
			'loa_province'		=> $val['shipper_state'],
			'loa_city'			=> $val['shipper_city'],
			'loa_address'		=> $val['shipper_address1'].' '.$val['shipper_address2'],
			'loa_type'			=> 0,
		);
		Service_LogisticsOrderAddress::add($logisticsOrderAddressParam1);

		$logisticsOrderAddressParam2	= array(
			'logistics_code'	=> $val['order_code'],
			'loa_name'			=> $val['recipient_contact'],
			'loa_company'		=> $val['recipient_company'],
			'loa_country'		=> $val['recipient_country_id'],
			'loa_zipcode'		=> $val['recipient_postal'],
			'loa_phone'			=> $val['recipient_phone'],
			'loa_province'		=> $val['recipient_state'],
			'loa_city'			=> $val['recipient_city'],
			'loa_address'		=> $val['recipient_address1'].' '.$val['recipient_address2'],
			'loa_type'			=> 1,
		);
		Service_LogisticsOrderAddress::add($logisticsOrderAddressParam2);
		
		$logisticsOrderLogParam	= array(
			'logistics_code'		=> $val['order_code'],
			'lol_comment'			=> '订单新增',
			'lol_create_time'		=> $date,
			'lol_operator'			=> 0,
			'lol_ip'				=> '127.0.0.1',
			'order_status_from'		=> 2,
			'order_status_to'		=> 2,
		);
		
		Service_LogisticsOrderLog::add($logisticsOrderLogParam);
		$productUom		= Service_ProductUom::getByField('件','pu_name','*');
		$parcelDetail	= Service_ParcelDetail::getByCondition(array('order_code'=>$val['order_code']));
		foreach($parcelDetail as $k1=>$v1){
			$parcelProduct	= Service_ParcelProduct::getByCondition(array('parcel_code'=>$v1['parcel_code']));
			foreach($parcelProduct as $k2=>$v2){
				$logisticsOrderHsParam	= array(
					'logistics_code'	=> $val['order_code'],
					'loh_hs_code'		=> $v2['harmonized_code'],
					'loh_hs_name'		=> $v2['commodity_description'],
					'loh_quantity'		=> $v2['commodity_qty'],
					'loh_price'			=> $v2['commodity_value'],
					'loh_total_price'	=> $v2['commodity_qty']*$v2['commodity_value'],
					'loh_unit'			=> $productUom['pu_code'],
				);
				Service_LogisticsOrderHs::add($logisticsOrderHsParam);
			}
		}
		
		$db->commit();
	} catch (Exception $e) {
		$db->rollBack();
		echo $e->getMessage();
	}
	
}
