summaryrefslogtreecommitdiff
path: root/FS/bin/freeside-dedup-cust_bill_pkg_detail-header
blob: d887f21c0e775ae760d9d84c8794d35a2b52c2a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/perl -w

use strict;
use vars qw( %seen $opt_d );
use Getopt::Std;
use FS::UID qw(adminsuidsetup);
use FS::Record qw(qsearch);
use FS::cust_bill_pkg_detail;

getopts('d');

my $user = shift or die &usage;
adminsuidsetup $user;

my $extra_sql = "AND detail LIKE 'Date,Time%'";
my @cust_bill_pkg_detail = qsearch( { 'table'     => 'cust_bill_pkg_detail',
                                      'hashref'   => {format => 'C'},
                                      'extra_sql' => $extra_sql,
                                  } );
for my $detail (@cust_bill_pkg_detail) {
  if ( $seen{$detail->billpkgnum} ) {
    if ($opt_d) { # dry run
      print "DELETE cust_bill_pkg_detail WHERE detailnum=". $detail->detailnum.
        "\n";
    } else {
      $detail->delete;
    }
  } else {
    $seen{$detail->billpkgnum} = 1;
  }
}

sub usage {
  die "Usage:\n\n  freeside-sqlradius-dedup-group [-d] user\n";
}

=head1 NAME

freeside-dedup-cust_bill_pkg_detail-header - Command line tool to eliminate duplicate headers from cdr details on invoices

=head1 SYNOPSIS

  freeside-dedup-cust_bill_pkg_detail-header user

=head1 DESCRIPTION

  Removes all but one header when duplicate entries exist on invoice 
  cdr details.

  -d: dry run

=head1 SEE ALSO

L<FS::part_pkg::voip_cdr>

=cut