#---------------------------------------------------------------
# ____                   _ _         ____  _
#|  _ \ ___  _   _  __ _| | |_ _   _/ ___|| |__   __ _ _ __ ___
#| |_) / _ \| | | |/ _` | | __| | | \___ \| '_ \ / _` | '__/ _ \
#|  _ < (_) | |_| | (_| | | |_| |_| |___) | | | | (_| | | |  __/
#|_| \_\___/ \__, |\__,_|_|\__|\__, |____/|_| |_|\__,_|_|  \___|
#            |___/             |___/
#
# Copyright (C) 2011 RoyaltyShare, Inc.   All Rights Reserved
#---------------------------------------------------------------

package RPS::Report::Dynamic::Payee::Label;

use strict;
use warnings;

use lib '/app/tools/rps/lib';
use lib '/app/tools/common/lib';

use Common::Client;
use base 'RPS::Report::Dynamic::Payee::Base';
use RPS::DB::Item::DynamicReport::Payee::Label;

sub Type { 'Label' }
sub FilenameType { 'Label Payees' }
sub ClientTypeMask { return Common::Client::kLabel; }


# defined at the end of this file
#
sub _ParamClass { 'RPS::Report::Dynamic::Payee::Artist::Parameters'; }

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

    my $cols = [];

    push( @$cols, $self->_getNameColumnHash('payee', 'payee' ) );
    push( @$cols, $self->_getNameColumnHash('client-account-no', 'client_account_no' ) );
    push( @$cols, $self->_getNameColumnHash('status', 'status' ) );
    push( @$cols, $self->_getNameColumnHash('address-1', 'address_1' ) );
    push( @$cols, $self->_getNameColumnHash('address-2', 'address_2' ) );
    push( @$cols, $self->_getNameColumnHash('address-3', 'address_3' ) );
    push( @$cols, $self->_getNameColumnHash('city', 'city' ) );
    push( @$cols, $self->_getNameColumnHash('state-province', 'state' ) );
    push( @$cols, $self->_getNameColumnHash('zip-postal', 'postal_code' ) );
    push( @$cols, $self->_getNameColumnHash('country', 'country' ) );
    push( @$cols, $self->_getNameColumnHash('email', 'email' ) );
    push( @$cols, $self->_getNameColumnHash('phone', 'phone' ) );
    push( @$cols, $self->_getNameColumnHash('fax', 'fax' ) );
    push( @$cols, $self->_getNameColumnHash('tax-id', 'tax_id' ) );
    push( @$cols, $self->_getNameColumnHash('comments', 'comments' ) );

#    if( $self->_showProcessed() || $self->_showUnprocessed ) {
#        push( @$cols, $self->_getNameColumnHash('total-no-licenses', 'total_no_licenses' ) );
#        push( @$cols, $self->_getNameColumnHash('payor-name', 'payor_name' ) );
#        push( @$cols, $self->_getNameColumnHash('client-payor-no', 'client_payor_no' ) );
#        push( @$cols, $self->_getNameColumnHash('payor-status', 'payor_status' ) );
#        push( @$cols, $self->_getNameColumnHash('default-payor', 'default_payor' ) );
#        push( @$cols, $self->_getNameColumnHash('minimum-payment (usd)', 'minimum_payment' ) );
#        push( @$cols, $self->_getNameColumnHash('transaction-status', 'transaction_status' ) );
#        push( @$cols, $self->_getNameColumnHash('transaction-type', 'transaction_type' ) );
#        push( @$cols, $self->_getNameColumnHash('amount (usd)', 'amount' ) );
#        push( @$cols, $self->_getNameColumnHash('transaction-date', 'transaction_date' ) );
#        push( @$cols, $self->_getNameColumnHash('check-no', 'check_no' ) );
#        push( @$cols, $self->_getNameColumnHash('memo', 'memo' ) );
#        push( @$cols, $self->_getNameColumnHash('balance', 'balance' ) );
#    }

    push @$cols, {
        header => {
            name => 'payee-date-created',
        },
        column => {
            field => 'date_created',
            method => '_formatDate',
            excel => 'date:Y-M-D',
        }
    };
    push @$cols, {
        header => {
            name => 'payee-created-by',
        },
        column => {
            field => 'created_by',
            method => '_userIDToUserName',
        }
    };
    push @$cols, {
        header => {
            name => 'payee-date-modified',
        },
        column => {
            field => 'date_modified',
            method => '_formatDate',
            excel => 'date:Y-M-D',
        }
    };
    push @$cols, {
        header => {
            name => 'payee-modified-by',
        },
        column => {
            field => 'modified_by',
            method => '_userIDToUserName',
        }
    };
    push( @$cols, $self->_getNameColumnHash('rs-payee-id', 'label_payee_id' ) );


    return $cols;
}


sub _getCollection {
    my $self = shift;

    my $dateType;
    my $dateTypeParam = $self->parameters()->{Criteria}->DateType();
    if ($dateTypeParam)
    {
        if ('Date Created' eq $dateTypeParam)
        {
            $dateType = 'date_created';
        }
        elsif('Date Modified' eq $dateTypeParam)
        {
            $dateType = 'date_modified';
        }
    }
   
    return RPS::DB::Item::DynamicReport::Payee::Label->ReportQuery(
        dateType => $dateType,
        startDate => $self->parameters()->{Criteria}->StartDate(),
        endDate => $self->parameters()->{Criteria}->EndDate(),
#        showProcessed => $self->_showProcessed(),
#        showUnprocessed => $self->_showUnprocessed(),
    );
}


1;

package RPS::Report::Dynamic::Payee::Artist::Parameters;
use strict;
use warnings;

use lib '/app/tools/common/lib';
use lib '/app/tools/report/lib';
use lib '/app/tools/rps/lib';
use base 'RPS::Report::Dynamic::Payee::Parameters';




1;
