1<?php
2
3class calculateIncrementNumbersAction extends sfAction {
4
5    public function execute ($request) {
6
7        $upgradeUtility = new UpgradeUtility();
8        $upgradeUtility->setDbConnection($this->getUser()->getAttribute('dbConnection'));
9
10        $tableStatus    = $upgradeUtility->isUpgradeInfoTableAvailable();
11        $versionInfo    = $request->getParameter('versionInfo');
12        $submitBy       = $versionInfo['submitBy'];
13
14        if (!$tableStatus && $submitBy != 'selectVersion') {
15            $this->redirect('upgrade/selectVersion');
16        }
17
18        $this->form = new VersionInfoForm();
19
20        if ($request->isMethod('post')) {
21
22            $this->form->bind($request->getParameter($this->form->getName()));
23
24            if ($this->form->isValid()) {
25
26                $selectedVersion = $this->form->getValue('version');
27
28                if ($selectedVersion < 0) {
29                    throw new Exception("Invalid version");
30                }
31
32                $this->getUser()->setAttribute('upgrade.startIncNumber', $upgradeUtility->getStartIncrementNumber($selectedVersion));
33                $this->getUser()->setAttribute('upgrade.endIncNumber', $upgradeUtility->getEndIncrementNumber());
34                $this->getUser()->setAttribute('upgrade.currentVersion', $selectedVersion);
35
36                $this->getRequest()->setParameter('submitBy', 'calculateIncrementNumbers');
37                $this->forward('upgrade','index');
38
39            }
40        }
41    }
42}