fix net sales amount (credits were being applied in wrong month), RT#7502
[freeside.git] / httemplate / misc / cust_main-import.cgi
1 <% include("/elements/header.html",'Batch Customer Import') %>
2
3 Import a file containing customer records.
4 <BR><BR>
5
6 <% include( '/elements/form-file_upload.html',
7               'name'      => 'CustomerImportForm',
8               'action'    => 'process/cust_main-import.cgi',
9               'num_files' => 1,
10               'fields'    => [ 'agentnum', 'custbatch', 'format' ],
11               'message'   => 'Customer import successful',
12               'url'       => $p."search/cust_main.html?custbatch=$custbatch",
13           )
14 %>
15
16 <% &ntable("#cccccc", 2) %>
17
18   <% include('/elements/tr-select-agent.html', '', #$agentnum,
19                 'label'       => "<B>Agent</B>",
20                 'empty_label' => 'Select agent',
21              )
22   %>
23
24   <INPUT TYPE="hidden" NAME="custbatch" VALUE="<% $custbatch %>"%>
25
26   <TR>
27     <TH ALIGN="right">Format</TH>
28     <TD>
29       <SELECT NAME="format">
30         <!-- <OPTION VALUE="simple">Simple -->
31         <OPTION VALUE="extended" SELECTED>Extended
32         <OPTION VALUE="extended-plus_company">Extended plus company
33       </SELECT>
34     </TD>
35   </TR>
36
37   <% include( '/elements/file-upload.html',
38                 'field' => 'file',
39                 'label' => 'Filename',
40             )
41   %>
42
43
44 % #include('/elements/tr-select-part_referral.html')
45 %
46
47
48 <!--
49 <TR>
50   <TH>First package</TH>
51   <TD>
52     This needs to be agent-virtualized if it gets used!
53     <SELECT NAME="pkgpart"><OPTION VALUE="">(none)</OPTION>
54 % foreach my $part_pkg ( qsearch('part_pkg',{'disabled'=>'' }) ) { 
55
56        <OPTION VALUE="<% $part_pkg->pkgpart %>"><% $part_pkg->pkg. ' - '. $part_pkg->comment %></OPTION>
57 % } 
58
59     </SELECT>
60   </TD>
61 </TR>
62 -->
63
64   <TR>
65     <TD COLSPAN=2 ALIGN="center" STYLE="padding-top:6px">
66       <INPUT TYPE    = "submit"
67              ID      = "submit"
68              VALUE   = "Import file"
69              onClick = "document.CustomerImportForm.submit.disabled=true;"
70       >
71     </TD>
72   </TR>
73
74 </TABLE>
75
76 </FORM>
77
78 <BR>
79
80 <!-- Simple file format is CSV, with the following field order: <i>cust_pkg.setup, dayphone, first, last, address1, address2, city, state, zip, comments</i>
81 <BR><BR> -->
82
83 Uploaded files can be CSV (comma-separated value) files or Excel spreadsheets.  The file should have a .CSV or .XLS extension.
84 <BR><BR>
85
86 <b>Extended</b> format has 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, paycvv, paydate, invoicing_list, pkgpart, username, _password</i>
87 <BR><BR>
88
89 <b>Extended plus company</b> format has 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, paycvv, paydate, invoicing_list, pkgpart, username, _password</i>
90 <BR><BR>
91
92 <%$req%> Required fields
93 <BR><BR>
94
95 Field information:
96
97 <ul>
98
99   <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.
100
101   <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
102 of an integer, the string is searched for and if necessary auto-created in the
103 advertising source table.
104
105   <li><i>payinfo</i>: Credit card number, or leave this, <i>paycvv</i> and <i>paydate</i> blank for email/paper invoicing.
106
107   <li><i>paycvv</i>: CVV2 number (three digits on the back of the credit card)
108
109   <li><i>paydate</i>: Credit card expiration date, MM/YYYY or MM/YY (M/YY and M/YYYY are also accepted).
110
111   <li><i>invoicing_list</i>: Email address for invoices, or POST for postal invoices.
112
113   <li><i>pkgpart</i>: Package definition.  Configuration -&gt; Provisioning, services and packages -&gt; View/Edit package definitions
114
115   <li><i>username</i> and <i>_password</i> are required if <i>pkgpart</i> is specified.
116 </ul>
117
118 <BR>
119
120 <% include('/elements/footer.html') %>
121
122 <%once>
123
124 my $req = qq!<font color="#ff0000">*</font>!;
125
126 </%once>
127 <%init>
128
129 die "access denied"
130   unless $FS::CurrentUser::CurrentUser->access_right('Import');
131
132 my $custbatch = time2str('webimport-%Y/%m/%d-%T'. "-$$-". rand() * 2**32, time);
133
134 </%init>