#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::ArtistRoyalty::ArtistRoyaltyPayorList;

use strict;
use warnings;
use Carp;
use Data::Dumper;

use lib '/app/tools/common/lib';
use Common::Timer;

use lib '/app/tools/rps/lib';
use RPS::ArtistRoyalty::ArtistRoyaltyRun;
use RPS::DB::Item::ArtistRoyaltyStatement;
use RPS::DB::Item::Payor;

use Common::FormObject;
use base 'Common::FormObject';

sub _init {
    my ( $self, %args ) = @_;
    my $timer = Common::Timer->new();

    $self->SUPER::_init(%args);

    my $runID = $args{royaltyRunID};

    my @payors = RPS::DB::Item::ArtistRoyaltyStatement->GetDistinctPayorsByRunID($runID);

    $self->{Payor} = [];

    foreach my $payorID (@payors) {
        my $payor = RPS::DB::Item::Payor->Lookup( payor_id => $payorID );
        my $numStatements = RPS::DB::Item::ArtistRoyaltyStatement->GetCountByArtistRoyaltyRunID( $runID, $payorID );
        push @{ $self->{Payor} },
          {
            PayorID       => $payorID,
            Name          => $payor->name(),
            NumStatements => $numStatements,
          };
    }

    return $self;
}

sub _listProperties {
    my ($self) = @_;

    return { Payor => 1 };
}

sub size {
    my ($self) = @_;

    return 0 unless defined $self->{Payor};
    return ( scalar @{ $self->{Payor} } );
}

sub getArray {
    my ($self) = @_;

    return $self->{Payor};
}

1;

