App-Office-Contacts-Donations
view release on metacpan or search on metacpan
lib/App/Office/Contacts/Donations/Database/Donations.pm view on Meta::CPAN
package App::Office::Contacts::Donations::Database::Donations;
use Moose;
extends 'App::Office::Contacts::Database::Base';
use namespace::autoclean;
our $VERSION = '1.10';
# -----------------------------------------------
sub add
{
my($self, $donation, $name) = @_;
$self -> log(debug => 'Entered add');
$self -> save_donations_record('add', $donation);
return "Added donation for '$name'";
} # End of add.
# -----------------------------------------------
sub build_report_by_amount
{
my($self, $donation, $organizations_table_id, $people_table_id) = @_;
$self -> log(debug => 'Entered build_report_by_amount');
my(%donation);
my($item);
my($name);
my(%organization, $organization);
my(%person, $person);
my($type);
for $item (@$donation)
{
if ($$item{'table_name_id'} == $organizations_table_id)
{
# Get name from cache, if possible.
if ($organization{$$item{'table_id'} })
{
$name = $organization{$$item{'table_id'} };
$type = 'organization';
}
else
{
$organization = $self -> db -> organization -> get_organization_via_id($$item{'table_id'});
$name = $organization{$$item{'table_id'} } = $$organization{'name'};
$type = 'organization';
}
}
else
{
# Get name from cache, if possible.
if ($person{$$item{'table_id'} })
{
$name = $person{$$item{'table_id'} };
$type = 'person';
}
else
( run in 2.130 seconds using v1.01-cache-2.11-cpan-97f6503c9c8 )