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

use strict;
use warnings;

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

use lib '/app/tools/rps/lib';
use RPS::Statement::Label::StatementWithPayments;
use RPS::Statement::Label::BaseStatementList;

use base 'RPS::Statement::Label::BaseStatementList';

sub _makeStatement {
    my ( $self, $dbItem, %args ) = @_;
    assert($dbItem);
    my $skipTransactionsList = $args{skipTransactionsList} || 0;
    return RPS::Statement::Label::StatementWithPayments->new( _dbItem => $dbItem, (skipTransactionsList => $skipTransactionsList) );
}

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

    foreach my $statement ( @{ $self->{LabelStatement} } ) {
        $statement->save();
    }
}

sub clearPayments {
    my ($self, %excludedStatementIDs) = @_;
    foreach my $statement ( @{ $self->{LabelStatement} } ) {
        if ( !$excludedStatementIDs{ $statement->LabelRoyaltyStatementID() } ) {
            $statement->clearPayments();
        }
    }
}

sub setPaymentsToMinPayment {
    my ($self) = @_;
    foreach my $statement ( @{ $self->{LabelStatement} } ) {
        $statement->setPaymentsToMin();
    }
}

sub setPaymentsToFullPayment {
    my ($self, %excludedStatementIDs) = @_;
    foreach my $statement ( @{ $self->{LabelStatement} } ) {
        if ( !$excludedStatementIDs{ $statement->LabelRoyaltyStatementID() } ) {
            $statement->setPaymentsToFull();
        }
    }
}

1;
