diff options
author | Nicolas Vigier <boklm@mageia.org> | 2013-05-13 19:55:02 +0000 |
---|---|---|
committer | Nicolas Vigier <boklm@mageia.org> | 2013-05-13 19:55:02 +0000 |
commit | 18dc74fb078b0e7cf6fcb5d87dddba0bfc44c124 (patch) | |
tree | b553e5e6c2d5ba000df636f08f85c0db2cc47b2d /mga-treasurer | |
parent | bb091a5986bfcb2477bd6b0a45990d02f681585e (diff) | |
download | mgatres-18dc74fb078b0e7cf6fcb5d87dddba0bfc44c124.tar mgatres-18dc74fb078b0e7cf6fcb5d87dddba0bfc44c124.tar.gz mgatres-18dc74fb078b0e7cf6fcb5d87dddba0bfc44c124.tar.bz2 mgatres-18dc74fb078b0e7cf6fcb5d87dddba0bfc44c124.tar.xz mgatres-18dc74fb078b0e7cf6fcb5d87dddba0bfc44c124.zip |
Rename mga-treasurer to mktreasurer
git-svn-id: svn+ssh://svn.mageia.org/svn/soft/mga-treasurer/trunk@8226 5b7c3c08-40e5-403b-9995-ace06908e4af
Diffstat (limited to 'mga-treasurer')
-rwxr-xr-x | mga-treasurer | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/mga-treasurer b/mga-treasurer deleted file mode 100755 index 786246b..0000000 --- a/mga-treasurer +++ /dev/null @@ -1,138 +0,0 @@ -#!/usr/bin/perl -w - -use strict; - -use YAML qw/LoadFile/; -use XML::Simple; -use Template; -use DateTime; -#use Data::Dump qw/dd/; - -my $config_file = '/usr/share/mga-treasurer/config'; -my $config = LoadFile($ENV{MGATRES_CONF} ? $ENV{MGATRES_CONF} : $config_file); -my $etc_config_file = '/etc/mga-treasurer.conf'; -my $etc_config = LoadFile($etc_config_file); - -foreach my $k (keys %{$etc_config}) { - $config->{$k} = $etc_config->{$k}; -} - - -sub donation_category { - my $r = shift; - my @c = grep {$_->{Na} eq 'Donation'} @{$r->{Category}}; - return @c ? $c[0]->{Nb} : undef; -} - -sub party_name { - my ($r, $Nb) = @_; - (grep { $_->{Nb} == $Nb } @{$r->{Party}})[0]->{Na}; -} - -sub subcat_name { - my ($r, $Nb, $Nbc) = @_; - (grep { $_->{Nb} == $Nb && $_->{Nbc} == $Nbc } - @{$r->{Sub_category}})[0]->{Na}; -} - -sub epoch_date { - my ($m, $d, $y) = split /\//, shift; - DateTime->new(day => $d, month => $m, year => $y)->epoch; -} - -sub donations_list { - my $r = shift; - my @res; - my $don_cat = donation_category($r); - my @donations = grep { $_->{Ca} == $don_cat } @{$r->{Transaction}}; - foreach my $don (@donations) { - my %d = ( - amount => $don->{Am}, - date => epoch_date($don->{Dt}), - who => party_name($r, $don->{Pa}), - type => subcat_name($r, $don->{Sca}, $don_cat), - $don->{No} ne '(null)' ? (notes => $don->{No}) : (), - ); - push @res, \%d; - } - return \@res; -} - -sub donations_infos { - my $r = shift; - my %res = ( - donations => donations_list($r), - by_month => {}, - by_year => {}, - total_30 => 0, - ); - foreach my $don (@{$res{donations}}) { - my $dt = DateTime->from_epoch(epoch => $don->{date}); - my $month = $dt->year . '-' . sprintf("%02d", $dt->month); - my $year = $dt->year; - push @{$res{by_month}->{$month}->{donations}}, $don; - $res{by_month}->{$month}->{year} = $year; - $res{by_month}->{$month}->{month} = $dt->month; - push @{$res{by_year}->{$year}->{donations}}, $don; - push @{$res{by_year}->{$year}->{months}}, $month; - if (time - $don->{date} < '2592000') { # last 30 days - $res{total_30} += $don->{amount}; - } - } - foreach my $d ((values $res{by_month}), (values $res{by_year})) { - foreach my $don (@{$d->{donations}}) { - $d->{total} += $don->{amount}; - $d->{type}->{$don->{type}} += $don->{amount}; - } - } - return \%res; -} - -sub process_template { - my ($template, $src, $vars, $dest) = @_; - foreach my $extension (@{$config->{output_format}}) { - next unless -f "$config->{tmpl_dir}/$src.$extension"; - $template->process("$src.$extension", $vars, "$dest.$extension"); - } -} - -sub output_pages { - my ($donations) = @_; - my $template = Template->new( - INCLUDE_PATH => $config->{tmpl_dir}, - OUTPUT_PATH => $config->{out_dir}, - ); - - my $last_update = (stat $config->{grisbi_file})[9]; - foreach my $month (keys $donations->{by_month}) { - my $vars = { - config => $config, - month => $month, - donations => $donations, - }; - process_template($template, 'donations_by_month', $vars, "donations_$month"); - } - - foreach my $year (keys $donations->{by_year}) { - my $vars = { - config => $config, - year => $year, - donations => $donations, - }; - process_template($template, 'donations_by_year', $vars, "donations_$year"); - } - - my $vars = { - config => $config, - donations => $donations, - last_update => $last_update, - }; - process_template($template, 'donations', $vars, 'donations'); - process_template($template, 'index', $vars, 'index'); -} - -my $r = XMLin($config->{grisbi_file}); -my $donations = donations_infos($r); - -output_pages($donations); - |