#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::DB::Item::LabelRoyaltyRun;
use strict;
use warnings;
use lib '/app/tools/common/lib';
use Common::DB::Item;
use Common::Assert;

use lib '/app/tools/rps/lib';
use RPS::RoyaltyRun::Status;

use base 'RPS::DB::RoyaltyRunItem';

use constant kTable => 'label_royalty_run';
use constant kDB    => Common::DB::Item::kClientDB();

sub _table { kTable }

sub GetLatestCommittedRunDate {
    my ( $class, $payorID ) = @_;

    my $sql =
        "SELECT max(end_time) as end_time FROM "
      . kTable
      . " WHERE status IN ("
      . RPS::RoyaltyRun::Status::kCommitted . ","
      . RPS::RoyaltyRun::Status::kWaitingToCommit . ")"
      . " AND payor_id = " . $class->quote($payorID);

    my $collection = $class->SUPER::GetAllLegacy($sql);

    my $row = $collection->next();

    return $row ? ( $row->{end_time} ) : ();
}

sub GetPayorIDs {
    my ( $class, %args ) = @_;

    my $dbo = Common::RSApp::GetClientDB();

    my $sql = "SELECT distinct payor_id FROM " . kTable;

    my $sth = $dbo->DoCmd($sql);

    my @payeeIDs;
    while ( my $hr = $sth->fetchrow_hashref() ) {
        push( @payeeIDs, $hr->{payor_id} );
    }

    return \@payeeIDs;
}

1;
