Passed
Push — master ( ae8cc8...b4d665 )
by Aimeos
04:50
created

CustomerRenameGroup   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
eloc 22
c 1
b 0
f 0
dl 0
loc 45
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A before() 0 3 1
A up() 0 15 2
A update() 0 19 2
1
<?php
2
3
/**
4
 * @license LGPLv3, https://opensource.org/licenses/LGPL-3.0
5
 * @copyright Aimeos (aimeos.org), 2023
6
 */
7
8
9
namespace Aimeos\Upscheme\Task;
10
11
12
class CustomerRenameGroup extends Base
13
{
14
	public function before() : array
15
	{
16
		return ['Customer', 'Group'];
17
	}
18
19
20
	public function up()
21
	{
22
		$this->info( 'Rename mshop_customer_group to mshop_group', 'vv' );
23
24
		$db = $this->db( 'db-customer' );
25
26
		if( $db->hasTable( 'mshop_customer_group' ) )
27
		{
28
			$db->dropIndex( 'mshop_customer_group', 'pk_mscusgr_id' )
29
				->dropIndex( 'mshop_customer_group', 'unq_mscusgr_code_sid' )
30
				->dropIndex( 'mshop_customer_group', 'idx_mscusgr_label_sid' )
31
				->renameTable( 'mshop_customer_group', 'mshop_group' );
32
		}
33
34
		$this->update( 'mshop_customer_list' );
35
	}
36
37
38
	protected function update( string $table )
39
	{
40
		$db = $this->db( 'db-customer' );
41
42
		$result = $db->query( 'SELECT
43
			' . $db->qi( 'id' ) . ',
44
			' . $db->qi( 'type' ) . ',
45
			' . $db->qi( 'refid' ) . '
46
			FROM ' . $db->qi( $table ) . '
47
			WHERE domain = ?',
48
			['customer/group']
49
		);
50
51
		foreach( $result->iterateAssociative() as $row )
52
		{
53
			$db->update(
54
				'mshop_customer_list',
55
				['key' => 'group|' . $row['type'] . '|' . $row['refid'], 'domain' => 'group'],
56
				['id' => $row['id']]
57
			);
58
		}
59
	}
60
}
61