Example #1
0
    public function newPostView(WorkerModel $worker)
    {
        $result = $worker->validate();
        $valid = $result === TRUE;

        if ($valid) {
            $pdo = db_connect();

            if ($worker->id) {
                $q = $pdo->prepare('
                    UPDATE worker

                    SET name = :name,
                        password = :password

                    WHERE id = :id
                ');

                $q_args = array(
                    ':name'     => $worker->name,
                    ':password' => $worker->password,
                    ':id'       => $worker->id
                );
            } else {
                $q = $pdo->prepare('
                    INSERT INTO worker

                    (name, password)
                        VALUES
                    (:name, :password)
                ');

                $q_args = array(
                    ':name'     => $worker->name,
                    ':password' => $worker->password
                );
            }

            $result = $q->execute($q_args);

            if (!$result) {
                $_SESSION['tempdata']['errors'][] =
                    sprintf('Unable to %s worker.  A worker with the same name probably exists.',
                        $worker->id ? 'modify' : 'create');

                $valid = false;
            }
        } else {
            $_SESSION['tempdata']['errors'] =
                array_merge((array)$_SESSION['tempdata']['errors'], $result);
        }

        if (!$valid) {
            return new AdminWorkerNewEditView(array('worker' => $worker));
        }

        $_SESSION['tempdata']['info'][] = $worker->id ? 'Changes saved.' : 'Worker created.';

        return new RedirectView('/admin/workers.php');
    }
Example #2
0
 public function delete()
 {
     $view = new ViewModel('admin/workers');
     $workerModel = new WorkerModel();
     try {
         $view->assign('workers', $workerModel->deleteWorker($_POST['delete'], $_POST['function']));
     } catch (PDOException $e) {
         $view->assign('workers', array());
         $view->assign('message-type', 'error');
         $view->assign('message', 'Nie można usunąć pracownika. 
              Sprawdź czy nie jest powiązany z przesyłką lub zleceniem!');
         $view->display();
         return;
     }
     $view->assign('message-type', 'info');
     $view->assign('message', 'Usunięto pracownika!');
     $view->display();
 }