#---------------------------------------------------------------
# Copyright (C) 2009 RoyaltyShare, Inc.      All Rights Reserved
#---------------------------------------------------------------
package Support::Reports::OrchardSales;

use strict;
use warnings;
use Carp;

use URI::Escape;

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

use constant kReportBaseDir => '/app/shared/orchard';
use constant kReportDir     => kReportBaseDir . '/' . 'sale_reports';

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

sub _init {
    my ( $self, %args ) = @_;
    $self->SUPER::_init(%args);
    $self->getFiles;
    return $self;
}

sub getFiles {
    my $self = shift;

    $self->{Report} = [];

    if ( ! -e kReportBaseDir && !mkdir(kReportBaseDir) ) {
        Common::Log::Print("can't create dir: ". kReportBaseDir . "\n");
        return undef;
    }

    if ( ! -e kReportDir && !mkdir(kReportDir) ) {
        Common::Log::Print("can't create dir: ". kReportBaseDir . "\n");
        return undef;
    }

    opendir(DIR, kReportDir);

    # Get the files, sorted by date created.
    #    stat[9] is the last modified time (see https://perldoc.perl.org/functions/stat for more information)

    my @files = sort {(stat kReportDir . '/' . $a)[9] <=> (stat  kReportDir . '/' . $b)[9]} readdir(DIR);
    closedir(DIR);

    foreach my $file (@files) {
        next if ( $file eq '.' || $file eq '..' );
        push @{ $self->{Report} }, { clean => uri_escape($file), name => $file };
    }
    return $self;
}

sub generate {
    my $self = shift;
    my $userID = Common::RSApp::GetActiveUserID();
    my $cmd = "/app/tools/support/bin/createOrchardSalesReport.pl --makeexcel -u $userID -o ". kReportDir;

    system($cmd);
    my $exitVal = $? >> 8;  # get the exit value from the executed command
    return $exitVal;
}

1;
