#------------------------------------------------------------
# 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;


