/**
  * Creates a new distributor with the given name.
  * @param string $name The name of the distributor
  * @return Distributor The new distributor object
  */
 public function addDistributor($name)
 {
     $distributor = new Distributor();
     $distributor->setName($name);
     PartKeepr::getEM()->persist($distributor);
     PartKeepr::getEM()->flush();
     return $distributor;
 }
 /**
  * (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());
 }
 /**
  * Migrates the existing distributors
  */
 public function run()
 {
     $count = 0;
     $skipped = 0;
     $r = mysql_query("SELECT * FROM suppliers");
     while ($supplier = mysql_fetch_assoc($r)) {
         $name = PartDBMigration::convertText($supplier["name"]);
         try {
             $distributor = DistributorManager::getInstance()->getDistributorByName($name);
             $skipped++;
         } catch (\Exception $e) {
             $distributor = new Distributor();
             $distributor->setName($name);
             $this->entityManager->persist($distributor);
             $count++;
         }
     }
     $this->entityManager->flush();
     $this->logMessage(sprintf("Migrated %d distributors, skipped %d because they already exist", $count, $skipped));
 }
示例#4
0
 /**
  * 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;
         }
     }
 }
示例#5
0
 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);
         }
     }
 }