#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package Support::JobQueue::Command::RequeueJob;
use strict;
use warnings;

use Data::Dumper;

use lib '/app/tools/support/lib';
use base 'Support::Command::Submit';

use lib '/app/tools/distribution/lib';
use Distribution::DistributionProcess::DistributionProcessWithJob;
use Distribution::DB::Item::DistributionJob;

use lib '/app/tools/support/lib';
use Support::JobQueue::Command::ShowDistributionProcesses;

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

use lib '/app/tools/job/lib';
use Job::Job;

sub cmd  { return 'requeue'; }
sub area { return 'job_queue'; }

use constant kTemplate => "/app/tools/support/templates/ajax.xsl";

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

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

    $self->_requeueJob();

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

sub _requeueJob {
    my $self = shift;
    my $args = $self->getParams();

    my $clientID      = $args->{ClientID};
    my $distProcessID = $args->{DistributionJobID};

    assert($clientID);
    assert($distProcessID);

    my $dbDist = Distribution::DB::Item::DistributionJob->LookupByClient( $distProcessID, $clientID );

    my $distJob = new Distribution::DistributionProcess::DistributionProcessWithJob( dbItem => $dbDist );

    $distJob->requeueLastJob();

    return;
}

1;
