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

use strict;
use warnings;
use lib '/app/tools/common/lib';
use Common::Assert;

use lib '/app/tools/rps/lib';
use RPS::Publisher::US::Publisher;
use RPS::Publisher::US::AgentList;
use RPS::Publisher::US::AdminList;
use RPS::RoyaltyRun::RoyaltyRunStatusList;

use RPS::Publisher::US::PublisherStatementRecipient;
use RPS::DB::Item::PublisherStatementRecipient;

use base 'RPS::Publisher::BaseEditForm';

sub _publisherObj            { return "RPS::Publisher::US::Publisher"; }
sub _agentList               { return "RPS::Publisher::US::AgentList"; }
sub _adminList               { return "RPS::Publisher::US::AdminList"; }
sub _getRoyaltyRunStatusList { RPS::RoyaltyRun::RoyaltyRunStatusList->new( usMechanical => 1 ) }

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

    return $self->{Publisher}->Distribution();
}

sub getPublisherRecipients {
    my $self = shift;

    return $self->{PublisherRecipients} || [];
}

sub _getPublisherStatementRecipients {
    my ($self, $hParam) = @_;

    my $aRecipients = [];
    return $aRecipients unless $hParam->{publisherID};

    my $oRecipients = RPS::DB::Item::PublisherStatementRecipient->GetByPublisherID( $hParam->{publisherID} );
    while ( $oRecipients && $oRecipients->hasNext() ) {
        push @$aRecipients, RPS::Publisher::US::PublisherStatementRecipient->new( _dbItem => $oRecipients->next );
    }

    return $aRecipients;
}

###
1;    #
###
