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

use Carp;

use Data::Dumper;

use lib '/app/tools/common/lib';

use lib '/app/tools/rps/lib';
use RPS::Statement::Mechanical::US::StatementListWithPayments;
use RPS::Payor::Payor;
use RPS::RoyaltyRun::Status;
use RPS::DB::Item::MechanicalRun;

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


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

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

    $self->{MechanicalStatementList} = RPS::Statement::Mechanical::US::StatementListWithPayments->new
    (
        mechanicalRunID => $args{runID},
        payorID         => $args{payorID},
        filterBy        => $args{filterBy},
    );

    $self->{Payor} = RPS::Payor::Payor->new(payorID => $args{payorID});
    $self->{MechanicalRun} = RPS::Mechanical::US::MechanicalRun->new
    (
        mechanicalRunID => $args{runID},
        loadSubs => 0,
    );

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

    # Sanity check - the run has to have the state of 'committed', or we can't edit payments.
    #
    die "ERROR - cannot edit payments for uncommitted runs" unless (RPS::RoyaltyRun::Status::kCommitted == $self->{MechanicalRun}->Status());

    return $self;
}


sub save
{
    my ($self) = @_;
    $self->{MechanicalStatementList}->save();
}


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

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


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

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

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

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


###
1;#
###

