#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package RPS::Report::CAPublisherMailing;
use strict;
use warnings;

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

use lib '/app/tools/rps/lib';
use RPS::Publisher::CA::Publisher;
use RPS::DB::Item::CAPublisher;
use RPS::DB::Item::CAMechanicalStatement;
use RPS::CountryList;

use base 'RPS::Report';

sub _init() {
    my $self = shift;

    $self->{CountryList} = RPS::CountryList->new();

    return $self->SUPER::_init(@_);
}

sub _baseXMLName { 'Publisher' }

sub _getDBItem() {
    my $self = shift;
    my %args = @_;
    my $runID = $args{runID};
    my $filterBy = $args{filterBy};

    return RPS::DB::Item::CAMechanicalStatement->Get
    (
        runID => $runID,
        sortByPublisherName => 1,
        filterBy => $filterBy,
    );
}

sub _reportColumns {
    my $self = shift;

    return ( "PublisherName"    => "Publisher",
             "StreetAddressClean"    => "Address 1",
             "StreetAddress2Clean"   => "Address 2",
             "StreetAddress3Clean"   => "Address 3",
             "City"             => "City",
             "StateProvince"    => "State",
             "PostalCode"       => "Zip",
             "Country"          => "Country",
             "ClientAccountID"  => "Client Account ID" );
}

sub _fillInHash
{
    my ($self, $dbitem) = @_;   
    my $publisherDBItem = RPS::DB::Item::CAPublisher->Lookup(ca_publisher_id => $dbitem->ca_publisher_id);
    
    my $publisher = RPS::Publisher::CA::Publisher->new( _dbItem => $publisherDBItem );       

    my $publisherAddress = $publisher->StreetAddress;
    $publisherAddress =~ s/[\r\n]+/ /g;
    $publisher->{StreetAddressClean} = $publisherAddress;

    my $publisherAddress2 = $publisher->StreetAddress2;
    $publisherAddress2 =~ s/[\r\n]+/ /g;
    $publisher->{StreetAddress2Clean} = $publisherAddress2;
    
    my $publisherAddress3 = $publisher->StreetAddress3;
    $publisherAddress3 =~ s/[\r\n]+/ /g;
    $publisher->{StreetAddress3Clean} = $publisherAddress3; 

    $publisher->{Country} = RPS::CountryList::CountryNameFor( $publisher->CountryCode );

    return $publisher;
}


###
1;#
###
