/**
  * (non-PHPdoc)
  * @see PartKeepr\Service.RestfulService::update()
  */
 public function update()
 {
     $this->requireParameter("id");
     $this->requireParameter("name");
     $distributor = Distributor::loadById($this->getParameter("id"));
     $distributor->deserialize($this->getParameters());
     PartKeepr::getEM()->flush();
     return array("data" => $distributor->serialize());
 }
 /**
  * Returns a distributor by ID.
  * 
  * @param int $id The distributor id
  * @return Distributor The distributor
  * @throws EntityNotFoundException If no distributor with the ID was found
  */
 public function getDistributor($id)
 {
     return Distributor::loadById($id);
 }
 /**
  * Deserializes the part manufacturer
  * @param array $parameters The array with the parameters to set
  */
 public function deserialize(array $parameters)
 {
     foreach ($parameters as $key => $value) {
         switch ($key) {
             case "distributor_id":
                 $distributor = Distributor::loadById($value);
                 $this->setDistributor($distributor);
                 break;
             case "orderNumber":
                 $this->setOrderNumber($value);
                 break;
             case "packagingUnit":
                 $this->setPackagingUnit($value);
                 break;
             case "price":
                 $this->setPrice($value);
                 break;
             case "sku":
                 $this->setSKU($value);
                 break;
         }
     }
 }
 private function processDistributorChanges(Part $part, array $data)
 {
     if (array_key_exists("updates", $data)) {
         foreach ($data["updates"] as $record) {
             foreach ($part->getDistributors() as $partDistributor) {
                 if ($partDistributor->getId() == $record["id"]) {
                     $partDistributor->setOrderNumber($record["orderNumber"]);
                     $partDistributor->setDistributor(Distributor::loadById($record["distributor_id"]));
                     $partDistributor->setPackagingUnit($record["packagingUnit"]);
                     break;
                 }
             }
         }
     }
     if (array_key_exists("removals", $data)) {
         foreach ($data["removals"] as $record) {
             foreach ($part->getDistributors() as $partDistributor) {
                 if ($partDistributor->getId() == $record["id"]) {
                     PartKeepr::getEM()->remove($partDistributor);
                     $part->getDistributors()->removeElement($partDistributor);
                     break;
                 }
             }
         }
     }
     if (array_key_exists("inserts", $data)) {
         foreach ($data["inserts"] as $record) {
             $distributor = new PartDistributor($part, Distributor::loadById($record["distributor_id"]));
             $distributor->setOrderNumber($record["orderNumber"]);
             $distributor->setPackagingUnit($record["packagingUnit"]);
             $part->getDistributors()->add($distributor);
         }
     }
 }