summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-08-18 14:36:10 -0700
committerIvan Kohler <ivan@freeside.biz>2013-08-18 14:36:10 -0700
commit7be7baeebee74dab20d5a0a63f7066094c47519b (patch)
tree17dee70dd4480468e73c1ac67104c8cfd40e1333
parentad46607a14730f6ce4d70cd796b803591d90070e (diff)
continue sales person work: customer and package selection, commissions, reporting. RT#23402
-rw-r--r--FS/FS/cust_pkg.pm30
-rwxr-xr-xhttemplate/misc/change_pkg.cgi40
-rw-r--r--httemplate/misc/order_pkg.html8
3 files changed, 48 insertions, 30 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index a627e2489..8644e8385 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -1839,6 +1839,7 @@ sub change {
$hash{$date} = $self->getfield($date);
}
}
+
# allow $opt->{'locationnum'} = '' to specifically set it to null
# (i.e. customer default location)
$opt->{'locationnum'} = $self->locationnum if !exists($opt->{'locationnum'});
@@ -1863,7 +1864,6 @@ sub change {
}
$hash{'contactnum'} = $opt->{'contactnum'} if $opt->{'contactnum'};
- $hash{'quantity'} = $opt->{'quantity'} || $self->quantity;
my $cust_pkg;
if ( $opt->{'cust_pkg'} ) {
@@ -1880,10 +1880,11 @@ sub change {
} else {
# Create the new package.
$cust_pkg = new FS::cust_pkg {
- custnum => $custnum,
- pkgpart => ( $opt->{'pkgpart'} || $self->pkgpart ),
- refnum => ( $opt->{'refnum'} || $self->refnum ),
- locationnum => ( $opt->{'locationnum'} ),
+ custnum => $custnum,
+ locationnum => $opt->{'locationnum'},
+ ( map { $_ => ( $opt->{$_} || $self->$_() ) }
+ qw( pkgpart quantity refnum salesnum )
+ ),
%hash,
};
$error = $cust_pkg->insert( 'change' => 1,
@@ -2176,14 +2177,17 @@ sub change_later {
return '' unless $new_pkgpart or $new_locationnum or $new_quantity; # wouldn't do anything
- my %hash = (
- 'custnum' => $self->custnum,
- 'pkgpart' => ($opt->{'pkgpart'} || $self->pkgpart),
- 'locationnum' => ($opt->{'locationnum'} || $self->locationnum),
- 'quantity' => ($opt->{'quantity'} || $self->quantity),
- 'start_date' => $date,
- );
- my $new = FS::cust_pkg->new(\%hash);
+ # allow $opt->{'locationnum'} = '' to specifically set it to null
+ # (i.e. customer default location)
+ $opt->{'locationnum'} = $self->locationnum if !exists($opt->{'locationnum'});
+
+ my $new = FS::cust_pkg->new( {
+ custnum => $self->custnum,
+ locationnum => $opt->{'locationnum'},
+ start_date => $date,
+ map { $_ => ( $opt->{$_} || $self->$_() ) }
+ qw( pkgpart quantity refnum salesnum )
+ } );
$error = $new->insert('change' => 1,
'allow_pkgpart' => ($new_pkgpart ? 0 : 1));
if ( !$error ) {
diff --git a/httemplate/misc/change_pkg.cgi b/httemplate/misc/change_pkg.cgi
index 923be71b1..887fa014a 100755
--- a/httemplate/misc/change_pkg.cgi
+++ b/httemplate/misc/change_pkg.cgi
@@ -6,12 +6,14 @@
<FORM NAME="OrderPkgForm" ACTION="<% $p %>edit/process/change-cust_pkg.html" METHOD=POST>
<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
+
+<FONT CLASS="fsinnerbox-title"><% mt('Package') |h %></FONT>
<% ntable('#cccccc') %>
<TR>
<TH ALIGN="right"><% mt('Current package') |h %></TH>
<TD COLSPAN=7>
- <% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B> - <% $part_pkg->comment |h %>
+ <FONT STYLE="background-color:#e8e8e8"><% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B> - <% $part_pkg->comment |h %></FONT>
</TD>
</TR>
@@ -26,34 +28,46 @@
'curr_value' => $cust_pkg->quantity
&>
- <& /elements/tr-select-cust_location.html,
- 'cgi' => $cgi,
- 'cust_main' => $cust_main,
- &>
-
</TABLE>
+<BR>
+
+
+<FONT CLASS="fsinnerbox-title"><% mt('Change') |h %></FONT>
+<% ntable('#cccccc') %>
-<TABLE>
<TR>
- <TD> Apply this change: </TD>
+<!-- <TD> Apply this change: </TD> -->
<TD> <INPUT TYPE="radio" NAME="delay" VALUE="0" \
- <% !$cgi->param('delay') ? 'CHECKED' : '' %>> now </TD>
+ <% !$cgi->param('delay') ? 'CHECKED' : '' %>> Now </TD>
<TD> <INPUT TYPE="radio" NAME="delay" VALUE="1" \
- <% $cgi->param('delay') ? 'CHECKED' : '' %>> in the future
+ <% $cgi->param('delay') ? 'CHECKED' : '' %>> In the future
<& /elements/input-date-field.html, {
- 'name' => 'start_date',
- 'value' => ($cgi->param('start_date') || $cust_main->next_bill_date),
+ 'name' => 'start_date',
+ 'value' => ($cgi->param('start_date') || $cust_main->next_bill_date),
} &>
</TD>
</TR>
</TABLE>
+</BR>
+
+
+<FONT CLASS="fsinnerbox-title"><% mt('Location') |h %></FONT>
+<% ntable('#cccccc') %>
+
+ <& /elements/tr-select-cust_location.html,
+ 'cgi' => $cgi,
+ 'cust_main' => $cust_main,
+ &>
+
+</TABLE>
+<BR>
+
<& /elements/standardize_locations.html,
'form' => "OrderPkgForm",
'callback' => 'document.OrderPkgForm.submit();',
&>
-<BR>
<INPUT NAME = "submitButton"
TYPE = "button"
VALUE = "<% mt("Change package") |h %>"
diff --git a/httemplate/misc/order_pkg.html b/httemplate/misc/order_pkg.html
index 057346810..febe427f9 100644
--- a/httemplate/misc/order_pkg.html
+++ b/httemplate/misc/order_pkg.html
@@ -33,7 +33,7 @@
<FONT CLASS="fsinnerbox-title"><% mt('Sales') |h %></FONT>
% }
% if ( $show_sales_table ) {
- <% ntable("#cccccc", 2) %>
+ <% ntable("#cccccc") %>
% }
<& /elements/tr-select-sales.html,
@@ -55,7 +55,7 @@
% }
<FONT CLASS="fsinnerbox-title"><% mt('Package') |h %></FONT>
-<% ntable("#cccccc", 2) %>
+<% ntable("#cccccc") %>
% if ( $part_pkg ) {
<INPUT TYPE="hidden" NAME="pkgpart" VALUE="<% $part_pkg->pkgpart %>">
@@ -117,7 +117,7 @@
%
% if ( $discount_cust_pkg || $waive_setup_fee ) {
<FONT CLASS="fsinnerbox-title"><% mt('Discounting') |h %></FONT>
- <% ntable("#cccccc", 2) %>
+ <% ntable("#cccccc") %>
% if ( $waive_setup_fee ) {
<TR>
@@ -143,7 +143,7 @@
% my $contact_title = $lock_locationnum ? 'Contact'
% : 'Contact and Location';
<FONT CLASS="fsinnerbox-title"><% mt($contact_title) |h %></FONT>
-<% ntable("#cccccc", 2) %>
+<% ntable("#cccccc") %>
<& /elements/tr-select-contact.html,
'cgi' => $cgi,