HSAdmin Backend Domains, E-Mail, Datenbanken
Michael Hierweck
2013-04-30 653307d61cbcdf2652e44ebe44b0dde3284bcaa9
1
2
3
4
5
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
38
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
-- INSERT INTO domain__domain_option 
--     SELECT domain_option_id, domain_id FROM domain
--         JOIN unixuser on ( domain.domain_owner = unixuser.unixuser_id ) 
--         JOIN packet on ( unixuser.packet_id = packet.packet_id ) 
--         JOIN basepacket on ( packet.bp_id = basepacket.basepacket_id ), domain_option
--         WHERE basepacket.basepacket_code = 'PAC/DW'  
--             AND domain_option.domain_option_name = 'php' ;
                
-- DELETE FROM domain__domain_option 
--     USING domain_option, domain
--         JOIN unixuser on ( domain.domain_owner = unixuser.unixuser_id ) 
--         JOIN packet on ( unixuser.packet_id = packet.packet_id ) 
--         JOIN basepacket on ( packet.bp_id = basepacket.basepacket_id )
--         WHERE basepacket.basepacket_code != 'PAC/DW'
--             AND domain__domain_option.domain_option_id = domain_option.domain_option_id
--             AND domain_option.domain_option_name = 'php' ;
 
--- Updates related to HSBilling
 
UPDATE bank_account SET autodebit_ar = false WHERE autodebit_ar IS NULL;
ALTER TABLE bank_account ALTER COLUMN autodebit_ar SET NOT NULL;
 
UPDATE bank_account SET autodebit_ga = false WHERE autodebit_ga IS NULL;
ALTER TABLE bank_account ALTER COLUMN autodebit_ga SET NOT NULL;
 
UPDATE bank_account SET autodebit_op = false WHERE autodebit_op IS NULL;
ALTER TABLE bank_account ALTER COLUMN autodebit_op SET NOT NULL;
 
ALTER TABLE business_partner ADD COLUMN free boolean NOT NULL DEFAULT false;
ALTER TABLE business_partner ADD COLUMN indicator_vat character varying(20) NOT NULL DEFAULT 'GROSS';
ALTER TABLE business_partner ADD COLUMN exempt_vat boolean NOT NULL DEFAULT false;
ALTER TABLE business_partner ADD UNIQUE(bp_id);
 
DROP TABLE billdata CASCADE;
 
ALTER TABLE basepacket ADD COLUMN article_number integer NOT NULL DEFAULT 0;
ALTER TABLE basepacket ALTER COLUMN article_number DROP DEFAULT;
 
ALTER TABLE component ADD COLUMN article_number integer NOT NULL DEFAULT 0;
ALTER TABLE component ALTER COLUMN article_number DROP DEFAULT;
ALTER TABLE component DROP CONSTRAINT ckt_component;
ALTER TABLE component 
    ADD CONSTRAINT ckt_component CHECK (
        (0 <= min_quantity) AND 
        (min_quantity <= default_quantity) AND 
        (default_quantity <= max_quantity) AND 
        (include_quantity <= default_quantity) AND 
        (0 <= include_quantity) AND 
        (mod(min_quantity, increment_quantity) = 0) AND 
        (mod(max_quantity, increment_quantity) = 0) AND 
        (mod(default_quantity, increment_quantity) = 0) AND 
        (mod(include_quantity, increment_quantity) = 0)
    );
 
ALTER TABLE packet DROP COLUMN order_number;
ALTER TABLE packet DROP COLUMN webserver_group;
ALTER TABLE packet ADD COLUMN free boolean NOT NULL DEFAULT false;
 
ALTER TABLE domain DROP COLUMN domain_status;
ALTER TABLE domain DROP COLUMN domain_status_changed;
ALTER TABLE domain DROP COLUMN domain_filed;
ALTER TABLE domain DROP COLUMN domain_until;
ALTER TABLE domain DROP COLUMN domain_reminder;
ALTER TABLE domain DROP COLUMN domain_free;
ALTER TABLE domain DROP COLUMN domain_template;
 
CREATE TABLE price_list (
  id serial PRIMARY KEY,                                                                   
  name varchar(20)
);       
INSERT INTO price_list (name) VALUES ('Default Price List');
 
CREATE TABLE customer_price_list_mapping (
    customer integer REFERENCES business_partner(bp_id),
    price_list integer REFERENCES price_list(id),
    PRIMARY KEY (customer, price_list)
);
INSERT INTO customer_price_list_mapping 
    (SELECT bp_id, (SELECT id FROM price_list WHERE name LIKE 'Default%') FROM business_partner);
 
CREATE TABLE price (                                                                
    id serial PRIMARY KEY,
    article_number integer NOT NULL,
    price decimal(10, 2) NOT NULL,
    vat decimal(4,2) NOT NULL,
    price_list integer REFERENCES price_list(id)                                             
);
 
update basecomponent set description='Benutzer, Datenbanken, E-Mail' where basecomponent_id=1;
update basecomponent set description='%s GB Datentransfervolumen' where basecomponent_id=10;
update basecomponent set description='%s MB Speicherplatz' where basecomponent_id=11;
update basecomponent set description='CPU-Thread' where basecomponent_id=19;
update basecomponent set description='%s MB Arbeitsspeicher' where basecomponent_id=20;
update basecomponent set description='%s GB Datentransfervolumen' where basecomponent_id=10;
 
update basepacket set basepacket_code='PAC/SW', description='Statik Web Paket', article_number=1100 where basepacket_id=19;
update basepacket set basepacket_code='PAC/DW', description='Dynamik Web Paket', article_number=1200 where basepacket_id=20;
update basepacket set basepacket_code='PAC/WEB', description='Web Paket', article_number=1000 where basepacket_id=21;
update basepacket set basepacket_code='SRV/MGD', description='Managed Server', article_number=2000 where basepacket_id=22;
 
insert into price (article_number, price, vat, price_list) values (1, 0, 0, 0, (select id from price_list where name like 'Default%')); 
 
insert into price (article_number, price, vat, price_list) values (100, 8.00, 0.00, (select id from price_list where name like 'Default%'));
 
insert into price (article_number, price, vat, price_list) values (1000, 2.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1011, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1012, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1013, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1014, 2.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1021, 10.00, 19.00, (select id from price_list where name like 'Default%'));
 
insert into price (article_number, price, vat, price_list) values (1100, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1111, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1112, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1113, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1114, 2.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1121, 8.00, 19.00, (select id from price_list where name like 'Default%'));
 
insert into price (article_number, price, vat, price_list) values (1200, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1211, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1212, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1213, 1.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1214, 2.00, 19.00, (select id from price_list where name like 'Default%'));
insert into price (article_number, price, vat, price_list) values (1221, 8.00, 19.00, (select id from price_list where name like 'Default%'));
 
update component set article_number=1111 where basepacket_id=19 and basecomponent_id=1;
update component set article_number=1112 where basepacket_id=19 and basecomponent_id=11;
update component set article_number=1113 where basepacket_id=19 and basecomponent_id=10;
update component set article_number=1121 where basepacket_id=19 and basecomponent_id=21;
 
update component set article_number=1211 where basepacket_id=20 and basecomponent_id=1;
update component set article_number=1212 where basepacket_id=20 and basecomponent_id=11;
update component set article_number=1213 where basepacket_id=20 and basecomponent_id=10;
update component set article_number=1221 where basepacket_id=20 and basecomponent_id=21;
 
update component set article_number=1011 where basepacket_id=21 and basecomponent_id=1;
update component set article_number=1012 where basepacket_id=21 and basecomponent_id=11;
update component set article_number=1013 where basepacket_id=21 and basecomponent_id=10;
update component set article_number=1021 where basepacket_id=21 and basecomponent_id=21;