#------------------------------------------------------------
# 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, $skipTransactionsList ) = @_;

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

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

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;    #
###
