#---------------------------------------------------------------
# ____                   _ _         ____  _                    
#|  _ \ ___  _   _  __ _| | |_ _   _/ ___|| |__   __ _ _ __ ___ 
#| |_) / _ \| | | |/ _` | | __| | | \___ \| '_ \ / _` | '__/ _ \
#|  _ < (_) | |_| | (_| | | |_| |_| |___) | | | | (_| | | |  __/
#|_| \_\___/ \__, |\__,_|_|\__|\__, |____/|_| |_|\__,_|_|  \___|
#            |___/             |___/                            
#
# Copyright (C) 2012 RoyaltyShare, Inc.   All Rights Reserved
#---------------------------------------------------------------

package RPS::ArtistRoyalty::Fast::Final::ArtistContractTermReserve;

use strict;
use Data::Dumper;
use File::Path;

use lib '/app/tools/common/lib';
use lib '/app/tools/rps/lib';
use lib '/app/tools/raptor/lib';
use Common::RSApp;
use Common::RSDB;

use Data::Dumper;
use DB_File;

use Common::Log;

use base 'RPS::ArtistRoyalty::Fast::Final';

# These are quite similar to the fields in the Reserve.pm package.
# Which isn't surprising, since they are the same table.
# 
use constant kArtistContractTermReserveID   => 0;
use constant kArtistContractTermID          => 1;
use constant kIncomeSourceID                => 2;
use constant kRegionID                      => 3;
use constant kChannelID                     => 4;
use constant kPriceLevelID                  => 5;
use constant kOriginalStatementItemID       => 6;
use constant kProductID                     => 7;
use constant kProductFormatID               => 8;
use constant kUnits                         => 9;
use constant kRevenue                       => 10;
use constant kPrice                         => 11;
use constant kRevenueBased                  => 12;
use constant kEffectiveRate                 => 13;
use constant kPeriodsRemaining              => 14;
use constant kAlbumID                       => 15;
use constant kTrackID                       => 16;
use constant kProrateTrackCount             => 17;


my @gFields =
(
'artist_contract_term_reserve_id',
'artist_contract_term_id',
'income_source_id',
'region_id',
'channel_id',
'price_level_id',
'original_statement_item_id',
'product_id',
'product_format_id',
'units',
'revenue',
'price',
'revenue_based',
'effective_rate',
'periods_remaining',
'album_id',
'track_id',
'prorate_track_count',
);

sub Fields { return \@gFields; }



sub FileName { 'artist_contract_term_reserve' }
sub _MaxIDSql { 'SELECT MAX(artist_contract_term_reserve_id) FROM artist_contract_term_reserve' }

#sub GetCurrentMaxID
#{
#    my ($class) = @_;
#
#    return 0;
#}


my $gRunID;
sub Init
{
    my ($class, $outputDirectory, $runID) = @_;

    # Call the inherited method first.
    #
    $class->SUPER::Init($outputDirectory);


    $gRunID = $runID;
}



sub new
{
    my ($class) = @_;

    my $item = $class->BlankItem();
    $class->_IncrementID();
    $item->[kArtistContractTermReserveID] = $class->_CurrentID();

    return bless($item, $class);
}



1;

