package BookPub::Import::Importer::ebrary::Version16;

use strict;
use warnings;

use lib '/app/tools/bookpub/lib';
use base 'BookPub::Import::Importer::ebrary::Version15';

# map version num to the field order
sub _fieldMap {
    my $self = shift;

    my %fieldMap = (
        16 => {
            rTitle    => 'E',
            rIsbn13   => 'G',
            rDiscount => 'I',
            rRevenue  => 'X',
        },
    );

    return $fieldMap{ $self->_version() };
}

sub rListPrice {
    # Wiley
    if ( Common::RSApp::GetClientID == 324 ) {
        return abs $_[0]->rRevenue;
    }

    return;
}

sub _getDateBegin {
    my $self = shift;

    my $filename = $self->filename;
    if ( $filename =~ /(Q[1-4])\-(20\d{2})/ ) {
        return $1 . '-' . $2;
    } elsif ( $filename =~ /(20\d{2})\-(Q[1-4])/ ) {
        return $2 . '-' . $1;
    }

    return;
}

sub _unverifiedFieldMap {
    my $self = shift;

    my %fieldMap = (
        16 => {
            docId => 'A',
        },
    );

    return $fieldMap{ $self->_version() };
}

sub rDiscount {
    my $self = shift;

    my $discount = $self->_getByFieldName('rDiscount');
    $discount = 1 - $discount;

    return $discount;
}

sub _isSaleRec {
    my $self    = shift;
    my $revenue = $self->_getByFieldName('rRevenue');

    # We're going to skip lines with no revenue
    if ( $revenue == 0 ) {
        return 0;
    }

    my $id    = $self->_getByFieldName('docId');
    my $title = $self->_getByFieldName('rTitle');
    my $isbn  = $self->_getByFieldName('rIsbn13');

    # We're going to skip the total line
    if ( !$isbn && !$title && $id =~ /total/i ) {
        return 0;
    }

    return $self->SUPER::_isSaleRec();
}

1;
