#------------------------------------------------------------
# Copyright (C) 2009 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package Distribution::DistributionProcess::DistributionJob;

use strict;
use warnings;

use lib '/app/tools/rps/lib';

use lib '/app/tools/common/lib';
use Common::RSApp;
use Common::Util;
use Common::Assert;
use Common::WriteXML;
use Common::FormObject;

use Data::Dumper;

use lib '/app/tools/rps/lib';

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

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

sub refreshDistributionJobStatus {
    my $self = shift;

    $self->_clearInvalidStatus();
    $self->_setDistributionStatus();
}

sub _clearInvalidStatus {
    my $self = shift;

    Distribution::DB::Item::DistributionJob->clearInvalidStatus();
}

sub _setDistributionStatus {
    my $self = shift;

    my $collection = Distribution::DB::Item::DistributionJob->GetAllStatusUpdates();

    while ( my $dbItem = $collection->next ) {
        my $status = Distribution::DB::Item::DistributionProcess->GetState( $dbItem->distribution_process_id, $dbItem->{client_id} );

        my $obj = Distribution::DB::Item::DistributionJobStatus->Create();
        $obj->client_id( $dbItem->{client_id} );
        $obj->distribution_process_id( $dbItem->distribution_process_id );
        $obj->status($status);
        $obj->save();
    }
}

1;
