WSDL_CACHE_NONE , ) ); $user = "lp"; $pass = "usdpetty"; $result = $client->StartSession($user,$pass); $access_key = $result['access_key']; $type = 'SH'; $flags = ''; $number = ''; $data = array(); $result_gt = $client->GetTransRangeByDate($access_key, $type, $date_init, $date_end , $flags); $xml_gt = $result_gt['trans_list_xml']; // echo $xml_gt; // die(); $xml = simplexml_load_string($xml_gt); $json = json_encode($xml); $xmlArr = json_decode($json, true); $data = array(); $data_air = array(); $data_ocean = array(); $data_ground = array(); $data_temp_two = array(); if( is_array($xmlArr) ){ if(array_key_exists('AirShipment', $xmlArr)){ $data_air = orderDOs('AirShipment', 'AirWayBillNumber', $xmlArr['AirShipment']); } if(array_key_exists('OceanShipment', $xmlArr)){ $data_ocean = orderDOs('OceanShipment', 'BillOfLadingNumber', $xmlArr['OceanShipment']); } if(array_key_exists('GroundShipment', $xmlArr)){ $data_ground = orderDOs('GroundShipment', 'AirWayBillNumber', $xmlArr['GroundShipment']); } $data_temp = array_merge($data_air, $data_ocean); $data_temp_two = array_merge($data_temp, $data); } // print_r($data_numbers); header('Content-Type: application/json'); echo json_encode($data_temp_two); }catch (SoapFault $exception){ echo "
"; print_r($exception); } function orderDOs( $type, $way_field, $xml_data ){ global $data_numbers; $data = array(); foreach ($xml_data as $key => $val){ if(isset($val['LayoutType'])){ $masterNumber = explode(" ", $val['MasterNumber']); if($val['LayoutType'] == 'Master' && isset($val['MasterWayBillNumber']) && $masterNumber[0] != "T.US" && !in_array($masterNumber[0], $data_numbers)){ $data_numbers[] = $masterNumber[0]; $data[$key]['header']['number'] = $masterNumber[0]; $data[$key]['header']['wayBillNumber'] = $val['MasterWayBillNumber']; $data[$key]['header']['shipperName'] = (isset($val_shipment['ShipperName'])) ? $val_shipment['ShipperName'] : ""; $data[$key]['header']['consigneeName'] = $val['ConsigneeName']; $data[$key]['header']['weight'] = $val['TotalWeight']; $data[$key]['header']['chargeableWeight'] = $val['ChargeableWeight']; $data[$key]['header']['deliveryDate'] = date('Y-m-d' , strtotime($val['LastDateOfDeparture'])); $data[$key]['liquidation']['companies'][0]['billingSourceRefNumber'] = $masterNumber[0]; $data[$key]['liquidation']['companies'][0]['companyName'] = 'Airseatrans-US'; $data[$key]['liquidation']['companies'][0]['companyCode'] = 'AST-US'; if(array_key_exists('HouseShipments', $val)){ // Si almenos existe una posiciĆ³n 0 en el arreglo accedemos a los hijos if(key_exists(0, $val['HouseShipments'][$type])){ foreach($val['HouseShipments'][$type] as $key_shipment => $val_shipment){ $data[$key]['houseShipments'][$key_shipment]['wayBillNumber'] = (isset($val_shipment[$type.'Info'][$way_field])) ? $val_shipment[$type.'Info'][$way_field]: ""; $data[$key]['houseShipments'][$key_shipment]['shipperName'] = (isset($val_shipment['ShipperName'])) ? $val_shipment['ShipperName'] : ""; $data[$key]['houseShipments'][$key_shipment]['consigneeName'] = (isset($val_shipment['ConsigneeName'])) ? $val_shipment['ConsigneeName'] : ""; $data[$key]['houseShipments'][$key_shipment]['weight'] = (isset($val_shipment['TotalWeight'])) ? $val_shipment['TotalWeight'] : ""; $data[$key]['houseShipments'][$key_shipment]['chargeableWeight'] = (isset($val_shipment['ChargeableWeight'])) ? $val_shipment['ChargeableWeight'] : ""; } // Si no existe accedemos a la primera posiciĆ³n por defecto }else{ $data[$key]['houseShipments'][0]['wayBillNumber'] = (isset($val['HouseShipments'][$type][$type.'Info'][$way_field])) ? $val['HouseShipments'][$type][$type.'Info'][$way_field]: ""; $data[$key]['houseShipments'][0]['shipperName'] = (isset($val['HouseShipments'][$type]['ShipperName'])) ? $val['HouseShipments'][$type]['ShipperName']: ""; $data[$key]['houseShipments'][0]['consigneeName'] = (isset($val['HouseShipments'][$type]['ConsigneeName'])) ? $val['HouseShipments'][$type]['ConsigneeName']: ""; $data[$key]['houseShipments'][0]['weight'] = (isset($val['HouseShipments'][$type]['TotalWeight'])) ? $val['HouseShipments'][$type]['TotalWeight']: ""; $data[$key]['houseShipments'][0]['chargeableWeight'] = (isset($val['HouseShipments'][$type]['ChargeableWeight'])) ? $val['HouseShipments'][$type]['TotalWeight']: ""; } } } else if($val['LayoutType'] == 'Straight' && isset($val['MasterWayBillNumber']) && $masterNumber[0] != "T.US" && !in_array($masterNumber[0], $data_numbers)){ $masterNumber = explode(" ", $val['MasterNumber']); $data_numbers[] = $masterNumber[0]; $data[$key]['header']['number'] = $masterNumber[0]; $data[$key]['header']['wayBillNumber'] = (isset($val['MasterWayBillNumber'])) ? $val['MasterWayBillNumber']: ""; $data[$key]['header']['shipperName'] = (isset($val['ShipperName'])) ? $val['ShipperName']: ""; $data[$key]['header']['consigneeName'] = (isset($val['ConsigneeName'])) ? $val['ConsigneeName']: ""; $data[$key]['header']['weight'] = $val['TotalWeight']; $data[$key]['header']['chargeableWeight'] = $val['ChargeableWeight']; $data[$key]['header']['deliveryDate'] = date('Y-m-d' , strtotime($val['LastDateOfDeparture'])); $data[$key]['liquidation']['companies'][0]['billingSourceRefNumber'] = $masterNumber[0]; $data[$key]['liquidation']['companies'][0]['companyName'] = 'Airseatrans-US'; $data[$key]['liquidation']['companies'][0]['companyCode'] = 'AST-US'; $data[$key]['houseShipments'] = array(); } } } // die(); return $data; }