#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::License::Command::BasePreEdit;
use strict;
use warnings;

use lib '/app/tools/rps/lib';
use RPS::Catalog::AlbumSimple;
use RPS::DB::Item::AlbumContract;
use RPS::Track::TrackSimple;

use lib '/app/tools/common/lib';
use RSApache::Response::XSLT;
use RSApache::Response::Redirect;
use Common::FormObject;

use RPS::Command;
use base 'RPS::Command';

sub cmd { return "preedit"; }

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

    my $response = $self->SUPER::execute();
    return $response if $response;

    my $trackID = $self->getParam('TrackID');
    my $trackObj = RPS::Track::TrackSimple->new( trackID => $trackID, loadSubs => 0 );

    if ( defined $trackObj ) {
        $self->{xml}{Track} = $trackObj;

        my $albumID = $trackObj->AlbumID();
        my $albumObj = RPS::Catalog::AlbumSimple->new( albumID => $albumID, loadSubs => 0 );
        $self->{xml}{Album} = $albumObj;

        my $coll       = RPS::DB::Item::AlbumContract->GetByAlbumID($albumID);
        my $ccompCount = 0;
        while ( $coll->hasNext() ) {
            my $dbItem  = $coll->next();
            my $dbField = $self->_ccDBtest();
            if ( $dbItem->$dbField() ) {
                $ccompCount++;

                # we need to get the controlled comp id
                #
                my $ccomp = RPS::DB::Item::ControlledComposition->GetByContractID( $dbItem->artist_contract_id );
                $self->{xml}{ControlledCompositionID} = $ccomp->controlled_composition_id;

                last;
            }
        }
        $self->{xml}{HasControlledComposition} = $ccompCount;
    }

    $response = RSApache::Response::XSLT->new( $self->{xml}, $self->_template() );
    return $response;
}

1;
