correct fallout from duplicate line items
authorjeff <jeff>
Mon, 25 Aug 2008 05:53:14 +0000 (05:53 +0000)
committerjeff <jeff>
Mon, 25 Aug 2008 05:53:14 +0000 (05:53 +0000)
FS/FS/Report/Table/Monthly.pm
FS/FS/Schema.pm
FS/FS/cust_bill_pkg.pm
httemplate/search/cust_bill_pkg.cgi
httemplate/search/report_prepaid_income.cgi
httemplate/search/report_tax.cgi

index d75f0be..0b8fca9 100644 (file)
@@ -329,6 +329,7 @@ sub cust_bill_pkg {
         LEFT JOIN cust_pkg USING ( pkgnum )
         LEFT JOIN part_pkg USING ( pkgpart )
       WHERE pkgnum != 0
+        AND ( duplicate IS NULL OR duplicate = '' )
         AND $where
         AND ". $self->in_time_period_and_agent($speriod, $eperiod, $agentnum)
   );
index 530f632..3bcd078 100644 (file)
@@ -500,7 +500,7 @@ sub tables_hashref {
         'quantity',  'int', 'NULL', '', '', '',
         'unitsetup', @money_typen, '', '', 
         'unitrecur', @money_typen, '', '', 
-        'duplicate',  'char', 'NULL', 1, '', '',  # does this need to be in db?
+        'duplicate',  'char', 'NULL', 1, '', '',
         'post_total', 'char', 'NULL', 1, '', '',
       ],
       'primary_key' => 'billpkgnum',
index b3b8ea5..d3bf65b 100644 (file)
@@ -370,7 +370,7 @@ sub owed_recur {
 # modeled after cust_bill::owed...
 sub owed {
   my( $self, $field ) = @_;
-  my $balance = $self->$field();
+  my $balance = $self->duplicate ? 0 : $self->$field();
   $balance -= $_->amount foreach ( $self->cust_bill_pay_pkg($field) );
   $balance -= $_->amount foreach ( $self->cust_credit_bill_pkg($field) );
   $balance = sprintf( '%.2f', $balance );
index 74efe4f..2354be9 100644 (file)
@@ -70,6 +70,8 @@ my $agentnums_sql =
 
 my @where = ( $agentnums_sql );
 
+push @where, "(duplicate IS NULL OR duplicate = '' )";
+
 my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
 push @where, "_date >= $beginning",
              "_date <= $ending";
index 27dbcbf..3694c7a 100644 (file)
@@ -43,8 +43,9 @@ my( $total, $total_legacy ) = ( 0, 0 );
 my @cust_bill_pkg =
   grep { $_->cust_pkg && $_->cust_pkg->part_pkg->freq !~ /^([01]|\d+[dw])$/ }
     qsearch( 'cust_bill_pkg', {
-                                'recur' => { op=>'!=', value=>0 },
-                                'edate' => { op=>'>', value=>$now },
+                                'recur'     => { op=>'!=', value=>0 },
+                                'edate'     => { op=>'>', value=>$now },
+                                'duplicate' => '',
                               }, );
 
 my @cust_pkg = 
index 3d37c47..dd6779a 100755 (executable)
@@ -188,7 +188,8 @@ my $join_pkg = "
     LEFT JOIN part_pkg USING ( pkgpart )
 ";
 
-my $where = "WHERE _date >= $beginning AND _date <= $ending ";
+my $where = "WHERE _date >= $beginning AND _date <= $ending ".
+            "AND (duplicate IS NULL or duplicate = '')";
 my @base_param = qw( county county state state country );
 if ( $conf->exists('tax-ship_address') ) {