#------------------------------------------------------------
# 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;#
###
