/** * Create a consumable if a duplicate does not exist * * @author Daniel Melzter * @since 3.0 * @param $item array */ public function createConsumableIfNotExists(array $item) { $consumable = null; $editingConsumable = false; $this->log("Creating Consumable"); foreach ($this->consumables as $tempconsumable) { if (strcasecmp($tempconsumable->name, $item["item_name"]) == 0) { $this->log("A matching consumable " . $item["item_name"] . " already exists"); if (!$this->option('update')) { $this->log("Skipping consumable."); return; } $this->log('Updating matching consumable with new values'); $editingConsumable = true; $consumable = $tempconsumable; } } if (is_null($consumable)) { $this->log("No matching consumable, creating one"); $consumable = new Consumable(); } if (!$editingConsumable) { $consumable->name = $item["item_name"]; } if (!empty($item["purchase_date"])) { $consumable->purchase_date = $item["purchase_date"]; } else { $consumable->purchase_date = null; } if (!empty($item["purchase_cost"])) { $consumable->purchase_cost = Helper::ParseFloat($item["purchase_cost"]); } if ($item["location"]) { $consumable->location_id = $item["location"]->id; } $consumable->user_id = $this->option('user_id'); if ($item["company"]) { $consumable->company_id = $item["company"]->id; } if (!empty($item["order_number"])) { $consumable->order_number = $item["order_number"]; } if ($item["category"]) { $consumable->category_id = $item["category"]->id; } // TODO:Implement //$consumable->notes= e($item_notes); if (!empty($item["requestable"])) { $consumable->requestable = filter_var($item["requestable"], FILTER_VALIDATE_BOOLEAN); } if (!empty($item["quantity"])) { if ($item["quantity"] > -1) { $consumable->qty = $item["quantity"]; } else { $consumable->qty = 1; } } if (!$this->option("testrun")) { // dd($consumable); if ($consumable->save()) { $this->log("Consumable " . $item["item_name"] . ' was created'); // $this->comment("Consumable " . $item["item_name"] . ' was created'); } else { $this->jsonError('Consumable', $consumable->getErrors()); } } else { $this->log('TEST RUN - Consumable ' . $item['item_name'] . ' not created'); } }