|
Lines 45-51
BEGIN {
Link Here
|
| 45 |
&GetBudgetOrdered |
45 |
&GetBudgetOrdered |
| 46 |
&GetBudgetName |
46 |
&GetBudgetName |
| 47 |
&GetPeriodsCount |
47 |
&GetPeriodsCount |
| 48 |
&GetChildBudgetsSpent |
48 |
GetBudgetHierarchySpent |
|
|
49 |
GetBudgetHierarchyOrdered |
| 49 |
|
50 |
|
| 50 |
&GetBudgetUsers |
51 |
&GetBudgetUsers |
| 51 |
&ModBudgetUsers |
52 |
&ModBudgetUsers |
|
Lines 555-589
sub GetBudgetHierarchy {
Link Here
|
| 555 |
last if $children == 0; |
556 |
last if $children == 0; |
| 556 |
} |
557 |
} |
| 557 |
|
558 |
|
| 558 |
# add budget-percent and allocation, and flags for html-template |
|
|
| 559 |
foreach my $r (@sort) { |
| 560 |
my $subs_href = $r->{'child'}; |
| 561 |
my @subs_arr = (); |
| 562 |
if ( defined $subs_href ) { |
| 563 |
@subs_arr = @{$subs_href}; |
| 564 |
} |
| 565 |
|
| 566 |
my $moo = $r->{'budget_code_indent'}; |
| 567 |
$moo =~ s/\ /\ \;/g; |
| 568 |
$r->{'budget_code_indent'} = $moo; |
| 569 |
|
| 570 |
$moo = $r->{'budget_name_indent'}; |
| 571 |
$moo =~ s/\ /\ \;/g; |
| 572 |
$r->{'budget_name_indent'} = $moo; |
| 573 |
|
| 574 |
$r->{'budget_spent'} = GetBudgetSpent( $r->{'budget_id'} ); |
| 575 |
$r->{budget_ordered} = GetBudgetOrdered( $r->{budget_id} ); |
| 576 |
|
559 |
|
| 577 |
$r->{budget_spent_sublevels} = 0; |
560 |
foreach my $budget (@sort) { |
| 578 |
$r->{budget_ordered_sublevels} = 0; |
561 |
$budget->{budget_spent} = GetBudgetSpent( $budget->{budget_id} ); |
| 579 |
# foreach sub-levels |
562 |
$budget->{budget_ordered} = GetBudgetOrdered( $budget->{budget_id} ); |
| 580 |
foreach my $sub (@subs_arr) { |
563 |
$budget->{total_spent} = GetBudgetHierarchySpent( $budget->{budget_id} ); |
| 581 |
my $sub_budget = GetBudget($sub); |
564 |
$budget->{total_ordered} = GetBudgetHierarchyOrdered( $budget->{budget_id} ); |
| 582 |
$r->{budget_spent_sublevels} += GetBudgetSpent( $sub_budget->{'budget_id'} ); |
565 |
} |
| 583 |
$r->{budget_ordered_sublevels} += GetBudgetOrdered($sub); |
566 |
return \@sort; |
| 584 |
} |
|
|
| 585 |
} |
| 586 |
return \@sort; |
| 587 |
} |
567 |
} |
| 588 |
|
568 |
|
| 589 |
# ------------------------------------------------------------------- |
569 |
# ------------------------------------------------------------------- |
|
Lines 681-713
sub GetBudgetByCode {
Link Here
|
| 681 |
return $sth->fetchrow_hashref; |
661 |
return $sth->fetchrow_hashref; |
| 682 |
} |
662 |
} |
| 683 |
|
663 |
|
| 684 |
=head2 GetChildBudgetsSpent |
664 |
=head2 GetBudgetHierarchySpent |
| 685 |
|
665 |
|
| 686 |
&GetChildBudgetsSpent($budget-id); |
666 |
my $spent = GetBudgetHierarchySpent( $budget_id ); |
| 687 |
|
667 |
|
| 688 |
gets the total spent of the level and sublevels of $budget_id |
668 |
Gets the total spent of the level and sublevels of $budget_id |
| 689 |
|
669 |
|
| 690 |
=cut |
670 |
=cut |
| 691 |
|
671 |
|
| 692 |
# ------------------------------------------------------------------- |
672 |
sub GetBudgetHierarchySpent { |
| 693 |
sub GetChildBudgetsSpent { |
|
|
| 694 |
my ( $budget_id ) = @_; |
673 |
my ( $budget_id ) = @_; |
| 695 |
my $dbh = C4::Context->dbh; |
674 |
my $dbh = C4::Context->dbh; |
| 696 |
my $query = " |
675 |
my $children_ids = $dbh->selectcol_arrayref(q| |
| 697 |
SELECT * |
676 |
SELECT budget_id |
| 698 |
FROM aqbudgets |
677 |
FROM aqbudgets |
| 699 |
WHERE budget_parent_id=? |
678 |
WHERE budget_parent_id = ? |
| 700 |
"; |
679 |
|, {}, $budget_id ); |
| 701 |
my $sth = $dbh->prepare($query); |
680 |
|
| 702 |
$sth->execute( $budget_id ); |
681 |
my $total_spent = GetBudgetSpent( $budget_id ); |
| 703 |
my $result = $sth->fetchall_arrayref({}); |
682 |
for my $child_id ( @$children_ids ) { |
| 704 |
my $total_spent = GetBudgetSpent($budget_id); |
683 |
$total_spent += GetBudgetHierarchySpent( $child_id ); |
| 705 |
if ($result){ |
|
|
| 706 |
$total_spent += GetChildBudgetsSpent($_->{"budget_id"}) foreach @$result; |
| 707 |
} |
684 |
} |
| 708 |
return $total_spent; |
685 |
return $total_spent; |
| 709 |
} |
686 |
} |
| 710 |
|
687 |
|
|
|
688 |
=head2 GetBudgetHierarchyOrdered |
| 689 |
|
| 690 |
my $ordered = GetBudgetHierarchyOrdered( $budget_id ); |
| 691 |
|
| 692 |
Gets the total ordered of the level and sublevels of $budget_id |
| 693 |
|
| 694 |
=cut |
| 695 |
|
| 696 |
sub GetBudgetHierarchyOrdered { |
| 697 |
my ( $budget_id ) = @_; |
| 698 |
my $dbh = C4::Context->dbh; |
| 699 |
my $children_ids = $dbh->selectcol_arrayref(q| |
| 700 |
SELECT budget_id |
| 701 |
FROM aqbudgets |
| 702 |
WHERE budget_parent_id = ? |
| 703 |
|, {}, $budget_id ); |
| 704 |
|
| 705 |
my $total_ordered = GetBudgetOrdered( $budget_id ); |
| 706 |
for my $child_id ( @$children_ids ) { |
| 707 |
$total_ordered += GetBudgetHierarchyOrdered( $child_id ); |
| 708 |
} |
| 709 |
return $total_ordered; |
| 710 |
} |
| 711 |
|
| 711 |
=head2 GetBudgets |
712 |
=head2 GetBudgets |
| 712 |
|
713 |
|
| 713 |
&GetBudgets($filter, $order_by); |
714 |
&GetBudgets($filter, $order_by); |