diff options
-rw-r--r-- | LedgerSMB/Form.pm | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/LedgerSMB/Form.pm b/LedgerSMB/Form.pm index 88773934..e205c0de 100644 --- a/LedgerSMB/Form.pm +++ b/LedgerSMB/Form.pm @@ -1071,6 +1071,15 @@ qq|<button class="submit" type="submit" name="action" value="$name" accesskey="$ # Database routines used throughout +=item $form->db_init($myconfig); + +Connect to the database that $myconfig is set to use and initialise the base +parameters. The connection handle becomes $form->{dbh} and +$form->{custom_db_fields} is populated. The connection initiated has +autocommit disabled. + +=cut + sub db_init { my ( $self, $myconfig ) = @_; $self->{dbh} = $self->dbconnect_noauto($myconfig) || $self->dberror(); @@ -1198,6 +1207,12 @@ sub run_custom_queries { @rc; } +=item $form->dbconnect($myconfig); + +Returns an autocommit connection to the database specified in $myconfig. + +=cut + sub dbconnect { my ( $self, $myconfig ) = @_; @@ -1217,6 +1232,12 @@ sub dbconnect { $dbh; } +=item $form->dbconnect_noauto($myconfig); + +Returns a non-autocommit connection to the database specified in $myconfig. + +=cut + sub dbconnect_noauto { my ( $self, $myconfig ) = @_; @@ -1278,6 +1299,16 @@ sub update_balance { } } +=item $form->update_exchangerate($dbh, $curr, $transdate, $buy, $sell); + +Updates the exchange rates $buy and $sell for the given $currency on $transdate. +If there is not yet an exchange rate for $currency on $transdate, an entry is +inserted. This returns without doing anything if $curr eq ''. + +$dbh is not used, favouring $self->{dbh}. + +=cut + sub update_exchangerate { my ( $self, $dbh, $curr, $transdate, $buy, $sell ) = @_; @@ -1336,6 +1367,16 @@ sub update_exchangerate { } +=item $form->save_exchangerate($myconfig, $currency, $transdate, $rate, $fld); + +Saves the exchange rate $rate for the given $currency on $transdate for the +provided purpose in $fld. $fld can be either 'buy' or 'sell'. + +$myconfig is not used. $self->update_exchangerate is used for the majority of +the work. + +=cut + sub save_exchangerate { my ( $self, $myconfig, $currency, $transdate, $rate, $fld ) = @_; @@ -1349,6 +1390,16 @@ sub save_exchangerate { } +=item $form->get_exchangerate($dbh, $curr, $transdate, $fld); + +Returns the exchange rate in relation to the default currency for $currency on +$transdate for the purpose indicated by $fld. $fld can be either 'buy' or +'sell' to get usable results. + +$dbh is not used, favouring $self->{dbh}. + +=cut + sub get_exchangerate { my ( $self, $dbh, $curr, $transdate, $fld ) = @_; @@ -1370,6 +1421,16 @@ sub get_exchangerate { $exchangerate; } +=item $form->check_exchangerate($myconfig, $currency, $transdate, $fld); + +Returns some true value when an entry for $currency on $transdate is true for +the purpose indicated by $fld. $fld can be either 'buy' or 'sell' to get +usable results. Returns false if $transdate is not set. + +$myconfig is not used. + +=cut + sub check_exchangerate { my ( $self, $myconfig, $currency, $transdate, $fld ) = @_; @@ -1382,7 +1443,7 @@ sub check_exchangerate { WHERE curr = ? AND transdate = ?|; my $sth = $self->{dbh}->prepare($query); - $sth->execute( $currenct, $transdate ); + $sth->execute( $currency, $transdate ); my ($exchangerate) = $sth->fetchrow_array; $sth->finish; |