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