#------------------------------------------------------------
# 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 #"
    );
}

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;    #
###
