/** * Update a prebill identified by its Id */ public function putAction() { $data = $this->_helper->requestData(true); // Try to load the preBill $preBill = $this->_getPreBill(); // Check permissions $this->_helper->allowed('update', $preBill); if (!isset($data['prebillUpdate'])) { return; } $data = $data['prebillUpdate']; // Make necessary adjustments to some fields if (strlen($data['prebillIDinOBCRM'])) { $data['externalId'] = $data['prebillIDinOBCRM']; unset($data['prebillIDinOBCRM']); } if (!empty($data['status'])) { if ($data['status'] == 'published') { $publish = true; } else { if ($data['status'] == 'unpublished') { $unpublish = true; } else { throw new InvalidArgumentException('Invalid value for [status], only published/unpublished values are allowed'); } } unset($data['status']); } if (!empty($data)) { if ($preBill->getPublished()) { throw new NotAllowedException('UPDATE Operation is not allowed: Update a published prebill is not allowed'); } $upPrebill = new PreBillUpdateModel(); $upPrebill->id = $preBill->id; // Modify the current details with the new data if (strlen($data['externalId'])) { $upPrebill->setExternalId($data['externalId']); } // if (!empty($data['totalCharge'])) { // $preBill->setTotalCharge($data['totalCharge']); // } if (!empty($data['adjustment'])) { $adjust = array('description' => "AdjustByApi", 'value' => $data['adjustment']); $upPrebill->setAdjusts(array($adjust)); } $res = $this->_prebillSrv->update($upPrebill); $this->view->data = $res; } if (@$publish) { if ($preBill->getPublished()) { throw new InvalidArgumentException("Prebill is already published"); } $res = $this->_prebillSrv->publish($preBill); $this->view->dataPublish = $res; } if (@$unpublish) { $res = $this->_prebillSrv->unpublish($preBill); $this->view->dataUnpublish = $res; } }
/** * Deletes the given user */ public function deleteAction() { throw new NotImplementedException('Prebill delete not implemented'); // Try to load the chosen user $id = $this->getRequest()->getParam('id'); $preBill = $this->_preBillSrv->load($id, \App::getOrgUserLogged()); if (empty($preBill)) { throw new NotFoundException('PreBill ' . $id . ' not found', 404); } // Check permissions $this->_helper->allowed('delete', $preBill); // Remove the user try { $this->_preBillSrv->delete($id); } catch (Exception $e) { throw new InvalidArgumentException($e->getMessage(), null, $e); } $this->view->data = true; }
/** * Update a prebill identified by its Id */ public function putAction() { $data = $this->_helper->requestData(true); // Try to load the preBill $preBill = $this->_getPreBill(); // Check permissions try { $this->_helper->allowed('update', $preBill); } catch (PermissionException $ex) { throw new PermissionException(sprintf("Update Operation is not allowed: %s", $ex->getMessage())); } if (!isset($data['prebillUpdate'])) { return; } $data = $data['prebillUpdate']; // Make necessary adjustments to some fields if (strlen($data['prebillIDinOBCRM'])) { $data['externalId'] = $data['prebillIDinOBCRM']; unset($data['prebillIDinOBCRM']); } if (!empty($data['status'])) { if ($data['status'] == 'published') { $publish = true; } else { if ($data['status'] == 'unpublished') { $unpublish = true; } else { throw new InvalidArgumentException('Invalid value for [status], only published/unpublished values are allowed'); } } unset($data['status']); } if (!empty($data)) { if ($preBill->getPublished()) { throw new InvalidArgumentException('Invalid parameter value: status UPDATE a published prebill is not allowed'); } $upPrebill = new PreBillUpdateModel(); $upPrebill->id = $preBill->id; // Modify the current details with the new data if (strlen($data['externalId'])) { $upPrebill->setExternalId($data['externalId']); } // if (!empty($data['totalCharge'])) { // $preBill->setTotalCharge($data['totalCharge']); // } if (!empty($data['adjustment'])) { $adjust = array('description' => "AdjustByApi", 'value' => $data['adjustment']); $upPrebill->setAdjusts(array($adjust)); } $res = $this->_prebillSrv->update($upPrebill); } if (@$publish) { if ($preBill->getPublished()) { throw new InvalidArgumentException('Invalid parameter value: status. Publish action not supported for already published prebills'); } $res = $this->_prebillSrv->publish($preBill); } if (@$unpublish) { if (!$preBill->getPublished()) { throw new InvalidArgumentException('Invalid parameter value: status. Unpublish action not supported for unpublished prebills'); } $res = $this->_prebillSrv->unpublish($preBill); } $this->getResponse()->setHttpResponseCode(204); $this->_helper->viewRenderer->setNoRender(TRUE); }
public function init() { parent::init(); $this->_preBillSrv = PreBillService::getInstance(); }
public function init() { $this->_prebillSrv = \Application\Service\PreBillService::getInstance(); }