--- /dev/null
+<& /elements/popup_link-cust_main.html,
+ 'action' => $p. 'misc/order_pkg.html',
+ 'label' => $opt{'label'} || emt('Order new package'),
+ 'actionlabel' => $opt{'actionlabel'} || emt('Order new package'),
+ 'color' => '#333399',
+ 'cust_main' => $opt{cust_main},
+ 'prospect_main' => $opt{prospect_main},
+ 'custnum' => $opt{custnum},
+ 'prospectnum' => $opt{prospectnum},
+ 'closetext' => emt('Close'),
+ 'width' => 960, #763,
+ 'height' => $height,
+ %optional,
+&>
+<%init>
+
+my(%opt) = @_;
+
+my %optional =
+ map { $_ => $opt{$_} }
+ grep $opt{$_},
+ qw( lock_pkgpart lock_locationnum qualnum quotationnum svcpart );
+
+my $height = $opt{'lock_locationnum'} ? 336 : 576;
+
+</%init>
)
</%doc>
-% if ( $params->{'cust_main'} ) {
+% if ( $custnum || $prospectnum ) {
<% include('/elements/popup_link.html', $params ) %>\
% }
<%init>
} else {
$params = { %$params, @_ };
}
+
+my $custnum = $params->{'cust_main'}
+ ? $params->{'cust_main'}->custnum
+ : $params->{'custnum'};
+
+$params->{'action'} .= ( $params->{'action'} =~ /\?/ ? ';' : '?' ).
+ "custnum=$custnum"
+ if $custnum;
+
+#(maybe i should be called popup_link-cust_or_prospect_main.html now)
+my $prospectnum = $params->{'prospect_main'}
+ ? $params->{'prospect_main'}->prospectnum
+ : $params->{'prospectnum'};
-$params->{'action'} .=
- ( $params->{'action'} =~ /\?/ ? ';' : '?' ).
- 'custnum='. $params->{'cust_main'}->custnum;
+$params->{'action'} .= ( $params->{'action'} =~ /\?/ ? ';' : '?' ).
+ "prospectnum=$prospectnum"
+ if $prospectnum;
$params->{'action'} .= ";$_=".$params->{$_}
foreach grep $params->{$_},
- qw( lock_pkgpart lock_locationnum qualnum svcpart );
+ qw( lock_pkgpart lock_locationnum qualnum quotationnum svcpart );
</%init>
my( %opt ) = @_;
-my $cust_main = $opt{'cust_main'}
- or die "cust_main not specified";
+my $cust_or_prospect_main = $opt{'cust_main'} || $opt{'prospect_main'}
+ or die "neither cust_main nor prospect_main specified";
-$opt{'extra_sql'} .= ' AND '. FS::part_pkg->agent_pkgs_sql( $cust_main->agent );
+$opt{'extra_sql'} .= ' AND '. FS::part_pkg->agent_pkgs_sql( $cust_or_prospect_main->agent );
</%init>
}
- get_part_pkg( <% $cust_main->custnum %>, classnum, update_part_pkg );
-
+ get_part_pkg( <% $cust_main ? $cust_main->custnum : '0' %>,
+ <% $prospect_main ? $prospect_main->prospectnum : '0' %>,
+ classnum,
+ update_part_pkg
+ );
}
</SCRIPT>
<TH ALIGN="right"><% mt('Package') |h %></TH>
<TD COLSPAN=7>
<& /elements/select-cust-part_pkg.html,
- 'curr_value' => $opt{'curr_value'}, #$pkgpart
- 'classnum' => $opt{'classnum'},
- 'cust_main' => $opt{'cust_main'}, #$cust_main
- 'onchange' => 'pkg_changed',
+ 'curr_value' => $opt{'curr_value'}, #$pkgpart
+ 'classnum' => $opt{'classnum'},
+ 'cust_main' => $opt{'cust_main'}, #$cust_main
+ 'prospect_main' => $opt{'prospect_main'}, #$prospect_main
+ 'onchange' => 'pkg_changed',
&>
</TD>
</TR>
my $pre_label = $opt{'pre_label'} || '';
$pre_label .= ' ' if length($pre_label) && $pre_label =~ /\S$/;
-my $cust_main = $opt{'cust_main'}
- or die "cust_main not specified";
+my $cust_main = $opt{'cust_main'};
+my $prospect_main = $opt{'prospect_main'};
+
+die "neither cust_main nor prospect_main specified"
+ unless $cust_main || $prospect_main;
+
+my $agent = $cust_main ? $cust_main->agent : $prospect_main->agent;
#"normal" part_pkg agent virtualization (agentnum or type)
my @part_pkg = qsearch({
'hashref' => { 'disabled' => '' },
'extra_sql' =>
' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql( 'null'=>1 ).
- ' AND '. FS::part_pkg->agent_pkgs_sql( $opt{'cust_main'}->agent ),
+ ' AND '. FS::part_pkg->agent_pkgs_sql( $agent ),
});
my @pkg_class =
<% objToJson( \@return ) %>
<%init>
-my( $custnum, $classnum ) = $cgi->param('arg');
+my( $custnum, $prospectnum, $classnum ) = $cgi->param('arg');
-#XXX i guess i should be agent-virtualized. cause "packages a customer can
-#order" is such a huge deal
-my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } );
+
+my $agent;
+if ( $custnum ) {
+ my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } )
+ or die 'unknown custnum';
+ $agent = $cust_main->agent;
+} else {
+ my $prospect_main = qsearchs('prospect_main', {'prospectnum'=>$prospectnum} )
+ or die 'unknown prospectnum';
+ $agent = $prospect_main->agent;
+}
my %hash = ( 'disabled' => '' );
if ( $classnum > 0 ) {
'hashref' => \%hash,
'extra_sql' =>
' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql( 'null'=>1 ).
- ' AND '. FS::part_pkg->agent_pkgs_sql( $cust_main->agent ),
+ ' AND '. FS::part_pkg->agent_pkgs_sql( $agent ),
'order_by' => 'ORDER BY pkg',
});
+++ /dev/null
-<& /elements/popup_link-cust_main.html,
- 'action' => $p. 'misc/order_pkg.html',
- 'label' => $opt{'label'} || emt('Order new package'),
- 'actionlabel' => emt('Order new package'),
- 'color' => '#333399',
- 'cust_main' => $cust_main,
- 'closetext' => emt('Close'),
- 'width' => 960, #763,
- 'height' => $height,
- %optional,
-&>
-<%init>
-
-my($cust_main, %opt) = @_;
-
-my %optional = map { $_ => $opt{$_} }
- grep $opt{$_},
- qw( lock_pkgpart lock_locationnum qualnum svcpart );
-
-my $height = $opt{'lock_locationnum'} ? 336 : 576;
-
-</%init>
% if ( $curuser->access_right('Order customer package') ) {
<% $s++ ? ' | ' : '' %>
- <& order_pkg_link.html, $cust_main &>
+ <& /elements/order_pkg_link.html, 'cust_main'=>$cust_main &>
% }
% if ( $curuser->access_right('One-time charge')
<TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Date') |h %></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="#cccccc"><% $quotation->quotationnum %></TD>
- <TD CLASS="grid" BGCOLOR="#cccccc"><% time2str($date_format, $quotation->_date) |h %></TD>
+ <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% $quotation->quotationnum %></A></TD>
+ <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $a %><% time2str($date_format, $quotation->_date) |h %></A></TD>
</TR>
% }
</TABLE>
% $opt{'svcpart'} = $pkg_svc->svcpart if $pkg_svc;
% }
- <% include('/view/cust_main/order_pkg_link.html',
- $cust_or_prospect, %opt) %>
+ <& /elements/order_pkg_link.html,
+ 'cust_main' => $cust_or_prospect,
+ %opt
+ &>
% } elsif ($cust_or_prospect->prospectnum) {
</%doc>
-% if ( $conf->exists('quotation_latex') ) {
+% if ( $curuser->access_right('Order customer package') ) {
+ <& /elements/order_pkg_link.html,
+ 'label' => emt('Add package'),
+ 'actionlabel' => emt('Add package'),
+ map { $_ => $quotation->$_ } qw( quotationnum custnum prospectnum )
+ &>
+% }
- <A HREF="<% $p %>view/quotation-pdf.cgi?<% $link %>"><% mt('View typeset quotation PDF') |h %></A>
+% if ( $conf->exists('quotation_latex') ) {
+ | <A HREF="<% $p %>view/quotation-pdf.cgi?<% $link %>"><% mt('View typeset quotation PDF') |h %></A>
<BR><BR>
% }