#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::Report::ArtistReservePipeline;
use strict;
use warnings;

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::ArtistReservePipeline;

use base 'RPS::Report';

sub _baseXMLName { 'Line' }

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

    return RPS::DB::Item::ReportQueries::ArtistReservePipeline->GetByArtistRoyaltyRunID( $runID, $regionID );
}

sub _reportColumns {
    my $self = shift;

    my $currency = Common::Client::Current()->Locale()->currencyFormat()->currencyCode();

    return (
        "AlbumTitle"      => "Album Title",
        "CatalogNumber"   => "Catalog #",
        "ArtistPayeeName" => "Payee",
        "AccountNumber"   => "Account #",
        "LabelName"       => "Label",
        "RegionName"      => "Region",
        "TotalUnits"      => "Total Reserves Held: Units",
        "TotalRevenue"    => "Total Reserves Held: $currency",
        "Units0"          => "Current Period Taken: Units",
        "Revenue0"        => "Current Period Taken: $currency",
        "Units1"          => "Current Period Liquidated: Units",
        "Revenue1"        => "Current Period Liquidated: $currency",
        "Units2"          => "C+1: Units",
        "Revenue2"        => "C+1: $currency",
        "Units3"          => "C+2: Units",
        "Revenue3"        => "C+2: $currency",
        "Units4"          => "C+3: Units",
        "Revenue4"        => "C+3: $currency",
        "Units5"          => "C+4: Units",
        "Revenue5"        => "C+4: $currency",
        "Units6"          => "C+5: Units",
        "Revenue6"        => "C+5: $currency",
        "Units7"          => "C+6: Units",
        "Revenue7"        => "C+6: $currency",
        "Units8"          => "C+7: Units",
        "Revenue8"        => "C+7: $currency",
        "Units9"          => "C+8: Units",
        "Revenue9"        => "C+8: $currency",
    );
}

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

    my $locale = Common::Client::Current()->Locale();

    my %hash;
    $hash{RegionName}          = $data->region_name;
    $hash{RegionID}            = $data->region_id;
    $hash{ArtistPayeeName}     = $data->artist_payee_name;
    $hash{ArtistPayeeID}       = $data->artist_payee_id;
    $hash{AccountNumber}       = $data->client_account_id;
    $hash{LabelName}           = $data->label_name;
    $hash{CatalogNumber}       = $data->catalog_number;
    $hash{AlbumID}             = $data->album_id;
    $hash{AlbumTitle}          = $data->album_title;
    $hash{TotalRevenue}        = $locale->formatNumber( $data->total_revenue );
    $hash{TotalRevenueRounded} = $locale->formatNumber( $data->total_revenue, '.2' );
    $hash{TotalUnits}          = $locale->formatNumber( $data->total_units );
    $hash{Revenue0}            = $locale->formatNumber( $data->revenue_0 );
    $hash{Revenue0Rounded}     = $locale->formatNumber( $data->revenue_0, '.2' );
    $hash{Units0}              = $locale->formatNumber( $data->units_0 );
    $hash{Revenue1}            = $locale->formatNumber( $data->revenue_1 );
    $hash{Revenue1Rounded}     = $locale->formatNumber( $data->revenue_1, '.2' );
    $hash{Units1}              = $locale->formatNumber( $data->units_1 );
    $hash{Revenue2}            = $locale->formatNumber( $data->revenue_2 );
    $hash{Revenue2Rounded}     = $locale->formatNumber( $data->revenue_2, '.2' );
    $hash{Units2}              = $locale->formatNumber( $data->units_2 );
    $hash{Revenue3}            = $locale->formatNumber( $data->revenue_3 );
    $hash{Revenue3Rounded}     = $locale->formatNumber( $data->revenue_3, '.2' );
    $hash{Units3}              = $locale->formatNumber( $data->units_3 );
    $hash{Revenue4}            = $locale->formatNumber( $data->revenue_4 );
    $hash{Revenue4Rounded}     = $locale->formatNumber( $data->revenue_4, '.2' );
    $hash{Units4}              = $locale->formatNumber( $data->units_4 );
    $hash{Revenue5}            = $locale->formatNumber( $data->revenue_5 );
    $hash{Units5}              = $locale->formatNumber( $data->units_5 );
    $hash{Revenue6}            = $locale->formatNumber( $data->revenue_6 );
    $hash{Units6}              = $locale->formatNumber( $data->units_6 );
    $hash{Revenue7}            = $locale->formatNumber( $data->revenue_7 );
    $hash{Units7}              = $locale->formatNumber( $data->units_7 );
    $hash{Revenue8}            = $locale->formatNumber( $data->revenue_8 );
    $hash{Units8}              = $locale->formatNumber( $data->units_8 );
    $hash{Revenue9}            = $locale->formatNumber( $data->revenue_9 );
    $hash{Units9}              = $locale->formatNumber( $data->units_9 );

    return \%hash;
}

###
1;    #
###
