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

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

use lib '/app/tools/rps/lib';
use RPS::DB::Item::LabelRoyaltyStatement;
use RPS::LabelPayee::LabelPayee;

use base 'Common::FormObject';


sub _init
{
    my ($self, %args) = @_;

    $self->SUPER::_init(%args);

    my %properties;
    if ($args{_dbItem})
    {
        $self->_propertiesFromDBItem(\%properties, $args{_dbItem});
    }
    elsif ($args{labelRoyaltyStatementID})
    {
        $self->_propertiesFromDB(\%properties, $args{labelRoyaltyStatementID});
    }
    else
    {
        $self->_propertiesFromDefaults(\%properties);
    }

    $self->_initProperties(\%properties);

    return $self;
}



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

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

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

    $hrProperties->{label_royalty_statement_id}       = $dbItem->label_royalty_statement_id;
    $hrProperties->{label_royalty_run_id}             = $dbItem->label_royalty_run_id;
    $hrProperties->{payee_id}                               = $dbItem->payee_id;
    $hrProperties->{payor_id}                               = $dbItem->payor_id;
    $hrProperties->{previous_balance}                       = $dbItem->previous_balance;
    $hrProperties->{balance}                                = $dbItem->balance;
    $hrProperties->{min_payment}                            = $dbItem->min_payment;
    $hrProperties->{total}                                  = $dbItem->total;
    $hrProperties->{transaction_subtotal}                   = $dbItem->transaction_subtotal;
    $hrProperties->{amount_due}                             = $dbItem->amount_due;
    $hrProperties->{on_hold}                                = $dbItem->on_hold;
}


sub _initProperties
{
    my ($self, $props) = @_;

    $self->{LabelRoyaltyStatementID}      = Common::FormObject::Scalar->new(value => $props->{label_royalty_statement_id}, readOnly => 1);
    $self->{LabelRoyaltyRunID}            = Common::FormObject::Scalar->new(value => $props->{label_royalty_run_id});
    $self->{PayeeID}                            = Common::FormObject::Scalar->new(value => $props->{payee_id});
    $self->{PayorID}                            = Common::FormObject::Scalar->new(value => $props->{payor_id});
    $self->{PreviousBalance}                    = Common::FormObject::Scalar::Money->new(value => $props->{previous_balance});
    $self->{Total}                              = Common::FormObject::Scalar::Money->new(value => $props->{total});
    $self->{TransactionSubtotal}                = Common::FormObject::Scalar::Money->new(value => $props->{transaction_subtotal});
    $self->{Balance}                            = Common::FormObject::Scalar::Money->new(value => $props->{balance});
    $self->{MinPayment}                         = Common::FormObject::Scalar::Money->new(value => $props->{min_payment});
    $self->{AmountDue}                          = Common::FormObject::Scalar::Money->new(value => $props->{amount_due});
    $self->{OnHold}                             = Common::FormObject::Scalar::Boolean->new(value => $props->{on_hold}, readOnly => 1);

    $self->{LabelPayee}                   = RPS::LabelPayee::LabelPayee->new(labelPayeeID => $props->{payee_id}, loadSubs => 0);
 
}


sub _propertiesFromDefaults
{
    my ($self, $hrProperties) = @_;
}

###
1;#
###
