private function saveOrderStatuses($data) { if (isset($data['osID'])) { foreach ($data['osID'] as $key => $id) { $orderStatus = OrderStatus::getByID($id); $orderStatusSettings = array('osName' => isset($data['osName'][$key]) && $data['osName'][$key] != '' ? $data['osName'][$key] : $orderStatus->getReadableHandle(), 'osInformSite' => isset($data['osInformSite'][$key]) ? 1 : 0, 'osInformCustomer' => isset($data['osInformCustomer'][$key]) ? 1 : 0, 'osSortOrder' => $key); $orderStatus->update($orderStatusSettings); } if (isset($data['osIsStartingStatus'])) { OrderStatus::setNewStartingStatus(OrderStatus::getByID($data['osIsStartingStatus'])->getHandle()); } else { $orderStatuses = OrderStatus::getAll(); OrderStatus::setNewStartingStatus($orderStatuses[0]->getHandle()); } } }
public function update($data = array(), $ignoreFilledColumns = false) { $orderStatusArray = array('osHandle' => $this->osHandle, 'osName' => $this->osName, 'osInformSite' => $this->osInformSite, 'osInformCustomer' => $this->osInformCustomer, 'osSortOrder' => $this->osSortOrder); $startingStatusHandle = null; if (isset($data['osIsStartingStatus'])) { $startingStatusHandle = $this->osHandle; } $orderStatusUpdateColumns = $ignoreFilledColumns ? array_diff($orderStatusArray, $data) : array_merge($orderStatusArray, $data); unset($orderStatusUpdateColumns['osID']); if (count($orderStatusUpdateColumns) > 0) { $columnPhrase = implode('=?, ', array_keys($orderStatusUpdateColumns)) . "=?"; $values = array_values($orderStatusUpdateColumns); $values[] = $this->osID; Database::get()->Execute("UPDATE " . self::getTableName() . " SET " . $columnPhrase . " WHERE osID=?", $values); if ($startingStatusHandle) { OrderStatus::setNewStartingStatus($startingStatusHandle); } return true; } return false; }