#---------------------------------------------------------------
# ____                   _ _         ____  _                    
#|  _ \ ___  _   _  __ _| | |_ _   _/ ___|| |__   __ _ _ __ ___ 
#| |_) / _ \| | | |/ _` | | __| | | \___ \| '_ \ / _` | '__/ _ \
#|  _ < (_) | |_| | (_| | | |_| |_| |___) | | | | (_| | | |  __/
#|_| \_\___/ \__, |\__,_|_|\__|\__, |____/|_| |_|\__,_|_|  \___|
#            |___/             |___/                            
#
# Copyright (C) 2007 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#---------------------------------------------------------------
package RPS::Statement::Mechanical::CA::StatementLicense;

use strict;
use warnings;
use Carp;

use Data::Dumper;

use lib '/app/tools/common/lib';

use lib '/app/tools/rps/lib';
use RPS::ControlledComposition::ControlledComposition;
use RPS::DB::Item::CAMechanicalStatementLicense;
use RPS::Statement::Mechanical::CA::StatementItemList;
use RPS::Statement::Mechanical::CA::StatementAdjustmentItemList;
use RPS::Statement::Mechanical::CA::StatementLicenseTransactionList;

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



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

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


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

    $hrProperties->{mechanical_statement_license_id}    = $dbItem->ca_mechanical_statement_license_id;
    $hrProperties->{mechanical_statement_id}            = $dbItem->ca_mechanical_statement_id;
    $hrProperties->{track_license_id}                   = $dbItem->ca_track_license_id;
    $hrProperties->{transaction_subtotal}               = $dbItem->transaction_subtotal;
    $hrProperties->{subtotal}                           = $dbItem->subtotal;
    $hrProperties->{previous_advance_balance}           = $dbItem->previous_advance_balance;
    $hrProperties->{applied_to_advance}                 = $dbItem->applied_to_advance;
    $hrProperties->{advance_balance}                    = $dbItem->advance_balance;
    $hrProperties->{adjusted_subtotal}                  = $dbItem->adjusted_subtotal;
    $hrProperties->{region_id}                          = $dbItem->region_id;
    $hrProperties->{crossed}                            = $dbItem->crossed;
}

sub _getCurrencyCode { return 'CAD'; }


sub _getStatementItemList
{
    my ($self, $statementID, $trackLicenseID) = @_;

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



sub _getStatementAdjustmentItemList
{
    my ($self, $statementID, $trackLicenseID) = @_;

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


sub _getLicenseTransactionList
{
    my ($self, $statementLicenseID) = @_;

    return RPS::Statement::Mechanical::CA::StatementLicenseTransactionList->new
    (
        mechanicalStatementLicenseID => $statementLicenseID,
    );
}

###
1;#
###
