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

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

use lib '/app/tools/rps/lib';
use RPS::ArtistRoyalty::ArtistRoyaltyRun;
use RPS::Statement::Artist::StatementListWithPayments;
use RPS::RoyaltyRun::Status;
use RPS::Payor::Payor;

use base 'Common::FormObject';


sub _init
{
    my ($self, %args) = @_;

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

    $self->{ArtistRoyaltyStatementList} = RPS::Statement::Artist::StatementListWithPayments->new
    (
        artistRoyaltyRunID  => $args{runID},
        payorID             => $args{payorID},
        filterBy            => $args{filterBy},
    );

    $self->{Payor} = RPS::Payor::Payor->new(payorID => $args{payorID});
    $self->{ArtistRoyaltyRun} = RPS::ArtistRoyalty::ArtistRoyaltyRun->new
    (
        artistRoyaltyRunID => $args{runID},
        loadSubs => 0,
    );

    $self->{RoyaltyRunStatus} = new RPS::RoyaltyRun::RoyaltyRunStatusList( artist => 1, payorID => $args{payorID} );

    die "ERROR - cannot edit payments for uncommitted runs" 
     unless (RPS::RoyaltyRun::Status::kCommitted == $self->{ArtistRoyaltyRun}->Status());

    return $self;
}


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

    $self->{ArtistRoyaltyStatementList}->save();
}


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

    $self->{ArtistRoyaltyStatementList}->clearPayments();
}


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

    $self->{ArtistRoyaltyStatementList}->setPaymentsToMinPayment();
}

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

    $self->{ArtistRoyaltyStatementList}->setPaymentsToFullPayment();
}


###
1;#
###

