protected function mapStatus($oper, $attr)
{
if($oper == '')
return Statuses::UNKNOWN;
/*
* if innerStatus1 != innerStatus2 != .......
*
* opCode1 => array (
* attrCode1 => innerStatus1
* attrCode2 => innerStatus2
* ...
* )
*
* if innerStatus1 == innerStatus2 == .......
*
* opCode => innerStatus
*
*/
$rusPostStatuses = array(
1 => Statuses::WAITING_SHIPMENT,
2 => array(
1 => Statuses::HANDED,
2 => Statuses::RETURNED,
3 => Statuses::HANDED,
4 => Statuses::RETURNED,
5 => Statuses::HANDED,
6 => Statuses::HANDED,
7 => Statuses::RETURNED,
8 => Statuses::HANDED,
9 => Statuses::RETURNED,
10 => Statuses::HANDED,
11 => Statuses::HANDED,
12 => Statuses::HANDED,
),
3 => Statuses::PROBLEM,
4 => Statuses::ON_THE_WAY,
5 => array(
1 => Statuses::PROBLEM,
2 => Statuses::PROBLEM,
3 => Statuses::PROBLEM,
8 => Statuses::PROBLEM,
9 => Statuses::PROBLEM
),
6 => array(
1 => Statuses::ARRIVED,
2 => Statuses::ARRIVED,
3 => Statuses::ARRIVED,
4 => Statuses::ARRIVED,
5 => Statuses::ON_THE_WAY,
),
7 => Statuses::PROBLEM,
8 => array(
0 => Statuses::ON_THE_WAY,
1 => Statuses::ON_THE_WAY,
2 => Statuses::ARRIVED,
3 => Statuses::ON_THE_WAY,
4 => Statuses::ON_THE_WAY,
5 => Statuses::ON_THE_WAY,
6 => Statuses::ON_THE_WAY,
7 => Statuses::ON_THE_WAY,
8 => Statuses::ON_THE_WAY,
9 => Statuses::ARRIVED,
10 => Statuses::ARRIVED,
11 => Statuses::ON_THE_WAY,
12 => Statuses::ARRIVED,
13 => Statuses::ON_THE_WAY,
14 => Statuses::ARRIVED,
15 => Statuses::ON_THE_WAY,
16 => Statuses::ON_THE_WAY,
17 => Statuses::ON_THE_WAY,
18 => Statuses::ON_THE_WAY,
19 => Statuses::ON_THE_WAY,
),
9 => Statuses::ON_THE_WAY,
10 => Statuses::ON_THE_WAY,
11 => Statuses::ON_THE_WAY,
12 => array(
1 => Statuses::ARRIVED,
2 => Statuses::ARRIVED,
3 => Statuses::PROBLEM,
4 => Statuses::PROBLEM,
5 => Statuses::PROBLEM,
6 => Statuses::PROBLEM,
7 => Statuses::PROBLEM,
8 => Statuses::PROBLEM,
9 => Statuses::ARRIVED,
10 => Statuses::PROBLEM,
11 => Statuses::ARRIVED,
12 => Statuses::PROBLEM,
13 => Statuses::PROBLEM,
14 => Statuses::PROBLEM,
15 => Statuses::ARRIVED,
16 => Statuses::PROBLEM,
17 => Statuses::ARRIVED,
18 => Statuses::ARRIVED,
19 => Statuses::PROBLEM,
20 => Statuses::PROBLEM,
21 => Statuses::PROBLEM,
22 => Statuses::ARRIVED,
23 => Statuses::PROBLEM,
24 => Statuses::PROBLEM,
25 => Statuses::ARRIVED,
26 => Statuses::PROBLEM,
27 => Statuses::ARRIVED,
28 => Statuses::PROBLEM,
),
13 => Statuses::ON_THE_WAY,
14 => Statuses::ON_THE_WAY,
15 => Statuses::ARRIVED,
16 => Statuses::PROBLEM,
17 => Statuses::ARRIVED,
18 => Statuses::PROBLEM,
19 => Statuses::ON_THE_WAY,
20 => Statuses::ON_THE_WAY,
21 => Statuses::ON_THE_WAY,
22 => Statuses::PROBLEM,
23 => Statuses::ON_THE_WAY,
24 => Statuses::PROBLEM,
25 => Statuses::ON_THE_WAY,
26 => Statuses::PROBLEM,
27 => Statuses::ON_THE_WAY,
28 => Statuses::NO_INFORMATION,
29 => Statuses::ON_THE_WAY,
30 => Statuses::ON_THE_WAY,
31 => Statuses::ON_THE_WAY,
32 => Statuses::ON_THE_WAY,
33 => Statuses::ON_THE_WAY,
);
if(!isset($rusPostStatuses[$oper]))
return Statuses::UNKNOWN;
if(!is_array($rusPostStatuses[$oper]))
return $rusPostStatuses[$oper];
if($attr == '')
return Statuses::UNKNOWN;
if(!isset($rusPostStatuses[$oper][$attr]))
return Statuses::UNKNOWN;
return $rusPostStatuses[$oper][$attr];
}