#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::License::BaseAccountForm;

use strict;
use warnings;
use Data::Dumper;
use lib '/app/tools/common/lib';
use Common::Assert;
use Common::Util;

use lib '/app/tools/rps/lib';
use RPS::Track::TrackSimple;
use RPS::Product::TypeList;
use RPS::Region::RegionList;
use RPS::RoyaltyRun::RoyaltyRunStatusList;

use Common::FormObject;
use base 'Common::FormObject';

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

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

	my $trackLicenseID = $args{trackLicenseID};

	if(! $trackLicenseID)
	{
        assert(0);
	}

    $self->{TrackLicense} = $self->_license()->new
    (
        trackLicenseID => $trackLicenseID,
    );

    $self->{Track} = RPS::Track::TrackSimple->new(trackID => $self->{TrackLicense}->TrackID());

    $self->{Account} = $self->_account()->new(trackLicenseID => $trackLicenseID);
    $self->{TypeList} = RPS::Product::TypeList->new(includeTrackProducts => 1);
    $self->{RegionList} = RPS::Region::RegionList->new();

    $self->{RoyaltyRunStatus} = $self->_royaltyRunStatus();

    # Put some placeholders in here for editing purposes
    #
    #$self->{Amount} = Common::FormObject::Scalar::Decimal->new(value => 0);
    #$self->{Memo} = Common::FormObject::Scalar::String->new(value => "");
    #$self->{TransactionDate} = Common::FormObject::Scalar::Date->new(value => Common::Util::today());


	return $self;
}


sub validate
{
    my ($self) = @_;

    # !!! Don't want to validate everything - Just the Account.
    #
    return $self->{Account}->validate();
}


sub save
{
	my ($self) = @_;

    $self->{Account}->save();
}


sub trackLicenseID
{
	my ($self) = @_;
	return $self->{TrackLicense}->TrackLicenseID();
}

###
1;#
###
