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

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::Statement::Artist::StatementAlbum;
use RPS::DB::Item::ArtistRoyaltyAlbum;

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

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

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

    my $statementID = $args{artistRoyaltyStatementID};

    $self->{ArtistStatementAlbum} = [];
    if ($statementID) {
        my $collection = RPS::DB::Item::ArtistRoyaltyAlbum->GetByArtistRoyaltyStatementID($statementID);

        while ( $collection->hasNext() ) {
            my $obj = $collection->next();

            my $album = RPS::Statement::Artist::StatementAlbum->new( _dbItem => $obj );

            push @{ $self->{ArtistStatementAlbum} }, $album;
        }

        $self->_sortByAlbumTitle();
    }

    return $self;
}

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

    @{ $self->{ArtistStatementAlbum} } = sort {
        my $r = $a->{Album}->Title() cmp $b->{Album}->Title();
        if ( !$r && defined $a->{Album}->ArtistContractID() && defined $b->{Album}->ArtistContractID()) {
            $r = $a->{Album}->ArtistContractID() <=> $b->{Album}->ArtistContractID();
        }
        $r;
    } @{ $self->{ArtistStatementAlbum} };
}

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

    return $self->{ArtistStatementAlbum};
}

1;
