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