package RPS::Import::RuckusSimple;

use strict;


use Date::Calc qw(Days_in_Month);

use lib '/app/tools/common/lib';
use Common::Util;
use Common::Consts;

use lib '/app/tools/data_classes/lib';

use constant DATE_ROW       => 0;
use constant DATE_START_COL => 1;
use constant DATE_END_COL   => 2;

#detail record
use constant FIELD_ARTIST		=> 0;
use constant FIELD_UPC  		=> 1;
use constant FIELD_ALBUM		=> 2;
use constant FIELD_ISRC 		=> 3;
use constant FIELD_TRACK		=> 4;
use constant FIELD_UNITS		=> 6;
use constant FIELD_PRICE  		=> 8;  ## total price

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

#public methods

sub _importLines
{
	my $self = shift;
	my %args = @_;

	my $retval = undef;
	my $lines = $args{lines};

	return undef unless ($lines);

    my ($dateBegin, $dateEnd);
	my $date1 = $lines->[DATE_ROW]->[DATE_START_COL];
	my $date2 = $lines->[DATE_ROW]->[DATE_END_COL];

    if ($date1 =~ m/^(\d{4})(\d{2})(\d{2})$/) {
        $dateBegin = $1."-".$2."-".$3;
    }
    if ($date2 =~ m/^(\d{4})(\d{2})(\d{2})$/) {
        $dateEnd = $1."-".$2."-".$3;
    }

    unless ($dateBegin && $dateEnd) {
        $self->errstr("couldn't get dates from $date1 , $date2");
        return undef;
    }

	my $prodtype = RPS::File::Sale::TYPE_TRACK;
    my $format = RPS::File::Sale::FORMAT_TETHERED;

	my $linenum = 1;
	foreach my $line (@$lines)
	{
		my $upc			= Common::Util::normalize_upc($line->[FIELD_UPC]);
		my $isrc		= Common::Util::normalize_isrc($line->[FIELD_ISRC]);
		my $artist		= $line->[FIELD_ARTIST];
		my $album		= $line->[FIELD_ALBUM];
		my $track		= $line->[FIELD_TRACK];

		my ($units)		= $line->[FIELD_UNITS] =~ m/^(-?\d+)$/;
		my ($price)		= $line->[FIELD_PRICE] =~ m/^((\d+)?\.\d+)$/;
        $price = (defined $units && $units != 0)?($price / $units):0;

		if ($units && $price && $artist && $track) {
			my $sale = RPS::Import::SaleRec->new();

			$sale->productType($prodtype);
			$sale->formatType($format);
			$sale->dateBegin($dateBegin);
			$sale->dateEnd($dateEnd);
			$sale->upc($upc);
			$sale->isrc($isrc);
			$sale->artistName($artist);
			$sale->albumName($album);
			$sale->trackName($track);
			$sale->units($units);
			$sale->price($price);
			$sale->lineNum($linenum);

            ##$args{dumper}($sale);  ## for cmd-line testing
			$self->_insertSale(sale => $sale);
        }
		$linenum++;
	}
	$retval = $linenum;

	return $retval;
}

#
# Private methods
#


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