#------------------------------------------------------------
# Copyright (C) 2007 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package RPS::Report::UKMechRetentionRunSummary;
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 Common::RSApp;

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

use base 'RPS::Report';

sub _baseXMLName { 'Product' }

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

    return RPS::DB::Item::ReportQueries::UKMechRetentionRunSummary->GetRetentionSummary($runID);
}

sub _reportColumns {
    my $self = shift;

    return (
             "CatalogNumber"         => "Catalog #",
             "AlbumTitle"            => "Album Title",
             "ArtistName"            => "Artist",
             "ProductType"           => "Product",
             "ReleaseDate"           => "Release Date",
             "TVAd"                  => "TV Ad",
             "CurrentPeriod"         => "Current Retention Period",
             "P1Rate"                => "P1 Rate",
             "P1Held"                => "P1 # Held",
             "P2Rate"                => "P2 Rate",
             "P2Held"                => "P2 # Held",
             "P3Rate"                => "P3 Rate",
             "P3Held"                => "P3 # Held",
             "P4Rate"                => "P4 Rate",
             "P4Held"                => "P4 # Held",
             "TotalHeld"             => "Total Held",
    );
}


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{TVAdvertised}     = $product->tv_advertised;
    $data{TVAd}             = $product->tv_advertised ? "Y" : "N";
    $data{CurrentPeriod}    = $product->current_period;
    $data{TotalHeld}        = Common::Client::Current()->Locale()->formatNumber($product->total_held);

    $data{P1Held}           = Common::Client::Current()->Locale()->formatNumber($product->p1_held);

    if( $data{CurrentPeriod} > 0 ) {
        $data{P1Rate} = $data{TVAdvertised} ? "25%" : "10%";
    }

    if( $data{CurrentPeriod} > 1 ) {
        $data{P2Held} = Common::Client::Current()->Locale()->formatNumber($product->p2_held);
        $data{P2Rate} = $data{TVAdvertised} ? "25%" : "10%";
    }

    if( $data{CurrentPeriod} > 2 ) {
        $data{P3Held} = Common::Client::Current()->Locale()->formatNumber($product->p3_held);
        $data{P3Rate} = "10%";
    }

    if( $data{CurrentPeriod} > 3 ) {
        $data{P4Held} = Common::Client::Current()->Locale()->formatNumber($product->p4_held);
        $data{P4Rate} = "10%";
    }


    return \%data;
}


###
1;#
###
