%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'| |
'| wAddProdNew |
'| |
'=====================================================
%>
<%
Option explicit
Response.Expires = 0
%>
<%
'------------ ACCESS CONTROL ------------------
%>
<%
'------------ VARIABLE DEFINITION -------------
Dim rsQry
Dim objFormCollector
Dim sMessage
'------------ CONSTANTS DECLARATION -----------
'------------ VARIABLE INIT -------------------
sMessage = NULL
parBom_id = Request("bom_id")
parOs_id = Request("os_id")
Set objFormCollector = CreateObject("Scripting.Dictionary")
'------------ CONDITIONS ----------------------
'----------------------------------------------
'--------------------------------------------------------------------------------------------------------------------------
Function HasSimilarNames ( sProdName )
Dim rsQry
HasSimilarNames = FALSE
OraDatabase.Parameters.Add "PROD_NAME", sProdName, ORAPARM_INPUT, ORATYPE_VARCHAR2
Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SimilarProductNames.sql"), ORADYN_DEFAULT )
If rsQry.RecordCount > 0 Then
HasSimilarNames = TRUE
End If
OraDatabase.Parameters.Remove "PROD_NAME"
rsQry.Close
Set rsQry = Nothing
End Function
'--------------------------------------------------------------------------------------------------------------------------
Sub AddProdToOs ()
On Error Resume Next
OraDatabase.Parameters.Add "PROD_NAME", Request("prod_name"), ORAPARM_INPUT, ORATYPE_VARCHAR2
OraDatabase.Parameters.Add "PROD_VERSION", Request("prod_version"), ORAPARM_INPUT, ORATYPE_VARCHAR2
OraDatabase.Parameters.Add "OS_ID", Request("os_id"), ORAPARM_INPUT, ORATYPE_NUMBER
OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
objEH.TryORA ( OraSession )
OraDatabase.ExecuteSQL _
"DECLARE "&_
" outProdId NUMBER;"&_
"BEGIN "&_
" pk_Product.New_Product ( :PROD_NAME, :PROD_VERSION, :USER_ID, outProdId );"&_
" pk_Product.Add_Product ( outProdId, :OS_ID, :USER_ID );"&_
"END;"
objEH.CatchORA ( OraSession )
OraDatabase.Parameters.Remove "PROD_NAME"
OraDatabase.Parameters.Remove "PROD_VERSION"
OraDatabase.Parameters.Remove "OS_ID"
OraDatabase.Parameters.Remove "USER_ID"
End Sub
'--------------------------------------------------------------------------------------------------------------------------
Sub AddProdToBaseEnv ()
On Error Resume Next
OraDatabase.Parameters.Add "PROD_NAME", Request("prod_name"), ORAPARM_INPUT, ORATYPE_VARCHAR2
OraDatabase.Parameters.Add "PROD_VERSION", Request("prod_version"), ORAPARM_INPUT, ORATYPE_VARCHAR2
OraDatabase.Parameters.Add "BASE_ENV_ID", Request("base_env_id"), ORAPARM_INPUT, ORATYPE_NUMBER
OraDatabase.Parameters.Add "OS_ID", Request("os_id"), ORAPARM_INPUT, ORATYPE_NUMBER
OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
objEH.TryORA ( OraSession )
OraDatabase.ExecuteSQL _
"DECLARE "&_
" outProdId NUMBER;"&_
"BEGIN "&_
" pk_Product.New_Product ( :PROD_NAME, :PROD_VERSION, :USER_ID, outProdId );"&_
" pk_Base_Env.Add_Product ( outProdId, :BASE_ENV_ID, :OS_ID, :USER_ID );"&_
"END;"
objEH.CatchORA ( OraSession )
OraDatabase.Parameters.Remove "PROD_NAME"
OraDatabase.Parameters.Remove "PROD_VERSION"
OraDatabase.Parameters.Remove "BASE_ENV_ID"
OraDatabase.Parameters.Remove "OS_ID"
OraDatabase.Parameters.Remove "USER_ID"
End Sub
'--------------------------------------------------------------------------------------------------------------------------
Sub AddProdNew ()
If Request("skip_similar_names") = "" Then
If HasSimilarNames( Request("prod_name") ) Then
Call OpenInWindow ( "wAddProdSimilarNames.asp?prod_name="& Request("prod_name") &"&prod_version="& Request("prod_version") &"&"& objPMod.ComposeURL() )
End If
End If
'-- Now add product
If Request("base_env_id") = "" Then
'-- Add to OS
Call AddProdToOs()
Else
'-- Add to Base Env
Call AddProdToBaseEnv()
End If
End Sub
'--------------------------------------------------------------------------------------------------------------------------
%>
<%
'------------ RUN BEFORE PAGE RENDER ----------
objPMod.PersistInQryString ( Array("base_env_id") )
' --- Get Form details from DB ---
' --- Load Validation Rules ---
Call objForm.LoadValidationRules ( Array("prod_name","prod_version"), OraDatabase ) ' Load Validation Rules
' --- Enter Form Validation Rule Changes here... ----
'If Request("base_env_id") <> "" Then
' /* There is a problem if you want to add 3rd party product in OS and the Product Name is not to ERG standards.
' I will allow entry of any kind of names and versions for now. */
objForm.UpdateRules ("id='prod_name' RegExp=''")
objForm.UpdateRules ("id='prod_version' RegExp=''")
'End If
'----------------------------------------------------
If CBool(Request("action")) Then
If objForm.IsValidOnPostBack Then
'-- Add Product
Call AddProdNew()
If objEH.Finally Then
Call OpenInParentWindow ( Request("rfile") &"?ADDED=OK"& objPMod.ComposeURLWithout("rfile") )
Call CloseWindow()
End If
End If
End If
'----------------------------------------------
%>
<%=objPMod.ComposeHiddenTags()%>
<%
Call objFormComponent.FormEnd()
'-- FROM END ----------------------------------------------------------------------------------------------------------------
%>