public function init() { $this->_spSrv = ServicePackService::getInstance(); $this->_lifeCycleSrv = LifeCycleService::getInstance(); $this->_restrictionsSrv = RestrictionService::getInstance(); $this->_tariffSrv = TariffPlanService::getInstance(); $this->_orgSrv = \Application\Service\OrgService::getInstance(); }
public function init() { $this->_spSrv = ServicePackService::getInstance(); $this->_lifeCycleSrv = LifeCycleService::getInstance(); $this->_restrictionsSrv = RestrictionService::getInstance(); $this->_tariffSrv = TariffPlanService::getInstance(); $this->_steeringListSrv = SteeringListService::getInstance(); }
/** * Asynchronously modify the lifecycle state of a previously prepared list of SIMs. * * The frontend should send a POST request with the ID of the prepare modify action. */ public function asyncmodifyAction() { try { $data = $this->_helper->requestData(); if (!is_numeric($data)) { throw new AppEx\InvalidArgumentException('Bad Request. Malformed Json. [POST should contain an ID]'); } $this->view->transactionId = $this->_lifecycleSrv->asyncModifyStatus($data, \App::getOrgUserLogged()->getId()); } catch (Exception $e) { throw new AppEx\InvalidArgumentException($e->getMessage()); } }
public function isValid($value) { $this->_messages = array(); if (!is_string($value)) { $message = $this->_createMessage(self::ERROR_INVALID_TYPE, $value); $this->_messages[self::ERROR_INVALID_TYPE] = $message; return false; } $service = LifeCycleService::getInstance(); try { $item = $service->load($value); } catch (Application\Exceptions\GlobalServiceException $e) { $message = $this->_createMessage(self::ERROR_ON_CONNECTION, $value); $this->_messages[self::ERROR_ON_CONNECTION] = $message; return false; } if (!isset($item)) { $message = $this->_createMessage(self::ERROR_LIFECYCLE_NOT_FOUND, $value); $this->_messages[self::ERROR_LIFECYCLE_NOT_FOUND] = $message; return false; } return true; }
/** * Update a servicePack identified by its Id */ public function putAction() { $data = $this->_helper->requestData(true); $data = $this->_helper->filter($data)->blacklist(array('lifeCycleId', 'restrictionsId', 'tariffPlanServicesId', 'tariffPlanServices.zonePlanId', 'published')); $spId = $this->_getParam('id'); $servicePack = $this->_spSrv->load($spId); if (empty($servicePack)) { throw new NotFoundException("ServicePack {$spId} not found", 404); } // If servicepack is published, only allow modify tariffs, discounts, name or maxSubscription if ($servicePack->isPublished()) { if (isset($data['tariffPlanLifeCycle']) && isset($data['tariffPlanLifeCycle']['modified']) && isset($data['tariffPlanLifeCycle']['id']) && $data['tariffPlanLifeCycle']['modified'] === true) { $id = $data['tariffPlanLifeCycle']['id']; $tariffPlan = $this->_tariffSrv->load(TariffPlanService::TYPE_LIFECYCLE, $id); if (empty($tariffPlan)) { throw new NotFoundException("Tariff plan {$id} not found", 404); } $this->_helper->allowed('update', $tariffPlan); $tariffPlan->importData($data['tariffPlanLifeCycle']); $result['tariffPlanLifeCycle'] = $this->_tariffSrv->update($tariffPlan); } if (isset($data['lifeCycle']) && isset($data['lifeCycle']['modified']) && isset($data['lifeCycle']['id']) && $data['lifeCycle']['modified'] === true) { $id = $data['lifeCycle']['id']; $lifeCycle = $this->_lifeCycleSrv->load($id); if (empty($lifeCycle)) { throw new NotFoundException("Life Cycle {$id} not found", 404); } $lifeCycle->importData($data['lifeCycle']); $lifeCycle->published = $servicePack->published; $result['lifeCycle'] = $this->_lifeCycleSrv->update($lifeCycle); } if (isset($data['tariffPlanServices']) && isset($data['tariffPlanServices']['modified']) && isset($data['tariffPlanServices']['id']) && $data['tariffPlanServices']['modified'] === true) { $id = $data['tariffPlanServices']['id']; $tariffPlan = $this->_tariffSrv->load(TariffPlanService::TYPE_SERVICES, $id); if (empty($tariffPlan)) { throw new NotFoundException("Tariff plan {$id} not found", 404); } $this->_helper->allowed('update', $tariffPlan); $tariffPlan->importData($data['tariffPlanServices']); $tariffPlan->published = $servicePack->published; $result['tariffPlanServices'] = $this->_tariffSrv->update($tariffPlan); } if (isset($data['restrictions']) && isset($data['restrictions']['modified']) && isset($data['restrictions']['id']) && $data['restrictions']['modified'] === true) { $id = $data['restrictions']['id']; $restrictions = $this->_restrictionsSrv->load($id); if (empty($restrictions)) { throw new NotFoundException("Restrictions {$id} not found", 404); } $restrictions->importData($data['restrictions']); if ($restrictions->restrictionsModified) { unset($restrictions->restrictionsModified); } $restrictions->published = $servicePack->published; $steeringListService = SteeringListService::getInstance(); try { $result['restrictions'] = $this->_restrictionsSrv->update($restrictions); } catch (\Application\Model\Mapper\Exception\EricssonException $e) { $stOrig = $steeringListService->loadByServicePack($servicePack->id); if ($e->getHttpCode() != 304 || $stOrig->steeringType == $restrictions->steering->steeringType && $stOrig->useCustomOrder == $restrictions->steering->useCustomOrder && $stOrig->steeringList == $restrictions->operator) { throw $e; } $warn_mess = WarningsMessenger::getInstance(); $warn_mess->avoidModule(); } $steeringListService->applySteering($restrictions, $servicePack->id); } if (isset($data['discounts'])) { if (isset($data['discounts']['discounts']) && $data['discounts']['modified'] === true) { $this->_helper->allowed('update_discounts', $servicePack); $servicePack->setDiscounts($data['discounts']['discounts']); } else { $servicePack->setDiscounts($data['discounts']); } $result['discounts'] = $this->_spSrv->setDiscounts($servicePack); } if (isset($data['voucherOnlyDiscounts'])) { if (isset($data['voucherOnlyDiscounts']['discounts']) && $data['voucherOnlyDiscounts']['modified'] === true) { $this->_helper->allowed('update_voucher_only_discounts', $servicePack); $servicePack->setVoucherOnlyDiscounts($data['voucherOnlyDiscounts']['discounts']); } else { $servicePack->setVoucherOnlyDiscounts($data['voucherOnlyDiscounts']); } $result['voucherOnlyDiscounts'] = $this->_spSrv->setVoucherOnlyDiscounts($servicePack); } $update = array(); if (isset($data['name']) && $data['name'] != $servicePack->getName()) { $update['name'] = $data['name']; } if (isset($data['maxSubscriptions'])) { $update['maxSubscriptions'] = $data['maxSubscriptions']; } if (!empty($update)) { $servicePack->importData($update); $result['servicePack'] = $this->_spSrv->update($servicePack); } $this->view->data = isset($result) ? $result : array(); } else { if (isset($data['tariffPlanServices']['currency'])) { $data['currency'] = $data['tariffPlanServices']['currency']; } else { if (isset($data['tariffPlanLifeCycle']['currency'])) { $data['currency'] = $data['tariffPlanLifeCycle']['currency']; } } // Make sure that operator is not an empty array if (isset($data['restrictions']['operator']) && empty($data['restrictions']['operator'])) { unset($data['restrictions']['operator']); } if (isset($data['restrictions']) && isset($data['restrictions']['modified']) && isset($data['restrictions']['id']) && $data['restrictions']['modified'] === true) { $id = $data['restrictions']['id']; $restrictions = $this->_restrictionsSrv->load($id); if (empty($restrictions)) { throw new NotFoundException("Restrictions {$id} not found", 404); } $restrictions->importData($data['restrictions']); $steeringListService = SteeringListService::getInstance(); $steeringListService->applySteering($restrictions, $servicePack->id); } $servicePack->importData($data); // Check if it's allowed $this->_helper->allowed('update', $servicePack); // Update the service pack via its service $result = $this->_spSrv->update($servicePack); $this->view->data = $result; } }
public function delete($model) { if (is_string($model)) { $model = $this->load($model); } if (!$model instanceof ServicePackModel) { throw new AppEx\InvalidArgumentException('Supplied service pack model must have Id'); } if ($model->getCustomerCount() !== 0) { throw new AppEx\ForbiddenException('Delete service pack assigned to a customer is not allowed.'); } $result = parent::delete($model); if ($model->getLifeCycleId()) { try { LifeCycleService::getInstance()->delete($model->getLifeCycleId()); } catch (\Exception $e) { \App::log()->warn($e); } } if ($model->getRestrictionsId()) { try { RestrictionService::getInstance()->delete($model->getRestrictionsId()); } catch (\Exception $e) { \App::log()->warn($e); } } if ($model->getTariffPlanLifeCycleId()) { try { TariffPlanService::getInstance()->delete($model->getTariffPlanLifeCycleId(), TariffPlanService::TYPE_LIFECYCLE); } catch (\Exception $e) { \App::log()->warn($e); } } if ($model->getTariffPlanServicesId()) { try { TariffPlanService::getInstance()->delete($model->getTariffPlanServicesId(), TariffPlanService::TYPE_SERVICES); } catch (\Exception $e) { \App::log()->warn($e); } } $steeringListService = SteeringListService::getInstance(); if ($steeringList = $steeringListService->loadByServicePack($model->id)) { $steeringListService->delete($steeringList); } return true; }