package RPS::Import::ADA::v8;

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' => {
            date_row        => 4,
            date_col        => 10,
            label           => 0,     # A
            format_type     => 2,     # C
            serviceName     => 3,     # D
            country_code    => 4,     # E
            clientProductID => 8,     # I
            productTypeCode => 9,     # J
            artistName      => 6,     # G
            title           => 7,     # H
            units           => 11,    # L
            price           => 12,    # M
        },

        'label ds' => {
            currency_row => 8,
            currency_col => 2,        # C

            distfee_row => 23,
            distfee_col => 1,         # B

            no_detail => 1,           # prevent sales detail from being processed on this sheet
        }
    };
}

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

    my $currencyCode;
    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 ( !$currencyCode && exists $offsets->{ lc $sheetName } ) {
            my $data = $offsets->{ lc $sheetName };
            if ( exists $data->{currency_row} ) {
                my $row = $data->{currency_row};
                my $col = $data->{currency_col};
                $currencyCode = substr( $sheet->[$row][$col], 0, 3 );
            }
        }
        $sheetCount++;
    }

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

}

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

    my $distFee;
    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 ( !$distFee && exists $offsets->{ lc $sheetName } ) {
            my $data = $offsets->{ lc $sheetName };
            if ( exists $data->{distfee_row} ) {
                my $row = $data->{distfee_row};
                my $col = $data->{distfee_col};
                $distFee = $sheet->[$row][$col];
            }
        }
        $sheetCount++;
    }

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

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