|
|
@@ -1121,6 +1121,42 @@ class common {
|
|
|
if(!empty($dashboard_filter['date_start'])){
|
|
|
$dashboard_filter['date_start'] = common::usDate2sqlDate($dashboard_filter['date_start']);
|
|
|
}
|
|
|
+ }else{
|
|
|
+ $threeMonthsAgoTimestamp = strtotime('-3 months');
|
|
|
+ $date_start = date('Y-m-01', $threeMonthsAgoTimestamp);
|
|
|
+ $date_end = date('Y-m-t');
|
|
|
+ $date_start_two = date('m/01/Y', $threeMonthsAgoTimestamp);
|
|
|
+ $date_end_two = date('m/t/Y');
|
|
|
+
|
|
|
+ $date_start_ym = date('Y-m', $threeMonthsAgoTimestamp);
|
|
|
+ $date_end_ym = date('Y-m');
|
|
|
+ $date_start_two_ym = date('m/01/Y', $threeMonthsAgoTimestamp);
|
|
|
+ $date_end_two_ym = date('m/t/Y');
|
|
|
+
|
|
|
+ //柜子
|
|
|
+ $MonthsAgoTimestamp = strtotime('-12 months');
|
|
|
+ $date_start_ctnr = date('Y-m', $MonthsAgoTimestamp);
|
|
|
+ $date_end_ctnr = date('Y-m');
|
|
|
+ $date_start_two_ctnr = date('m/Y', $MonthsAgoTimestamp);
|
|
|
+ $date_end_two_ctnr = date('m/Y');
|
|
|
+
|
|
|
+ //KPIDefaulteData
|
|
|
+ $dashboard_filter['KPIDefaulteData'] = array("transportation" =>array('All'),"date_type"=>"ETD","date_start"=>$date_start,"date_start_two"=>$date_start_two,
|
|
|
+ "date_end"=>$date_end,"date_end_two"=>$date_end_two);
|
|
|
+ //PendingDefaultData
|
|
|
+ $dashboard_filter['PendingDefaultData'] = array("transportation" =>array('All'),"date_type"=>"ETD","date_start"=>"","date_start_two"=>"",
|
|
|
+ "date_end"=>"","date_end_two"=>"");
|
|
|
+ //RecentDefaultData
|
|
|
+ $dashboard_filter['RecentDefaultData'] = array("transportation" =>array('All'),"date_type"=>"ETD","date_start"=>$date_start,"date_start_two"=>$date_start_two,
|
|
|
+ "date_end"=>$date_end,"date_end_two"=>$date_end_two);
|
|
|
+
|
|
|
+ //ETDDefaultData
|
|
|
+ $dashboard_filter['ETDDefaultData'] = array("transportation" =>array('All'),"date_type"=>"ETA","date_start"=>$date_start_ym,"date_start_two"=>$date_start_two_ym,
|
|
|
+ "date_end"=>$date_end_ym,"date_end_two"=>$date_end_two_ym);
|
|
|
+
|
|
|
+ //ContainerefaultData
|
|
|
+ $dashboard_filter['ContainerefaultData'] = array("transportation" =>array('Sea'),"date_type"=>"ETA","date_start"=>$date_start_two_ctnr,"date_start_two"=>$date_start_ctnr,
|
|
|
+ "date_end"=>$date_end_two_ctnr,"date_end_two"=>$date_end_ctnr);
|
|
|
}
|
|
|
return array("Management" => $Management,"dashboard_filter" =>$dashboard_filter);
|
|
|
}
|
|
|
@@ -1609,21 +1645,31 @@ class common {
|
|
|
inner join customer_service_milestone_sno sn on sn.code=a.code
|
|
|
where a.serial_no='".$ocean["serial_no"]."' and act_date is not null order by sn.sno asc");
|
|
|
foreach($Milestones_data_arr as $mda){
|
|
|
- $locations = "";
|
|
|
$timezone = "";
|
|
|
if(!empty($EDI315TimeAndLocation[$mda['code']])){
|
|
|
$edi315Info = $EDI315TimeAndLocation[$mda['code']];
|
|
|
if(!empty($edi315Info)){
|
|
|
- $locations = $edi315Info['location'];
|
|
|
$timezone = $edi315Info['timezone'];
|
|
|
}
|
|
|
+ //IFFICC 比较特殊用EDI的locations
|
|
|
+ if($mda['code'] == "IFFICC"){
|
|
|
+ $IFFICC_locations = $edi315Info['location'];
|
|
|
+ }
|
|
|
}else{
|
|
|
$edi315Info = $Milestones_NO_Mapping[$mda['code']];
|
|
|
if(!empty($edi315Info)){
|
|
|
- $locations = $edi315Info['location'];
|
|
|
$timezone = $edi315Info['timezone'];
|
|
|
}
|
|
|
}
|
|
|
+ //locations 以配置的信息为准
|
|
|
+ $locations = "";
|
|
|
+ $edi315Info = $Milestones_NO_Mapping[$mda['code']];
|
|
|
+ if(!empty($edi315Info)){
|
|
|
+ $locations = $edi315Info['location'];
|
|
|
+ if($mda['code'] == "IFFICC" && !empty($IFFICC_locations)){
|
|
|
+ $locations = $IFFICC_locations;
|
|
|
+ }
|
|
|
+ }
|
|
|
$Milestones_data[] = array("milestones"=>$mda['description'],"date_time"=>$mda['date_time'],"timezone" =>$timezone,
|
|
|
"locations" => $locations, "remarks" =>$mda['remark']);
|
|
|
}
|
|
|
@@ -1650,62 +1696,184 @@ class common {
|
|
|
*/
|
|
|
public static function getMilestones_NO_Mapping_Data($ocean){
|
|
|
$Milestones_NO_Mapping = array();
|
|
|
- //取origin
|
|
|
- $Milestones_NO_Mapping['IFFBCF'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>$ocean['aa_city']);
|
|
|
- $Milestones_NO_Mapping['IFFBCR'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>$ocean['aa_city']);
|
|
|
- $Milestones_NO_Mapping['IFFSIL'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>$ocean['aa_city']);
|
|
|
- $Milestones_NO_Mapping['IFFEDO'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>$ocean['aa_city']);
|
|
|
- $Milestones_NO_Mapping['IFFECC'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>$ocean['aa_city']);
|
|
|
-
|
|
|
- //取 1:Place of Receipt 2:Port of Loading
|
|
|
- if(!empty($ocean['por_uncity'])){
|
|
|
- $Milestones_NO_Mapping['IFFREC'] = array("code"=>"por/pol","timezone"=>$ocean['por_timezone'],"location"=>$ocean['por_uncity']);
|
|
|
- $Milestones_NO_Mapping['IFFONB'] = array("code"=>"por/pol","timezone"=>$ocean['por_timezone'],"location"=>$ocean['por_uncity']);
|
|
|
- $Milestones_NO_Mapping['IFFDEP'] = array("code"=>"por/pol","timezone"=>$ocean['por_timezone'],"location"=>$ocean['por_uncity']);
|
|
|
- $Milestones_NO_Mapping['IFFECP'] = array("code"=>"por/pol","timezone"=>$ocean['por_timezone'],"location"=>$ocean['por_uncity']);
|
|
|
- }else{
|
|
|
- $Milestones_NO_Mapping['IFFREC'] = array("code"=>"por/pol","timezone"=>$ocean['pol_timezone'],"location"=>$ocean['pol_uncity']);
|
|
|
- $Milestones_NO_Mapping['IFFONB'] = array("code"=>"por/pol","timezone"=>$ocean['pol_timezone'],"location"=>$ocean['pol_uncity']);
|
|
|
- $Milestones_NO_Mapping['IFFDEP'] = array("code"=>"por/pol","timezone"=>$ocean['pol_timezone'],"location"=>$ocean['pol_uncity']);
|
|
|
- $Milestones_NO_Mapping['IFFECP'] = array("code"=>"por/pol","timezone"=>$ocean['por_timezone'],"location"=>$ocean['por_uncity']);
|
|
|
- }
|
|
|
-
|
|
|
- //取destination
|
|
|
- $Milestones_NO_Mapping['IFFCSN'] = array("code"=>"destination","timezone"=>$ocean['dd_timezone'],"location"=>$ocean['dd_city']);
|
|
|
- $Milestones_NO_Mapping['IFFIDO'] = array("code"=>"destination","timezone"=>$ocean['dd_timezone'],"location"=>$ocean['dd_city']);
|
|
|
+ //取origin $ocean['aa_city'] 不是必需,对应文件里未提location来源
|
|
|
+ $Milestones_NO_Mapping['IFFBCF'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>"");
|
|
|
+ $Milestones_NO_Mapping['IFFBCR'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>"");
|
|
|
+ $Milestones_NO_Mapping['IFFCPU'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>"");
|
|
|
+ $Milestones_NO_Mapping['IFFSIL'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>"");
|
|
|
+ $Milestones_NO_Mapping['IFFEDO'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>"");
|
|
|
+ $Milestones_NO_Mapping['IFFECC'] = array("code"=>"origin","timezone"=>$ocean['aa_timezone'],"location"=>"");
|
|
|
+
|
|
|
+ //Place of Receipt
|
|
|
+ $Milestones_NO_Mapping['IFFREC'] = array("code"=>"por/pol","timezone"=>$ocean['por_timezone'],"location"=>$ocean['por_uncity']);
|
|
|
+ $Milestones_NO_Mapping['IFFECP'] = array("code"=>"por/pol","timezone"=>$ocean['por_timezone'],"location"=>$ocean['por_uncity']);
|
|
|
+
|
|
|
+ //Port of loading
|
|
|
+ $Milestones_NO_Mapping['IFFONB'] = array("code"=>"por/pol","timezone"=>$ocean['pol_timezone'],"location"=>$ocean['pol_uncity']);
|
|
|
+ $Milestones_NO_Mapping['IFFDEP'] = array("code"=>"por/pol","timezone"=>$ocean['pol_timezone'],"location"=>$ocean['pol_uncity']);
|
|
|
+
|
|
|
+ //取destination $ocean['dd_city']不是必需
|
|
|
+ $Milestones_NO_Mapping['IFFCSN'] = array("code"=>"destination","timezone"=>$ocean['dd_timezone'],"location"=>"");
|
|
|
+ $Milestones_NO_Mapping['IFFIDO'] = array("code"=>"destination","timezone"=>$ocean['dd_timezone'],"location"=>"");
|
|
|
|
|
|
//取Port of discharge
|
|
|
$Milestones_NO_Mapping['IFFARR'] = array("code"=>"mpod","timezone"=>$ocean['mpod_timezone'],"location"=>$ocean['mpod_uncity']);
|
|
|
+ $Milestones_NO_Mapping['IFFUND'] = array("code"=>"mpod/pod/fd","timezone"=>$ocean['mpod_timezone'],"location"=>$ocean['mpod_uncity']);
|
|
|
$Milestones_NO_Mapping['IFFICC'] = array("code"=>"mpod","timezone"=>$ocean['mpod_timezone'],"location"=>$ocean['mpod_uncity']);
|
|
|
- $Milestones_NO_Mapping['IFFPPD'] = array("code"=>"mpod","timezone"=>$ocean['mpod_timezone'],"location"=>$ocean['mpod_uncity']);
|
|
|
-
|
|
|
- //取1:Port of discharge 2:place of delivery / Final Destination
|
|
|
- if(!empty($ocean['mpod_uncity'])){
|
|
|
- $Milestones_NO_Mapping['IFFUND'] = array("code"=>"mpod/pod/fd","timezone"=>$ocean['mpod_timezone'],"location"=>$ocean['mpod_uncity']);
|
|
|
- }else if(!empty($ocean['pod_uncity'])){
|
|
|
- $Milestones_NO_Mapping['IFFUND'] = array("code"=>"mpod/pod/fd","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
- }else{
|
|
|
- $Milestones_NO_Mapping['IFFUND'] = array("code"=>"mpod/pod/fd","timezone"=>$ocean['fd_timezone'],"location"=>$ocean['fd_city']);
|
|
|
- }
|
|
|
|
|
|
//Place of Delivery
|
|
|
$Milestones_NO_Mapping['IFFAFD'] = array("code"=>"pod","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
+ $Milestones_NO_Mapping['IFFCTA'] = array("code"=>"pod/mpod","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
$Milestones_NO_Mapping['IFFADW'] = array("code"=>"pod","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
$Milestones_NO_Mapping['IFFDDW'] = array("code"=>"pod","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
- $Milestones_NO_Mapping['IFFDEL'] = array("code"=>"pod","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
-
|
|
|
- //1:Place of Delivery 2:port of discharge
|
|
|
- if(!empty($ocean['pod_uncity'])){
|
|
|
- $Milestones_NO_Mapping['IFFCTA'] = array("code"=>"pod/mpod","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
- }else{
|
|
|
- $Milestones_NO_Mapping['IFFCTA'] = array("code"=>"pod/mpod","timezone"=>$ocean['mpod_timezone'],"location"=>$ocean['mpod_uncity']);
|
|
|
- }
|
|
|
+ $Milestones_NO_Mapping['IFFPPD'] = array("code"=>"mpod/pod/fd","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
+ $Milestones_NO_Mapping['IFFECR'] = array("code"=>"mpod/pod/fd","timezone"=>$ocean['pod_timezone'],"location"=>$ocean['pod_uncity']);
|
|
|
+
|
|
|
|
|
|
- //final_destination
|
|
|
- $Milestones_NO_Mapping['IFFECR'] = array("code"=>"fd","timezone"=>$ocean['fd_timezone'],"location"=>$ocean['fd_city']);
|
|
|
- $Milestones_NO_Mapping['IFFHBL'] = array("code"=>"fd","timezone"=>$ocean['fd_timezone'],"location"=>$ocean['fd_city']);
|
|
|
+ //final_destination $ocean['fd_city']不是必需
|
|
|
+ $Milestones_NO_Mapping['IFFDEL'] = array("code"=>"fd","timezone"=>$ocean['fd_timezone'],"location"=>"");
|
|
|
+ $Milestones_NO_Mapping['IFFHBL'] = array("code"=>"fd","timezone"=>$ocean['fd_timezone'],"location"=>"");
|
|
|
|
|
|
return $Milestones_NO_Mapping;
|
|
|
}
|
|
|
+
|
|
|
+ public static function getEDI315StatusForDetail($serial_no){
|
|
|
+ $data = array();
|
|
|
+ $ctnr_sql = "SELECT oc.ctnr, oc.serial_no,oc.size FROM oc_container oc LEFT JOIN ocean o ON oc.serial_no = o.serial_no
|
|
|
+ WHERE o.serial_no='$serial_no'";
|
|
|
+ $ctnr_data = common::excuteListSql($ctnr_sql);
|
|
|
+ $containerStatusData = array();
|
|
|
+ $VD = "";
|
|
|
+ $VA = "";
|
|
|
+ foreach ($ctnr_data as $cd){
|
|
|
+ //存在柜号为空的数据情况
|
|
|
+ if(empty($cd['ctnr'])){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //(select uncity from public.ports where uncode = s.event_code) as uncity, 按新版的逻辑这个先取消掉
|
|
|
+ $ctnr_status_sql = "select s.source_id, s.event_base as event,
|
|
|
+ to_char(to_timestamp(s.event_date, 'YYYYMMDD'), 'YYYY-MM-DD') as eventdate,
|
|
|
+ to_char(to_timestamp(s.event_time, 'HH24MI'), 'HH24:MI') as eventtime,
|
|
|
+ e.description,s.event_type as eventtype,
|
|
|
+ s.event_code as eventcode, s.event_city as eventcity,
|
|
|
+ (select time_zone from public.city_timezone where uncode = s.event_code) as timezone,
|
|
|
+ '' as uncity,
|
|
|
+ case when event ='I' or event ='TR' then 'IFFREC'::text
|
|
|
+ when event ='AE' then 'IFFONB'::text
|
|
|
+ when event ='VD' then 'IFFDEP'::text
|
|
|
+ when event ='EB' or event ='VA' then 'IFFARR'::text
|
|
|
+ when event ='UV' then 'IFFUND'::text
|
|
|
+ when event ='VA' then 'IFFAFD'::text
|
|
|
+ when event ='AV' then 'IFFCTA'::text
|
|
|
+ when event ='CT' then 'IFFICC'::text
|
|
|
+ when event ='OA' or event ='D' then 'IFFPPD'::text
|
|
|
+ when event ='RD' then 'IFFECR'::text
|
|
|
+ when event ='EE' then 'IFFECP'::text
|
|
|
+ else '' ::text
|
|
|
+ end as milestone_code
|
|
|
+ from public.ra_online_container_status_v s
|
|
|
+ left join ra_online_edi_event e on s.event_base = e.ra_name
|
|
|
+ where s.serial_no = '" . pg_escape_string($cd['serial_no']) . "'
|
|
|
+ and s.container_no = '" . pg_escape_string($cd['ctnr']) . "' and is_display = true
|
|
|
+ order by to_timestamp(s.event_date, 'YYYYMMDD') asc,
|
|
|
+ to_timestamp(s.event_time, 'HH24MI') asc,e.ra_order asc";
|
|
|
+ $ctnr_status = common::excuteListSql($ctnr_status_sql);
|
|
|
+
|
|
|
+ //Container_Status 新版只显示几个状态, CTNR# EE I AE VD VA
|
|
|
+ $container_status_column = array("EE","I","AE","VD","VA");
|
|
|
+ $containerStatusDataTemp = array();
|
|
|
+ $content = array();
|
|
|
+ //按顺序处理 新版只显示几个状态
|
|
|
+ foreach($container_status_column as $status){
|
|
|
+ foreach($ctnr_status as $event){
|
|
|
+ if(strtolower($event['event']) == strtolower($status)){
|
|
|
+ $eventdate = $event["eventdate"];
|
|
|
+ if (empty($event["source_id"]) || $event["source_id"]==0) {
|
|
|
+ $eventdate.= " " . $event["eventtime"];
|
|
|
+ }
|
|
|
+ $location_code = $event["eventcode"];
|
|
|
+ $content[] = array("code" =>$status,"title" =>$event['description'],"date"=>$eventdate,"country"=>$location_code,"timezone"=>$event['timezone']);
|
|
|
+ if(strtolower($event['event']) == "vd" && !empty($eventdate)){
|
|
|
+ $VD = $eventdate;
|
|
|
+ }
|
|
|
+ if(strtolower($event['event']) == "va" && !empty($eventdate)){
|
|
|
+ $VA = $eventdate;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //记录所有的信息
|
|
|
+ $EDI315TimeAndLocation = array();
|
|
|
+ foreach($ctnr_status as $event){
|
|
|
+ if(!empty($EDI315TimeAndLocation['IFFARR']) && $EDI315TimeAndLocation['IFFARR']['code'] == "EB"){
|
|
|
+ //如果存在EB 的EB 的优先级最高
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(!empty($EDI315TimeAndLocation['IFFPPD']) && $EDI315TimeAndLocation['IFFARR']['code'] == "OA"){
|
|
|
+ //如果存在OA 的OA 的优先级最高
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $EDI315TimeAndLocation[$event['milestone_code']] = array("code"=>$event['event'],"timezone"=>$event['timezone'],"location"=>$event['uncity']);
|
|
|
+ }
|
|
|
+
|
|
|
+ $containerStatusDataTemp['label'] = $cd['ctnr']." / ".$cd['size'];
|
|
|
+ $containerStatusDataTemp['content'] = $content;
|
|
|
+ $containerStatusData[] = $containerStatusDataTemp;
|
|
|
+ }
|
|
|
+ $data['containerStatusData'] = $containerStatusData;
|
|
|
+ $data['EDI315TimeAndLocation'] = $EDI315TimeAndLocation;
|
|
|
+ $data['VD'] = $VD;
|
|
|
+ $data['VA'] = $VA;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function getEDI315Time($serial_no){
|
|
|
+ //Timezone From 来自于EDI315
|
|
|
+ $ctnr_sql = "SELECT oc.ctnr, oc.serial_no,oc.size FROM oc_container oc LEFT JOIN ocean o ON oc.serial_no = o.serial_no
|
|
|
+ WHERE o.serial_no='$serial_no'";
|
|
|
+ $ctnr_data = common::excuteListSql($ctnr_sql);
|
|
|
+ $EDI315TimeAndLocation = array();
|
|
|
+ foreach ($ctnr_data as $cd){
|
|
|
+ //存在柜号为空的数据情况
|
|
|
+ if(empty($cd['ctnr'])){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $ctnr_status_sql = "select
|
|
|
+ (select time_zone from public.city_timezone where uncode = s.event_code) as timezone,
|
|
|
+ case when event ='I' or event ='TR' then 'IFFREC'::text
|
|
|
+ when event ='AE' then 'IFFONB'::text
|
|
|
+ when event ='VD' then 'IFFDEP'::text
|
|
|
+ when event ='EB' or event ='VA' then 'IFFARR'::text
|
|
|
+ when event ='UV' then 'IFFUND'::text
|
|
|
+ when event ='VA' then 'IFFAFD'::text
|
|
|
+ when event ='AV' then 'IFFCTA'::text
|
|
|
+ when event ='CT' then 'IFFICC'::text
|
|
|
+ when event ='OA' or event ='D' then 'IFFPPD'::text
|
|
|
+ when event ='RD' then 'IFFECR'::text
|
|
|
+ when event ='EE' then 'IFFECP'::text
|
|
|
+ else '' ::text
|
|
|
+ end as milestone_code
|
|
|
+ from public.ra_online_container_status_v s
|
|
|
+ left join ra_online_edi_event e on s.event_base = e.ra_name
|
|
|
+ where s.serial_no = '" . pg_escape_string($cd['serial_no']) . "'
|
|
|
+ and s.container_no = '" . pg_escape_string($cd['ctnr']) . "' and is_display = true
|
|
|
+ order by to_timestamp(s.event_date, 'YYYYMMDD') asc,
|
|
|
+ to_timestamp(s.event_time, 'HH24MI') asc,e.ra_order asc";
|
|
|
+ $ctnr_status = common::excuteListSql($ctnr_status_sql);
|
|
|
+ //记录所有的信息、替换最后一个柜子
|
|
|
+ $EDI315TimeAndLocation = array();
|
|
|
+ foreach($ctnr_status as $event){
|
|
|
+ if(!empty($EDI315TimeAndLocation['IFFARR']) && $EDI315TimeAndLocation['IFFARR']['code'] == "EB"){
|
|
|
+ //如果存在EB 的EB 的优先级最高
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(!empty($EDI315TimeAndLocation['IFFPPD']) && $EDI315TimeAndLocation['IFFARR']['code'] == "OA"){
|
|
|
+ //如果存在OA 的OA 的优先级最高
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $EDI315TimeAndLocation[$event['milestone_code']] = array("code"=>$event['event'],"timezone"=>$event['timezone']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $EDI315TimeAndLocation;
|
|
|
+ }
|
|
|
}
|
|
|
?>
|