Bug 30194: (follow-up) Remove invalid tests
[koha-ffzg.git] / C4 / Budgets.pm
index 888bd7b..9624650 100644 (file)
@@ -18,11 +18,13 @@ package C4::Budgets;
 # along with Koha; if not, see <http://www.gnu.org/licenses>.
 
 use Modern::Perl;
+use JSON;
 use C4::Context;
 use Koha::Database;
 use Koha::Patrons;
 use Koha::Acquisition::Invoice::Adjustments;
 use C4::Acquisition;
+use C4::Log qw(logaction);
 
 our (@ISA, @EXPORT_OK);
 BEGIN {
@@ -640,7 +642,23 @@ sub AddBudget {
     undef $budget->{budget_encumb}   if defined $budget->{budget_encumb}   && $budget->{budget_encumb}   eq '';
     undef $budget->{budget_owner_id} if defined $budget->{budget_owner_id} && $budget->{budget_owner_id} eq '';
     my $resultset = Koha::Database->new()->schema->resultset('Aqbudget');
-    return $resultset->create($budget)->id;
+    my $id = $resultset->create($budget)->id;
+
+    # Log the addition
+    if (C4::Context->preference("AcquisitionLog")) {
+        my $infos = {
+            budget_amount => $budget->{budget_amount},
+            budget_encumb => $budget->{budget_encumb},
+            budget_expend => $budget->{budget_expend}
+        };
+        logaction(
+            'ACQUISITIONS',
+            'CREATE_FUND',
+            $id,
+            encode_json($infos)
+        );
+    }
+    return $id;
 }
 
 # -------------------------------------------------------------------
@@ -650,6 +668,25 @@ sub ModBudget {
     my $result = Koha::Database->new()->schema->resultset('Aqbudget')->find($budget);
     return unless($result);
 
+    # Log this modification
+    if (C4::Context->preference("AcquisitionLog")) {
+        my $infos = {
+            budget_amount_new    => $budget->{budget_amount},
+            budget_encumb_new    => $budget->{budget_encumb},
+            budget_expend_new    => $budget->{budget_expend},
+            budget_amount_old    => $result->budget_amount,
+            budget_encumb_old    => $result->budget_encumb,
+            budget_expend_old    => $result->budget_expend,
+            budget_amount_change => 0 - ($result->budget_amount - $budget->{budget_amount})
+        };
+        logaction(
+            'ACQUISITIONS',
+            'MODIFY_FUND',
+            $budget->{budget_id},
+            encode_json($infos)
+        );
+    }
+
     undef $budget->{budget_encumb}   if defined $budget->{budget_encumb}   && $budget->{budget_encumb}   eq '';
     undef $budget->{budget_owner_id} if defined $budget->{budget_owner_id} && $budget->{budget_owner_id} eq '';
     $result = $result->update($budget);
@@ -663,6 +700,14 @@ sub DelBudget {
        my $dbh         = C4::Context->dbh;
        my $sth         = $dbh->prepare("delete from aqbudgets where budget_id=?");
        my $rc          = $sth->execute($budget_id);
+    # Log the deletion
+    if (C4::Context->preference("AcquisitionLog")) {
+        logaction(
+            'ACQUISITIONS',
+            'DELETE_FUND',
+            $budget_id
+        );
+    }
        return $rc;
 }