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

use strict;
use warnings;

use Data::Dumper;

use lib '/app/tools/common/lib';
use Common::Client;
use Common::Assert;
#use Common::DiskCache;

use lib '/app/tools/rps/lib';

use RPS::LabelPayee::LabelPayeeAccount;
use RPS::Statement::Label::BaseStatement;
use base 'RPS::Statement::Label::BaseStatement';


sub _initProperties
{
    my ($self, $props) = @_;

    $self->SUPER::_initProperties($props);

	$self->{LabelPayeeAccount} = RPS::LabelPayee::LabelPayeeAccount->new
    (
        labelPayeeID => $props->{payee_id}, 
        payorID => $props->{payor_id}, 
        showPendingPaymentsOnly => 1,
    );

}


sub clearPayments
{
    my ($self) = @_;
    
    $self->{LabelPayeeAccount}->clearPayments();
}


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

    $self->{LabelPayeeAccount}->clearPayments();
    $self->{LabelPayeeAccount}->setFirstPayment($self->MinimumPayment());
}

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

    $self->{LabelPayeeAccount}->clearPayments();
    my $amountDue = $self->AmountDue();
    if ($amountDue > 0)
    {
        $self->{LabelPayeeAccount}->setFirstPayment($amountDue);
    }
}


# Overriding validate to _skip_ validating the inherited members, including LabelPayee.
# This is because we don't need to bother with that here - I just want to make sure the 
# transactions are good within the account.
#
sub validate
{
    my ($self, $skipRequiredFields) = @_;

    return $self->{LabelPayeeAccount}->validate($skipRequiredFields);
}

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

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

###
1;#
###
