Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 16 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 1 |
Version010309Date20210628143307 | |
0.00% |
0 / 16 |
|
0.00% |
0 / 4 |
20 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
preSchemaChange | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
changeSchema | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
postSchemaChange | |
0.00% |
0 / 11 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | declare(strict_types=1); |
4 | |
5 | namespace OCA\Cospend\Migration; |
6 | |
7 | use Closure; |
8 | use OCP\DB\ISchemaWrapper; |
9 | use OCP\Migration\SimpleMigrationStep; |
10 | use OCP\Migration\IOutput; |
11 | use OCP\DB\QueryBuilder\IQueryBuilder; |
12 | use OCP\IDBConnection; |
13 | use OCP\IL10N; |
14 | |
15 | /** |
16 | * Auto-generated migration step: Please modify to your needs! |
17 | */ |
18 | class Version010309Date20210628143307 extends SimpleMigrationStep { |
19 | |
20 | /** @var IDBConnection */ |
21 | private $connection; |
22 | private $trans; |
23 | |
24 | /** |
25 | * @param IDBConnection $connection |
26 | */ |
27 | public function __construct(IDBConnection $connection, IL10N $l10n) { |
28 | $this->connection = $connection; |
29 | $this->trans = $l10n; |
30 | } |
31 | |
32 | /** |
33 | * @param IOutput $output |
34 | * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` |
35 | * @param array $options |
36 | */ |
37 | public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $options) { |
38 | } |
39 | |
40 | /** |
41 | * @param IOutput $output |
42 | * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` |
43 | * @param array $options |
44 | * @return null|ISchemaWrapper |
45 | */ |
46 | public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) { |
47 | /** @var ISchemaWrapper $schema */ |
48 | $schema = $schemaClosure(); |
49 | return $schema; |
50 | } |
51 | |
52 | /** |
53 | * @param IOutput $output |
54 | * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` |
55 | * @param array $options |
56 | */ |
57 | public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options) { |
58 | $qb = $this->connection->getQueryBuilder(); |
59 | |
60 | // fix potentially incorrect category ids < 0 and != -11 |
61 | // => set them to -11 (reimbursement) |
62 | $qb->update('cospend_bills'); |
63 | $qb->set('categoryid', $qb->createNamedParameter(-11, IQueryBuilder::PARAM_INT)); |
64 | $qb->where( |
65 | $qb->expr()->lt('categoryid', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)) |
66 | ); |
67 | $qb->andWhere( |
68 | $qb->expr()->neq('categoryid', $qb->createNamedParameter(-11, IQueryBuilder::PARAM_INT)) |
69 | ); |
70 | $qb->executeStatement(); |
71 | $qb->resetQueryParts(); |
72 | } |
73 | } |