#------------------------------------------------------------
# Copyright (C) 2007 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package RPS::Report::UKMechCurrentRetentions;
use strict;
use warnings;
use Data::Dumper;

use lib '/app/tools/common/lib';
use Common::FormObject;
use Common::Assert;
use Common::Client;
use Common::Locale;

use lib '/app/tools/rps/lib';
use RPS::DB::Item::ReportQueries;
use RPS::DB::Item::ReportQueries::UKMechCurrentRetentions;

use base 'RPS::Report';

sub _baseXMLName { 'Product' }

sub _getDBItem() {
    my $self  = shift;
    my %args  = @_;
    my $runID = $args{runID};

    return RPS::DB::Item::ReportQueries::UKMechCurrentRetentions->GetCurrentRetentions($runID);
}

sub _reportColumns {
    my $self = shift;

    return (
        "CatalogNumber" => "Catalog #",
        "AlbumTitle"    => "Album Title",
        "ArtistName"    => "Artist",
        "ProductType"   => "Product",
        "ReleaseDate"   => "Release Date",
        "TVAdvertised"  => "TV Ad",
        "Rate"          => "Retention Rate",
        "Retentions"    => "Retention Held",
        "Released"      => "Retention Released",
    );
}

sub _fillInHash {
    my ( $self, $product ) = @_;

    my %data;

    $data{CatalogNumber} = $product->catalog_number;
    $data{AlbumTitle}    = $product->album_title;
    $data{AlbumID}       = $product->album_id;
    $data{ArtistName}    = $product->artist_name;
    $data{ProductType}   = $product->product_type;
    $data{ReleaseDate}   = Common::Client::Current()->Locale()->formatDate( $product->release_date );
    $data{CurrentPeriod} = $product->current_period;
    my $totalRetentions = $product->retentions + $product->tv_retentions;
    if ( $totalRetentions < 0 ) {
        $totalRetentions = 0;
    }
    $data{Retentions}   = Common::Client::Current()->Locale()->formatNumber($totalRetentions);
    $data{TVAdvertised} = $product->tv_advertised;
    $data{Released}     = Common::Client::Current()->Locale()->formatNumber( $product->released );

    # Pulled from the template, rps/templates/report/uk_mech_current_retentions.xsl
    if ( $data{CurrentPeriod} > 4 ) {
        $data{Rate} = undef;
    } elsif ( $data{TVAdvertosed} eq 'Y' ) {
        $data{Rate} = undef;
    } else {
        $data{Rate} = "10%";
    }

    return \%data;
}

###
1;    #
###
