Ejemplo n.º 1
0
 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());
         }
     }
 }
Ejemplo n.º 2
0
 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;
 }