trigger tweak
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 26 Jul 2005 16:44:37 +0000 (16:44 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 26 Jul 2005 16:44:37 +0000 (16:44 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1490 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/090.schema.action.sql

index 25e2ea6..bcb0a3c 100644 (file)
@@ -88,11 +88,13 @@ CREATE OR REPLACE VIEW action.billable_cirulations AS
 
 CREATE OR REPLACE FUNCTION action.circulation_claims_returned () RETURNS TRIGGER AS $$
 BEGIN
-       IF NEW.stop_fines = 'CLAIMSRETURNED' THEN
-               UPDATE actor.usr SET claims_returned_count = claims_returned_count + 1 WHERE id = NEW.usr;
-       END IF;
-       IF NEW.stop_fines = 'LOST' THEN
-               UPDATE asset.copy SET status = 3 WHERE id = NEW.target_copy;
+       IF OLD.stop_fines IS NULL OR OLD.stop_fines <> NEW.stop_fines THEN
+               IF NEW.stop_fines = 'CLAIMSRETURNED' THEN
+                       UPDATE actor.usr SET claims_returned_count = claims_returned_count + 1 WHERE id = NEW.usr;
+               END IF;
+               IF NEW.stop_fines = 'LOST' THEN
+                       UPDATE asset.copy SET status = 3 WHERE id = NEW.target_copy;
+               END IF;
        END IF;
        RETURN NEW;
 END;