package RPS::Import::Red2;

use strict;

use Date::Calc qw(Days_in_Month Decode_Month);

use lib '/app/tools/rps/lib';
use base 'RPS::Import::Importer';

sub _fieldMap
{
    {
        labelName       => 'C',
        type            => 'I',
        configuration   => 'I',
        artistName      => 'D',
        clientProductID => 'G',
        upc             => 'H',
        albumName       => 'E',
        sales           => 'N',
        totalRevenue    => 'P',
    }
}

sub _headerIdentifier { (upc => 'UPC') }

sub _isValidSaleRecord
{
	my $self = shift;

	return $self->albumName && $self->SUPER::sales;
}

sub channel     { RPS::File::Sale::CHANNEL_RETAIL } 
sub priceLevel  { RPS::File::Sale::PLEVEL_UNKNOWN }

sub _productTypes
{
    {
        'lp' =>
        {
            productType => RPS::File::Sale::TYPE_LP,
        },
        'cd' =>
        {
            productType => RPS::File::Sale::TYPE_CD,
        },
        'si' =>
        {
            productType => RPS::File::Sale::TYPE_LP5,
        },
    }
}

sub sales
{
    my $self = shift;

    my $sales = $self->SUPER::sales();
    $sales = 0 if ($sales < 0);

    return $sales;
}

sub returns
{
    my $self = shift;

    my $returns = $self->SUPER::sales();
    $returns = 0 if ($returns > 0);

    return abs($returns);
}

sub salesRevenue
{
    my $self = shift;

    my $salesRevenue = $self->totalRevenue;
    $salesRevenue = 0 if ($salesRevenue < 0);

    return $salesRevenue;
}

sub returnsRevenue
{
    my $self = shift;

    my $returnsRevenue = $self->totalRevenue;
    $returnsRevenue = 0 if ($returnsRevenue > 0);

    return abs($returnsRevenue);
}

sub totalRevenue
{
    return Common::RSMath::round(shift->SUPER::totalRevenue, 2);
}

sub countryCode
{
    my $self = shift;

    my ($countryCode) = $self->filename =~ /^RED-(CA)/;

    return $countryCode;
}

sub _getDateBegin
{
    my $self = shift;

	my $dateBegin;
    if ($self->filename =~ m/(september|october|november|december|january|february|march|april|may|june|july|august) (\d{4})/i)
    {
        my $month = Decode_Month($1);
        my $year  = $2;
        $dateBegin = sprintf("%04d-%02d-%02d", $year, $month, 1);
    }

	return $dateBegin;
}


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