src-db/database/model/triggers/C_REMITTANCE_TRG.xml
author Juan Pablo Aroztegi <juanpablo.aroztegi@openbravo.com>
Wed, 03 Sep 2008 17:55:37 +0000
changeset 1605 8a0fe0193bef
parent 756 ae11e4610537
child 2078 cf88ca44cdd2
permissions -rw-r--r--
Merge r2.5x intro trunk
<?xml version="1.0"?>
  <database name="TRIGGER C_REMITTANCE_TRG">
    <trigger name="C_REMITTANCE_TRG" table="C_REMITTANCE" fires="before" insert="true" update="true" delete="true" foreach="row">
      <body><![CDATA[





/*************************************************************************
* The contents of this file are subject to the Openbravo  Public  License
* Version  1.0  (the  "License"),  being   the  Mozilla   Public  License
* Version 1.1  with a permitted attribution clause; you may not  use this
* file except in compliance with the License. You  may  obtain  a copy of
* the License at http://www.openbravo.com/legal/license.html
* Software distributed under the License  is  distributed  on  an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific  language  governing  rights  and  limitations
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SL
* All portions are Copyright (C) 2001-2006 Openbravo SL
* All Rights Reserved.
* Contributor(s):  ______________________________________.
************************************************************************/
/*************************************************************************
* Title: Check in deleting, invoice not processed
************************************************************************/
v_DateNull DATE := TO_DATE('31-12-9999','DD-MM-YYYY');
BEGIN
  -- If remittance is processed, is not allowed to change
  IF (UPDATING) THEN
    IF (:OLD.processed = 'Y' AND ((COALESCE (:OLD.documentno, '')!= COALESCE (:NEW.documentno, ''))
             OR (COALESCE (:OLD.NAME, '') != COALESCE (:NEW.NAME, ''))
             OR (COALESCE (:OLD.datetrx, v_DateNull)!=COALESCE (:NEW.datetrx, v_DateNull))
             OR (COALESCE (:OLD.c_bankaccount_id, '0')!= COALESCE (:NEW.c_bankaccount_id, '0'))
             OR (COALESCE (:OLD.duedate, v_DateNull)!= COALESCE (:NEW.duedate, v_DateNull))
             OR (COALESCE (:OLD.C_REMITTANCE_TYPE_ID,'0') != COALESCE (:NEW.C_REMITTANCE_TYPE_ID,'0'))
             OR ((COALESCE (:OLD.c_settlement_id, '0')!= COALESCE (:NEW.c_settlement_id, '0')) AND :NEW.processed!='N')
             OR ((COALESCE (:OLD.c_dp_management_id, '0') != COALESCE (:NEW.c_dp_management_id, '0')) AND :NEW.processed!='N')
             OR (COALESCE(:old.AD_ORG_ID, '0') <> COALESCE(:new.AD_ORG_ID, '0'))
             OR (COALESCE(:old.AD_CLIENT_ID, '0') <> COALESCE(:new.AD_CLIENT_ID, '0'))
            )
       ) THEN
      RAISE_APPLICATION_ERROR(-20501, 'Document processed/posted');
    END IF;
  END IF;

  IF (INSERTING) THEN
    IF (:NEW.processed = 'Y') THEN
      RAISE_APPLICATION_ERROR(-20501, 'Document processed/posted');
    END IF;
  END IF;

  IF (DELETING) THEN
    IF (:OLD.processed = 'Y') THEN
      RAISE_APPLICATION_ERROR(-20501, 'Document processed/posted');
    END IF;
  END IF;
END C_REMITTANCE_TRG
]]></body>
    </trigger>
  </database>