package RPS::Import::ADA::v9;

use strict;

use lib '/app/tools/common/lib';
use Common::Util qw(normalize_date normalize_upc);
use Date::Calc qw(Days_in_Month);
use Data::Dumper;

use lib '/app/tools/data_classes/lib';

use lib '/app/tools/rps/lib';
use RPS::File::Sale;

use base 'RPS::Import::ADA::ADABase';

# NB: non-standard _fieldMap; need to override _importLines
sub _fieldMap {
    {
        'digital sales' => {
            label           => 0,     # A
            artistName      => 2,     # C
            title           => 3,     # D
                                      #productTypeCode => 4,  # E
            upc             => 5,     # F
            isrc            => 6,     # G
            clientProductID => 8,     # I
            serviceName     => 10,    # K
            country_code    => 12,    # M
            format_type     => 14,    # O
            units           => 19,    # T
                                      #dist_fee        => 23, # X
            price           => 24,    # Y
        },

        'statement summary' => {
            date_row  => 3,
            date_col  => 1,
            no_detail => 1,           # prevent sales detail from being processed on this sheet
        }
    };
}

sub _getGlobalDates {
    my $self = shift;
    my ($args) = @_;

    my $dateBegin;
    my $dateEnd;
    my $err;

    my $offsets     = $self->_fieldMap;
    my $sheet_names = $args->{sheet_names};
    my $sheetCount  = 0;

    foreach my $sheet ( @{ $args->{sheets} } ) {
        my $sheetName = $sheet_names->[$sheetCount];

        if ( !$dateBegin && exists $offsets->{ lc $sheetName } ) {
            my $data = $offsets->{ lc $sheetName };
            if ( exists $data->{date_row} ) {
                my $row        = $data->{date_row};
                my $col        = $data->{date_col};
                my $dateString = $sheet->[$row][$col];
                if ( $dateString =~ /Period: \d+\/(\d+)\/(\d+)/ ) {
                    my $month = $1;
                    my $year  = $2;
                    $dateBegin = $year . "-" . $month . "-01";
                    $dateEnd = $year . "-" . $month . "-" . Days_in_Month( $year, $month );

                }
            }
        }
        $sheetCount++;
    }

    $err = RPS::Import::ADA::ADABase::kDataNotFound if ( !$dateBegin );
    return ( $dateBegin, $dateEnd, $err );

}

sub _getGlobalCurrencyCode {
    my $self = shift;
    my ($args) = @_;

    my $currencyCode;
    my $err;

    $currencyCode = 'GBP';

    return ( $currencyCode, $err );

}

###
1;    # Play nicely.
###
