Class: SolidusPromotions::MigrateOrderPromotions

Inherits:
Object
  • Object
show all
Defined in:
lib/solidus_promotions/migrate_order_promotions.rb

Class Method Summary collapse

Class Method Details

.downObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/solidus_promotions/migrate_order_promotions.rb', line 39

def down
  sql = "    INSERT INTO spree_orders_promotions (\n      order_id,\n      promotion_id,\n      promotion_code_id,\n      created_at,\n      updated_at\n    )\n    SELECT\n      solidus_promotions_order_promotions.order_id AS order_id,\n      spree_promotions.id AS promotion_id,\n      spree_promotion_codes.id AS promotion_code_id,\n      solidus_promotions_order_promotions.created_at,\n      solidus_promotions_order_promotions.updated_at\n    FROM solidus_promotions_order_promotions\n      INNER JOIN solidus_promotions_promotions ON solidus_promotions_order_promotions.promotion_id = solidus_promotions_promotions.id\n      INNER JOIN spree_promotions ON spree_promotions.id = solidus_promotions_promotions.original_promotion_id\n      LEFT OUTER JOIN solidus_promotions_promotion_codes ON solidus_promotions_order_promotions.promotion_code_id = solidus_promotions_promotion_codes.id\n      LEFT OUTER JOIN spree_promotion_codes ON spree_promotion_codes.value = solidus_promotions_promotion_codes.value\n    WHERE NOT EXISTS (\n      SELECT NULL\n      FROM spree_orders_promotions\n      WHERE spree_orders_promotions.order_id = order_id\n        AND (spree_orders_promotions.promotion_code_id = promotion_code_id OR promotion_code_id IS NULL)\n        AND spree_orders_promotions.promotion_id = promotion_id\n    );\n  SQL\n  ActiveRecord::Base.connection.execute(sql)\n\n  SolidusPromotions::OrderPromotion.delete_all\nend\n"

.upObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/solidus_promotions/migrate_order_promotions.rb', line 6

def up
  sql = "    INSERT INTO solidus_promotions_order_promotions (\n      order_id,\n      promotion_id,\n      promotion_code_id,\n      created_at,\n      updated_at\n    )\n    SELECT\n      spree_orders_promotions.order_id AS order_id,\n      solidus_promotions_promotions.id AS promotion_id,\n      solidus_promotions_promotion_codes.id AS promotion_code_id,\n      spree_orders_promotions.created_at,\n      spree_orders_promotions.updated_at\n    FROM spree_orders_promotions\n      INNER JOIN spree_promotions ON spree_orders_promotions.promotion_id = spree_promotions.id\n      INNER JOIN solidus_promotions_promotions ON spree_promotions.id = solidus_promotions_promotions.original_promotion_id\n      LEFT OUTER JOIN spree_promotion_codes ON spree_orders_promotions.promotion_code_id = spree_promotion_codes.id\n      LEFT OUTER JOIN solidus_promotions_promotion_codes ON spree_promotion_codes.value = solidus_promotions_promotion_codes.value\n    WHERE NOT EXISTS (\n      SELECT NULL\n      FROM solidus_promotions_order_promotions\n      WHERE solidus_promotions_order_promotions.order_id = order_id\n        AND (solidus_promotions_order_promotions.promotion_code_id = promotion_code_id OR promotion_code_id IS NULL)\n        AND solidus_promotions_order_promotions.promotion_id = promotion_id\n    );\n  SQL\n  ActiveRecord::Base.connection.execute(sql)\n\n  Spree::OrderPromotion.delete_all\nend\n"