#------------------------------------------------------------
# Copyright (C) 2009 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package BookPub::Tracker::FileList::OpenFiles;

use strict;
use warnings;
use Carp;

use Data::Dumper;

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

use lib '/app/tools/bookpub/lib';
use BookPub::DB::Item::File;
use BookPub::Tracker::File;

use base 'BookPub::Tracker::FileList';

sub _itemTag {
    my ($self) = @_;
    return 'OpenFile';
}

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

    my $files = BookPub::DB::Item::File->GetByPeriodID(
        $self->{periodID},
        file_status => BookPub::DB::Item::File::STATUS_OPEN,
        sort_by     => $self->{sortBy} ne 'status' ? $self->{sortBy} : 'can_finish',
        sort_desc   => $self->{reverseSort},
        file_type   => $self->{fileType},
        service_id  => $self->{serviceID},
    );

    # We used to have a second code block here for sorting by status,
    # that logic is now in the GetByPeriodID SQL query

    my $sortedFiles;

    # And now we have an additional code block to return the total number
    # of open files to display in the "are you sure" popup when closing a
    # period

    my $openFiles = BookPub::DB::Item::File->GetByPeriodID( $self->{periodID}, file_status => BookPub::DB::Item::File::STATUS_OPEN, );

    return ( $files, $sortedFiles, $openFiles->size() );
}

1;
