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 0.480 second using v1.01-cache-2.11-cpan-5b529ec07f3 )