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

use strict;
use warnings;
use Carp;

use Data::Dumper;

use lib '/app/tools/rps/lib';
use RPS::Statement::Mechanical::US::StatementTrackList;
use RPS::Statement::Mechanical::US::StatementPublisherTransactionList;
use RPS::Statement::Mechanical::StatementPublisher;
use RPS::DB::Item::MechanicalStatementPublisher;
use RPS::Publisher::US::Publisher;

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



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

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


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

    $hrProperties->{mechanical_statement_publisher_id}  = $dbItem->mechanical_statement_publisher_id;
    $hrProperties->{mechanical_statement_id}            = $dbItem->mechanical_statement_id;
    $hrProperties->{publisher_id}                       = $dbItem->publisher_id;
    $hrProperties->{subtotal}                           = $dbItem->subtotal;
    $hrProperties->{previous_balance}                   = $dbItem->previous_balance;
    $hrProperties->{transaction_subtotal}               = $dbItem->transaction_subtotal;
    $hrProperties->{statement_total}                    = $dbItem->statement_total;
    $hrProperties->{amount_due}                         = $dbItem->amount_due;
    $hrProperties->{on_hold}                            = $dbItem->on_hold;    
}

sub _getCurrencyCode { return 'USD'; }

sub _publisher { return "RPS::Publisher::US::Publisher"; }
sub _publisherID { return "publisher_id"; }

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

    return RPS::Statement::Mechanical::US::StatementTrackList->new
    (
        mechanicalStatementID => $statementID,
        publisherID => $publisherID,
    );
}

sub _getStatementPublisherTransactionList
{
    my ($self, $statementID, $publisherID) = @_;
    return RPS::Statement::Mechanical::US::StatementPublisherTransactionList->new(mechanicalStatementID => $statementID, publisherID => $publisherID);
}


###
1;#
###
