Вы находитесь на странице: 1из 8

CREATE TABLE TABS.

CRM_EX_STOCKS ( WH_CODE VARCHAR2(10 BYTE) BIN_ID VARCHAR2(10 BYTE) ITEM_CODE VARCHAR2(10 BYTE) GRN_NO NUMBER(10) ITEM_NO VARCHAR2(20 BYTE), PACK_NO VARCHAR2(12 BYTE), QTY_ON_HAND NUMBER(22) USED_QTY NUMBER(22), SELLING_PRICE NUMBER, STATUS VARCHAR2(10 BYTE) W_STATUS VARCHAR2(10 BYTE) W_EXPRY_DATE DATE, ISSUE_DATE DATE, CHANGE_DATE DATE ENTRY_DATE DATE OP_ID VARCHAR2(10 BYTE) QTY_RECVD NUMBER(22), ITEM_ID NUMBER(10), OTHER_REF VARCHAR2(10 BYTE), LOST_QTY NUMBER(22), CURRENT_ACTION VARCHAR2(10 BYTE), SUBNO VARCHAR2(20 BYTE), RETURNED_DATE DATE, RETURNED_SUBNO VARCHAR2(8 BYTE), VW_CANCEL_CAUSE VARCHAR2(50 BYTE), VEND_W_EXPRY_DATE DATE, ITEM_COST NUMBER(38,2), RIC_NO VARCHAR2(7 BYTE), STAFF_ISSUE VARCHAR2(1 BYTE), SUBSCR_TYPE VARCHAR2(1 BYTE) AREA VARCHAR2(4 BYTE) RECEIPTNO NUMBER(8), FLEX_FLD1 VARCHAR2(256 BYTE), FLEX_FLD2 VARCHAR2(256 BYTE), FLEX_FLD3 VARCHAR2(256 BYTE), FLEX_FLD4 VARCHAR2(256 BYTE), FLEX_FLD5 VARCHAR2(256 BYTE), INVOICE_NO VARCHAR2(20 BYTE), RECEIPT_TYPE VARCHAR2(20 BYTE), RECEIPT_NO NUMBER(20), VOUCH_PIN VARCHAR2(256 BYTE), ORDER_ID NUMBER(13) ) TABLESPACE TABST02 PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 384K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOLOGGING NOCOMPRESS NOCACHE

NOT NOT NOT NOT

NULL, NULL, NULL, NULL,

NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL,

DEFAULT 'G', DEFAULT '0',

NOPARALLEL MONITORING; COMMENT ON COLUMN TABS.CRM_EX_STOCKS.VOUCH_PIN IS 'This column is to hold the en crypted E-Vouchers PIN'; COMMENT ON COLUMN TABS.CRM_EX_STOCKS.ORDER_ID IS 'Order ID'; CREATE INDEX TABS.CRM_EX_STOCKS_X1 ON TABS.CRM_EX_STOCKS (ITEM_NO) LOGGING TABLESPACE TABSX02 PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE INDEX TABS.CRM_EX_STOCKS_X2 ON TABS.CRM_EX_STOCKS (PACK_NO) LOGGING TABLESPACE TABSX02 PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE INDEX TABS.CRM_EX_STOCKS_X3 ON TABS.CRM_EX_STOCKS (ITEM_CODE, ITEM_NO, STATUS) LOGGING TABLESPACE TABSX02 PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 192K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL;

CREATE INDEX TABS.CRM_EX_STOCKS_X4 ON TABS.CRM_EX_STOCKS (RECEIPT_NO) LOGGING TABLESPACE TABSX02 PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE INDEX TABS.CRM_EX_STOCKS_X5 ON TABS.CRM_EX_STOCKS (WH_CODE, RECEIPT_NO) LOGGING TABLESPACE TABSX02 PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 128K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE UNIQUE INDEX TABS.CRM_EX_STOCKS_X6 ON TABS.CRM_EX_STOCKS (ITEM_ID) LOGGING TABLESPACE TABSX07 PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 5M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL; CREATE OR REPLACE TRIGGER TABS."GL_INSERTION_EXSTOCKS_TRIG" AFTER INSERT ON TABS .CRM_EX_STOCKS REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN DECLARE VLOC_CURR VARCHAR2(3); VINT_CURR VARCHAR2(3); VWAREA VARCHAR2(10); --VBILLCODE VARCHAR2(5);

VBILLCODE VARCHAR2(10);----modified by Martha for ASSR#153699---------VITEM_TYPE VARCHAR2(10); VSERVICE_CODE VARCHAR2(10); BEGIN -- To get the item type and service code BEGIN SELECT ITEM_TYPE, SERVICE_CODE INTO VITEM_TYPE, VSERVICE_CODE FROM ITEMS WHERE ITEM_CODE = :NEW.ITEM_CODE; EXCEPTION WHEN NO_DATA_FOUND THEN VITEM_TYPE := NULL; VSERVICE_CODE := NULL; END; -- To get the local and international currencies BEGIN SELECT LOC_CURR,INT_CURR INTO VLOC_CURR,VINT_CURR FROM IVM_INVOICE_SETUP; EXCEPTION WHEN NO_DATA_FOUND THEN VLOC_CURR:= NULL; VINT_CURR:= NULL; END; -- To get the work area BEGIN SELECT WAREA INTO VWAREA FROM ARM_ARCASHIERS WHERE USERNAME = :NEW.OP_ID; EXCEPTION WHEN NO_DATA_FOUND THEN VWAREA := NULL; END; -- To get the bill code BEGIN SELECT BILLCODE INTO VBILLCODE FROM CRM_EQUIPMENT WHERE EQUIPID = NVL(VSERVICE_CODE,'N'); EXCEPTION WHEN NO_DATA_FOUND THEN VBILLCODE := :NEW.ITEM_CODE; END; -- To insert GL records for Stock Issuance IF VITEM_TYPE = 'ITEM' THEN INSERT INTO GLM_RECORDS (TRANSTYPE,TRANSAMOUNT,VOUCHDATE,VOUCHTEXT,MODEPAY,CUS TNO,CONTRNO,FLEX_FLD1,VOUCHREF, CHARGETYPE,BILLCODE,LOGDATE,CATEGORY,TAX_TYPE,WAREA,C URRENCY,TRANSAMOUNT_INT, TARIFF_PROFILE,BILLGROUP) VALUES ('SI-01',:NEW.ITEM_COST,TRUNC(:NEW.ISSUE_DATE),'STKISU ',NULL,NULL,:NEW.OTHER_REF,:NEW.RECEIPT_TYPE '.' :NEW.RECEIPT_NO,NULL, NULL,VBILLCODE,TRUNC(:NEW.ISSUE_DATE),NULL,NULL,VWARE A,VLOC_CURR,NULL, NULL,NULL); ELSIF VITEM_TYPE = 'PACKAGE' THEN INSERT INTO GLM_RECORDS (TRANSTYPE,TRANSAMOUNT,VOUCHDATE,VOUCHTEXT,MODEPAY,CUS TNO,CONTRNO,FLEX_FLD1,VOUCHREF, CHARGETYPE,BILLCODE,LOGDATE,CATEGORY,TAX_TYPE,WAREA,C URRENCY,TRANSAMOUNT_INT,

TARIFF_PROFILE,BILLGROUP) VALUES ('SP-01',:NEW.ITEM_COST,TRUNC(:NEW.ISSUE_DATE),'STKISU ',NULL,NULL,:NEW.OTHER_REF,:NEW.RECEIPT_TYPE '.' :NEW.RECEIPT_NO,NULL, NULL,VBILLCODE,TRUNC(:NEW.ISSUE_DATE),NULL,NULL,VWARE A,VLOC_CURR,NULL, NULL,NULL); END IF; END; END; / CREATE OR REPLACE TRIGGER TABS.GL_DELETION_EXSTOCKS_TRIG AFTER DELETE ON TABS.CR M_EX_STOCKS REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN DECLARE VLOC_CURR VARCHAR2(3); VINT_CURR VARCHAR2(3); VWAREA VARCHAR2(10); ---VBILLCODE VARCHAR2(5); VBILLCODE VARCHAR2(10);-------Modified for ASSR#156741-------------VITEM_TYPE VARCHAR2(10); VSERVICE_CODE VARCHAR2(10); BEGIN -- To get the item type and service code BEGIN SELECT ITEM_TYPE, SERVICE_CODE INTO VITEM_TYPE, VSERVICE_CODE FROM ITEMS WHERE ITEM_CODE = :OLD.ITEM_CODE; EXCEPTION WHEN NO_DATA_FOUND THEN VITEM_TYPE := NULL; VSERVICE_CODE := NULL; END; -- To get the local and international currencies BEGIN SELECT LOC_CURR,INT_CURR INTO VLOC_CURR,VINT_CURR FROM IVM_INVOICE_SETUP; EXCEPTION WHEN NO_DATA_FOUND THEN VLOC_CURR:= NULL; VINT_CURR:= NULL; END; -- To get the work area BEGIN SELECT WAREA INTO VWAREA FROM ARM_ARCASHIERS WHERE USERNAME = :OLD.OP_ID; EXCEPTION WHEN NO_DATA_FOUND THEN VWAREA := NULL; END; -- To get the bill code BEGIN SELECT BILLCODE INTO VBILLCODE FROM CRM_EQUIPMENT WHERE EQUIPID = NVL(VSERVICE_CODE,'N'); EXCEPTION

WHEN NO_DATA_FOUND THEN VBILLCODE := :OLD.ITEM_CODE; END; -- To insert GL records for Stock Return IF VITEM_TYPE = 'ITEM' THEN INSERT INTO GLM_RECORDS (TRANSTYPE,TRANSAMOUNT,VOUCHDATE,VOUCHTEXT,MODEPAY,CUS TNO,CONTRNO,FLEX_FLD1,VOUCHREF, CHARGETYPE,BILLCODE,LOGDATE,CATEGORY,TAX_TYPE,WAREA,C URRENCY,TRANSAMOUNT_INT, TARIFF_PROFILE,BILLGROUP) VALUES ('SI-02',:OLD.ITEM_COST,TRUNC(SYSDATE),'STKRTN',NULL,N ULL,:OLD.OTHER_REF,:OLD.RECEIPT_TYPE '.' :OLD.RECEIPT_NO,NULL, NULL,VBILLCODE,TRUNC(SYSDATE),NULL,NULL,VWAREA,VLOC_C URR,NULL, NULL,NULL); ELSIF VITEM_TYPE = 'PACKAGE' THEN INSERT INTO GLM_RECORDS (TRANSTYPE,TRANSAMOUNT,VOUCHDATE,VOUCHTEXT,MODEPAY,CUS TNO,CONTRNO,FLEX_FLD1,VOUCHREF, CHARGETYPE,BILLCODE,LOGDATE,CATEGORY,TAX_TYPE,WAREA,C URRENCY,TRANSAMOUNT_INT, TARIFF_PROFILE,BILLGROUP) VALUES ('SP-02',:OLD.ITEM_COST,TRUNC(SYSDATE),'STKRTN',NULL,N ULL,:OLD.OTHER_REF,:OLD.RECEIPT_TYPE '.' :OLD.RECEIPT_NO,NULL, NULL,VBILLCODE,TRUNC(SYSDATE),NULL,NULL,VWAREA,VLOC_C URR,NULL, NULL,NULL); END IF; END; END; / CREATE OR REPLACE TRIGGER TABS."EXSTOCKS_RET_NONSERIAL" AFTER UPDATE OF USED_QTY ON TABS.CRM_EX_STOCKS REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN -- this trigger is written to handle return of non-serialize items DECLARE VITEM_TYPE VARCHAR2(10); VSERVICE_CODE VARCHAR2(10); BEGIN BEGIN -- To get the item type and service code BEGIN SELECT ITEM_TYPE, SERVICE_CODE INTO VITEM_TYPE, VSERVICE_CODE FROM ITEMS WHERE ITEM_CODE = :OLD.ITEM_CODE; EXCEPTION WHEN NO_DATA_FOUND THEN VITEM_TYPE := NULL; VSERVICE_CODE := NULL; END; -- To insert records for Stock Return IF VITEM_TYPE = 'ITEM' THEN INSERT INTO CRM_EX_STOCKS_INT (WH_CODE,BIN_ID,ITEM_CODE,GRN_NO,ITEM_NO,PACK_NO

,QTY,ISSUE_DATE,ENTRY_DATE,OP_ID,OTHER_REF,ITEM_COST,STK_RECORD_TYPE, PROCESS_FLAG,PROCESS_STATUS) VALUES (:OLD.WH_CODE,:OLD.BIN_ID,:OLD.ITEM_CODE,:OLD.GR N_NO,:OLD.ITEM_NO,:OLD.PACK_NO,NVL(:OLD.USED_QTY,0)-NVL(:NEW.USED_QTY,0),:OLD.IS SUE_DATE,SYSDATE,:OLD.OP_ID,:OLD.OTHER_REF,:OLD.ITEM_COST,'RETURN', 'N','PENDING'); ELSIF VITEM_TYPE = 'PACKAGE' THEN NULL; END IF; END; END; END; / CREATE OR REPLACE TRIGGER TABS."EXSTOCKS_INTERFACE_ISSUE" AFTER INSERT ON TABS.C RM_EX_STOCKS REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN DECLARE VITEM_TYPE VARCHAR2(10); VSERVICE_CODE VARCHAR2(10); BEGIN BEGIN -- To get the item type and service code BEGIN SELECT ITEM_TYPE, SERVICE_CODE INTO VITEM_TYPE, VSERVICE_CODE FROM ITEMS WHERE ITEM_CODE = :NEW.ITEM_CODE; EXCEPTION WHEN NO_DATA_FOUND THEN VITEM_TYPE := NULL; VSERVICE_CODE := NULL; END; -- To insert records for Stock issuance IF VITEM_TYPE = 'ITEM' THEN INSERT INTO CRM_EX_STOCKS_INT (WH_CODE,BIN_ID,ITEM_CODE,GRN_NO,ITEM_NO,PACK_NO ,QTY,ISSUE_DATE,ENTRY_DATE,OP_ID,OTHER_REF,ITEM_COST,STK_RECORD_TYPE, PROCESS_FLAG,PROCESS_STATUS) VALUES (:NEW.WH_CODE,:NEW.BIN_ID,:NEW.ITEM_CODE,:NEW.GR N_NO,:NEW.ITEM_NO,:NEW.PACK_NO,:NEW.USED_QTY,:NEW.ISSUE_DATE,SYSDATE,:NEW.OP_ID, :NEW.OTHER_REF,:NEW.ITEM_COST,'ISSUED', 'N','PENDING'); ELSIF VITEM_TYPE = 'PACKAGE' THEN NULL; END IF; END; END; END; / CREATE OR REPLACE TRIGGER TABS."EXSTOCKS_INTERFACE_RETURN" AFTER DELETE ON TABS. CRM_EX_STOCKS REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN

DECLARE VITEM_TYPE VARCHAR2(10); VSERVICE_CODE VARCHAR2(10); BEGIN BEGIN -- To get the item type and service code BEGIN SELECT ITEM_TYPE, SERVICE_CODE INTO VITEM_TYPE, VSERVICE_CODE FROM ITEMS WHERE ITEM_CODE = :OLD.ITEM_CODE; EXCEPTION WHEN NO_DATA_FOUND THEN VITEM_TYPE := NULL; VSERVICE_CODE := NULL; END; -- To insert records for Stock Return IF VITEM_TYPE = 'ITEM' THEN INSERT INTO CRM_EX_STOCKS_INT (WH_CODE,BIN_ID,ITEM_CODE,GRN_NO,ITEM_NO,PACK_NO ,QTY,ISSUE_DATE,ENTRY_DATE,OP_ID,OTHER_REF,ITEM_COST,STK_RECORD_TYPE, PROCESS_FLAG,PROCESS_STATUS) VALUES (:OLD.WH_CODE,:OLD.BIN_ID,:OLD.ITEM_CODE,:OLD.GR N_NO,:OLD.ITEM_NO,:OLD.PACK_NO,:OLD.USED_QTY,:OLD.ISSUE_DATE,SYSDATE,:OLD.OP_ID, :OLD.OTHER_REF,:OLD.ITEM_COST,'RETURN', 'N','PENDING'); ELSIF VITEM_TYPE = 'PACKAGE' THEN NULL; END IF; END; END; END; / DROP PUBLIC SYNONYM CRM_EX_STOCKS; CREATE PUBLIC SYNONYM CRM_EX_STOCKS FOR TABS.CRM_EX_STOCKS; GRANT SELECT ON TABS.CRM_EX_STOCKS TO TABSQ; GRANT DELETE, INSERT, UPDATE ON TABS.CRM_EX_STOCKS TO TABSUID;

Вам также может понравиться