adding config.standing_penalty, and links to that from actor.usr_standing_penalty
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 19 Nov 2008 20:34:40 +0000 (20:34 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 19 Nov 2008 20:34:40 +0000 (20:34 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@11270 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/examples/fm_IDL.xml
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/005.schema.actors.sql

index 55ad65f..8872225 100644 (file)
@@ -1695,6 +1695,28 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <link field="lit_form" reltype="has_a" key="code" map="" class="clfm"/>
                </links>
        </class>
+
+       <class id="csp" controller="open-ils.cstore" oils_obj:fieldmapper="config::standing_penalty" oils_persist:tablename="config.standing_penalty">
+               <fields oils_persist:primary="id" oils_persist:sequence="config.standing_penalty_id_seq">
+                       <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
+                       <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
+                       <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
+                       <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
+                       <field name="name" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
+                       <field name="label" oils_obj:array_position="5" oils_persist:virtual="false"  reporter:datatype="text" oils_persist:i18n="true"/>
+                       <field name="block_list" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
+               </fields>
+               <links/>
+        <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
+            <actions>
+                <create permission="CREATE_STANDING_PENALTY" global_required="true"/>
+                <retrieve permission="CREATE_STANDING_PENALTY|UPDATE_STANDING_PENALTY|DELETE_STANDING_PENALTY" global_required="true"/>
+                <update permission="UPDATE_STANDING_PENALTY" global_required="true"/>
+                <delete permission="DELETE_STANDING_PENALTY" global_required="true"/>
+            </actions>
+        </permacrud>
+       </class>
+
        <class id="ccs" controller="open-ils.cstore" oils_obj:fieldmapper="config::copy_status" oils_persist:tablename="config.copy_status">
                <fields oils_persist:primary="id" oils_persist:sequence="config.copy_status_id_seq">
                        <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
@@ -1721,11 +1743,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
                        <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
                        <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
                        <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-                       <field name="penalty_type" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="text"/>
+                       <field name="set_date" oils_obj:array_position="4" oils_persist:virtual="false"  reporter:datatype="timestamp"/>
                        <field name="usr" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
+                       <field name="staff" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
+                       <field name="standing_penalty" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
                </fields>
                <links>
                        <link field="usr" reltype="has_a" key="id" map="" class="au"/>
+                       <link field="staff" reltype="has_a" key="id" map="" class="au"/>
+                       <link field="standing_penalty" reltype="has_a" key="id" map="" class="csp"/>
                </links>
        </class>
        <class id="aua" controller="open-ils.cstore" oils_obj:fieldmapper="actor::user_address" oils_persist:tablename="actor.usr_address" reporter:label="User Address">
index f140b20..caed0b2 100644 (file)
@@ -111,6 +111,18 @@ COMMENT ON TABLE config.standing IS $$
  */
 $$;
 
+CREATE TABLE config.standing_penalty (
+       id              SERIAL  PRIMARY KEY,
+       name            TEXT    NOT NULL UNIQUE,
+       label           TEXT    NOT NULL,
+       block_list      TEXT
+);
+INSERT INTO config.standing_penalty (id,name,label,block_list)
+       VALUES (1,'PATRON_EXCEEDS_FINES','Patron exceeds fine threshold','CIRC|HOLD|RENEW');
+INSERT INTO config.standing_penalty (id,name,label,block_list)
+       VALUES (2,'PATRON_EXCEEDS_OVERDUE_COUNT','Patron exceeds max overdue item threshold','CIRC|HOLD|RENEW');
+SELECT SETVAL('config.standing_penalty_id_seq', 100);
+
 CREATE TABLE config.xml_transform (
        name            TEXT    PRIMARY KEY,
        namespace_uri   TEXT    NOT NULL,
index 90cd5e4..5a105c9 100644 (file)
@@ -145,9 +145,11 @@ CREATE TABLE actor.usr_note (
 CREATE INDEX actor_usr_note_usr_idx ON actor.usr_note (usr);
 
 CREATE TABLE actor.usr_standing_penalty (
-       id              SERIAL  PRIMARY KEY,
-       usr             INT     NOT NULL REFERENCES actor.usr ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
-       penalty_type    TEXT    NOT NULL
+       id                      SERIAL  PRIMARY KEY,
+       usr                     INT     NOT NULL REFERENCES actor.usr (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       standing_penalty        INT     NOT NULL REFERENCES config.standing_penalty (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       staff                   INT     REFERENCES actor.usr (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
+       set_date                TIMESTAMP WITH TIME ZONE        DEFAULT NOW()
 );
 COMMENT ON TABLE actor.usr_standing_penalty IS $$
 /*