Blame view

console/migrations/m151013_062829_deletePrefixFunction.php 1.61 KB
9b4db7f3   Mihail   sinhronize with s...
1
2
3
4
5
6
7
8
9
10
11
12
  <?php
  
  use yii\db\Schema;
  use yii\db\Migration;
  
  /**
   * Class m151013_062829_deletePrefixFunction
   * добавляем две функции - одна ищет префикс по поставщику и бренду,
   * другая удаляет найденный префикс из переданного артикула
   */
  class m151013_062829_deletePrefixFunction extends Migration
  {
53eb6c31   Mihail   add migration for...
13
  
9b4db7f3   Mihail   sinhronize with s...
14
15
      public function safeUp()
      {
53eb6c31   Mihail   add migration for...
16
          $find_prefix = <<< MySQL
9b4db7f3   Mihail   sinhronize with s...
17
18
19
20
21
22
23
24
                  CREATE FUNCTION FindPrefix(p_importer_id int, p_brand VARCHAR(100)) RETURNS VARCHAR(50)
                  BEGIN
                      DECLARE _prefix varchar(10);
  
                      select prefix into _prefix From w_importers_prefix where importer_id = p_importer_id and brand = p_brand COLLATE utf8_general_ci;
  
                   RETURN (_prefix);
                  END
53eb6c31   Mihail   add migration for...
25
  MySQL;
9b4db7f3   Mihail   sinhronize with s...
26
  
53eb6c31   Mihail   add migration for...
27
          $delete_prefix = <<< MySQL
9b4db7f3   Mihail   sinhronize with s...
28
29
30
31
32
33
34
                  CREATE FUNCTION DeletePrefix(p_articul VARCHAR(150), p_importer_id int, p_brand VARCHAR(100)) RETURNS VARCHAR(150)
                  BEGIN
                      DECLARE _articul varchar(10);
  
                   select substring(p_articul, LENGTH( FindPrefix( p_importer_id, p_brand ) ) + 1 ) into _articul;
                   RETURN (_articul);
                  END
53eb6c31   Mihail   add migration for...
35
  MySQL;
9b4db7f3   Mihail   sinhronize with s...
36
37
38
39
40
41
42
43
44
  
          $this->execute($find_prefix);
          $this->execute($delete_prefix);
  
      }
  
      public function safedown()
      {
  
53eb6c31   Mihail   add migration for...
45
          $find_prefix = <<< MySQL
9b4db7f3   Mihail   sinhronize with s...
46
                 drop FUNCTION FindPrefix;
53eb6c31   Mihail   add migration for...
47
  MySQL;
9b4db7f3   Mihail   sinhronize with s...
48
  
53eb6c31   Mihail   add migration for...
49
          $delete_prefix = <<< MySQL
9b4db7f3   Mihail   sinhronize with s...
50
                  drop FUNCTION DeletePrefix;
53eb6c31   Mihail   add migration for...
51
  MySQL;
9b4db7f3   Mihail   sinhronize with s...
52
53
54
55
56
57
58
59
  
          $this->execute($find_prefix);
          $this->execute($delete_prefix);
  
  
      }
  
  
021773a2   Mihail   merge with server
60
  }