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

use lib '/app/tools/common/lib';
use Common::Client;
use Common::Assert;

use lib '/app/tools/rps/lib';
use RPS::DB::Item::CAMechanicalStatement;
use RPS::Publisher::CA::Publisher;

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

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

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

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

    assert($dbItem);

    $hrProperties->{mechanical_statement_id}  = $dbItem->ca_mechanical_statement_id;
    $hrProperties->{mechanical_run_id}        = $dbItem->ca_mechanical_run_id;
    $hrProperties->{publisher_id}             = $dbItem->ca_publisher_id;
    $hrProperties->{payor_id}                 = $dbItem->payor_id;
    $hrProperties->{start_date}               = $dbItem->start_date;
    $hrProperties->{end_date}                 = $dbItem->end_date;
    $hrProperties->{status}                   = $dbItem->status;
    $hrProperties->{previous_advance_balance} = $dbItem->previous_advance_balance;
    $hrProperties->{previous_balance}         = $dbItem->previous_balance;
    $hrProperties->{subtotal}                 = $dbItem->subtotal;
    $hrProperties->{transaction_subtotal}     = $dbItem->transaction_subtotal;
    $hrProperties->{statement_total}          = $dbItem->statement_total;
    $hrProperties->{amount_due}               = $dbItem->amount_due;
    $hrProperties->{advance_balance}          = $dbItem->advance_balance;
    $hrProperties->{balance}                  = $dbItem->balance;
    $hrProperties->{applied_to_advance}       = $dbItem->applied_to_advance;
    $hrProperties->{applied_to_balance}       = $dbItem->applied_to_balance;
    $hrProperties->{date_created}             = $dbItem->date_created;
    $hrProperties->{date_modified}            = $dbItem->date_modified;
    $hrProperties->{created_by}               = $dbItem->created_by;
    $hrProperties->{modified_by}              = $dbItem->modified_by;
    $hrProperties->{physical_subtotal}        = $dbItem->physical_subtotal;
    $hrProperties->{digital_subtotal}         = $dbItem->digital_subtotal;
    $hrProperties->{min_payment}              = $dbItem->min_payment;
    $hrProperties->{on_hold}                  = $dbItem->on_hold;
    $hrProperties->{version}                  = $dbItem->version;
}

sub _getCurrencyCode { return 'CAD'; }

sub _getPublisher {
    my ( $self, $publisherID ) = @_;
    return RPS::Publisher::CA::Publisher->new( publisherID => $publisherID, loadSubs => 0, readOnly => 1 );
}

###
1;    #
###
