improve pricing descriptions
[freeside.git] / fs_selfservice / fri / modules / billing.module
1 <?php
2
3 /**
4  * @file
5  * Functions for the interface to the help page
6  */
7
8 /**
9   * Class for help
10   */
11 class billing {
12
13   /*
14    * rank (for prioritizing modules)
15    */
16   function rank() {
17
18     $rank = -2;
19     return $rank;
20   }
21
22   /*
23    * init
24    */
25   function init() {
26   }
27
28   /*
29    * Adds menu item to nav menu
30    *
31    * @param $args
32    *   Common arguments
33    */
34   function navMenu($args) {
35
36     $ret .= "<p><small><small><a href='" . $_SESSION['ARI_ROOT'] . "?m=billing&f=display'>" . _("Billing") . "</a></small></small></p><br>";
37
38     return $ret;
39   }
40
41   /*
42    * Displays stats page
43    *
44    * @param $args
45    *   Common arguments
46    */
47   function display($args) {
48
49     $display = new Display();
50
51     // args
52     $m = getArgument($args,'m');
53     $q = getArgument($args,'q');
54
55     $displayname = $_SESSION['ari_user']['displayname'];
56     $extension = $_SESSION['ari_user']['extension'];
57
58     // build page content
59     $ret .= checkErrorMessage();
60
61         $header_text = _("Billing");
62         if (!$_SESSION['ari_user']['admin_help']) {
63                 $header_text .= sprintf(_(" for %s (%s)"), $displayname, $extension);
64         }
65
66     // build page content
67     $ret .= checkErrorMessage();
68
69     $ret .= $display->displayHeaderText($header_text);
70     $ret .= $display->displayLine();
71
72
73     $freeside = new FreesideSelfService();
74
75    $fs_info = $freeside->customer_info( array(
76       'session_id' => $_SESSION['freeside_session_id'],
77     ) );
78     $error = $fs_info['error'];
79     if ( $error ) {
80       //$_SESSION['ari_error'] = _("Incorrect Username or Password");
81       $_SESSION['ari_error'] = $error; #// XXX report as ari_error???!
82     }
83
84     //$ret .= $fs_info['small_custview'];
85     //$ret .= '<BR>';
86
87     $ret .= 'Balance: <b>$'. $fs_info['balance']. '</b><BR><BR>';
88    
89     if ( $fs_info['balance'] > 0 ) {
90   
91       #$ret .= '<B><A HREF="'. $_SESSION['ARI_ROOT'].
92       #        '?m=billing&f=make_payment">Make a payment</A></B><BR><BR>';
93       $ret .= '<B><A HREF="/selfservice/selfservice.cgi?session='.
94               $_SESSION['freeside_session_id'].
95               ';action=make_payment">Make a payment</A></B><BR><BR>';
96
97     }
98
99     // XXX count() ???
100     if ( count($fs_info['open_invoices']) ) {
101   
102       $ret .= '<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 BGCOLOR="#eeeeee">'.
103               '<TR><TH BGCOLOR="#ff6666" COLSPAN=5>Open Invoices</TH></TR>';
104       $link = '<A HREF="'. $_SESSION['ARI_ROOT'].
105               '?m=billing&f=view_invoice&invnum=';
106       
107       $col1 = "eeeeee";
108       $col2 = "cccccc";
109       $col = $col1;
110   
111       while ( $i = each($fs_info['open_invoices']) ) {
112   
113         $invoice = $i[value];
114   
115         $td = '<TD BGCOLOR="#'. $col. '">';
116         $a  = $link. $invoice['invnum']. '">';
117         $ret .=
118           "<TR>$td$a". 'Invoice #'. $invoice['invnum']. "</A></TD>$td</TD>".
119           "$td$a". $invoice['date']. "</A></TD>$td</TD>".
120           '<TD BGCOLOR="#'. $col. '" ALIGN="right">'. $a. '$'. $invoice['owed'].
121             '</A></TD>'.
122           '</TR>';
123
124         if ( $col == $col1 ) {
125           $col = $col2;
126         } else {
127           $col = $col1;
128         }
129
130       }
131
132       $ret .= '</TABLE><BR>';
133     } else {
134       $ret .= 'You have no outstanding invoices.<BR><BR>';
135     }
136
137     #$fs_info = $freeside->customer_info( array(
138     #  'session_id' => $_SESSION['freeside_session_id'],
139     #) );
140     #$error = $fs_info['error'];
141     #if ( $error ) {
142     #  //$_SESSION['ari_error'] = _("Incorrect Username or Password");
143     #  $_SESSION['ari_error'] = $error; #// XXX report as ari_error???!
144     #}
145
146     // $ret .= 'Billing goes here';
147     // XXX navigate to make payment, view invoice,
148     // & myaccount change payment info
149
150     $ret .= '<B><A HREF="/selfservice/selfservice.cgi?session='.
151             $_SESSION['freeside_session_id'].
152             ';action=make_payment">Make a credit card payment</A></B><BR><BR>';
153     $ret .= '<B><A HREF="/selfservice/selfservice.cgi?session='.
154             $_SESSION['freeside_session_id'].
155             ';action=make_payment">Make an electronic check payment</A></B><BR><BR>';
156     $ret .= '<B><A HREF="/selfservice/selfservice.cgi?session='.
157             $_SESSION['freeside_session_id'].
158             ';action=make_payment">Use a prepaid card</A></B><BR><BR>';
159
160     return $ret;
161
162   }
163
164   function make_payment($args) {
165
166     $display = new Display();
167
168     // args
169     $m = getArgument($args,'m');
170     $q = getArgument($args,'q');
171
172     $displayname = $_SESSION['ari_user']['displayname'];
173     $extension = $_SESSION['ari_user']['extension'];
174
175     // build page content
176     $ret .= checkErrorMessage();
177
178         $header_text = _("Billing");
179         if (!$_SESSION['ari_user']['admin_help']) {
180                 $header_text .= sprintf(_(" for %s (%s)"), $displayname, $extension);
181         }
182
183     // build page content
184     $ret .= checkErrorMessage();
185
186     $ret .= $display->displayHeaderText($header_text);
187     $ret .= $display->displayLine();
188
189
190     #$freeside = new FreesideSelfService();
191
192     $ret .= 'Make payment goes here';
193
194     return $ret;
195
196   }
197
198   function view_invoice($args) {
199
200     $display = new Display();
201
202     // args
203     $m = getArgument($args,'m');
204     $q = getArgument($args,'q');
205
206     $displayname = $_SESSION['ari_user']['displayname'];
207     $extension = $_SESSION['ari_user']['extension'];
208
209     // build page content
210     $ret .= checkErrorMessage();
211
212         $header_text = _("Billing");
213         if (!$_SESSION['ari_user']['admin_help']) {
214                 $header_text .= sprintf(_(" for %s (%s)"), $displayname, $extension);
215         }
216
217     // build page content
218     $ret .= checkErrorMessage();
219
220     $ret .= $display->displayHeaderText($header_text);
221     #$ret .= $display->displayLine();
222
223     $invnum = getArgument($args, 'invnum');
224
225     $freeside = new FreesideSelfService();
226     $invoice = $freeside->invoice( array(
227       'session_id' => $_SESSION['freeside_session_id'],
228       'invnum'     => $invnum,
229     ) );
230     $error = $invoice['error'];
231     if ( $error ) {
232       //$_SESSION['ari_error'] = _("Incorrect Username or Password");
233       $_SESSION['ari_error'] = $error; // XXX report as ari_error???!
234     }
235
236     $html = $invoice['invoice_html']->scalar;
237     $html = str_replace( "\xA0", '&nbsp;', $html); // XX doh
238     error_log($html);
239
240     $ret .= '<TABLE BGCOLOR="#000000" BORDER=0><TR><TD>'.
241             $html.
242             '</TD></TR></TABLE>';
243
244     return $ret;
245
246   }
247
248 }
249
250 ?>