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

use lib '/app/tools/rps/lib';
use Common::FormObject;
use RPS::Statement::Label::StatementDisplay;
use RPS::XMLCache;
use RPS::Label;
use RPS::DB::Item::LabelRoyaltyRun;
use RPS::DB::Item::LabelRoyaltyStatement;
use RPS::DB::Item::Payor;
use RPS::LabelPayee::LabelPayeeSimple;
use RPS::Statement::Label::PDF;

use lib '/app/tools/common/lib';
use Common::WriteXML;
use RSApache::Response::XSLT;
use RSApache::Response::XSLTDownload;
use Common::Timer;

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

sub cmd  { return 'show_label_pdf'; }
sub area { return 'statement'; }

use constant kTemplate => "/app/tools/rps/templates/statement/show_label_pdf.xsl";

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

    my $timer = Common::Timer->new();

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

    RPS::CommandLog::Log( $self, $self->getParam("LabelStatementID") );

    my $id = $self->getParam("LabelStatementID");

    my $statementDB    = RPS::DB::Item::LabelRoyaltyStatement->Lookup( label_royalty_statement_id => $id );
    my $runID          = $statementDB->label_royalty_run_id;
    my $run            = RPS::DB::Item::LabelRoyaltyRun->Lookup( label_royalty_run_id => $runID );
    my $payorID        = $statementDB->payor_id;
    my $payor          = RPS::DB::Item::Payor->Lookup( payor_id => $payorID );
    my $payeeID        = $statementDB->payee_id;
    my $payee          = RPS::LabelPayee::LabelPayeeSimple->new( labelPayeeID => $payeeID );
    my $statementData  = RPS::DB::Item::LabelRoyaltyStatement->Lookup( label_royalty_statement_id => $id );
    my $prettyFileName = RPS::Statement::Label::PDF->PrettyStatementFileNameFromID($id);

    $self->{xml}{Statement}{Run}{LabelRoyaltyRunID}     = $runID;
    $self->{xml}{Statement}{Run}{Label}                 = $run->label;
    $self->{xml}{Statement}{Run}{PayorID}               = $payorID;
    $self->{xml}{Statement}{LabelRoyaltyStatementID}    = $id;
    $self->{xml}{Statement}{Payor}{Name}                = $payor->name;
    $self->{xml}{Statement}{Payor}{PayorID}             = $payor->payor_id;
    $self->{xml}{Statement}{StatementPDF}               = $prettyFileName;
    $self->{xml}{Statement}{LabelStatement}{LabelPayee} = $payee;

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

1;
