package BookPub::Import::Importer::Odilo::Version4;

use strict;

use lib '/app/tools/bookpub/lib';
use base 'BookPub::Import::Importer::Odilo::Version2';

my %monthNames = (
    "january"   => "01",
    "jan"       => "01",
    "february"  => "02",
    "feb"       => "02",
    "march"     => "03",
    "mar"       => "03",
    "april"     => "04",
    "apr"       => "04",
    "may"       => "05",
    "june"      => "06",
    "jun"       => "06",
    "july"      => "07",
    "jul"       => "07",
    "august"    => "08",
    "aug"       => "08",
    "september" => "09",
    "sep"       => "09",
    "october"   => "10",
    "oct"       => "10",
    "november"  => "11",
    "nov"       => "11",
    "december"  => "12",
    "dec"       => "12",
);

sub _dateNormalization   { 'month' }
sub rServiceName         { 'Odilo' }

sub priceTypeQualifierID {
    my $self = shift;

    my $priceTypeQualifier = $self->_getByFieldName('priceTypeQualifierID') || '';
    if ( $priceTypeQualifier =~ /Library/i  ) {
        return BookPub::DB::Item::PriceTypeQualifier::kCorporate;
    }

    $self->fail("Can't recognize priceTypeQualifier from: '$priceTypeQualifier'.");
}

sub _getDateBegin {
    my $self = shift;
    my $date;
    my $filename = $self->filename;

    if ( $filename =~ /\((\w{3,8})\)[ _](\d{4})/ || $filename =~ /^(\w+?)\s.+?_(\d{4})/) {
        $date = $2 . "-" . $monthNames{ lc($1) } . "-01";
    }

    return $date;
}

# overriding the base class...
sub rListPriceCurrency { }

sub priceType {
    my $self = shift;

    my $clientID = Common::RSApp::GetClientID;
    return 'rrp' if $clientID =~ /^(?:346|324|335|310|318)$/;

    $self->fail("Price Type not set for this client");
}

1;
