Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
Version010309Date20210628143307
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 4
20
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 preSchemaChange
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 changeSchema
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 postSchemaChange
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace OCA\Cospend\Migration;
6
7use Closure;
8use OCP\DB\ISchemaWrapper;
9use OCP\Migration\SimpleMigrationStep;
10use OCP\Migration\IOutput;
11use OCP\DB\QueryBuilder\IQueryBuilder;
12use OCP\IDBConnection;
13use OCP\IL10N;
14
15/**
16 * Auto-generated migration step: Please modify to your needs!
17 */
18class 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}