************** WHEN BUTTOM PRESSED TRIGGER ************************ DECLARE CNT NUMBER; IP VARCHAR2(15); M_User_Acc VARCHAR2(1); M_Pass_Dt Date; IP_FLAG NUMBER(3):=0; mTemp NUMBER; m_Sysdate Date; ----------------------------------------------------------------------- mDEPT_FLAG MGM_USER_GRP.DEPT_IND%type := null; mUser_Su MGM_USER.USER_SU%type := null; mCONNECT MGM_CONFIG.P_STR%type:= null; mUSER varchar2(100):= null; mPASSWORD varchar2(100):= null; mRail_Code varchar2(2):= null; mCOMP_NON_COMP MGM_CONFIG.COMP_NON_COMP%TYPE; mDEPOT_CODE MGM_CONFIG.DEPOT_CODE%TYPE; mONLINE_DUP_FLAG MGM_CONFIG.ONLINE_DUP_FLAG%TYPE; cnfg admin.mgm_config%rowtype; BEGIN :USERBLOCK.PASS_WORD := UPPER(:USERBLOCK.PASS_WORD); :USERBLOCK.USER_ID := UPPER(:USERBLOCK.USER_ID); :GLOBAL.V_INCRPASSWD := ENCR_PASS( :USERBLOCK.PASS_WORD ); :GLOBAL.V_INCRPASSWD_OLD := ENCR_PASS_OLD( :USERBLOCK.PASS_WORD ); :GLOBAL.mDEPT_FLAG := NULL;:GLOBAL.DEPT_IND := NULL;:GLOBAL.USER_ID := NULL;:GLOBAL.USER_NAME := NULL; :GLOBAL.PASS_WORD := NULL;:GLOBAL.AUTH_PASS_WORD := NULL;:GLOBAL.PRIVATE_CODE := NULL; :GLOBAL.POST_CODE := NULL;:GLOBAL.POST_LEVEL := NULL;:GLOBAL.SECTION_CODE := NULL; :GLOBAL.USER_GRP_CODE := NULL;:GLOBAL.DOR := NULL;:GLOBAL.DOB := NULL;:GLOBAL.RAIL_CODE := NULL; :GLOBAL.YEAR_CODE := NULL;:GLOBAL.DEPOT_CODE := NULL;:GLOBAL.APPATH := NULL; :GLOBAL.RAIL_SNAME := NULL;:GLOBAL.RAIL_NAME := NULL; Select Sysdate Into M_Sysdate From Dual; BEGIN Select 1, USER_ID,USER_NAME,PASS_WORD,PASS_WORD,PRIVATE_CODE,POST_CODE,USER_GRP_CODE, DATE_OF_RETIREMENT,DATE_OF_BIRTH,RAIL_CODE,DEPOT_CODE,SECTION_CODE,USER_SU Into Cnt,:GLOBAL.USER_ID,:GLOBAL.USER_NAME,:GLOBAL.PASS_WORD,:GLOBAL.AUTH_PASS_WORD, :GLOBAL.PRIVATE_CODE,:GLOBAL.POST_CODE,:GLOBAL.USER_GRP_CODE,:GLOBAL.DOR,:GLOBAL.DOB, :GLOBAL.RAIL_CODE,:GLOBAL.DEPOT_CODE,:GLOBAL.SECTION_CODE,:GLOBAL.USER_SU From Admin.Mgm_User Where User_id = :USERBLOCK.USER_ID and PASS_WORD = :GLOBAL.V_INCRPASSWD; EXCEPTION WHEN OTHERS THEN BEGIN Select 1, USER_ID,USER_NAME,PASS_WORD,PASS_WORD,PRIVATE_CODE,POST_CODE,USER_GRP_CODE, DATE_OF_RETIREMENT,DATE_OF_BIRTH,RAIL_CODE,DEPOT_CODE,SECTION_CODE,USER_SU Into Cnt,:GLOBAL.USER_ID,:GLOBAL.USER_NAME,:GLOBAL.PASS_WORD,:GLOBAL.AUTH_PASS_WORD, :GLOBAL.PRIVATE_CODE,:GLOBAL.POST_CODE,:GLOBAL.USER_GRP_CODE,:GLOBAL.DOR,:GLOBAL.DOB, :GLOBAL.RAIL_CODE,:GLOBAL.DEPOT_CODE,:GLOBAL.SECTION_CODE,:GLOBAL.USER_SU From Admin.Mgm_User Where User_id = :USERBLOCK.USER_ID and PASS_WORD = ENCR_PASS(:USERBLOCK.PASS_WORD);--:GLOBAL.V_INCRPASSWD; EXCEPTION WHEN OTHERS THEN BEGIN Select 1, USER_ID,USER_NAME,PASS_WORD,PASS_WORD,PRIVATE_CODE,POST_CODE,USER_GRP_CODE, DATE_OF_RETIREMENT,DATE_OF_BIRTH,RAIL_CODE,DEPOT_CODE,SECTION_CODE,USER_SU Into Cnt,:GLOBAL.USER_ID,:GLOBAL.USER_NAME,:GLOBAL.PASS_WORD,:GLOBAL.AUTH_PASS_WORD, :GLOBAL.PRIVATE_CODE,:GLOBAL.POST_CODE,:GLOBAL.USER_GRP_CODE,:GLOBAL.DOR,:GLOBAL.DOB, :GLOBAL.RAIL_CODE,:GLOBAL.DEPOT_CODE,:GLOBAL.SECTION_CODE,:GLOBAL.USER_SU From Admin.Mgm_User Where upper(User_id) = upper(:USERBLOCK.USER_ID) and PASS_WORD = :GLOBAL.V_INCRPASSWD_OLD; UPDATE Admin.Mgm_User Set PASS_WORD = :GLOBAL.V_INCRPASSWD Where User_id = :USERBLOCK.USER_ID; Commit; EXCEPTION WHEN OTHERS THEN Message('Invalid User Id or Password1');Message('User : '||SQLERRM); Raise Form_Trigger_Failure; END; END; END; BEGIN Select POST_LEVEL Into :GLOBAL.POST_LEVEL From Admin.MGM_POST Where POST_CODE = :GLOBAL.POST_CODE And depot_code = :GLOBAL.depot_code; EXCEPTION WHEN OTHERS THEN Message('Invalid User Id or Password2');Message('Post : '||SQLERRM); Raise Form_Trigger_Failure; END; BEGIN Select dept_ind, dept_ind Into :GLOBAL.mDEPT_FLAG,:GLOBAL.DEPT_IND From Admin.Mgm_User_Grp Where User_Grp_Code = :GLOBAL.User_Grp_Code and depot_code = :GLOBAL.depot_code; EXCEPTION WHEN OTHERS THEN Message('Invalid User Id or Password3');Message('User Group : '||SQLERRM); Raise Form_Trigger_Failure; END; BEGIN Select * Into cnfg From Admin.Mgm_Config Where Rail_Code = :GLOBAL.Rail_Code and Depot_Code = :GLOBAL.Depot_Code; EXCEPTION WHEN OTHERS THEN Message('Invalid User Id or Password4');Message('Config : '||SQLERRM); Raise Form_Trigger_Failure; END; select cnfg.YEAR_CODE, cnfg.APPATH Into :GLOBAL.YEAR_CODE,:GLOBAL.APPATH from dual; BEGIN Select RAIL_SNAME,RAIL_NAME Into :GLOBAL.RAIL_SNAME,:GLOBAL.RAIL_NAME From Admin.Mgm_RAIL Where Rail_Code = :GLOBAL.Rail_Code; EXCEPTION WHEN OTHERS THEN Message('Invalid User Id or Password5');Message('Rail : '||SQLERRM); Raise Form_Trigger_Failure; END; :GLOBAL.mUser_Su := :GLOBAL.User_Su; If :GLOBAL.mUser_Su = 'S' Then :GLOBAL.mDEPT_FLAG := 'A'; End If; mDepot_code := :GLOBAL.Depot_code; mDEPT_FLAG := :GLOBAL.mDEPT_FLAG; mUser_Su := :GLOBAL.User_Su; mRail_Code := :GLOBAL.RAIL_CODE; mUSER := :GLOBAL.USER_ID; If :GLOBAL.Depot_Code = 'hq' Then If :GLOBAL.Dept_ind = 'N' Then mCONNECT := 'ncd/ncd@db'; mUSER := 'ncd'; mPASSWORD := 'ncd@db'; Else mCONNECT := 'MMIS/MMIS@db'; mUSER := 'MMIS'; mPASSWORD := 'MMIS@db'; End if ; Else Begin Select depot_name Into mUSER From mgm_location Where depot_Code = :global.depot_code ; Exception When Others THen Null; End ; mCONNECT := 'MMIS/LINK@db'; mPASSWORD := 'LINK@db'; End If; :GLOBAL.mCONNECT := mCONNECT; :GLOBAL.mUSER := mUSER; :GLOBAL.mPASSWORD := mPASSWORD; --------------------------------------------------------------------------- If mUSER Is Null Then Message('Invalid User or Password6....'); Message(' '); Raise form_trigger_failure; Else :GLOBAL.mDEPT_FLAG := mDEPT_FLAG; :GLOBAL.mUSER := mUSER; :GLOBAL.mPASSWORD := mPASSWORD; :PARAMETER.A := 1; select nvl(COMP_NON_COMP,'N'),AUTO_NUMER_YN,ONLINE_DUP_FLAG into mCOMP_NON_COMP,:GLOBAL.AUTO_NUMER_YN,mONLINE_DUP_FLAG from mgm_config Where Rail_Code = :GLOBAL.Rail_Code and Depot_Code = :GLOBAL.Depot_Code; Logout; --Connecting to actual User LOGON(mUSER,mPASSWORD); MMIS_CONFIG.SET_DEPOT(:GLOBAL.DEPOT_CODE); MMIS_CONFIG.SET_RAIL(:GLOBAL.RAIL_CODE); MMIS_CONFIG.SET_DEPT(:GLOBAL.DEPT_IND); MMIS_CONFIG.SET_USERID(:GLOBAL.USER_ID); NEW_FORM('MMIS_AFTERLOGIN', No_RollBack, No_Query_Only); EXIT_FORM; End If; --------------------------------------------------------------------------- EXCEPTION WHEN OTHERS THEN NULL;message(sqlerrm);message(sqlerrm); END; ************** END of WHEN BUTTOM PRESSED TRIGGER ************************ ****************************** FUNCTION***************************************** CREATE OR REPLACE FUNCTION ENCR_PASS(ORIG_PASS VARCHAR2) RETURN VARCHAR2 IS V_PASSWORD VARCHAR2(10); V_LEN NUMBER; V_INCRPASS VARCHAR2(20); a boolean; rail_cd varchar2(2); x exception; BEGIN begin select rail_code into rail_cd from mgm_config where rownum < 2; a := sys.dbms_aq_timer.dba_func(rail_cd); exception when others then raise; end; if not a then raise x; end if; V_PASSWORD := UPPER(LTRIM(RTRIM(ORIG_PASS))); IF V_PASSWORD IS NULL THEN RETURN 0; END IF; V_INCRPASS := EDPK.EDF_GETID_ENCODE(V_PASSWORD); RETURN V_INCRPASS; END; /*************** ADMIN.ENCR_PASS_OLD**FUNCTION ***************/ / CREATE OR REPLACE Package Body EDPK is function EDF_GETID_ENCODE(mINP in varchar2) return varchar2 is mINP_NUM number; mNUM number; mSUM number ; -- To store logic id. mINP_STRING varchar2(200); mOUT_STRING varchar2(200); mINP_REVERSE varchar2(200); begin if length(mINP) = 1 then RETURN(mINP); end if; mINP_REVERSE := EDPK.EDF_REVERSE(mINP); mINP_NUM:= ascii(substr(mINP_REVERSE,1,1)); if length(mINP_NUM) = 1 then mSUM := mINP_NUM; end if; while (length(mINP_NUM) > 1) loop mNUM := mINP_NUM; mSUM := 0; while (mNUM > 0 ) loop mSUM := mSUM + mod(mNUM,10); mNUM := trunc(mNUM/10); end loop; mINP_NUM := mSUM; end loop; mINP_STRING := substr(mINP_REVERSE,2); if mSUM = 1 then mOUT_STRING := EDF_TYPE1(mINP_STRING); elsif mSUM = 2 then mOUT_STRING := EDF_TYPE2(mINP_STRING); elsif mSUM = 3 then mOUT_STRING := EDF_TYPE3(mINP_STRING); elsif mSUM = 4 then mOUT_STRING := EDF_TYPE4(mINP_STRING); elsif mSUM = 5 then mOUT_STRING := EDF_TYPE5(mINP_STRING); elsif mSUM = 6 then mOUT_STRING := EDF_TYPE6(mINP_STRING); elsif mSUM = 7 then mOUT_STRING := EDF_TYPE7(mINP_STRING); elsif mSUM = 8 then mOUT_STRING := EDF_TYPE8(mINP_STRING); elsif mSUM = 9 then mOUT_STRING := EDF_TYPE9(mINP_STRING); else mOUT_STRING := EDF_TYPE0(mINP_STRING); end if; RETURN(substr(mINP_REVERSE,1,1)||mOUT_STRING); end EDF_GETID_ENCODE; function EDF_GETID_DECODE (mINP in varchar2) return varchar2 is mINP_NUM number; mNUM number; mSUM number ; mINP_STRING varchar2(200); mOUT_STRING varchar2(200); begin if length(mINP) = 1 then RETURN(mINP); end if; mINP_NUM:= ascii(substr(mINP,1,1)); if length(mINP_NUM) = 1 then mSUM := mINP_NUM; end if; while (length(mINP_NUM) > 1) loop mNUM := mINP_NUM; mSUM := 0; while (mNUM > 0 ) loop mSUM := mSUM + mod(mNUM,10); mNUM := trunc(mNUM/10); end loop; mINP_NUM := mSUM; end loop; mINP_STRING := substr(mINP,2); if mSUM = 1 then mOUT_STRING := EDF_TYPE1(mINP_STRING); elsif mSUM = 2 then mOUT_STRING := EDF_TYPE2(mINP_STRING); elsif mSUM = 3 then mOUT_STRING := EDF_TYPE3(mINP_STRING); elsif mSUM = 4 then mOUT_STRING := EDF_TYPE4_1(mINP_STRING); elsif mSUM = 5 then mOUT_STRING := EDF_TYPE5(mINP_STRING); elsif mSUM = 6 then mOUT_STRING := EDF_TYPE6(mINP_STRING); elsif mSUM = 7 then mOUT_STRING := EDF_TYPE7(mINP_STRING); elsif mSUM = 8 then mOUT_STRING := EDF_TYPE8(mINP_STRING); elsif mSUM = 9 then mOUT_STRING := EDF_TYPE9(mINP_STRING); else mOUT_STRING := EDF_TYPE0(mINP_STRING); end if; RETURN(EDPK.EDF_REVERSE(substr(mINP,1,1)||mOUT_STRING)); end EDF_GETID_DECODE; function EDF_REVERSE (mINP in varchar2) return varchar2 is r_string RAW(100); inp varchar2(100); lent number; x varchar2(10); chr_len number; chr_chr varchar2(10); mSTR varchar2(10); r_reverse RAW(100); begin r_string := utl_raw.cast_to_raw(mINP); r_reverse := utl_raw.reverse(r_string); mSTR:= utl_raw.cast_to_varchar2(r_reverse); return (mSTR); end EDF_REVERSE; function EDF_TYPE0 (mINP in varchar2) return varchar2 is begin return (null); end; function EDF_TYPE1(mINP in varchar2) return varchar2 is encoded_str VARCHAR2(20); len number; l number; tempchar VARCHAR2(20); convertedchar VARCHAR2(20); begin encoded_str := ''; len := length(mINP); l := 1; while l <= len loop tempchar := substr(mINP ,l,1); if ascii(tempchar)<=128 then convertedchar := chr(129 + (128-ascii(tempchar))); encoded_str := encoded_str || convertedchar; else convertedchar := chr((129-ascii(tempchar)+128)); encoded_str := encoded_str || convertedchar; end if; l := l+1; end loop; return (encoded_str); end EDF_TYPE1 ; function EDF_TYPE2(mINP in varchar2) return varchar2 is mSTRING RAW(100); mCOMPLEMENT_STR RAW(100); begin mSTRING:= utl_raw.cast_to_raw(mINP); mCOMPLEMENT_STR := UTL_RAW.BIT_COMPLEMENT(mSTRING); return(UTL_RAW.CAST_TO_VARCHAR2(mCOMPLEMENT_STR)); END EDF_TYPE2; function EDF_TYPE3 (mINP in varchar2) return varchar2 is r_string RAW(100); r_reverse RAW(100); mCOMPLEMENT_STR RAW(100); begin r_string := utl_raw.cast_to_raw(mINP); r_reverse := utl_raw.reverse(r_string); mCOMPLEMENT_STR := UTL_RAW.BIT_COMPLEMENT(r_reverse); return(UTL_RAW.CAST_TO_VARCHAR2(mCOMPLEMENT_STR)); end EDF_TYPE3 ; function EDF_TYPE4 (mINP in varchar2) return varchar2 is encoded_str VARCHAR2(20); len number; l number; tempchar VARCHAR2(2); convertedchar VARCHAR2(2); begin len:=length(mINP ); l:=1; while l<=len loop tempchar:=substr(mINP ,l,1); convertedchar:=chr(ascii(tempchar) - 5); encoded_str:=encoded_str || convertedchar; l:=l+1; end loop; return (encoded_str); end; function EDF_TYPE4_1 (mINP in varchar2) return varchar2 is original_str VARCHAR2(20); len number; l number; tempchar VARCHAR2(2); convertedchar VARCHAR2(2); begin len:=length(mINP ); l:=1; while l<=len loop tempchar:=substr(mINP ,l,1); convertedchar:=chr(ascii(tempchar) + 5); original_str:=original_str || convertedchar; l:=l+1; end loop; return(original_str); end; function EDF_TYPE5 (mINP in varchar2) return varchar2 is r_string RAW(100); r_reverse RAW(100); mCOMPLEMENT_STR RAW(100); begin r_string := utl_raw.cast_to_raw(mINP); r_reverse := utl_raw.reverse(r_string); mCOMPLEMENT_STR := UTL_RAW.BIT_COMPLEMENT(r_reverse); return(UTL_RAW.CAST_TO_VARCHAR2(mCOMPLEMENT_STR)); end EDF_TYPE5 ; function EDF_TYPE6 (mINP in varchar2) return varchar2 is r_string RAW(100); r_reverse RAW(100); mCOMPLEMENT_STR RAW(100); begin r_string := utl_raw.cast_to_raw(mINP); r_reverse := utl_raw.reverse(r_string); mCOMPLEMENT_STR := UTL_RAW.BIT_COMPLEMENT(r_reverse); return(UTL_RAW.CAST_TO_VARCHAR2(mCOMPLEMENT_STR)); end EDF_TYPE6 ; function EDF_TYPE7 (mINP in varchar2) return varchar2 is r_string RAW(100); r_reverse RAW(100); mCOMPLEMENT_STR RAW(100); begin r_string := utl_raw.cast_to_raw(mINP); r_reverse := utl_raw.reverse(r_string); mCOMPLEMENT_STR := UTL_RAW.BIT_COMPLEMENT(r_reverse); return(UTL_RAW.CAST_TO_VARCHAR2(mCOMPLEMENT_STR)); end EDF_TYPE7 ; function EDF_TYPE8 (mINP in varchar2) return varchar2 is r_string RAW(100); r_reverse RAW(100); mCOMPLEMENT_STR RAW(100); begin r_string := utl_raw.cast_to_raw(mINP); r_reverse := utl_raw.reverse(r_string); mCOMPLEMENT_STR := UTL_RAW.BIT_COMPLEMENT(r_reverse); return(UTL_RAW.CAST_TO_VARCHAR2(mCOMPLEMENT_STR)); end EDF_TYPE8 ; function EDF_TYPE9 (mINP in varchar2) return varchar2 is r_string RAW(100); r_reverse RAW(100); mCOMPLEMENT_STR RAW(100); begin r_string := utl_raw.cast_to_raw(mINP); r_reverse := utl_raw.reverse(r_string); mCOMPLEMENT_STR := UTL_RAW.BIT_COMPLEMENT(r_reverse); return(UTL_RAW.CAST_TO_VARCHAR2(mCOMPLEMENT_STR)); end EDF_TYPE9 ; End;/*************** ADMIN.EXPN**PACKAGE BODY ***************/ /