#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::Statement::Mechanical::CA::StatementTrack;

use strict;
use warnings;
use Carp;

use Data::Dumper;

use lib '/app/tools/common/lib';

use lib '/app/tools/rps/lib';

use RPS::DB::Item::CAMechanicalStatementTrack;
use RPS::DB::Item::Track;
use RPS::DB::Item::Album;
use RPS::Statement::Mechanical::CA::StatementLicenseList;
use RPS::Statement::Mechanical::CA::StatementCrossedLicenseTransactionList;
use RPS::Song::Song;

use RPS::Statement::Mechanical::StatementTrack;
use base 'RPS::Statement::Mechanical::StatementTrack';


sub _propertiesFromDB
{
    my ($self, $hrProperties, $id) = @_;

    my $dbItem = RPS::DB::Item::CAMechanicalStatementTrack->Lookup(ca_mechanical_statement_track_id => $id);
    return $self->_propertiesFromDBItem($hrProperties, $dbItem);
}


sub _propertiesFromDBItem
{
	my ($self, $hrProperties, $dbItem) = @_;

    $hrProperties->{mechanical_statement_track_id}  = $dbItem->ca_mechanical_statement_track_id;
    $hrProperties->{mechanical_statement_id}        = $dbItem->ca_mechanical_statement_id;
    $hrProperties->{track_id}                       = $dbItem->track_id;
    $hrProperties->{album_id}                       = $dbItem->album_id;
    $hrProperties->{subtotal}                       = $dbItem->subtotal;
    $hrProperties->{song_title}                     = $dbItem->song_title;
    $hrProperties->{publisher_id}                   = $dbItem->ca_publisher_id;
    $hrProperties->{crossed_transaction_subtotal}   = $dbItem->crossed_transaction_subtotal;
    $hrProperties->{crossed_subtotal}               = $dbItem->crossed_subtotal;
    $hrProperties->{crossed_previous_advance_balance} = $dbItem->crossed_previous_advance_balance;
    $hrProperties->{crossed_applied_to_advance}     = $dbItem->crossed_applied_to_advance;
    $hrProperties->{crossed_advance_balance}        = $dbItem->crossed_advance_balance;
    $hrProperties->{crossed_adjusted_subtotal}      = $dbItem->crossed_adjusted_subtotal;
}


sub _getCurrencyCode { return 'CAD'; }

sub _getCrossedLicenseList
{
    my ($self, $statementID, $trackID, $publisherID) = @_;

    return RPS::Statement::Mechanical::CA::StatementLicenseList->new
    (
        mechanicalStatementID => $statementID,
        trackID => $trackID,
        publisherID => $publisherID,
        crossed => 1,
    );
}


sub _getCrossedLicenseTransactionList
{
    my ($self, $statementID, $trackID, $publisherID) = @_;

    return RPS::Statement::Mechanical::CA::StatementCrossedLicenseTransactionList->new
    (
        mechanicalStatementID => $statementID,
        trackID => $trackID,
        publisherID => $publisherID,
    );
}


sub _getLicenseList
{
    my ($self, $statementID, $trackID, $publisherID) = @_;

    return RPS::Statement::Mechanical::CA::StatementLicenseList->new
    (
        mechanicalStatementID => $statementID,
        trackID => $trackID,
        publisherID => $publisherID,
    );
}



###
1;#
###
