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