projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
self-service access for contacts, RT#25533
[freeside.git]
/
FS
/
FS
/
part_pkg.pm
diff --git
a/FS/FS/part_pkg.pm
b/FS/FS/part_pkg.pm
index
e187425
..
4755528
100644
(file)
--- a/
FS/FS/part_pkg.pm
+++ b/
FS/FS/part_pkg.pm
@@
-5,7
+5,8
@@
use strict;
use vars qw( %plans $DEBUG $setup_hack $skip_pkg_svc_hack );
use Carp qw(carp cluck confess);
use Scalar::Util qw( blessed );
use vars qw( %plans $DEBUG $setup_hack $skip_pkg_svc_hack );
use Carp qw(carp cluck confess);
use Scalar::Util qw( blessed );
-use Time::Local qw( timelocal timelocal_nocheck );
+use DateTime;
+use Time::Local qw( timelocal timelocal_nocheck ); # eventually replace with DateTime
use Tie::IxHash;
use FS::Conf;
use FS::Record qw( qsearch qsearchs dbh dbdef );
use Tie::IxHash;
use FS::Conf;
use FS::Record qw( qsearch qsearchs dbh dbdef );
@@
-15,15
+16,12
@@
use FS::cust_pkg;
use FS::agent_type;
use FS::type_pkgs;
use FS::part_pkg_option;
use FS::agent_type;
use FS::type_pkgs;
use FS::part_pkg_option;
-use FS::pkg_class;
-use FS::agent;
use FS::part_pkg_msgcat;
use FS::part_pkg_taxrate;
use FS::part_pkg_taxoverride;
use FS::part_pkg_taxproduct;
use FS::part_pkg_link;
use FS::part_pkg_discount;
use FS::part_pkg_msgcat;
use FS::part_pkg_taxrate;
use FS::part_pkg_taxoverride;
use FS::part_pkg_taxproduct;
use FS::part_pkg_link;
use FS::part_pkg_discount;
-use FS::part_pkg_usage;
use FS::part_pkg_vendor;
use FS::part_pkg_currency;
use FS::part_pkg_vendor;
use FS::part_pkg_currency;
@@
-843,17
+841,6
@@
sub custom_comment {
Returns the package class, as an FS::pkg_class object, or the empty string
if there is no package class.
Returns the package class, as an FS::pkg_class object, or the empty string
if there is no package class.
-=cut
-
-sub pkg_class {
- my $self = shift;
- if ( $self->classnum ) {
- qsearchs('pkg_class', { 'classnum' => $self->classnum } );
- } else {
- return '';
- }
-}
-
=item addon_pkg_class
Returns the add-on package class, as an FS::pkg_class object, or the empty
=item addon_pkg_class
Returns the add-on package class, as an FS::pkg_class object, or the empty
@@
-919,13
+906,6
@@
sub addon_classname {
Returns the associated agent for this event, if any, as an FS::agent object.
Returns the associated agent for this event, if any, as an FS::agent object.
-=cut
-
-sub agent {
- my $self = shift;
- qsearchs('agent', { 'agentnum' => $self->agentnum } );
-}
-
=item pkg_svc [ HASHREF | OPTION => VALUE ]
Returns all FS::pkg_svc objects (see L<FS::pkg_svc>) for this package
=item pkg_svc [ HASHREF | OPTION => VALUE ]
Returns all FS::pkg_svc objects (see L<FS::pkg_svc>) for this package
@@
-944,11
+924,6
@@
definition.
=cut
=cut
-sub type_pkgs {
- my $self = shift;
- qsearch('type_pkgs', { 'pkgpart' => $self->pkgpart } );
-}
-
sub pkg_svc {
my $self = shift;
sub pkg_svc {
my $self = shift;
@@
-1094,10
+1069,11
@@
sub delay_start_date {
my $self = shift;
my $delay = $self->delay_start or return '';
my $self = shift;
my $delay = $self->delay_start or return '';
-
- my ($mday,$mon,$year) = (localtime(time))[3,4,5];
- timelocal(0,0,0,$mday,$mon,$year) + 86400 * $delay;
+ # avoid timelocal silliness
+ my $dt = DateTime->today(time_zone => 'local');
+ $dt->add(days => $delay);
+ $dt->epoch;
}
sub can_currency_exchange { 0; }
}
sub can_currency_exchange { 0; }
@@
-1203,13
+1179,6
@@
sub plandata {
Returns all vendor/external package ids as FS::part_pkg_vendor objects (see
L<FS::part_pkg_vendor>).
Returns all vendor/external package ids as FS::part_pkg_vendor objects (see
L<FS::part_pkg_vendor>).
-=cut
-
-sub part_pkg_vendor {
- my $self = shift;
- qsearch('part_pkg_vendor', { 'pkgpart' => $self->pkgpart } );
-}
-
=item vendor_pkg_ids
Returns a list of vendor/external package ids by exportnum
=item vendor_pkg_ids
Returns a list of vendor/external package ids by exportnum
@@
-1226,13
+1195,6
@@
sub vendor_pkg_ids {
Returns all options as FS::part_pkg_option objects (see
L<FS::part_pkg_option>).
Returns all options as FS::part_pkg_option objects (see
L<FS::part_pkg_option>).
-=cut
-
-sub part_pkg_option {
- my $self = shift;
- qsearch('part_pkg_option', { 'pkgpart' => $self->pkgpart } );
-}
-
=item options
Returns a list of option names and values suitable for assigning to a hash.
=item options
Returns a list of option names and values suitable for assigning to a hash.
@@
-1551,25
+1513,11
@@
sub part_pkg_taxrate {
Returns the package to discount m2m records (see L<FS::part_pkg_discount>)
for this package.
Returns the package to discount m2m records (see L<FS::part_pkg_discount>)
for this package.
-=cut
-
-sub part_pkg_discount {
- my $self = shift;
- qsearch('part_pkg_discount', { 'pkgpart' => $self->pkgpart });
-}
-
=item part_pkg_usage
Returns the voice usage pools (see L<FS::part_pkg_usage>) defined for
this package.
=item part_pkg_usage
Returns the voice usage pools (see L<FS::part_pkg_usage>) defined for
this package.
-=cut
-
-sub part_pkg_usage {
- my $self = shift;
- qsearch('part_pkg_usage', { 'pkgpart' => $self->pkgpart });
-}
-
=item _rebless
Reblesses the object into the FS::part_pkg::PLAN class (if available), where
=item _rebless
Reblesses the object into the FS::part_pkg::PLAN class (if available), where
@@
-1648,6
+1596,17
@@
sub cust_bill_pkg_recur {
$cust_bill_pkg->recur;
}
$cust_bill_pkg->recur;
}
+=item unit_setup CUST_PKG
+
+Returns the setup fee for one unit of the package.
+
+=cut
+
+sub unit_setup {
+ my ($self, $cust_pkg) = @_;
+ $self->option('setup_fee') || 0;
+}
+
=item format OPTION DATA
Returns data formatted according to the function 'format' described
=item format OPTION DATA
Returns data formatted according to the function 'format' described