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

use strict;
use warnings;
use Carp;

use Data::Dumper;

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

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

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

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

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

    $hrProperties->{mechanical_statement_publisher_id} = $dbItem->ca_mechanical_statement_publisher_id;
    $hrProperties->{mechanical_statement_id}           = $dbItem->ca_mechanical_statement_id;
    $hrProperties->{publisher_id}                      = $dbItem->ca_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 'CAD'; }

sub _publisher   { return "RPS::Publisher::CA::Publisher"; }
sub _publisherID { return "ca_publisher_id"; }

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

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

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

###
1;    #
###
