diff options
author | Ivan Kohler <ivan@freeside.biz> | 2014-04-05 12:46:14 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2014-04-05 12:46:14 -0700 |
commit | 0dfd49189b0ea878e99f1590a2939e55ab02c89c (patch) | |
tree | 51f8d73f4fdb137132a0802e2c33f45ea7607697 /httemplate/edit | |
parent | 23699764d0d8436b50f5cf88f798c552969714eb (diff) |
installers, RT#16584
Diffstat (limited to 'httemplate/edit')
-rw-r--r-- | httemplate/edit/access_user.html | 45 | ||||
-rw-r--r-- | httemplate/edit/process/access_user.html | 33 |
2 files changed, 60 insertions, 18 deletions
diff --git a/httemplate/edit/access_user.html b/httemplate/edit/access_user.html index 2d39f969c..9d2585366 100644 --- a/httemplate/edit/access_user.html +++ b/httemplate/edit/access_user.html @@ -2,25 +2,30 @@ 'name' => 'Employee', 'table' => 'access_user', 'fields' => [ - 'username', - @pw_fields, - 'last', - 'first', - { field=>'user_custnum', type=>'search-cust_main', }, - { field=>'report_salesnum', type=>'select-sales', empty_label=>'all', }, - { field=>'disabled', type=>'checkbox', value=>'Y' }, - ], + 'username', + @pw_fields, + 'last', + 'first', + { field=>'sched_item_enabled', type=>'checkbox', value=>'Y' }, + { field=>'user_custnum', type=>'search-cust_main', }, + { field => 'report_salesnum', + type => 'select-sales', + empty_label => 'all', + }, + { field=>'disabled', type=>'checkbox', value=>'Y' }, + ], 'labels' => { - 'usernum' => 'User number', - 'username' => 'Username', - '_password' => 'Password', - '_password2' => 'Re-enter Password', - 'last' => 'Last name', - 'first' => 'First name', - 'user_custnum' => 'Customer (optional)', - 'report_salesnum' => 'Limit commission report to sales person', - 'disabled' => 'Disable employee', - }, + 'usernum' => 'User number', + 'username' => 'Username', + '_password' => 'Password', + '_password2' => 'Re-enter Password', + 'last' => 'Last name', + 'first' => 'First name', + 'sched_item_enabled' => 'Installer', + 'user_custnum' => 'Customer (optional)', + 'report_salesnum' => 'Limit commission report to sales person', + 'disabled' => 'Disable employee', + }, 'edit_callback' => \&edit_callback, 'field_callback'=> \&field_callback, 'viewall_dir' => 'browse', @@ -72,6 +77,10 @@ END sub edit_callback { my ($cgi, $access_user, $fields_listref, $opt_hashref) = @_; $access_user->_password(''); + + my @sched_item = $access_user->sched_item; + $access_user->sched_item_enabled('Y') + if $sched_item[0] && ! $sched_item[0]->disabled; } sub field_callback { diff --git a/httemplate/edit/process/access_user.html b/httemplate/edit/process/access_user.html index 7fc7c25e1..0554bb940 100644 --- a/httemplate/edit/process/access_user.html +++ b/httemplate/edit/process/access_user.html @@ -12,6 +12,7 @@ }, 'precheck_callback' => \&precheck_callback, 'post_new_object_callback' => \&post_new_object_callback, + 'noerror_callback' => \&noerror_callback, ) %> % } @@ -47,4 +48,36 @@ sub post_new_object_callback { } +sub noerror_callback { + my( $cgi, $access_user ) = @_; + + #handle installer checkbox + my @sched_item = $access_user->sched_item; + my $sched_item = $sched_item[0]; + if ( $cgi->param('sched_item_enabled') ) { + + if ( ! $sched_item ) { + my $sched_item = new FS::sched_item { + 'usernum' => $access_user->usernum, + }; + my $error = $sched_item->insert; + die $error if $error; #wtf? shouldn't happen + } elsif ( $sched_item->disabled ) { + $sched_item->disabled(''); + my $error = $sched_item->replace; + die $error if $error; #wtf? shouldn't happen + } + + } elsif ( ! $cgi->param('sched_item_enabled') + && $sched_item + && ! $sched_item->disabled + ) + { + $sched_item->disabled('Y'); + my $error = $sched_item->replace; + die $error if $error; #wtf? shouldn't happen + } + +} + </%init> |