protected function _mapConsumptionValue(\App_ListFilter_Interface $filter)
 {
     $mapService = array(SimFilterFields::CONSUMPTION_VOICE => ConsumptionCriteria\Service::VOICE, SimFilterFields::CONSUMPTION_SMS => ConsumptionCriteria\Service::SMS, SimFilterFields::CONSUMPTION_DATA => ConsumptionCriteria\Service::DATA);
     $mapLevel = array(SimFilterFields::CON_THRESHOLD_1 => ConsumptionCriteria\Level::THRESHOLD_1, SimFilterFields::CON_THRESHOLD_2 => ConsumptionCriteria\Level::THRESHOLD_2, SimFilterFields::CON_THRESHOLD_3 => ConsumptionCriteria\Level::THRESHOLD_3, SimFilterFields::CON_THRESHOLD_4 => ConsumptionCriteria\Level::THRESHOLD_4, SimFilterFields::CON_LIMIT => ConsumptionCriteria\Level::THRESHOLD_5);
     switch (true) {
         case $filter instanceof \App_ListFilter_EqualFilter:
         case $filter instanceof \App_ListFilter_GreaterThanFilter:
         case $filter instanceof \App_ListFilter_LessThanFilter:
         case $filter instanceof \App_ListFilter_LikeFilter:
             $result = array();
             $result['service'] = $mapService[$filter->getFieldName()];
             if (isset($mapLevel[$filter->getValue()])) {
                 $result['level'] = $mapLevel[$filter->getValue()];
             } else {
                 $result['level'] = ConsumptionCriteria\Level::THRESHOLD_5;
             }
             $result['period'] = $filter->getInverted() ? ConsumptionCriteria\Period::MONTH : ConsumptionCriteria\Period::DAY;
             return $result;
             break;
     }
     return;
 }
Пример #2
0
 public function mapFilter(\App_ListFilter_Interface $filter)
 {
     $setInverted = function ($filter, $str) {
         return ($filter->getInverted() ? '!' : '') . $str;
     };
     $str = '';
     switch (true) {
         case $filter instanceof \App_ListFilter_HasFilter:
             $str = $setInverted($filter, '{' . implode(',', $filter->getValue()) . '}');
             break;
         case $filter instanceof \App_ListFilter_InFilter:
             $str = $setInverted($filter, '[' . implode(',', $filter->getValue()) . ']');
             break;
         case $filter instanceof \App_ListFilter_GreaterThanFilter:
             $str = $setInverted($filter, '>' . $filter->getValue());
             break;
         case $filter instanceof \App_ListFilter_LessThanFilter:
             $str = $setInverted($filter, '<' . $filter->getValue());
             break;
         case $filter instanceof \App_ListFilter_BetweenFilter:
             $str = $filter->getMin() . $setInverted($filter, '<>') . $filter->getMax();
             break;
         case $filter instanceof \App_ListFilter_LikeFilter:
             $str = $setInverted($filter, '~' . $filter->getValue());
             break;
         case $filter instanceof \App_ListFilter_EqualFilter:
             $str = $setInverted($filter, $filter->getValue());
             break;
     }
     return $str;
 }
 /**
  * Map reverse
  * @param  \DrSlump\Protobuf\Field   $descriptor
  * @param  \App_ListFilter_Interface $filter
  * @return bool
  */
 protected function _mapReverse(\DrSlump\Protobuf\Field $descriptor, \App_ListFilter_Interface $filter, \App_ListFilter $filterList)
 {
     return (bool) $filter->getInverted();
 }