@@ -, +, @@ new file: koha-tmpl/intranet-tmpl/prog/en/includes/csv_headers/reports/orders_by_budget.tt new file: koha-tmpl/intranet-tmpl/prog/en/modules/reports/csv/orders_by_budget.tt --- C4/Budgets.pm | 108 ++++++++++---------- .../csv_headers/reports/orders_by_budget.tt | 1 + .../en/modules/reports/csv/orders_by_budget.tt | 12 +++ .../prog/en/modules/reports/orders_by_budget.tt | 42 +++++--- .../prog/en/modules/reports/reports-home.tt | 2 +- reports/orders_by_budget.pl | 97 ++++++++---------- t/db_dependent/Acquisition.t | 8 +- t/db_dependent/Budgets.t | 4 +- 8 files changed, 140 insertions(+), 134 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/csv_headers/reports/orders_by_budget.tt create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/reports/csv/orders_by_budget.tt --- a/C4/Budgets.pm +++ a/C4/Budgets.pm @@ -35,10 +35,9 @@ BEGIN { &GetBudgetByOrderNumber &GetBudgetByCode &GetBudgets - &GetActiveBudgets - &GetBudgetReport + &BudgetsByActivity &GetBudgetsReport - &GetActiveBudgetsReport + &GetBudgetReport &GetBudgetHierarchy &AddBudget &ModBudget @@ -443,6 +442,17 @@ sub GetBudgetPeriod { } # ------------------------------------------------------------------- +=head2 GetBudgetPeriodDescription + + $description = GetBudgetPeriodDescription($budget_id); + + Return value: hashref + + Returns the budget period description for a given budget id. + + Description is fetched from aqbudgetperiods, id is compared aqbudgets. (INNER JOIN on budget_period_id) + +=cut sub GetBudgetPeriodDescription { my ($budget_id) = @_; my $dbh = C4::Context->dbh; @@ -630,6 +640,7 @@ sub DelBudget { } +# ------------------------------------------------------------------- =head2 GetBudget &GetBudget($budget_id); @@ -638,7 +649,6 @@ get a specific budget =cut -# ------------------------------------------------------------------- sub GetBudget { my ( $budget_id ) = @_; my $dbh = C4::Context->dbh; @@ -653,6 +663,8 @@ sub GetBudget { return $result; } +# ------------------------------------------------------------------- + =head2 GetBudgetByOrderNumber &GetBudgetByOrderNumber($ordernumber); @@ -661,7 +673,6 @@ get a specific budget by order number =cut -# ------------------------------------------------------------------- sub GetBudgetByOrderNumber { my ( $ordernumber ) = @_; my $dbh = C4::Context->dbh; @@ -679,9 +690,11 @@ sub GetBudgetByOrderNumber { =head2 GetBudgetReport - &GetBudgetReport(); + &GetBudgetReport( [$budget_id] ); + +Get all orders for a specific budget, without cancelled orders. -Get one specific budget for reports without cancelled baskets. +Returns an array of hashrefs. =cut @@ -689,45 +702,18 @@ Get one specific budget for reports without cancelled baskets. sub GetBudgetReport { my ( $budget_id ) = @_; my $dbh = C4::Context->dbh; - my $query = " + my $query = ' SELECT o.*, b.budget_name FROM aqbudgets b INNER JOIN aqorders o ON b.budget_id = o.budget_id WHERE b.budget_id=? - AND (o.datecancellationprinted IS NULL OR o.datecancellationprinted='0000-00-00') - ORDER BY b.budget_name - "; + AND (o.orderstatus != "cancelled") + ORDER BY b.budget_name'; + my $sth = $dbh->prepare($query); $sth->execute( $budget_id ); - my @results = (); - while ( my $data = $sth->fetchrow_hashref ) { - push( @results, $data ); - } - return @results; -} - -=head2 GetBudgetsReport - - &GetBudgetsReport(); - -Get all budgets for reports without cancelled baskets. -=cut - -# -------------------------------------------------------------------- -sub GetBudgetsReport { - my $dbh = C4::Context->dbh; - my $query = " - SELECT o.*, b.budget_name - FROM aqbudgets b - INNER JOIN aqorders o - ON b.budget_id = o.budget_id - WHERE (o.datecancellationprinted IS NULL OR o.datecancellationprinted='0000-00-00') - ORDER BY b.budget_name - "; - my $sth = $dbh->prepare($query); - $sth->execute; my @results = (); while ( my $data = $sth->fetchrow_hashref ) { push( @results, $data ); @@ -735,11 +721,11 @@ sub GetBudgetsReport { return @results; } -=head2 GetActiveBudgets +=head2 GetBudgetsByActivity - &GetActiveBudgets( $budget_period_active ); + &GetBudgetsByActivity( $budget_period_active ); -Get all active budgets or all inactive budgets, depending of the value +Get all active or inactive budgets, depending of the value of the parameter. 1 = active @@ -748,7 +734,7 @@ of the parameter. =cut # -------------------------------------------------------------------- -sub GetActiveBudgets { +sub GetBudgetsByActivity { my ( $budget_period_active ) = @_; my $dbh = C4::Context->dbh; my $query = " @@ -766,31 +752,45 @@ sub GetActiveBudgets { } return @results; } +# -------------------------------------------------------------------- +=head2 GetBudgetsReport + + &GetBudgetsReport( [$activity] ); -=head2 GetActiveBudgetsReport +Get all but cancelled orders for all funds. - &GetActiveBudgetsReport(); +If the optionnal activity parameter is passed, returns orders for active/inactive budgets only. -Get all active budgets for reports without cancelled baskets. +active = 1 +inactive = 0 + +Returns an array of hashrefs. =cut -# -------------------------------------------------------------------- -sub GetActiveBudgetsReport { +sub GetBudgetsReport { + my ($activity) = @_; my $dbh = C4::Context->dbh; - my $query = " + my $query = ' SELECT o.*, b.budget_name FROM aqbudgetperiods bp INNER JOIN aqbudgets b ON bp.budget_period_id = b.budget_period_id INNER JOIN aqorders o - ON b.budget_id = o.budget_id - WHERE bp.budget_period_active=1 - AND (o.datecancellationprinted IS NULL OR o.datecancellationprinted='0000-00-00') - ORDER BY b.budget_name - "; + ON b.budget_id = o.budget_id '; + if($activity ne ''){ + $query .= 'WHERE bp.budget_period_active=? '; + } + $query .= 'AND (o.orderstatus != "cancelled") + ORDER BY b.budget_name'; + my $sth = $dbh->prepare($query); - $sth->execute; + if($activity ne ''){ + $sth->execute($activity); + } + else{ + $sth->execute; + } my @results = (); while ( my $data = $sth->fetchrow_hashref ) { push( @results, $data ); --- a/koha-tmpl/intranet-tmpl/prog/en/includes/csv_headers/reports/orders_by_budget.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/csv_headers/reports/orders_by_budget.tt @@ -0,0 +1, @@ +Fund[% sep %]Basket[% sep %]Basket by[% sep %]biblionumber[% sep %]Title[% sep %]Currency[% sep %]Vendor Price[% sep %]RRP[% sep %]Budgeted Cost[% sep %]Quantity[% sep %]Total RRP[% sep %]Total Cost[% sep %]Entry Date[% sep %]Date Received[% sep %]Notes --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/csv/orders_by_budget.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/csv/orders_by_budget.tt @@ -0,0 +1,12 @@ +[% INCLUDE csv_headers/reports/orders_by_budget.tt %] +[%- FOREACH row IN rows %] + [%- FOREACH field IN row; + field; + sep IF !loop.last; + END %] +[% END -%] +TOTAL +[%- FOREACH field IN totalrow; + field; + sep IF !loop.last; +END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/orders_by_budget.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reports/orders_by_budget.tt @@ -1,12 +1,12 @@ [% INCLUDE 'doc-head-open.inc' %] -
Budget | +Fund | Basket | -Basket by | +Basket By | Title | Currency | Vendor Price | RRP | -Budgeted cost | +Budgeted Cost | Quantity | Total RRP | -Total cost | -Entry date | -Date received | +Total Cost | +Entry Date | +Date Received | Notes |
---|