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

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

use lib '/app/tools/rps/lib';
use RPS::Payee::ArtistPayee;
use RPS::DB::Item::ArtistPayee;
use RPS::DB::Item::ArtistRoyaltyStatement;
use RPS::CountryList;

use base 'RPS::Report';

sub _baseXMLName { 'ArtistPayee' }

sub _init() {
    my $self = shift;

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

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

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

    return RPS::DB::Item::ArtistRoyaltyStatement->Get(
        runID                 => $runID,
        sortByArtistPayeeName => 1,
        filterBy              => $filterBy,
    );

}

sub _reportColumns {
    my $self = shift;

    return (
        "Name"                => "Payee",
        "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 $apDBItem = RPS::DB::Item::ArtistPayee->Lookup( artist_payee_id => $dbitem->payee_id );

    my $ap = RPS::Payee::ArtistPayee->new( _dbItem => $apDBItem );

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

    my $payeeAddress2 = $ap->StreetAddress2;
    $payeeAddress2 =~ s/[\r\n]+/ /g;
    $ap->{StreetAddress2Clean} = $payeeAddress2;

    my $payeeAddress3 = $ap->StreetAddress3;
    $payeeAddress3 =~ s/[\r\n]+/ /g;
    $ap->{StreetAddress3Clean} = $payeeAddress3;

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

    return $ap;
}

###
1;    #
###
