protected function _mapToSdp(array $user)
 {
     if (empty($user['phone'])) {
         unset($user['phone']);
     }
     return parent::_mapToSdp($user);
 }
 protected function _mapToSdp(array $data)
 {
     $data = parent::_mapToSdp($data);
     if ($oldDisc = @$data['discount']) {
         $discounts = array();
         if (isset($oldDisc['customer'])) {
             foreach ($oldDisc['customer'] as $disc) {
                 $discounts[] = $this->_mapDiscountToSdp($disc);
             }
         }
         if (isset($oldDisc['billingAccount'])) {
             foreach ($oldDisc['billingAccount'] as $disc) {
                 $discounts[] = $this->_mapDiscountToSdp($disc);
             }
         }
         $data['discount'] = $discounts;
     }
     if ($oldTax = @$data['tax']) {
         $taxes = array();
         if (isset($oldDisc['customer'])) {
             foreach ($oldDisc['customer'] as $disc) {
                 $discounts[] = $this->_mapTaxToSdp($disc);
             }
         }
         if (isset($oldDisc['billingAccount'])) {
             foreach ($oldDisc['billingAccount'] as $tax) {
                 $taxes[] = $this->_mapTaxToSdp($tax);
             }
         }
         $data['tax'] = $taxes;
     }
     if (isset($data['adjustment']) && is_array($data['adjustment'])) {
         $ajustment = 0;
         foreach ($data['adjustment'] as $ajust) {
             if (isset($ajust['value'])) {
                 $ajustment += $ajust['value'];
             }
         }
         $data['adjustment'] = $ajustment;
     }
     if (@$data['published']) {
         unset($data['published']);
         $data['status'] = 'published';
     } else {
         $data['status'] = 'unpublished';
     }
     if (isset($data['fileName'])) {
         unset($data['fileName']);
     }
     return $data;
 }
 protected function _mapToModel(array $data, $usePreset = true)
 {
     $data = parent::_mapToModel($data, $usePreset);
     if (isset($data['billingCycleStart']) && !is_array($data['billingCycleStart'])) {
         $regex = '/^\\-\\-\\-(?P<dayOfMonth>\\d{2,2})(?P<timezone>.*)$/';
         if (preg_match($regex, $data['billingCycleStart'], $matches)) {
             $tz = App_Util_Date::getTimezoneValue($matches['timezone']);
             $matches['dayOfMonth'] = intval($matches['dayOfMonth']);
             $enumService = Application\Service\EnumeratedService::getInstance();
             $timezones = $enumService->getEnum(Application\Service\EnumeratedService::TIME_ZONE_ENUM_NAME);
             foreach ($timezones as $exmpl) {
                 if ($exmpl['offset'] == $matches['timezone']) {
                     $tz = $exmpl['id'];
                     break;
                 }
             }
             $matches['timezone'] = $tz;
             $data['billingCycleStart'] = $matches;
         } else {
             $data['billingCycleStart'] = array();
         }
     }
     if (isset($data['defaultBillingAccount']['contact'])) {
         $data['defaultBillingAccount']['contactIsPrimaryContact'] = false;
     }
     if (isset($data['defaultBillingAccount']['address'])) {
         $data['defaultBillingAccount']['addressIsCompanyAddress'] = false;
     }
     if (isset($data['shippingAddress'])) {
         $data['shippingAddressIsCompanyAddress'] = false;
     }
     if (isset($data['billingContact'])) {
         $data['billingContactIsPrimaryContact'] = false;
     }
     if (isset($data['billingContactAddress'])) {
         $data['billingContactAddressIsCompanyAddress'] = false;
     }
     if (isset($data['primaryContactAddress'])) {
         $data['primaryContactAddressIsCompanyAddress'] = false;
     }
     if ($usePreset && !isset($data['parentId'])) {
         $data['parentId'] = \App::getOrgUserLogged()->getId();
     }
     return $data;
 }
 protected function _mapToModel(array $data, $usePreset = true)
 {
     $data = parent::_mapToModel($data, $usePreset);
     // Avoid repeated billing account names
     if (isset($data['billingAccountName'])) {
         $data['billingAccountName'] = trim($data['billingAccountName']);
     }
     return $data;
 }
 protected function _mapToSdp(array $data)
 {
     $data = parent::_mapToSdp($data);
     if (isset($data['staticIpApnIndex']) && isset($data['apns'][$data['staticIpApnIndex']])) {
         $data['apn'] = $data['apns'][$data['staticIpApnIndex']];
         unset($data['staticIpApnIndex']);
     }
     if (isset($data['gprsStatus']) && is_array($data['gprsStatus'])) {
         $data['gprsStatus'] = $this->_mapConnStatusToSdp($data['gprsStatus']);
     }
     if (isset($data['ipStatus']) && is_array($data['ipStatus'])) {
         $data['ipStatus'] = $this->_mapConnStatusToSdp($data['ipStatus']);
     }
     //TODO neoSdp defined it as integer, but we didn't
     if (isset($data['simModel']) && !is_int($data['simModel'])) {
         $data['simModel'] = 0;
     }
     if (isset($data['provisionDate'])) {
         $data['provisionDate'] = $this->_createAtom($data['provisionDate']);
     }
     if (isset($data['shippingDate'])) {
         $data['shippingDate'] = $this->_createAtom($data['shippingDate']);
     }
     if (isset($data['activationDate'])) {
         $data['activationDate'] = $this->_createAtom($data['activationDate']);
     }
     /**
      * put Imei dashes
      */
     if (isset($data['imei'])) {
         if (trim($data['imei'])) {
             $imei = trim($data['imei']);
             $nImei = substr_replace($imei, '-', '2', 0);
             $nImei = substr_replace($nImei, '-', '9', 0);
             $nImei = substr_replace($nImei, '-', '16', 0);
             $data['imei'] = $nImei;
         } else {
             unset($data['imei']);
         }
     }
     return $data;
 }
 protected function _mapToModel(array $data, $usePreset = true)
 {
     $data = parent::_mapToModel($data, $usePreset);
     if (isset($data['simType'])) {
         if ($data['simType'] === '0') {
             $data['simType'] = SimModel::SIM_TYPE_GLOBAL;
         } elseif ($data['simType'] === '1') {
             $data['simType'] = SimModel::SIM_TYPE_LOCAL;
         }
     }
     return $data;
 }
 protected function _mapToModel(array $data, $usePreset = true)
 {
     $data = parent::_mapToModel($data, $usePreset);
     $limits = array('limitVoice', 'limitData', 'limitSms', 'limitTotal');
     $currencyId = \App::getOrgUserLogged()->currency;
     $currency = EnumeratedService::getInstance()->findCurrencyById($currencyId);
     $decimals = $currency['internalNumberOfDecimals'];
     foreach ($limits as &$limit) {
         if (isset($data[$limit]['value'])) {
             $data[$limit]['value'] = round($data[$limit]['value'] * pow(10, $decimals));
         }
     }
     return $data;
 }
 protected function _mapToModel(array $data, $usePreset = true)
 {
     $data = parent::_mapToModel($data, $usePreset);
     return $data;
 }
 protected function _mapToModel(array $data, $usePreset = true)
 {
     $data = parent::_mapToModel($data, $usePreset);
     if (isset($data['currency'])) {
         $currency = $this->enumSrv->findCurrencyById($data['currency']);
         $decimalsNumber = $currency["internalNumberOfDecimals"];
         $data = $this->_mapToModelCurrencies($data, $decimalsNumber);
     }
     $services = array('selfManagement', 'vpnService', 'applicationOriginatedSms', 'advancedSupervision', 'location', 'dca', 'dim');
     foreach ($services as $service) {
         if (isset($data[$service])) {
             $value = current(array_keys($this->_mapService, $data[$service]));
             if ($value) {
                 $data[$service] = $value;
             }
         }
     }
     if (isset($data['published'])) {
         $value = current(array_keys($this->_mapStatus, $data['published']));
         if ($value) {
             $data['published'] = $value;
         }
     }
     if (isset($data['supervisionLevel'])) {
         $value = current(array_keys($this->_mapKeepAlive, $data['supervisionLevel']));
         if ($value) {
             $data['supervisionLevel'] = $value;
         }
     }
     return $data;
 }