2015-12-07 01:20:14 +00:00
|
|
|
package Supporters;
|
|
|
|
|
|
|
|
use 5.020002;
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
|
|
|
|
require Exporter;
|
|
|
|
|
|
|
|
our @ISA = qw(Exporter);
|
|
|
|
|
|
|
|
# Items to export into callers namespace by default. Note: do not export
|
|
|
|
# names by default without a very good reason. Use EXPORT_OK instead.
|
|
|
|
# Do not simply export all your public functions/methods/constants.
|
|
|
|
|
|
|
|
# This allows declaration use Supporters ':all';
|
|
|
|
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
|
|
|
|
# will save memory.
|
|
|
|
our %EXPORT_TAGS = ( 'all' => [ qw(
|
|
|
|
|
|
|
|
) ] );
|
|
|
|
|
|
|
|
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
|
|
|
|
|
|
|
|
our @EXPORT = qw(
|
|
|
|
|
|
|
|
);
|
|
|
|
|
2015-12-07 01:27:25 +00:00
|
|
|
our $VERSION = '0.02';
|
2015-12-07 01:20:14 +00:00
|
|
|
|
2015-12-07 02:28:49 +00:00
|
|
|
######################################################################
|
|
|
|
sub new ($$) {
|
|
|
|
my $package = shift;
|
|
|
|
my($dbh, $ledgerCmd) = @_;
|
|
|
|
|
|
|
|
return bless({ dbh => $dbh, ledgerCmd => $ledgerCmd },
|
|
|
|
$package);
|
|
|
|
}
|
|
|
|
######################################################################
|
|
|
|
sub dbh ($) {
|
|
|
|
return $_[0]->{dbh};
|
|
|
|
}
|
|
|
|
######################################################################
|
|
|
|
sub ledgerCmd ($) {
|
|
|
|
return $_[0]->{ledgerCmd};
|
|
|
|
}
|
2015-12-07 02:56:59 +00:00
|
|
|
######################################################################
|
2015-12-07 03:24:10 +00:00
|
|
|
sub addSupporter ($$) {
|
|
|
|
my($this, $sp) = @_;
|
2015-12-07 02:56:59 +00:00
|
|
|
|
|
|
|
die "ledger_entity_id required" unless defined $sp->{ledger_entity_id};
|
2015-12-07 03:24:10 +00:00
|
|
|
|
|
|
|
$sp->{public_ack} = 0 if not defined $sp->{public_ack};
|
|
|
|
|
|
|
|
if ($sp->{public_ack}) {
|
|
|
|
die "display_name required if public_ack requested" unless defined $sp->{display_name};
|
|
|
|
}
|
2015-12-09 23:44:05 +00:00
|
|
|
my $sth = $this->dbh->prepare(
|
|
|
|
"INSERT INTO supporter(ledger_entity_id, display_name, public_ack)" .
|
|
|
|
" values(?, ?, ?)");
|
|
|
|
|
|
|
|
$sth->execute($sp->{ledger_entity_id}, $sp->{display_name}, $sp->{public_ack});
|
|
|
|
my $id = $this->dbh->last_insert_id("","","","");
|
|
|
|
$sth->finish();
|
|
|
|
|
|
|
|
return $id;
|
2015-12-07 02:56:59 +00:00
|
|
|
}
|
2015-12-07 01:20:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
1;
|
|
|
|
__END__
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2015-12-07 01:27:13 +00:00
|
|
|
Supporters - Simple database of supporters of an organation.
|
2015-12-07 01:20:14 +00:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
use Supporters;
|
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
2015-12-07 01:27:13 +00:00
|
|
|
Supporters is an extremely lightweight alternative to larger systems like
|
|
|
|
CiviCRM to manage a database of Supporters. The module assumes a setup that
|
|
|
|
works with Ledger-CLI to find the actual amounts donated.
|
2015-12-07 01:20:14 +00:00
|
|
|
|
|
|
|
=head2 EXPORT
|
|
|
|
|
|
|
|
None by default.
|
|
|
|
|
|
|
|
=head1 AUTHOR
|
|
|
|
|
2015-12-07 01:27:13 +00:00
|
|
|
Bradley M. Kuhn, E<lt>bkuhn@ebb.org<gt>
|
2015-12-07 01:20:14 +00:00
|
|
|
|
|
|
|
=head1 COPYRIGHT AND LICENSE
|
|
|
|
|
2015-12-07 01:27:13 +00:00
|
|
|
See COPYRIGHT.md and LICENSE.md in the main distribution of this software.
|
2015-12-07 01:20:14 +00:00
|
|
|
|
2015-12-07 01:27:13 +00:00
|
|
|
License: AGPLv3-or-later
|
2015-12-07 01:20:14 +00:00
|
|
|
|
|
|
|
=cut
|