#------------------------------------------------------------
# Copyright (C) 2009 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------

package RPS::Mechanical::UK::Process::CreateStatement::Mcps::AP1;

use strict;
use lib '/app/tools/rps/lib';
use lib '/app/tools/raptor/lib';
use Raptor::DB::Item::Sale;
use RPS::Mechanical::UK::Process::CreateStatement;
use RPS::DB::Item::McpsLicense;
use RPS::DB::Item::SaleRunMap;

use base 'RPS::Mechanical::UK::Process::CreateStatement::Mcps';

sub _getSaleIDs {
    my ($self) = @_;
    my $run = $self->_getRunDBItem();

    # Fetch all the sales that might have something to do with AP1.
    # AP1 is used to report:
    # - Physical sales.
    my $sales = Raptor::DB::Item::Sale->GetUnprocessedAP1SaleIDs( ending_sale_date => $run->ending_sale_date() );

    return $self->_getUnprocessedSales($sales);
}

sub _getProcessedSales {
    my ($self) = @_;
    my %hash;

    return RPS::DB::Item::SaleRunMap->GetPaidUKMechanicalAP1();
}

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

    # Return ALL AP1 licenses.
    #
    return RPS::DB::Item::McpsLicense->GetAllAP1Licenses( payorID => $self->_payorID() );
}

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

    return 500;
}

1;
