diff options
author | Ivan Kohler <ivan@freeside.biz> | 2013-08-18 14:36:10 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2013-08-18 14:36:10 -0700 |
commit | 7be7baeebee74dab20d5a0a63f7066094c47519b (patch) | |
tree | 17dee70dd4480468e73c1ac67104c8cfd40e1333 | |
parent | ad46607a14730f6ce4d70cd796b803591d90070e (diff) |
continue sales person work: customer and package selection, commissions, reporting. RT#23402
-rw-r--r-- | FS/FS/cust_pkg.pm | 30 | ||||
-rwxr-xr-x | httemplate/misc/change_pkg.cgi | 40 | ||||
-rw-r--r-- | httemplate/misc/order_pkg.html | 8 |
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, |