diff options
author | ivan <ivan> | 2009-12-28 19:20:25 +0000 |
---|---|---|
committer | ivan <ivan> | 2009-12-28 19:20:25 +0000 |
commit | 03ceab71dad1e5eb366865d304e5e459cc905ce4 (patch) | |
tree | 18b4532289a0237ae694b1ad5c033b25f448bd7c /httemplate/edit/prospect_main.html | |
parent | 5950a980cef4968ac59ca8041d2204e6d98e7a3d (diff) |
beginning of prospect/CRM/contact work
Diffstat (limited to 'httemplate/edit/prospect_main.html')
-rw-r--r-- | httemplate/edit/prospect_main.html | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/httemplate/edit/prospect_main.html b/httemplate/edit/prospect_main.html new file mode 100644 index 000000000..c4123a078 --- /dev/null +++ b/httemplate/edit/prospect_main.html @@ -0,0 +1,83 @@ +<% include('elements/edit.html', + 'name_singular' => 'prospect', + 'table' => 'prospect_main', + 'labels' => { 'prospectnum' => 'Prospect', + 'agentnum' => 'Agent', + 'company' => 'Company', + 'contactnum' => 'Contact', + }, + 'fields' => [ + { 'field' => 'agentnum', + 'type' => 'select-agent', + 'empty_label' => 'Select agent', + }, + { 'field' => 'company', + 'type' => 'text', + 'size' => 50, + }, + { 'field' => 'contactnum', + 'type' => 'contact', + 'colspan' => 6, + #actually o2m, but this seems to be working for edit so far + 'm2name_table' => 'contact', + 'm2name_namecol' => 'contactnum', + 'm2_label' => 'Contact', + 'm2_error_callback' => sub { my($cgi, $object) = @_; (); }, #XXX + }, + { 'field' => 'locationnum', + 'type' => 'select-cust_location', + 'empty_label' => 'No address', + }, + ], + 'edit_callback' => $edit_callback, + 'error_callbacck' => $error_callback, + 'agent_virt' => 1, + ) +%> +<%init> + +my $curuser = $FS::CurrentUser::CurrentUser; + +my $prospectnum; +if ( $cgi->param('error') ) { + $prospectnum = scalar($cgi->param('prospectnum')); + + die "access denied" + unless $curuser->access_right(($prospectnum ? 'Edit' : 'New'). ' prospect'); + +} elsif ( $cgi->keywords ) { #editing + + die "access denied" + unless $curuser->access_right('Edit prospect'); + +} else { #new prospect + + die "access denied" + unless $curuser->access_right('New prospect'); + +} + +my $edit_callback = sub { + #my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_; + my( $cgi, $prospect_main ) = @_; + my @cust_location = + qsearch('cust_location', { 'prospectnum' => $prospect_main->prospectnum } ); + die 'multiple locations for prospect '. $prospect_main->prospectnum + if scalar(@cust_location) > 1; + $prospect_main->set('locationnum', $cust_location[0]->locationnum) + if scalar(@cust_location); + #warn 'prospect_main.locationnum '.$prospect_main->get('locationnum'); +}; + +my $error_callback = sub { + #my( $cgi, $prospect_main, $fields_listref, $opt_hashref ) = @_; + my( $cgi, $prospect_main ) = @_; + $cgi->param('locationnum') =~ /^(\-?\d*)$/ + or die 'illegal locationnum '. $cgi->param('locationnum'); + my $locationnum = $1; + $prospect_main->set('locationnum', $locationnum); +}; + +my @agentnums = $FS::CurrentUser::CurrentUser->agentnums; + +</%init> |