ACLs
[freeside.git] / httemplate / misc / cust_main-import.cgi
1 <% include("/elements/header.html",'Batch Customer Import') %>
2
3 Import a CSV file containing customer records.
4 <BR><BR>
5
6 <FORM ACTION="process/cust_main-import.cgi" METHOD="post" ENCTYPE="multipart/form-data">
7
8 <% &ntable("#cccccc", 2) %>
9
10 <% include('/elements/tr-select-agent.html', '', #$agentnum,
11               'label'       => "<B>Agent</B>",
12               'empty_label' => 'Select agent',
13            )
14 %>
15
16 <TR>
17   <TH ALIGN="right">Format</TH>
18   <TD>
19     <SELECT NAME="format">
20 <!--      <OPTION VALUE="simple">Simple -->
21       <OPTION VALUE="extended" SELECTED>Extended
22       <OPTION VALUE="extended-plus_company">Extended plus company
23     </SELECT>
24   </TD>
25 </TR>
26
27 <TR>
28   <TH ALIGN="right">CSV filename</TH>
29   <TD><INPUT TYPE="file" NAME="csvfile"></TD>
30 </TR>
31 % #include('/elements/tr-select-part_referral.html')
32 %
33
34
35 <!--
36 <TR>
37   <TH>First package</TH>
38   <TD>
39     This needs to be agent-virtualized if it gets used!
40     <SELECT NAME="pkgpart"><OPTION VALUE="">(none)</OPTION>
41 % foreach my $part_pkg ( qsearch('part_pkg',{'disabled'=>'' }) ) { 
42
43        <OPTION VALUE="<% $part_pkg->pkgpart %>"><% $part_pkg->pkg. ' - '. $part_pkg->comment %></OPTION>
44 % } 
45
46     </SELECT>
47   </TD>
48 </TR>
49 -->
50
51 <TR><TD COLSPAN=2 ALIGN="center" STYLE="padding-top:6px"><INPUT TYPE="submit" VALUE="Import CSV file"></TD></TR>
52
53 </TABLE>
54
55 </FORM>
56
57 <BR>
58
59 <!-- Simple file format is CSV, with the following field order: <i>cust_pkg.setup, dayphone, first, last, address1, address2, city, state, zip, comments</i>
60 <BR><BR> -->
61
62 <b>Extended</b> file format is CSV, with the following field order: <i>agent_custid, refnum<%$req%>, last<%$req%>, first<%$req%>, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country, daytime, night, ship_last, ship_first, ship_address1, ship_address2, ship_city, ship_state, ship_zip, ship_country, payinfo<%$req%>, paycvv, paydate<%$req%>, invoicing_list, pkgpart, username, _password</i>
63 <BR><BR>
64
65 <b>Extended plus company</b> file format is CSV, with the following field order: <i>agent_custid, refnum<%$req%>, last<%$req%>, first<%$req%>, company, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country, daytime, night, ship_last, ship_first, ship_company, ship_address1, ship_address2, ship_city, ship_state, ship_zip, ship_country, payinfo<%$req%>, paycvv, paydate<%$req%>, invoicing_list, pkgpart, username, _password</i>
66 <BR><BR>
67
68 <%$req%> Required fields
69 <BR><BR>
70
71 Field information:
72
73 <ul>
74
75   <li><i>agent_custid</i>: This is the reseller's idea of the customer number or identifier.  It may be left blank.  If specified, it must be unique per-agent.
76
77   <li><i>refnum</i>: Advertising source number - where a customer heard about your service.  Configuration -&gt; Miscellaneous -&gt; View/Edit advertising sources.  This field has special treatment upon import: If a string is passed instead
78 of an integer, the string is searched for and if necessary auto-created in the
79 advertising source table.
80
81   <li><i>payinfo</i>: Credit card number, or leave this, <i>paycvv</i> and <i>paydate</i> blank for email/paper invoicing.
82
83   <li><i>paycvv</i>: CVV2 number (three digits on the back of the credit card)
84
85   <li><i>paydate</i>: Credit card expiration date, MM/YYYY or MM/YY (M/YY and M/YYYY are also accepted).
86
87   <li><i>invoicing_list</i>: Email address for invoices, or POST for postal invoices.
88
89   <li><i>pkgpart</i>: Package definition.  Configuration -&gt; Provisioning, services and packages -&gt; View/Edit package definitions
90
91   <li><i>username</i> and <i>_password</i> are required if <i>pkgpart</i> is specified.
92 </ul>
93
94 <BR>
95
96 <% include('/elements/footer.html') %>
97
98 <%once>
99
100 my $req = qq!<font color="#ff0000">*</font>!;
101
102 </%once>
103 <%init>
104
105 die "access denied"
106   unless $FS::CurrentUser::CurrentUser->access_right('Import');
107
108 </%init>