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.
###
