X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FBudgets.pm;h=005bba8d176629a9c015c7ce9117a3670a5da066;hb=fe99800a2e39fba1c6369bdfe3f600119308514a;hp=3c3c4c3e409b0e8bb7b3fb4e7a10f5c04366b4b2;hpb=4747ea7462c04770484386538b1594c1760bc75b;p=koha_fer diff --git a/C4/Budgets.pm b/C4/Budgets.pm index 3c3c4c3e40..005bba8d17 100644 --- a/C4/Budgets.pm +++ b/C4/Budgets.pm @@ -13,11 +13,12 @@ package C4::Budgets; # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; +#use warnings; FIXME - Bug 2505 use C4::Context; use C4::Dates qw(format_date format_date_in_iso); use C4::SQLHelper qw<:all>; @@ -39,7 +40,9 @@ BEGIN { &ModBudget &DelBudget &GetBudgetSpent + &GetBudgetOrdered &GetPeriodsCount + &GetChildBudgetsSpent &GetBudgetPeriod &GetBudgetPeriods @@ -74,6 +77,10 @@ BEGIN { # ----------------------------BUDGETS.PM-----------------------------"; +=head1 FUNCTIONS ABOUT BUDGETS + +=cut + sub HideCols { my ( $authcat, @hide_cols ) = @_; my $dbh = C4::Context->dbh; @@ -300,9 +307,26 @@ sub GetBudgetSpent { my ($budget_id) = @_; my $dbh = C4::Context->dbh; my $sth = $dbh->prepare(qq| - SELECT SUM(ecost * quantity ) AS sum FROM aqorders + SELECT SUM(ecost * quantity) AS sum FROM aqorders WHERE budget_id = ? AND - datecancellationprinted IS NULL + quantityreceived > 0 AND + datecancellationprinted IS NULL + |); + + $sth->execute($budget_id); + my $sum = $sth->fetchrow_array; + return $sum; +} + +# ------------------------------------------------------------------- +sub GetBudgetOrdered { + my ($budget_id) = @_; + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare(qq| + SELECT SUM(ecost * quantity) AS sum FROM aqorders + WHERE budget_id = ? AND + quantityreceived = 0 AND + datecancellationprinted IS NULL |); $sth->execute($budget_id); @@ -318,6 +342,7 @@ sub GetBudgetPermDropbox { $labels{'1'} = 'Owner'; $labels{'2'} = 'Library'; my $radio = CGI::scrolling_list( + -id => 'budget_permission', -name => 'budget_permission', -values => [ '0', '1', '2' ], -default => $perm, @@ -611,24 +636,13 @@ sub DelBudget { return $rc; } -=back - -=head2 FUNCTIONS ABOUT BUDGETS -=over 2 +=head2 GetBudget -=cut - -=head3 GetBudget - -=over 4 - -&GetBudget($budget_id); + &GetBudget($budget_id); get a specific budget -=back - =cut # ------------------------------------------------------------------- @@ -646,15 +660,38 @@ sub GetBudget { return $result; } -=head3 GetBudgets +=head2 GetBudgets -=over 4 - -&GetBudgets($filter, $order_by); + &GetBudgets($filter, $order_by); gets all budgets -=back +=cut + +# ------------------------------------------------------------------- +sub GetChildBudgetsSpent { + my ( $budget_id ) = @_; + my $dbh = C4::Context->dbh; + my $query = " + SELECT * + FROM aqbudgets + WHERE budget_parent_id=? + "; + my $sth = $dbh->prepare($query); + $sth->execute( $budget_id ); + my $result = $sth->fetchall_arrayref({}); + my $total_spent = GetBudgetSpent($budget_id); + if ($result){ + $total_spent += GetChildBudgetsSpent($_->{"budget_id"}) foreach @$result; + } + return $total_spent; +} + +=head2 GetChildBudgetsSpent + + &GetChildBudgetsSpent($budget-id); + +gets the total spent of the level and sublevels of $budget_id =cut @@ -666,9 +703,9 @@ sub GetBudgets { # ------------------------------------------------------------------- -=head3 GetCurrencies +=head2 GetCurrencies -@currencies = &GetCurrencies; + @currencies = &GetCurrencies; Returns the list of all known currencies. @@ -704,7 +741,7 @@ sub GetCurrency { return $r; } -=head3 ModCurrencies +=head2 ModCurrencies &ModCurrencies($currency, $newrate); @@ -725,15 +762,14 @@ sub ModCurrencies { # ------------------------------------------------------------------- -=head3 ConvertCurrency +=head2 ConvertCurrency -$foreignprice = &ConvertCurrency($currency, $localprice); + $foreignprice = &ConvertCurrency($currency, $localprice); Converts the price C<$localprice> to foreign currency C<$currency> by dividing by the exchange rate, and returns the result. -If no exchange rate is found,e is one -to one. +If no exchange rate is found, e is one to one. =cut @@ -754,9 +790,12 @@ sub ConvertCurrency { return ( $price / $cur ); } -=item - returns an array containing fieldname followed by PRI as value if PRIMARY Key +=head2 _columns + +returns an array containing fieldname followed by PRI as value if PRIMARY Key + =cut + sub _columns(;$) { my $tablename=shift||"aqbudgets"; return @{C4::Context->dbh->selectcol_arrayref("SHOW columns from $tablename",{Columns=>[1,4]})}; @@ -787,10 +826,8 @@ END { } # module clean-up code here (global destructor) 1; __END__ -=back - =head1 AUTHOR -Koha Developement team +Koha Development Team =cut