From 8d2d0e349fb413388f74b482a4b9917c16beb2d8 Mon Sep 17 00:00:00 2001 From: Sagar Date: Thu, 14 Jun 2012 14:09:23 +0530 Subject: [PATCH] Bug 7571 Maintain exchange rate history --- admin/currency.pl | 25 +++++++++++++++++++- installer/data/mysql/updatedatabase.pl | 7 +++++ .../prog/en/modules/admin/currency.tt | 15 ++++++++++++ 3 files changed, 46 insertions(+), 1 deletions(-) diff --git a/admin/currency.pl b/admin/currency.pl index e24f6b6..1645d57 100755 --- a/admin/currency.pl +++ b/admin/currency.pl @@ -156,7 +156,7 @@ sub delete_confirm { return; } -sub add_form { +sub add_form { my $curr = shift; $template->param( add_form => 1 ); @@ -175,6 +175,21 @@ sub add_form { $template->param( 'timestamp' => format_date($date) ); } + my $dbh = C4::Context->dbh; + my $query = " + SELECT currency,timestamp,rate + FROM ex_rates where currency=?; + "; + my $sth = $dbh->prepare($query); + $sth->execute($curr); + my @results = (); + while ( my $data = $sth->fetchrow_hashref ) { + push( @results, $data ); + } + $template->param( + ex_result => \@results, + ); + return; } @@ -188,6 +203,13 @@ sub add_validate { currency => $input->param('currency'), }; + $dbh->do( +q|INSERT INTO ex_rates (currency, rate, timestamp) VALUES (?,?,now()) |, + {}, + $rec->{currency}, + $rec->{rate} + ); + if ( $rec->{active} == 1 ) { $dbh->do('UPDATE currency SET active = 0'); } @@ -204,6 +226,7 @@ q|UPDATE currency SET rate = ?, symbol = ?, active = ? WHERE currency = ? |, $rec->{active}, $rec->{currency} ); + } else { $dbh->do( q|INSERT INTO currency (currency, rate, symbol, active) VALUES (?,?,?,?) |, diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index dbbdee3..e3e3e81 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -5308,6 +5308,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = "3.09.00.XXX"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do("create table ex_rates(currency varchar(10) not null REFERENCES currency(currency) ON UPDATE CASCADE ON DELETE CASCADE,rate float(15,5) default null,timestamp timestamp not null,UNIQUE(currency,timestamp));"); + print "Upgrade to $DBversion done (Insert currency details into ex_rates for exchage rate history)\n"; + SetVersion ($DBversion); +} + =head1 FUNCTIONS =head2 TableExists($table) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt index d2d0597..310f01c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt @@ -125,6 +125,21 @@ + [% IF ( searchfield ) %] +

Exchange rates History [% searchfield %]

+ + + + + + [% FOREACH loo IN ex_result %] + + + + + [% END %] +
DateRate
[% loo.timestamp %][% loo.rate %]
+ [% END %] [% END %] [% IF ( delete_confirm ) %] -- 1.6.4.2