modules/org.openbravo.client.kernel/src-db/database/model/triggers/OBCLKER_TEMPLATE_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 OBCLKER_TEMPLATE_TRG">
harpreet@9076
     3
    <trigger name="OBCLKER_TEMPLATE_TRG" table="OBCLKER_TEMPLATE" 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 SL
harpreet@9076
    18
* All portions are Copyright (C) 2010 Openbravo SL
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
  currentModuleID  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
  IF (UPDATING OR INSERTING) THEN
harpreet@9076
    33
    IF :NEW.TEMPLATECLASSPATHLOCATION IS NULL AND :NEW.TEMPLATE IS NULL THEN
harpreet@9076
    34
        RAISE_APPLICATION_ERROR(-20000, '@OBCLKER_TEMPLATE_OR_TEMPLATE_LOCATION_MUST_BE_SET@');
harpreet@9076
    35
    END IF;
harpreet@9076
    36
  END IF;
harpreet@9076
    37
harpreet@9076
    38
  IF (UPDATING) THEN
harpreet@9076
    39
    IF (COALESCE(:NEW.AD_Module_ID , '.') != COALESCE(:OLD.AD_Module_ID , '.')) THEN
harpreet@9076
    40
      SELECT COUNT(*) 
harpreet@9076
    41
        INTO vAux
harpreet@9076
    42
        FROM AD_MODULE
harpreet@9076
    43
       WHERE AD_MODULE_ID = :old.AD_Module_ID
harpreet@9076
    44
        AND isindevelopment = 'N';
harpreet@9076
    45
      IF (vAux!=0) THEN
harpreet@9076
    46
        RAISE_APPLICATION_ERROR(-20000, '@ChangeNotInDevModule@');
harpreet@9076
    47
      END IF;
harpreet@9076
    48
    END IF;
harpreet@9076
    49
  END IF;
harpreet@9076
    50
harpreet@9076
    51
  SELECT COUNT(*)
harpreet@9076
    52
    INTO devTemplate
harpreet@9076
    53
    FROM AD_MODULE
harpreet@9076
    54
   WHERE IsInDevelopment = 'Y'
harpreet@9076
    55
     AND Type = 'T';
harpreet@9076
    56
     
harpreet@9076
    57
  IF (UPDATING OR INSERTING) THEN
harpreet@9076
    58
    currentModuleID := :new.AD_Module_ID;
harpreet@9076
    59
  ELSE
harpreet@9076
    60
    currentModuleID := :old.AD_Module_ID;
harpreet@9076
    61
  END IF;
harpreet@9076
    62
harpreet@9076
    63
  SELECT M.IsInDevelopment
harpreet@9076
    64
    INTO devModule
harpreet@9076
    65
    FROM AD_MODULE M
harpreet@9076
    66
   WHERE M.AD_MODULE_ID = currentModuleID;
harpreet@9076
    67
harpreet@9076
    68
    IF (UPDATING AND devTemplate=0 AND devModule='N') THEN
harpreet@9076
    69
    -- Cannot update an object in a module not in developement and without an active template
harpreet@9076
    70
      RAISE_APPLICATION_ERROR(-20000, '@20532@');
harpreet@9076
    71
    END IF;
harpreet@9076
    72
harpreet@9076
    73
  IF ((DELETING OR INSERTING) AND devModule='N') THEN
harpreet@9076
    74
  -- Cannot insert/delete objects in a module not in development.
harpreet@9076
    75
    RAISE_APPLICATION_ERROR(-20000, '@20533@');
harpreet@9076
    76
  END IF;
harpreet@9076
    77
harpreet@9076
    78
END OBCLKER_TEMPLATE_TRG
harpreet@9076
    79
]]></body>
harpreet@9076
    80
    </trigger>
harpreet@9076
    81
  </database>