Exemplo n.º 1
0
 public function addOrUpdatePart($aParameters)
 {
     if (!array_key_exists("quantity", $aParameters)) {
         $aParameters["quantity"] = 0;
     }
     if ($aParameters["part"] !== null) {
         try {
             $part = $this->getPart($aParameters["part"]);
         } catch (\Exception $e) {
             $part = new Part();
             $user = SessionManager::getCurrentSession()->getUser();
             $stock = new StockEntry($part, $aParameters["quantity"], $user);
             PartKeepr::getEM()->persist($stock);
         }
     } else {
         $part = new Part();
         $user = SessionManager::getCurrentSession()->getUser();
         $stock = new StockEntry($part, $aParameters["quantity"], $user);
         PartKeepr::getEM()->persist($stock);
     }
     if (array_key_exists("name", $aParameters)) {
         $part->setName($aParameters["name"]);
     }
     if (array_key_exists("description", $aParameters)) {
         $part->setDescription($aParameters["description"]);
     }
     if (array_key_exists("minstock", $aParameters)) {
         $part->setMinStockLevel($aParameters["minstock"]);
     }
     if (array_key_exists("comment", $aParameters)) {
         $part->setComment($aParameters["comment"]);
     }
     if (array_key_exists("footprint", $aParameters)) {
         if ($aParameters["footprint"] === null) {
             $part->setFootprint(null);
         } else {
             $footprint = FootprintManager::getInstance()->getOrCreateFootprint($aParameters["footprint"]);
             $part->setFootprint($footprint);
         }
     }
     if (array_key_exists("storagelocation", $aParameters)) {
         $storageLocation = StorageLocationManager::getInstance()->getOrCreateStorageLocation($aParameters["storagelocation"]);
         $part->setStorageLocation($storageLocation);
     }
     if (array_key_exists("category", $aParameters)) {
         $category = PartCategoryManager::getInstance()->getCategory($aParameters["category"]);
         $part->setCategory($category->getNode());
     }
     /* Process linked changes */
     if (array_key_exists("distributorChanges", $aParameters)) {
         if (is_array($aParameters["distributorChanges"])) {
             $this->processDistributorChanges($part, $aParameters["distributorChanges"]);
         }
     }
     if (array_key_exists("manufacturerChanges", $aParameters)) {
         if (is_array($aParameters["manufacturerChanges"])) {
             $this->processManufacturerChanges($part, $aParameters["manufacturerChanges"]);
         }
     }
     if (array_key_exists("parameterChanges", $aParameters)) {
         if (is_array($aParameters["parameterChanges"])) {
             $this->processParameterChanges($part, $aParameters["parameterChanges"]);
         }
     }
     if (array_key_exists("attachmentChanges", $aParameters)) {
         if (is_array($aParameters["attachmentChanges"])) {
             $this->processAttachmentChanges($part, $aParameters["attachmentChanges"]);
         }
     }
     if (array_key_exists("partUnit", $aParameters)) {
         if ($aParameters["partUnit"] === null || $aParameters["partUnit"] === 0) {
             $part->setPartUnit(null);
         } else {
             $part->setPartUnit(PartUnitManager::getInstance()->getPartUnit($aParameters["partUnit"]));
         }
     }
     PartKeepr::getEM()->persist($part);
     PartKeepr::getEM()->flush();
 }