quotationnum => scalar( $cgi->param('quotationnum') ),
} ) or die 'unknown quotationnum';
-my $cust_main = $quotation->convert_cust_main;
-errorpage($cust_main) unless ref($cust_main);# eq 'FS::cust_main';
+my $cust_main = $quotation->cust_main;
+if ( $cust_main ) {
+ my $error = $quotation->order;
+ errorpage($error) if $error;
+
+ #i should be part of the order transaction
+ $quotation->disabled('Y');
+ $quotation->replace;
+
+} else {
+ $cust_main = $quotation->convert_cust_main;
+ errorpage($cust_main) unless ref($cust_main);# eq 'FS::cust_main';
+}
</%init>
<% include( 'elements/edit.html',
- 'name' => 'Quotation',
- 'table' => 'quotation',
- 'labels' => {
- 'quotationnum' => 'Quotation number',
- 'prospectnum' => 'Prospect',
- 'custnum' => 'Customer',
- '_date' => 'Date',
- 'disabled' => 'Disabled',
- },
- 'fields' => [
+ 'name' => 'Quotation',
+ 'table' => 'quotation',
+ 'menubar' => [],
+ 'labels' => {
+ 'quotationnum' => 'Quotation number',
+ 'prospectnum' => 'Prospect',
+ 'custnum' => 'Customer',
+ '_date' => 'Date',
+ 'disabled' => 'Disabled',
+ },
+ 'fields' => [
{ field=>'prospectnum', type=>'fixed-prospect_main' },
{ field=>'custnum', type=>'fixed-cust_main' },
{ field=>'_date', type=>'fixed-date' },
{ field=>'disabled', type=>'checkbox', value=>'Y'},
- ],
+ ],
#XXX some way to disable the "view all"
'new_callback' => sub { my( $cgi, $quotation) = @_;
$quotation->$_( $cgi->param($_) )
--- /dev/null
+% if ( $curuser->access_right('Generate quotation') ) {
+
+ <FONT CLASS="fsinnerbox-title"><% mt( 'Quotations' ) |h %></FONT>
+ <A HREF="<%$p%>edit/quotation.html?<% $new_query %>">New quotation</A>
+
+% if ( @quotations ) {
+ <& /elements/table-grid.html &>
+% my $bgcolor1 = '#eeeeee';
+% my $bgcolor2 = '#ffffff';
+% my $bgcolor = '';
+ <TR>
+ <TH CLASS="grid" BGCOLOR="#cccccc">#</TH>
+ <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Date') |h %></TH>
+ <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Setup') |h %></TH>
+ <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Recurring') |h %></TH>
+ <TH CLASS="grid" BGCOLOR="#cccccc"></TH>
+ </TR>
+% foreach my $quotation (@quotations) {
+% if ( $bgcolor eq $bgcolor1 ) {
+% $bgcolor = $bgcolor2;
+% } else {
+% $bgcolor = $bgcolor1;
+% }
+% my $a = qq(<A HREF="$p/view/quotation.html?quotationnum=). #"
+% $quotation->quotationnum. '">';
+ <TR>
+ <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% $quotation->quotationnum %></A></TD>
+ <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% time2str($date_format, $quotation->_date) |h %></A></TD>
+ <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% $quotation->total_setup |h %></A></TD>
+ <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% $quotation->total_recur |h %></A></TD>
+ <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/process/quotation_convert.html?quotationnum=<% $quotation->quotationnum %>"><% $opt{convert_label} || 'Convert to customer' %></A></TD>
+ </TR>
+% }
+ </TABLE>
+% }
+ <BR><BR>
+
+% }
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+#die "access denied"
+# unless $curuser->access_right('Generate quotation');
+
+my $conf = new FS::Conf;
+
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
+
+my %opt = @_;
+
+my $new_query;
+my @quotations;
+if ( $opt{cust_main} ) {
+ $new_query = 'custnum='. $opt{cust_main}->custnum;
+ @quotations = $opt{cust_main}->quotation;
+} elsif ( $opt{prospect_main} ) {
+ $new_query = 'quotationnum='. $opt{prospect_main}->quotationnum;
+ @quotations = $opt{prospect_main}->quotation;
+} else {
+ die 'guru meditation #&&: neither cust_main nor prospect_main specified';
+}
+
+@quotations = grep ! $_->disabled, @quotations;
+
+</%init>
}
</SCRIPT>
+
+% ###
+% # Basics
+% ###
+
% if ( $view eq 'basics' || $view eq 'jumbo' ) {
% if ( $curuser->access_right('Edit customer') ) {
% }
+
+% ###
+% # Notes
+% ###
+
% if ( $view eq 'notes' || $view eq 'jumbo' ) {
<& cust_main/notes.html, 'cust_main' => $cust_main &>
<BR>
+
+% ###
+% # Tickets
+% ###
+
% if ( $view eq 'tickets' || $view eq 'jumbo' ) {
% if ( $conf->config('ticket_system') ) {
% }
+% ###
+% # Appointments
+% ###
+
% if ( $view eq 'appointments' || $view eq 'jumbo' ) {
% if ( $conf->config('ticket_system')
% }
+
+% ###
+% # Quotations
+% ###
+
+% if ( $view eq 'jumbo' && $curuser->access_right('Generate quotation') ) {
+ <A NAME="quotation"><FONT SIZE="+2"><% mt('Quotations') |h %></FONT></A><BR>
+% }
+
+% if ( $view eq 'quotations' || $view eq 'jumbo' ) {
+
+% if ( $curuser->access_right('Generate quotation') ) {
+ <& cust_main/quotations.html, $cust_main &>
+% }
+
+% }
+
+
+% ###
+% # Packages
+% ###
+
% if ( $view eq 'jumbo' ) { #XXX enable me && $curuser->access_right('View customer packages') {
<A NAME="cust_pkg"><FONT SIZE="+2"><% mt('Packages') |h %></FONT></A><BR>
% }
+
+% ###
+% # Payment History
+% ###
+
% if ( $view eq 'jumbo' ) {
<BR><BR>
<A NAME="history"><FONT SIZE="+2"><% mt('Payment History') |h %></FONT></A>
% }
+
+% ###
+% # Change History
+% ###
+
% if ( $view eq 'change_history' ) { # || $view eq 'jumbo'
<& cust_main/change_history.html, $cust_main &>
% }
$views{emt('Appointments')} = 'appointments'
if $curuser->access_right('View appointments');
}
+$views{emt('Quotations')} = 'quotations';
$views{emt('Packages')} = 'packages';
$views{emt('Payment History')} = 'payment_history'
unless $conf->config('payby-default' eq 'HIDE');
--- /dev/null
+<& /elements/quotations.html,
+ cust_main => $cust_main,
+ convert_label => 'Place order',
+&>
+
+<%init>
+
+my $cust_main = shift;
+
+</%init>
-<% include('/elements/header.html',
- 'Prospect View: '. $prospect_main->company
- )
-%>
+<& /elements/header.html, 'Prospect View: '. $prospect_main->company &>
% if ( $curuser->access_right('Edit prospect') ) {
<A HREF="<% $p %>edit/prospect_main.html?<% $prospectnum %>">Edit this prospect</A>
<BR>
-% if ( $curuser->access_right('Generate quotation') ) {
- <FONT CLASS="fsinnerbox-title"><% mt( 'Quotations' ) |h %></FONT>
- <A HREF="<%$p%>edit/quotation.html?prospectnum=<% $prospectnum %>">New quotation</A>
-% my @quotations = $prospect_main->quotation;
-% if ( @quotations ) {
- <& /elements/table-grid.html &>
-% my $bgcolor1 = '#eeeeee';
-% my $bgcolor2 = '#ffffff';
-% my $bgcolor = '';
- <TR>
- <TH CLASS="grid" BGCOLOR="#cccccc">#</TH>
- <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Date') |h %></TH>
- <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Setup') |h %></TH>
- <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Recurring') |h %></TH>
- <TH CLASS="grid" BGCOLOR="#cccccc"></TH>
- </TR>
-% foreach my $quotation (@quotations) {
-% if ( $bgcolor eq $bgcolor1 ) {
-% $bgcolor = $bgcolor2;
-% } else {
-% $bgcolor = $bgcolor1;
-% }
-% my $a = qq(<A HREF="$p/view/quotation.html?quotationnum=). #"
-% $quotation->quotationnum. '">';
- <TR>
- <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% $quotation->quotationnum %></A></TD>
- <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% time2str($date_format, $quotation->_date) |h %></A></TD>
- <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% $quotation->total_setup |h %></A></TD>
- <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% $quotation->total_recur |h %></A></TD>
- <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/process/quotation_convert.html?quotationnum=<% $quotation->quotationnum %>">Convert to customer</A></TD>
- </TR>
-% }
- </TABLE>
-% }
- <BR><BR>
-% }
-
+<& /elements/quotations.html, prospect_main=>$prospect_main &>
% if ( $curuser->access_right('Qualify service') ) {
<% include( '/elements/popup_link-prospect_main.html',
die "access denied"
unless $curuser->access_right('View prospect');
-my $conf = new FS::Conf;
-
-my $date_format = $conf->config('date_format') || '%m/%d/%Y';
-
my $prospectnum;
if ( $cgi->param('prospectnum') =~ /^(\d+)$/ ) {
$prospectnum = $1;