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

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

use lib '/app/tools/rps/lib';
use RPS::Track::TrackContractAdvance;

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

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

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

	my ($trackContractID, $trackContractAdvanceID);
	$trackContractID = $args{trackContractID};
	$trackContractAdvanceID = $args{trackContractAdvanceID};

	# one or the other
	#
	if($trackContractID)
	{
		$self->{TrackContractAdvance} = RPS::Track::TrackContractAdvance->new(trackContractID => $trackContractID, readOnly => 1);
	}
	elsif($trackContractAdvanceID)
	{
		$self->{TrackContractAdvance} = RPS::Track::TrackContractAdvance->new(trackContractAdvanceID => $trackContractAdvanceID, readOnly=> 1);
	}
	else
	{
		# woops!
        assert(0);
	}


    $self->{TrackContract} = RPS::Track::TrackContract->new
    (
        trackContractID => $self->{TrackContractAdvance}->TrackContractID(),
        loadSubs => 0,
        readOnly => 1,
    );

	$self->{_contractID} = $self->{TrackContract}->ContractID();

    $self->{Track} = RPS::Track::TrackSimple->new(trackID => $self->{TrackContract}->TrackID(), readOnly => 1);

    $self->{Album} = RPS::Catalog::AlbumSimple->new(albumID => $self->{Track}->AlbumID(), loadSubs => 0, readOnly => 1);


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

	return $self;
}



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

	$self->{TrackContractAdvance}->addAdvance($self->Advance(), $self->Memo());
}


sub contractID
{
	my ($self) = @_;
	return $self->{_contractID};
}

###
1;#
###
