src-db/database/model/triggers/AD_WINDOW_TRG.xml
author Juan Pablo Aroztegi <juanpablo.aroztegi@openbravo.com>
Thu, 24 Apr 2008 19:34:53 +0000
changeset 771 f0f606b4acf4
parent 756 ae11e4610537
child 778 6150609a1a0a
permissions -rw-r--r--
Update database files with the correct license
adrian@94
     1
<?xml version="1.0"?>
adrian@94
     2
  <database name="TRIGGER AD_WINDOW_TRG">
adrian@94
     3
    <trigger name="AD_WINDOW_TRG" table="AD_WINDOW" fires="after" insert="true" update="true" delete="false" foreach="row">
gorkaion@239
     4
      <body><![CDATA[
juanpablo@771
     5
    /*************************************************************************
juanpablo@771
     6
    * The contents of this file are subject to the Compiere Public
juanpablo@771
     7
    * License 1.1 ("License"); You may not use this file except in
juanpablo@771
     8
    * compliance with the License. You may obtain a copy of the License in
juanpablo@771
     9
    * the legal folder of your Openbravo installation.
gorkaion@239
    10
adrian@94
    11
    * Software distributed under the License is distributed on an
adrian@94
    12
    * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
adrian@94
    13
    * implied. See the License for the specific language governing rights
juanpablo@771
    14
adrian@94
    15
    * and limitations under the License.
juanpablo@771
    16
    * The Original Code is  Compiere  ERP \&  Business Solution
juanpablo@771
    17
    * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
juanpablo@771
    18
adrian@94
    19
    * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke,
adrian@94
    20
    * parts created by ComPiere are Copyright (C) ComPiere, Inc.;
adrian@94
    21
    * All Rights Reserved.
adrian@94
    22
    * Contributor(s): Openbravo SL
juanpablo@771
    23
juanpablo@771
    24
    * Contributions are Copyright (C) 1999-2008 Openbravo, S.L
juanpablo@771
    25
    *
juanpablo@771
    26
    * Specifically, this derivative work is based upon the following Compiere
juanpablo@771
    27
    * file and version.
adrian@94
    28
    *************************************************************************
adrian@94
    29
    * $Id: AD_Window_Trg.sql,v 1.2 2002/08/26 05:23:32 jjanke Exp $
adrian@94
    30
    ***
adrian@94
    31
    * Title: Window Changes
adrian@94
    32
    * Description:
adrian@94
    33
    *   - Transaltion
adrian@94
    34
    *   - Sync Name (Workflow, Menu)
adrian@94
    35
    *   - Active State (Menu)
adrian@94
    36
    ************************************************************************/
adrian@94
    37
    BEGIN
adrian@94
    38
    -- Insert AD_Window Trigger
adrian@94
    39
    --  for Translation
adrian@94
    40
    --  Access
adrian@94
    41
    IF INSERTING
adrian@94
    42
    THEN
adrian@94
    43
    --  Create Translation Row
adrian@94
    44
  INSERT
adrian@94
    45
  INTO AD_Window_Trl
adrian@94
    46
    (
adrian@94
    47
      AD_Window_ID, AD_Language, AD_Client_ID,
adrian@94
    48
      AD_Org_ID, IsActive, Created,
adrian@94
    49
      CreatedBy, Updated, UpdatedBy,
adrian@94
    50
      Name, Description, Help,
adrian@94
    51
      IsTranslated
adrian@94
    52
    )
adrian@94
    53
  SELECT :new.AD_Window_ID,
adrian@94
    54
    AD_Language, :new.AD_Client_ID, :new.AD_Org_ID,
adrian@94
    55
    :new.IsActive, :new.Created, :new.CreatedBy,
adrian@94
    56
    :new.Updated, :new.UpdatedBy, :new.Name,
adrian@94
    57
    :new.Description, :new.Help, 'N'
adrian@94
    58
  FROM AD_Language
adrian@94
    59
  WHERE IsActive='Y'
adrian@94
    60
    AND IsSystemLanguage='Y';
adrian@94
    61
  -- Access for all
adrian@94
    62
  INSERT
adrian@94
    63
  INTO AD_Window_Access
adrian@94
    64
    (
adrian@94
    65
      AD_Window_ID, AD_Role_ID, AD_Client_ID,
adrian@94
    66
      AD_Org_ID, IsActive, Created,
adrian@94
    67
      CreatedBy, Updated, UpdatedBy,
adrian@94
    68
      IsReadWrite
adrian@94
    69
    )
adrian@94
    70
  SELECT DISTINCT :new.AD_Window_ID,
adrian@94
    71
    r.AD_Role_ID, r.AD_CLIENT_ID, r.AD_ORG_ID,
antonio@735
    72
     'Y', now(), 0,
antonio@735
    73
    now(), 0,  'Y'
adrian@94
    74
  FROM AD_Role r
adrian@94
    75
   WHERE isManual='N';
adrian@94
    76
 END IF;
adrian@94
    77
 -- Inserting
adrian@94
    78
 -- AD_Window update trigger
adrian@94
    79
 --  synchronize name,...
adrian@94
    80
 IF UPDATING THEN
gorkaion@239
    81
  IF(COALESCE(:old.Name, '.') <> COALESCE(:NEW.Name, '.')
gorkaion@239
    82
  OR COALESCE(:old.Description, '.') <> COALESCE(:NEW.Description, '.')
gorka@367
    83
  OR COALESCE(:old.Help, '.') <> COALESCE(:NEW.Help, '.'))
adrian@94
    84
 THEN
gorka@367
    85
    IF (COALESCE(:old.IsActive, '.') <> COALESCE(:NEW.IsActive, '.')) THEN
gorka@367
    86
        -- Update Menu
gorka@367
    87
        UPDATE AD_Menu
gorka@367
    88
          SET IsActive=:new.IsActive,
gorka@367
    89
          Name=:new.Name,
gorka@367
    90
          Description=:new.Description
gorka@367
    91
        WHERE AD_Window_ID=:new.AD_Window_ID;
gorka@367
    92
        -- Update Workflow
gorka@367
    93
        UPDATE AD_WF_Node
gorka@367
    94
          SET IsActive=:new.IsActive
gorka@367
    95
        WHERE AD_Window_ID=:new.AD_Window_ID;
gorka@367
    96
        UPDATE AD_WF_Node
gorka@367
    97
          SET Name=:new.Name,
gorka@367
    98
          Description=:new.Description,
gorka@367
    99
          Help=:new.Help
gorka@367
   100
        WHERE AD_Window_ID=:new.AD_Window_ID
gorka@367
   101
          AND IsCentrallyMaintained='Y';
gorka@367
   102
    END IF;
antonio@737
   103
adrian@94
   104
    -- Translation
adrian@94
   105
    UPDATE AD_Window_Trl
adrian@94
   106
      SET IsTranslated='N',
antonio@735
   107
      Updated=now()
adrian@94
   108
    WHERE AD_Window_ID=:new.AD_Window_ID;
adrian@94
   109
  END IF;
adrian@94
   110
 END IF;
adrian@94
   111
-- Updating
antonio@735
   112
END AD_WINDOW_TRG
gorkaion@239
   113
]]></body>
adrian@94
   114
    </trigger>
adrian@94
   115
  </database>