View | Details | Raw Unified | Return to bug 23195
Collapse All | Expand All

(-)a/C4/Budgets.pm (-13 / +3 lines)
Lines 563-576 sub GetBudgetHierarchy { Link Here
563
        SELECT shipmentcost_budgetid as budget_id,
563
        SELECT shipmentcost_budgetid as budget_id,
564
               SUM(shipmentcost) as shipmentcost
564
               SUM(shipmentcost) as shipmentcost
565
        FROM aqinvoices
565
        FROM aqinvoices
566
        WHERE closedate IS NOT NULL
567
        GROUP BY shipmentcost_budgetid
568
        |, 'budget_id');
569
    my $hr_budget_ordered_shipment = $dbh->selectall_hashref(q|
570
        SELECT shipmentcost_budgetid as budget_id,
571
               SUM(shipmentcost) as shipmentcost
572
        FROM aqinvoices
573
        WHERE closedate IS NULL
574
        GROUP BY shipmentcost_budgetid
566
        GROUP BY shipmentcost_budgetid
575
        |, 'budget_id');
567
        |, 'budget_id');
576
    my $hr_budget_spent_adjustment = $dbh->selectall_hashref(q|
568
    my $hr_budget_spent_adjustment = $dbh->selectall_hashref(q|
Lines 593-616 sub GetBudgetHierarchy { Link Here
593
585
594
    foreach my $budget (@sort) {
586
    foreach my $budget (@sort) {
595
        if ( not defined $budget->{budget_parent_id} ) {
587
        if ( not defined $budget->{budget_parent_id} ) {
596
            _recursiveAdd( $budget, undef, $hr_budget_spent, $hr_budget_spent_shipment, $hr_budget_ordered, $hr_budget_ordered_shipment, $hr_budget_spent_adjustment, $hr_budget_ordered_adjustment );
588
            _recursiveAdd( $budget, undef, $hr_budget_spent, $hr_budget_spent_shipment, $hr_budget_ordered, $hr_budget_spent_adjustment, $hr_budget_ordered_adjustment );
597
        }
589
        }
598
    }
590
    }
599
    return \@sort;
591
    return \@sort;
600
}
592
}
601
593
602
sub _recursiveAdd {
594
sub _recursiveAdd {
603
    my ($budget, $parent, $hr_budget_spent, $hr_budget_spent_shipment, $hr_budget_ordered, $hr_budget_ordered_shipment, $hr_budget_spent_adjustment, $hr_budget_ordered_adjustment ) = @_;
595
    my ($budget, $parent, $hr_budget_spent, $hr_budget_spent_shipment, $hr_budget_ordered, $hr_budget_spent_adjustment, $hr_budget_ordered_adjustment ) = @_;
604
596
605
    foreach my $child (@{$budget->{children}}){
597
    foreach my $child (@{$budget->{children}}){
606
        _recursiveAdd($child, $budget, $hr_budget_spent, $hr_budget_spent_shipment, $hr_budget_ordered, $hr_budget_ordered_shipment, $hr_budget_spent_adjustment, $hr_budget_ordered_adjustment );
598
        _recursiveAdd($child, $budget, $hr_budget_spent, $hr_budget_spent_shipment, $hr_budget_ordered, $hr_budget_spent_adjustment, $hr_budget_ordered_adjustment );
607
    }
599
    }
608
600
609
    $budget->{budget_spent} += $hr_budget_spent->{$budget->{budget_id}}->{budget_spent}               || 0;
601
    $budget->{budget_spent} += $hr_budget_spent->{$budget->{budget_id}}->{budget_spent}               || 0;
610
    $budget->{budget_spent} += $hr_budget_spent_shipment->{$budget->{budget_id}}->{shipmentcost}      || 0;
602
    $budget->{budget_spent} += $hr_budget_spent_shipment->{$budget->{budget_id}}->{shipmentcost}      || 0;
611
    $budget->{budget_spent} += $hr_budget_spent_adjustment->{$budget->{budget_id}}->{adjustments}     || 0;
603
    $budget->{budget_spent} += $hr_budget_spent_adjustment->{$budget->{budget_id}}->{adjustments}     || 0;
612
    $budget->{budget_ordered} += $hr_budget_ordered->{$budget->{budget_id}}->{budget_ordered}         || 0;
604
    $budget->{budget_ordered} += $hr_budget_ordered->{$budget->{budget_id}}->{budget_ordered}         || 0;
613
    $budget->{budget_ordered} += $hr_budget_ordered_shipment->{$budget->{budget_id}}->{shipmentcost}  || 0;
614
    $budget->{budget_ordered} += $hr_budget_ordered_adjustment->{$budget->{budget_id}}->{adjustments} || 0;
605
    $budget->{budget_ordered} += $hr_budget_ordered_adjustment->{$budget->{budget_id}}->{adjustments} || 0;
615
606
616
    $budget->{total_spent} += $budget->{budget_spent};
607
    $budget->{total_spent} += $budget->{budget_spent};
617
- 

Return to bug 23195