summaryrefslogtreecommitdiff
path: root/httemplate/edit/prospect_main.html
diff options
context:
space:
mode:
authorivan <ivan>2009-12-28 19:20:25 +0000
committerivan <ivan>2009-12-28 19:20:25 +0000
commit03ceab71dad1e5eb366865d304e5e459cc905ce4 (patch)
tree18b4532289a0237ae694b1ad5c033b25f448bd7c /httemplate/edit/prospect_main.html
parent5950a980cef4968ac59ca8041d2204e6d98e7a3d (diff)
beginning of prospect/CRM/contact work
Diffstat (limited to 'httemplate/edit/prospect_main.html')
-rw-r--r--httemplate/edit/prospect_main.html83
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>