/**
  * Update a supplServices identified by its Id
  */
 public function putAction()
 {
     $supplService = $this->_getItem();
     // Collect data
     $data = $this->_helper->requestData();
     if (isset($data['serviceData'])) {
         $data = $data['serviceData'];
     }
     $data = $this->_mapToModel($data, false);
     $supplServiceNew = new SupplServicesModel($data);
     // Cannot modify applicationOriginatedSmsMsisdn if is already published
     if ($supplService->getPublished() == \Application\Model\SupplServicesModel::STATUS_PUBLISHED && $supplServiceNew->getApplicationOriginatedSmsMsisdn() && $supplService->getApplicationOriginatedSmsMsisdn() && $supplService->getApplicationOriginatedSmsMsisdn() != $supplServiceNew->getApplicationOriginatedSmsMsisdn()) {
         throw new AppEx\InvalidArgumentException("Invalid parameter value: applicationOriginatedSmsMsisdn. It can't be edited", Application\Error\ValidationCodes::MODEL_SUPPL_SERVICE_PACK);
     }
     if ($supplService->getPublished() != \Application\Model\SupplServicesModel::STATUS_NOT_PUBLISHED && $supplServiceNew->getCurrency()) {
         throw new AppEx\ValidateException('Invalid parameter value: currency. In published supplementary services pack it is not allowed to modify currency.');
     }
     $this->_helper->allowed('update', $supplService);
     $this->_helper->filterNotAllowedFields('update_field', $supplService, $supplServiceNew);
     $supplService->importData($supplServiceNew->exportData());
     $this->srv->update($supplService);
     $this->getResponse()->setHttpResponseCode(204);
     $this->_helper->viewRenderer->setNoRender(TRUE);
 }