#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package Distribution::DistributionProcess::DistributionProcessWithProduct;

use strict;
use warnings;

use lib '/app/tools/rps/lib';
use Common::FormObject;

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

use Data::Dumper;

use lib '/app/tools/rps/lib';
use RPS::Product::ProductDistributionList;

use lib '/app/tools/distribution/lib';
use Distribution::DistributionProcess::DistributionJobList;

use Distribution::Job::Packager;
use Distribution::Job::Delivery;

use base 'Distribution::DistributionProcess';

sub _propertiesFromDBItem {
    my ( $self, $hrProperties, $dbItem ) = @_;

    return unless ($dbItem);

    $hrProperties->{distribution_process_id} = $dbItem->distribution_process_id;
    $hrProperties->{client_id}               = Common::RSApp::GetClientID();
}

sub _initProperties {
    my ( $self, $props ) = @_;

    $self->{DistributionProcessID} = Common::FormObject::Scalar->new( value => $props->{distribution_process_id}, readOnly => 1 );

    if ( $props->{distribution_process_id} ) {
        $self->{Service}    = $self->Service();
        $self->{QueueDate}  = $self->QueueDate();
        $self->{Delivering} = $self->Delivering();
        $self->{ClientID}   = $props->{client_id};

        $self->{State} = $self->State();

        $self->{Contents} = RPS::Product::ProductDistributionList->new( distributionProcessID => $props->{distribution_process_id} );
        $self->{Jobs} = Distribution::DistributionProcess::DistributionJobList->new(
            distributionProcessID => $props->{distribution_process_id},
            clientID              => $props->{client_id}
        );
    }
}

1;
