#------------------------------------------------------------
# Copyright (C) 2012 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::Report::CAMechanicalReservePipeline;
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::CAMechanicalReservePipeline;

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::CAMechanicalReservePipeline->GetByMechanicalRunID( $runID, $regionID );
}

sub _reportColumns {
    my $self = shift;

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

    return (
        "TrackTitle"    => "Track",
        "AlbumTitle"    => "Album Title",
        "UPC"           => "UPC",
        "PublisherName" => "Publisher",
        "AccountNumber" => "Client Account #",
        "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{PublisherName} = $data->publisher_name;
    $hash{CAPublisherID} = $data->ca_publisher_id;
    $hash{AccountNumber} = $data->client_account_id;
    $hash{UPC}           = $data->upc;
    $hash{CatalogNumber} = $data->catalog_number;
    $hash{AlbumID}       = $data->album_id;
    $hash{AlbumTitle}    = $data->album_title;
    $hash{TrackID}       = $data->track_id;
    $hash{TrackTitle}    = $data->track_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;    #
###
