cust_bill_pay and cust_credit_refund
[freeside.git] / httemplate / docs / upgrade8.html
1 <head>
2   <title>Upgrading to 1.4.0</title>
3 </head>
4 <body>
5 <h1>Upgrading to 1.4.0 from 1.3.1</h1>
6 <ul>
7   <li>If migrating from less than 1.3.1, see these <a href="upgrade7.html">instructions</a> first.
8   <li>Back up your data and current Freeside installation.
9   <li>Install <a href="http://www.apache-asp.org/">Apache::ASP</a> or <a href="http://www.masonhq.com/">HTML::Mason</a>.
10 </ul>
11 <table>
12   <tr>
13     <th>Apache::ASP</th><th>Mason</th>
14   </tr>
15   <tr>
16     <td><ul>
17       <li>Run <tt>make aspdocs</tt>
18       <li>Copy <tt>aspdocs/</tt> to your web server's document space.
19       <li>Create a <a href="http://www.apache-asp.org/config.html#Global">Global</a> directory, such as <tt>/usr/local/etc/freeside/asp-global/</tt>
20       <li>Copy <tt>htetc/global.asa</tt> to the Global directory.
21       <li>Configure Apache for the Global directory and to execute .cgi files using Apache::ASP.  For example:
22 <font size="-1"><pre>
23 &lt;Directory /usr/local/apache/htdocs/freeside-asp&gt;
24 &lt;Files ~ (\.cgi)&gt;
25 AddHandler perl-script .cgi
26 PerlHandler Apache::ASP
27 &lt;/Files&gt;
28 &lt;Perl&gt;
29 $MLDBM::RemoveTaint = 1;
30 &lt;/Perl&gt;
31 PerlSetVar Global /usr/local/etc/freeside/asp-global/
32 &lt;/Directory&gt;
33 </pre></font>
34     </ul></td>
35     <td><ul>
36       <li>Run <tt>make masondocs</tt>
37       <li>Copy <tt>masondocs/</tt> to your web server's document space.
38       <li>Copy <tt>htetc/handler.pl</tt> to your web server's configuration directory.
39       <li>Edit <tt>handler.pl</tt> and set an appropriate <tt>data_dir</tt>, such as <tt>/usr/local/etc/freeside/mason-data</tt>
40       <li>Configure Apache to use the <tt>handler.pl</tt> file and to execute .cgi files using HTML::Mason.  For example:
41 <font size="-1"><pre>
42 &lt;Directory /usr/local/apache/htdocs/freeside-mason&gt;
43 &lt;Files ~ (\.cgi)&gt;
44 AddHandler perl-script .cgi
45 PerlHandler HTML::Mason
46 &lt;/Files&gt;
47 &lt;Perl&gt;
48 require "/usr/local/apache/conf/handler.pl";
49 &lt;/Perl&gt;
50 &lt;/Directory&gt;
51 </pre></font>
52     </ul></td>
53   </tr>
54 </table>
55 <ul>
56   <li>Change to the FS directory in the new tarball, and build and install the
57       Perl modules:
58     <pre>
59 $ cd FS/
60 $ perl Makefile.PL
61 $ make
62 $ su
63 # make install UNINST=1</pre>
64    <li>Apply the following changes to your database:
65 <pre>
66 CREATE TABLE svc_forward (
67   svcnum int NOT NULL,
68   srcsvc int NOT NULL,
69   dstsvc int NOT NULL,
70   dst varchar(80),
71   PRIMARY KEY (svcnum)
72 );
73
74 CREATE TABLE cust_credit_bill (
75   creditbillnum int primary key,
76   crednum int not null,
77   invnum int not null,
78   _date int not null,
79   amount decimal(10,2) not null
80 );
81
82 CREATE TABLE cust_bill_pay (
83   billpaynum int primary key,
84   invnum int not null,
85   paynum int not null,
86   _date int not null,
87   amount decimal(10,2) not null
88 );
89
90 CREATE TABLE cust_credit_refund (
91   creditrefundnum int primary key,
92   crednum int not null,
93   refundnum int not null,
94   _date int not null,
95   amount decimal(10,2) not null
96 );
97
98
99 ALTER TABLE svc_acct ADD domsvc integer NOT NULL;
100 ALTER TABLE svc_domain ADD catchall integer NULL;
101 ALTER TABLE part_svc ADD svc_acct__domsvc integer NULL;
102 ALTER TABLE part_svc ADD svc_acct__domsvc_flag char(1) NULL;
103 ALTER TABLE part_svc ADD svc_domain__catchall integer NULL;
104 ALTER TABLE part_svc ADD svc_domain__catchall_flag char(1) NULL;
105 ALTER TABLE part_svc ADD svc_forward__srcsvc integer NULL;
106 ALTER TABLE part_svc ADD svc_forward__srcsvc_flag char(1) NULL;
107 ALTER TABLE part_svc ADD svc_forward__dstsvc integer NULL;
108 ALTER TABLE part_svc ADD svc_forward__dstsvc_flag char(1) NULL;
109 ALTER TABLE part_svc ADD svc_forward__dst integer NULL;
110 ALTER TABLE part_svc ADD svc_forward__dst_flag char(1) NULL;
111 ALTER TABLE cust_main ADD referral_custnum integer NULL;
112 CREATE INDEX cust_main3 ON cust_main ( referral_custnum );
113 CREATE INDEX cust_credit_bill1 ON cust_credit_bill ( crednum );
114 CREATE INDEX cust_credit_bill2 ON cust_credit_bill ( invnum );
115 CREATE INDEX cust_bill_pay1 ON cust_bill_pay ( invnum );
116 CREATE INDEX cust_bill_pay2 ON cust_bill_pay ( paynum );
117 CREATE INDEX cust_credit_refund1 ON cust_credit_refund ( crednum );
118 CREATE INDEX cust_credit_refund2 ON cust_credit_refund ( refundnum );
119 </pre>
120
121   <li>If you are using PostgreSQL, apply the following changes to your database:
122 <pre>
123 CREATE UNIQUE INDEX agent_pkey ON agent ( agentnum );
124 CREATE UNIQUE INDEX agent_type_pkey agent_type ( typenum );
125 CREATE UNIQUE INDEX cust_bill_pkey ON cust_bill ( invnum );
126 CREATE UNIQUE INDEX cust_credit_pkey ON cust_credit ( crednum );
127 CREATE UNIQUE INDEX cust_main_pkey ON cust_main ( custnum );
128 CREATE UNIQUE INDEX cust_main_county_pkey ON cust_main_county ( taxnum );
129 CREATE UNIQUE INDEX cust_main_invoice_pkey ON cust_main_invoice ( destnum );
130 CREATE UNIQUE INDEX cust_pay_pkey ON cust_pay ( paynum );
131 CREATE UNIQUE INDEX cust_pkg_pkey ON cust_pkg ( pkgnum );
132 CREATE UNIQUE INDEX cust_refund_pkey ON cust_refund ( refundnum );
133 CREATE UNIQUE INDEX cust_svc_pkey ON cust_svc ( svcnum );
134 CREATE UNIQUE INDEX domain_record_pkey ON domain_record ( recnum );
135 CREATE UNIQUE INDEX nas_pkey ON nas ( nasnum );
136 CREATE UNIQUE INDEX part_pkg_pkey ON part_pkg ( pkgpart );
137 CREATE UNIQUE INDEX part_referral_pkey ON part_referral ( refnum );
138 CREATE UNIQUE INDEX part_svc_pkey ON part_svc ( svcpart );
139 CREATE UNIQUE INDEX port_pkey ON port ( portnum );
140 CREATE UNIQUE INDEX prepay_credit_pkey ON prepay_credit ( prepaynum );
141 CREATE UNIQUE INDEX session_pkey ON session ( sessionnum );
142 CREATE UNIQUE INDEX svc_acct_pkey ON svc_acct ( svcnum );
143 CREATE UNIQUE INDEX svc_acct_pop_pkey ON svc_acct_pop ( popnum );
144 CREATE UNIQUE INDEX svc_acct_sm_pkey ON svc_acct_sm ( svcnum );
145 CREATE UNIQUE INDEX svc_domain_pkey ON svc_domain ( svcnum );
146 CREATE UNIQUE INDEX svc_www_pkey ON svc_www ( svcnum );
147 CREATE UNIQUE INDEX type_pkgs_pkey ON type_pkgs ( typenum );
148 </pre>
149   <li>If you wish to enable service/shipping addresses, apply the following
150       changes to your database:
151 <pre>
152 ALTER TABLE cust_main ADD COLUMN ship_last varchar(80) NULL;
153 ALTER TABLE cust_main ADD COLUMN ship_first varchar(80) NULL;
154 ALTER TABLE cust_main ADD COLUMN ship_company varchar(80) NULL;
155 ALTER TABLE cust_main ADD COLUMN ship_address1 varchar(80) NULL;
156 ALTER TABLE cust_main ADD COLUMN ship_address2 varchar(80) NULL;
157 ALTER TABLE cust_main ADD COLUMN ship_city varchar(80) NULL;
158 ALTER TABLE cust_main ADD COLUMN ship_county varchar(80) NULL;
159 ALTER TABLE cust_main ADD COLUMN ship_state varchar(80) NULL;
160 ALTER TABLE cust_main ADD COLUMN ship_zip varchar(10) NULL;
161 ALTER TABLE cust_main ADD COLUMN ship_country char(2) NULL;
162 ALTER TABLE cust_main ADD COLUMN ship_daytime varchar(20) NULL;
163 ALTER TABLE cust_main ADD COLUMN ship_night varchar(20) NULL;
164 ALTER TABLE cust_main ADD COLUMN ship_fax varchar(12) NULL;
165 CREATE INDEX cust_main1 ON cust_main ( ship_last );
166 CREATE INDEX cust_main2 ON cust_main ( ship_company );
167 </pre>
168   <li>If you wish to enable customer comments, apply the following change to
169       your database:
170 <pre>
171 ALTER TABLE cust_main ADD COLUMN comments varchar NULL;
172 </pre>
173   <li>If you are using the signup server, reinstall it according to the <a href="signup.html">instructions</a>.  The 1.3.x signup server is not compatible with 1.4.x.
174   <li>Run bin/dbdef-create.
175   <li>create a service based on svc_forward
176   <li>Run bin/fs-migrate-svc_acct_sm
177   <li>Run bin/fs-migrate-payref
178   <li>create the conf.dbsrc/user_policy as appropriate for your site
179 </body>