modules/org.openbravo.service.datasource/src-db/database/model/triggers/OBSERDS_DATASOURCE_FIELD_TRG.xml
author Harpreet Singh <harpreet@openbravo.com>
Fri, 10 Dec 2010 19:47:45 +0100
changeset 9076 c4f1a5c7d7c2
child 10772 802557f42def
permissions -rw-r--r--
Added 3.0 modules to modules dir and changed the VERSION number
harpreet@9076
     1
<?xml version="1.0"?>
harpreet@9076
     2
  <database name="TRIGGER OBSERDS_DATASOURCE_FIELD_TRG">
harpreet@9076
     3
    <trigger name="OBSERDS_DATASOURCE_FIELD_TRG" table="OBSERDS_DATASOURCE_FIELD" fires="before" insert="true" update="true" delete="true" foreach="row">
harpreet@9076
     4
      <body><![CDATA[
harpreet@9076
     5
harpreet@9076
     6
/*************************************************************************
harpreet@9076
     7
* The contents of this file are subject to the Openbravo  Public  License
harpreet@9076
     8
* Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
harpreet@9076
     9
* Version 1.1  with a permitted attribution clause; you may not  use this
harpreet@9076
    10
* file except in compliance with the License. You  may  obtain  a copy of
harpreet@9076
    11
* the License at http://www.openbravo.com/legal/license.html
harpreet@9076
    12
* Software distributed under the License  is  distributed  on  an "AS IS"
harpreet@9076
    13
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
harpreet@9076
    14
* License for the specific  language  governing  rights  and  limitations
harpreet@9076
    15
* under the License.
harpreet@9076
    16
* The Original Code is Openbravo ERP.
harpreet@9076
    17
* The Initial Developer of the Original Code is Openbravo SLU
harpreet@9076
    18
* All portions are Copyright (C) 2010 Openbravo SLU
harpreet@9076
    19
* All Rights Reserved.
harpreet@9076
    20
* Contributor(s):  ______________________________________.
harpreet@9076
    21
************************************************************************/
harpreet@9076
    22
  devTemplate NUMBER;
harpreet@9076
    23
  devModule   CHAR(1);
harpreet@9076
    24
  currentDSID  VARCHAR2(32);
harpreet@9076
    25
  vAux NUMBER;
harpreet@9076
    26
harpreet@9076
    27
BEGIN
harpreet@9076
    28
    
harpreet@9076
    29
    IF AD_isTriggerEnabled()='N' THEN RETURN;
harpreet@9076
    30
    END IF;
harpreet@9076
    31
harpreet@9076
    32
     
harpreet@9076
    33
  IF (UPDATING OR INSERTING) THEN
harpreet@9076
    34
    currentDSID := :NEW.OBSERDS_DATASOURCE_ID;
harpreet@9076
    35
  ELSE
harpreet@9076
    36
    currentDSID := :OLD.OBSERDS_DATASOURCE_ID;
harpreet@9076
    37
  END IF;
harpreet@9076
    38
harpreet@9076
    39
  SELECT COUNT(*)
harpreet@9076
    40
    INTO devTemplate
harpreet@9076
    41
    FROM AD_MODULE M, OBSERDS_DATASOURCE D
harpreet@9076
    42
   WHERE IsInDevelopment = 'Y'
harpreet@9076
    43
     AND Type = 'T' AND M.AD_MODULE_ID=D.AD_MODULE_ID AND
harpreet@9076
    44
     D.OBSERDS_DATASOURCE_ID = currentDSID;
harpreet@9076
    45
harpreet@9076
    46
  SELECT M.IsInDevelopment
harpreet@9076
    47
    INTO devModule
harpreet@9076
    48
    FROM AD_MODULE M, OBSERDS_DATASOURCE D
harpreet@9076
    49
   WHERE M.AD_MODULE_ID=D.AD_MODULE_ID AND
harpreet@9076
    50
     D.OBSERDS_DATASOURCE_ID = currentDSID;
harpreet@9076
    51
harpreet@9076
    52
    IF (UPDATING AND devTemplate=0 AND devModule='N') THEN
harpreet@9076
    53
      RAISE_APPLICATION_ERROR(-20532, 'Cannot update an object in a module not in developement and without an active template');
harpreet@9076
    54
    END IF;
harpreet@9076
    55
harpreet@9076
    56
  IF ((DELETING OR INSERTING) AND devModule='N') THEN
harpreet@9076
    57
    RAISE_APPLICATION_ERROR(-20533, 'Cannot insert/delete objects in a module not in development.');
harpreet@9076
    58
  END IF;
harpreet@9076
    59
harpreet@9076
    60
END OBSERDS_DATASOURCE_FIELD_TRG
harpreet@9076
    61
]]></body>
harpreet@9076
    62
    </trigger>
harpreet@9076
    63
  </database>