X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fcust_main.cgi;h=07629dcff5fbbeb91152e3da058ea77e54516f63;hb=f7e5e7625b04164ce2e0aac77a85bc03a7d48a6f;hp=7308c72dacab3ed51a580d2f52137bc9f16625fb;hpb=8fb243091939f37e24163925be78f4e9f3485978;p=freeside.git
diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi
index 7308c72da..07629dcff 100755
--- a/httemplate/edit/cust_main.cgi
+++ b/httemplate/edit/cust_main.cgi
@@ -1,5 +1,5 @@
<% include('/elements/header.html',
- "Customer $action",
+ $title,
'',
' onUnload="myclose()"' #hmm, in billing.html
) %>
@@ -32,13 +32,24 @@
<% include('cust_main/birthdate.html', $cust_main) %>
% }
+%# latitude and longitude
+% if ( $conf->exists('cust_main-require_censustract') ) {
+% my ($latitude, $longitude) = $cust_main->service_coordinates;
+% $latitude ||= $conf->config('company_latitude') || '';
+% $longitude ||= $conf->config('company_longitude') || '';
+
+
+% }
+
%# contact info
% my $same_checked = '';
% my $ship_disabled = '';
+% my @ship_style = ();
% unless ( $cust_main->ship_last && $same ne 'Y' ) {
% $same_checked = 'CHECKED';
-% $ship_disabled = 'DISABLED STYLE="background-color: #dddddd"';
+% $ship_disabled = 'DISABLED';
+% push @ship_style, 'background-color:#dddddd';
% foreach (
% qw( last first company address1 address2 city county state zip country
% daytime night fax )
@@ -47,7 +58,7 @@
% }
% }
-
+
Billing address
<% include('cust_main/contact.html',
@@ -65,14 +76,20 @@
function bill_changed(what) {
if ( what.form.same.checked ) {
% for (qw( last first company address1 address2 city zip daytime night fax )) {
-
what.form.ship_<%$_%>.value = what.form.<%$_%>.value;
% }
what.form.ship_country.selectedIndex = what.form.country.selectedIndex;
+ function fix_ship_city() {
+ what.form.ship_city_select.selectedIndex = what.form.city_select.selectedIndex;
+ what.form.ship_city.style.display = what.form.city.style.display;
+ what.form.ship_city_select.style.display = what.form.city_select.style.display;
+ }
+
function fix_ship_county() {
what.form.ship_county.selectedIndex = what.form.county.selectedIndex;
+ ship_county_changed(what.form.ship_county, fix_ship_city );
}
function fix_ship_state() {
@@ -88,7 +105,8 @@ function samechanged(what) {
if ( what.checked ) {
bill_changed(what);
-% for (qw( last first company address1 address2 city county state zip country daytime night fax )) {
+% my @fields = qw( last first company address1 address2 city city_select county state zip country daytime night fax );
+% for (@fields) {
what.form.ship_<%$_%>.disabled = true;
what.form.ship_<%$_%>.style.backgroundColor = '#dddddd';
% }
@@ -102,7 +120,7 @@ function samechanged(what) {
} else {
-% for (qw( last first company address1 address2 city county state zip country daytime night fax )) {
+% for (@fields) {
what.form.ship_<%$_%>.disabled = false;
what.form.ship_<%$_%>.style.backgroundColor = '#ffffff';
% }
@@ -127,6 +145,7 @@ function samechanged(what) {
'pre' => 'ship_',
'onchange' => '',
'disabled' => $ship_disabled,
+ 'style' => \@ship_style
)
%>
@@ -160,6 +179,8 @@ function samechanged(what) {
<% include('cust_main/first_pkg.html', $cust_main,
'pkgpart_svcpart' => $pkgpart_svcpart,
+ 'disable_empty' =>
+ scalar( $cgi->param('lock_pkgpart') =~ /^(\d+)$/ ),
#svc_acct
'username' => $username,
'password' => $password,
@@ -171,8 +192,9 @@ function samechanged(what) {
% }
-
+
+%# cust_main/bottomfixup.js
% foreach my $hidden (
% 'payauto',
% 'payinfo', 'payinfo1', 'payinfo2', 'paytype',
@@ -199,8 +221,12 @@ function samechanged(what) {
<%init>
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+#probably redundant given the checks below...
die "access denied"
- unless $FS::CurrentUser::CurrentUser->access_right('Edit customer');
+ unless $curuser->access_right('New customer')
+ || $curuser->access_right('Edit customer');
my $conf = new FS::Conf;
@@ -219,6 +245,10 @@ if ( $cgi->param('error') ) {
} );
$custnum = $cust_main->custnum;
+
+ die "access denied"
+ unless $curuser->access_right($custnum ? 'Edit customer' : 'New customer');
+
@invoicing_list = split( /\s*,\s*/, $cgi->param('invoicing_list') );
$same = $cgi->param('same');
$cust_main->setfield('paid' => $cgi->param('paid')) if $cgi->param('paid');
@@ -245,6 +275,9 @@ if ( $cgi->param('error') ) {
} elsif ( $cgi->keywords ) { #editing
+ die "access denied"
+ unless $curuser->access_right('Edit customer');
+
my( $query ) = $cgi->keywords;
$query =~ /^(\d+)$/;
$custnum=$1;
@@ -262,6 +295,9 @@ if ( $cgi->param('error') ) {
} else { #new customer
+ die "access denied"
+ unless $curuser->access_right('New customer');
+
$custnum='';
$cust_main = new FS::cust_main ( {} );
$cust_main->otaker( &getotaker );
@@ -273,14 +309,21 @@ if ( $cgi->param('error') ) {
$stateid = '';
$payinfo = '';
+ if ( $cgi->param('lock_pkgpart') =~ /^(\d+)$/ ) {
+ my $pkgpart = $1;
+ my $part_pkg = qsearchs('part_pkg', { 'pkgpart' => $pkgpart } )
+ or die "unknown pkgpart $pkgpart";
+ my $svcpart = $part_pkg->svcpart;
+ $pkgpart_svcpart = $pkgpart.'_'.$svcpart;
+ }
+
}
-my $error = $cgi->param('error');
-$cgi->delete_all();
-$cgi->param('error', $error);
+my %keep = map { $_=>1 } qw( error tagnum lock_agentnum lock_pkgpart );
+$cgi->delete( grep !$keep{$_}, $cgi->param );
-my $action = $custnum ? 'Edit' : 'Add';
-$action .= ": ". $cust_main->name if $custnum;
+my $title = $custnum ? 'Edit Customer' : 'Add Customer';
+$title .= ": ". $cust_main->name if $custnum;
my $r = qq!* !;