projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
agent type on package add/edit (ticket 1446)
[freeside.git]
/
FS
/
FS
/
part_pkg.pm
diff --git
a/FS/FS/part_pkg.pm
b/FS/FS/part_pkg.pm
index
2f94863
..
e4c13aa
100644
(file)
--- a/
FS/FS/part_pkg.pm
+++ b/
FS/FS/part_pkg.pm
@@
-14,7
+14,7
@@
use FS::type_pkgs;
use FS::part_pkg_option;
use FS::pkg_class;
use FS::part_pkg_option;
use FS::pkg_class;
-@ISA = qw( FS::Record ); # FS::option_Common ); # this can use option_Common
+@ISA = qw( FS::
m2m_Common FS::
Record ); # FS::option_Common ); # this can use option_Common
# when all the plandata bs is
# gone
# when all the plandata bs is
# gone
@@
-81,6
+81,10
@@
inherits from FS::Record. The following fields are currently supported:
=item disabled - Disabled flag, empty or `Y'
=item disabled - Disabled flag, empty or `Y'
+=item pay_weight - Weight (relative to credit_weight and other package definitions) that controls payment application to specific line items.
+
+=item credit_weight - Weight (relative to other package definitions) that controls credit application to specific line items.
+
=back
=head1 METHODS
=back
=head1 METHODS
@@
-307,6
+311,12
@@
FS::pkg_svc record will be updated.
sub replace {
my( $new, $old ) = ( shift, shift );
my %options = @_;
sub replace {
my( $new, $old ) = ( shift, shift );
my %options = @_;
+
+ # We absolutely have to have an old vs. new record to make this work.
+ if (!defined($old)) {
+ $old = qsearchs( 'part_pkg', { 'pkgpart' => $new->pkgpart } );
+ }
+
warn "FS::part_pkg::replace called on $new to replace $old ".
"with options %options"
if $DEBUG;
warn "FS::part_pkg::replace called on $new to replace $old ".
"with options %options"
if $DEBUG;
@@
-437,6
+447,8
@@
sub check {
|| $self->ut_enum('recurtax', [ '', 'Y' ] )
|| $self->ut_textn('taxclass')
|| $self->ut_enum('disabled', [ '', 'Y' ] )
|| $self->ut_enum('recurtax', [ '', 'Y' ] )
|| $self->ut_textn('taxclass')
|| $self->ut_enum('disabled', [ '', 'Y' ] )
+ || $self->ut_floatn('pay_weight')
+ || $self->ut_floatn('credit_weight')
|| $self->SUPER::check
;
return $error if $error;
|| $self->SUPER::check
;
return $error if $error;
@@
-689,7
+701,7
@@
sub option {
my %plandata = map { /^(\w+)=(.*)$/; ( $1 => $2 ); }
split("\n", $self->get('plandata') );
return $plandata{$opt} if exists $plandata{$opt};
my %plandata = map { /^(\w+)=(.*)$/; ( $1 => $2 ); }
split("\n", $self->get('plandata') );
return $plandata{$opt} if exists $plandata{$opt};
- cluck "WARNING: (pkgpart ". $self->pkgpart. ") Package def option $opt".
+ cluck "WARNING: (pkgpart ". $self->pkgpart. ") Package def option $opt
".
"not found in options or plandata!\n"
unless $ornull;
'';
"not found in options or plandata!\n"
unless $ornull;
'';