projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a5651d5
)
apply some heuristics to transfer ordering: primaries first, then sorted by quantity
author
ivan
<ivan>
Mon, 5 Apr 2004 11:55:35 +0000
(11:55 +0000)
committer
ivan
<ivan>
Mon, 5 Apr 2004 11:55:35 +0000
(11:55 +0000)
FS/FS/cust_pkg.pm
patch
|
blob
|
history
httemplate/view/cust_main.cgi
patch
|
blob
|
history
diff --git
a/FS/FS/cust_pkg.pm
b/FS/FS/cust_pkg.pm
index
d554d8b
..
db0f7d4
100644
(file)
--- a/
FS/FS/cust_pkg.pm
+++ b/
FS/FS/cust_pkg.pm
@@
-508,11
+508,21
@@
L<FS::cust_svc>)
sub cust_svc {
my $self = shift;
sub cust_svc {
my $self = shift;
- if ( $self->{'_svcnum'} ) {
- values %{ $self->{'_svcnum'}->cache };
- } else {
+ #if ( $self->{'_svcnum'} ) {
+ # values %{ $self->{'_svcnum'}->cache };
+ #} else {
+ map { $_->[0] }
+ sort { $b->[1] cmp $a->[1] or $a->[2] <=> $b->[2] }
+ map {
+ my $pkg_svc = qsearchs( 'pkg_svc', { 'pkgpart' => $self->pkgpart,
+ 'svcpart' => $_->svcpart } );
+ [ $_,
+ $pkg_svc ? $pkg_svc->primary_svc : '',
+ $pkg_svc ? $pkg_svc->quantity : 0,
+ ];
+ }
qsearch ( 'cust_svc', { 'pkgnum' => $self->pkgnum } );
qsearch ( 'cust_svc', { 'pkgnum' => $self->pkgnum } );
- }
+
#
}
}
=item labels
}
=item labels
@@
-654,7
+664,6
@@
sub transfer {
my $remaining = 0;
my $dest;
my %target;
my $remaining = 0;
my $dest;
my %target;
- my $pkg_svc;
if (ref ($dest_pkgnum) eq 'FS::cust_pkg') {
$dest = $dest_pkgnum;
if (ref ($dest_pkgnum) eq 'FS::cust_pkg') {
$dest = $dest_pkgnum;
@@
-665,13
+674,11
@@
sub transfer {
return ('Package does not exist: '.$dest_pkgnum) unless $dest;
return ('Package does not exist: '.$dest_pkgnum) unless $dest;
- foreach
$pkg_svc (qsearch('pkg_svc', { pkgpart => $dest->pkgpart })
) {
+ foreach
my $pkg_svc ( $dest->part_pkg->pkg_svc
) {
$target{$pkg_svc->svcpart} = $pkg_svc->quantity;
}
$target{$pkg_svc->svcpart} = $pkg_svc->quantity;
}
- my $cust_svc;
-
- foreach $cust_svc ($dest->cust_svc) {
+ foreach my $cust_svc ($dest->cust_svc) {
$target{$cust_svc->svcpart}--;
}
$target{$cust_svc->svcpart}--;
}
@@
-682,9
+689,20
@@
sub transfer {
next if exists $svcpart2svcparts{$svcpart};
my $part_svc = qsearchs('part_svc', { 'svcpart' => $svcpart } );
$svcpart2svcparts{$svcpart} = [
next if exists $svcpart2svcparts{$svcpart};
my $part_svc = qsearchs('part_svc', { 'svcpart' => $svcpart } );
$svcpart2svcparts{$svcpart} = [
+ map { $_->[0] }
+ sort { $b->[1] cmp $a->[1] or $a->[2] <=> $b->[2] }
+ map {
+ my $pkg_svc = qsearchs( 'pkg_svc', { 'pkgpart' => $dest->pkgpart,
+ 'svcpart' => $_ } );
+ [ $_,
+ $pkg_svc ? $pkg_svc->primary_svc : '',
+ $pkg_svc ? $pkg_svc->quantity : 0,
+ ];
+ }
+
grep { $_ != $svcpart }
grep { $_ != $svcpart }
-
map
{ $_->svcpart }
-
qsearch('part_svc', { 'svcdb' => $part_svc->svcdb } )
+
map
{ $_->svcpart }
+ qsearch('part_svc', { 'svcdb' => $part_svc->svcdb } )
];
warn "alternates for svcpart $svcpart: ".
join(', ', @{$svcpart2svcparts{$svcpart}}). "\n"
];
warn "alternates for svcpart $svcpart: ".
join(', ', @{$svcpart2svcparts{$svcpart}}). "\n"
@@
-692,7
+710,7
@@
sub transfer {
}
}
}
}
- foreach $cust_svc ($self->cust_svc) {
+ foreach
my
$cust_svc ($self->cust_svc) {
if($target{$cust_svc->svcpart} > 0) {
$target{$cust_svc->svcpart}--;
my $new = new FS::cust_svc {
if($target{$cust_svc->svcpart} > 0) {
$target{$cust_svc->svcpart}--;
my $new = new FS::cust_svc {
@@
-716,7
+734,7
@@
sub transfer {
} @{$svcpart2svcparts{$cust_svc->svcpart}};
if ( @alternate ) {
warn "alternate(s) found\n" if $DEBUG;
} @{$svcpart2svcparts{$cust_svc->svcpart}};
if ( @alternate ) {
warn "alternate(s) found\n" if $DEBUG;
- my $change_svcpart = $alternate[0];
#arbitrary.
+ my $change_svcpart = $alternate[0];
$target{$change_svcpart}--;
my $new = new FS::cust_svc {
svcnum => $cust_svc->svcnum,
$target{$change_svcpart}--;
my $new = new FS::cust_svc {
svcnum => $cust_svc->svcnum,
diff --git
a/httemplate/view/cust_main.cgi
b/httemplate/view/cust_main.cgi
index
dd9cd30
..
624fe37
100755
(executable)
--- a/
httemplate/view/cust_main.cgi
+++ b/
httemplate/view/cust_main.cgi
@@
-891,14
+891,7
@@
sub get_packages {
}
}
- foreach my $cust_svc (
- qsearch( 'cust_svc', {
- 'pkgnum' => $cust_pkg->pkgnum,
- #'svcpart' => $part_svc->svcpart,
- }
- )
- ) {
-
+ foreach my $cust_svc ( $cust_pkg->cust_svc ) {
#warn "svcnum ". $cust_svc->svcnum. " / svcpart ". $cust_svc->svcpart. "\n";
my $svc = {
'svcnum' => $cust_svc->svcnum,
#warn "svcnum ". $cust_svc->svcnum. " / svcpart ". $cust_svc->svcpart. "\n";
my $svc = {
'svcnum' => $cust_svc->svcnum,