Subversion Repositories DevTools

Rev

Rev 1283 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%
'===================================================================
'                                                       Common Subs
'===================================================================
%>
<%
'-----------------------------------------------------------------------------------------------------------------------------
Sub CloseWindow
%>
        <SCRIPT language="JavaScript" type="text/javascript">
        <!--
        self.close();
        //-->
        </SCRIPT>
<%
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub OpenChildWindow ( SStitle, SSurl, SSH, SSW, BBscroll )
        Dim scrlBar
        If BBscroll Then
                scrlBar = "yes"
        Else
                scrlBar = "no"
        End If
%>
        <script language="JavaScript" type="text/javascript">
        <!--
        window.open('<%=SSurl%>','<%=SStitle%>','scrollbars=<%=scrlBar%>,resizable=yes,width=<%=SSW%>,height=<%=SSH%>');
        //-->
        </script>
<%
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub OpenInParentWindow ( SSurl )
%>
        <script language="JavaScript" type="text/javascript">
        <!--
        window.opener.document.location='<%=SSurl%>';
        //-->
        </script>
<%
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub OpenInWindow ( SSurl )
        Response.Redirect ( SSurl )
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function onClickOpenWindow ( sURL, sWindowName, nWidth, nHeight, sWindowParams )
        If NOT IsNull(sWindowParams)  OR  (sWindowParams <> "") Then sWindowParams = sWindowParams &"," ' Append comma if params are not empty

        onClickOpenWindow = "onClick='MM_openBrWindow("""& sURL &""", """& sWindowName &""", """& sWindowParams &"width="& nWidth &",height="& nHeight &",top=200,left=""+ ( screen.width / 2 - "& nWidth \ 2 &" ) +""  "");'"
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function ReadFile( sPath )
        Dim filesys, rfile
        Set filesys = CreateObject("Scripting.FileSystemObject")
        Set rfile = filesys.OpenTextFile( sPath, 1, false)
        ReadFile = rfile.ReadAll
        rfile.close
        Set filesys = nothing
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function GetQuery ( sQryName )
        GetQuery = ReadFile( QUERIES_PATH &"\"& sQryName )
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function Quick_Help ( SStipname )
        Quick_Help = "<a href='javascript:;' onMouseOver=""formTips.show('"& SStipname &"')"" onMouseOut=""formTips.hide()""><img src='images/i_help.gif' width='12' height='12' hspace='2' align='absmiddle' border='0' ></a>"
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function BoldSelected ( sItem, nItemId, nrsItemId )
        ' Exit on empty or null
        If ( nItemId = "" )  OR  IsNull( nItemId )  OR  ( nrsItemId = "" )  OR  IsNull( nrsItemId ) Then
                BoldSelected = sItem
                Exit Function
        End If

        If CInt( nItemId ) = CInt( nrsItemId ) Then
                BoldSelected = "<b>"& sItem &"</b>"
        Else
                BoldSelected = sItem
        End If
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function Get_From_DUAL ( SSclm )
        Dim rsTemp, Query_String, OraSession2, OraDatabase2
        Set OraSession2 = CreateObject("OracleInProcServer.XOraSession")
        Set OraDatabase2 = OraSession2.OpenDatabase( TNS_NAME, DB_AUTHENTICATION, Cint(0))

        Query_String = _
        " SELECT "& SSclm &" AS result FROM DUAL"
        Set rsTemp = OraDatabase2.DbCreateDynaset( Query_String, cint(0))

        If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
                Get_From_DUAL = (rsTemp.Fields("result"))
        End If

        rsTemp.Close
        Set rsTemp = nothing
        Set OraDatabase2 = nothing
        Set OraSession2 = nothing
End Function
'----------------------------------------------------------------------------------------------------------------------------------------------
Sub InitialiseCrumbs ( objCrumbs )
        Dim rsCrumb
        'L1par = enumDB_DEFAULT_EMPTY
        'L2par = enumDB_DEFAULT_EMPTY
        'L3par = enumDB_DEFAULT_EMPTY


        ' This section will ensure only one level parameter is processed in order
        'If Request("bom_id") <> "" Then
        '       L3par = Request("bom_id")
        '
        'ElseIf Request("branch_id") <> "" Then
        '       L2par = Request("branch_id")
        '
        'ElseIf Request("proj_id") <> "" Then
                'L1par = Request("proj_id")
        '
        'End If

        OraDatabase.Parameters.Add "PROJ_ID",   dbPARproj_id,   ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "BRANCH_ID", dbPARbranch_id, ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "BOM_ID",    dbPARbom_id,    ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "NODE_ID",   dbPARnode_id,   ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "OS_ID",     dbPARos_id,     ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "PROD_ID",   dbPARprod_id,   ORAPARM_INPUT, ORATYPE_NUMBER

        Set rsCrumb = OraDatabase.DbCreateDynaset( GetQuery ("Crumbs.sql") , ORADYN_DEFAULT )

        objCrumbs.CrumbMaxDepth = 7             ' e.g.  [1] Home / [2] ProjectName / [3] BranchName / [4] BomName

        objCrumbs.AddLevel "Home", "Default.asp", 0
        While ((NOT rsCrumb.BOF) AND (NOT rsCrumb.EOF))
                objCrumbs.AddLevel rsCrumb("crumb_name"), rsCrumb("crumb_link"), rsCrumb("crumb_level")
                rsCrumb.MoveNext()
        WEnd

        ' Clean up
        rsCrumb.Close
        Set rsCrumb = Nothing
        OraDatabase.Parameters.Remove "PROJ_ID"
        OraDatabase.Parameters.Remove "BRANCH_ID"
        OraDatabase.Parameters.Remove "BOM_ID"
        OraDatabase.Parameters.Remove "NODE_ID"
        OraDatabase.Parameters.Remove "OS_ID"
        OraDatabase.Parameters.Remove "PROD_ID"
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function Expander ( sExpand )
        Const IMG_PLUS = "<img src='icons/i_plus.gif' width='9' height='9' align='absmiddle' border='0'>"
        Const IMG_MINUS = "<img src='icons/i_minus.gif' width='9' height='9' align='absmiddle' border='0'>"
        Const IMG_NO_EXPAND = "<img src='images/spacer.gif' width='9' height='9' align='absmiddle' border='0'>"

        If sExpand = "+" Then
                Expander = IMG_PLUS

        ElseIf sExpand = "-" Then
                Expander = IMG_MINUS

        Else
                Expander = IMG_NO_EXPAND

        End If

End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub GetMainDBParameters ( dbPARproj_id, dbPARbranch_id, dbPARbom_id, dbPARnode_id, dbPARos_id, dbPARprod_id )
        Dim query, rsQry

        ' Preset all to enumDB_DEFAULT_EMPTY
        dbPARproj_id    = enumDB_DEFAULT_EMPTY
        dbPARbranch_id  = enumDB_DEFAULT_EMPTY
        dbPARbom_id     = enumDB_DEFAULT_EMPTY
        dbPARnode_id    = enumDB_DEFAULT_EMPTY
        dbPARos_id              = enumDB_DEFAULT_EMPTY
        dbPARprod_id    = enumDB_DEFAULT_EMPTY


        ' Get the actual values from Request
        If Request("proj_id")  <> "" Then       dbPARproj_id = Request("proj_id")
        If Request("branch_id")  <> "" Then dbPARbranch_id = Request("branch_id")
        If Request("bom_id")  <> "" Then        dbPARbom_id = Request("bom_id")
        If Request("node_id") <> "" Then    dbPARnode_id = Request("node_id")
        If Request("os_id")   <> "" Then        dbPARos_id = Request("os_id")
        If Request("prod_id") <> "" Then        dbPARprod_id = Request("prod_id")


        ' Resolve some parametes with DB lookup
        If ( dbPARbom_id <> enumDB_DEFAULT_EMPTY ) AND ( dbPARos_id <> enumDB_DEFAULT_EMPTY ) Then
                ' Resolve with bom_id and os_id
                query = _
                " SELECT nn.node_id, br.BRANCH_ID, br.PROJ_ID "&_
                "  FROM BOM_CONTENTS bc,"&_
                "          NETWORK_NODES nn,"&_
                "          OPERATING_SYSTEMS os,"&_
                "       BOMS bo,"&_
                "      BRANCHES br"&_
                " WHERE os.node_id = nn.node_id"&_
                "   AND bc.NODE_ID = nn.NODE_ID"&_
                "   AND bc.BOM_ID = bo.BOM_ID"&_
                "   AND bo.BRANCH_ID = br.BRANCH_ID"&_
                "   AND bc.bom_id = :BOM_ID"&_
                "   AND os.os_id = :OS_ID"

        ElseIf ( dbPARbom_id <> enumDB_DEFAULT_EMPTY ) Then
                ' Resolve with bom_id and node_id
                query = _
                " SELECT :NODE_ID AS NODE_ID, br.BRANCH_ID, br.PROJ_ID "&_
                "  FROM BOMS bo,"&_
                "       BRANCHES br"&_
                " WHERE bo.BRANCH_ID = br.BRANCH_ID"&_
                "   AND bo.bom_id = :BOM_ID"

        End If


        If query <> "" Then
                OraDatabase.Parameters.Add "BOM_ID",    dbPARbom_id,    ORAPARM_INPUT, ORATYPE_NUMBER
                OraDatabase.Parameters.Add "NODE_ID",   dbPARnode_id,   ORAPARM_INPUT, ORATYPE_NUMBER
                OraDatabase.Parameters.Add "OS_ID",     dbPARos_id,     ORAPARM_INPUT, ORATYPE_NUMBER

                Set rsQry = OraDatabase.DbCreateDynaset( query , ORADYN_DEFAULT )

                If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                        dbPARproj_id = CInt( rsQry("proj_id") )
                        dbPARbranch_id = CInt( rsQry("branch_id") )
                        dbPARnode_id = Int( rsQry("node_id") )
                End If

                rsQry.Close
                Set rsQry = Nothing
                OraDatabase.Parameters.Remove "BOM_ID"
                OraDatabase.Parameters.Remove "NODE_ID"
                OraDatabase.Parameters.Remove "OS_ID"
        End If


        ' --- Get which level (used for pop-up menu add prod,os,node.)
        AT_PROD_LEVEL = FALSE
        AT_OS_LEVEL = FALSE
        AT_NODE_LEVEL = FALSE
        AT_BOM_LEVEL = FALSE

        If dbPARprod_id <> enumDB_DEFAULT_EMPTY Then
                ' Product Level
                AT_PROD_LEVEL = TRUE

        ElseIf dbPARos_id <> enumDB_DEFAULT_EMPTY Then
                ' OS Level
                AT_OS_LEVEL = TRUE

        ElseIf dbPARnode_id <> enumDB_DEFAULT_EMPTY Then
                ' Node Level
                AT_NODE_LEVEL = TRUE

        ElseIf dbPARbom_id <> enumDB_DEFAULT_EMPTY Then
                ' Bom Level
                AT_BOM_LEVEL = TRUE

        End If

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function GetNodeImage ( nNode_id )
        Dim query, rsQry
        query = _
        "SELECT nt.NODE_IMAGE "&_
        "  FROM NETWORK_NODES nn,"&_
        "           NODE_TYPES nt"&_
        " WHERE nn.NODE_TYPE_ID = nt.NODE_TYPE_ID"&_
        "   AND nn.node_id = :NODE_ID"

        OraDatabase.Parameters.Add "NODE_ID",   nNode_id,       ORAPARM_INPUT, ORATYPE_NUMBER
        Set rsQry = OraDatabase.DbCreateDynaset( query , ORADYN_DEFAULT )

        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                GetNodeImage = "<img src='icons/"& rsQry("node_image") &"'>"
        End If

        rsQry.Close
        Set rsQry = Nothing
        OraDatabase.Parameters.Remove "NODE_ID"
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub LoadTabActionButtons ( aBtns,  ByRef objControl )
        ' -- Load Action Buttons
        Call objControl.LoadActionButtons ( aBtns, OraDatabase )

        ' -- Set button spacer
        objControl.ButtonSpacer = 10

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Messenger ( sMessage, nMessageType, sWidth )
        Dim msgTemplate, Img

        If (sMessage = "") OR IsNull(sMessage) Then Exit Sub

        Select Case CStr(nMessageType)
                Case "1"
                        Img = "s_critical.gif"
                Case "2"
                        Img = "s_warning.gif"
                Case "3"
                        Img = "s_note.gif"
                Case Else
                        Img = nMessageType
        End Select


        msgTemplate = ReadFile( APP_ROOT &"\scripts\message_style.html" )
        msgTemplate = Replace( msgTemplate, "%WIDTH%", sWidth )
        msgTemplate = Replace( msgTemplate, "%IMAGE%", Img )
        msgTemplate = Replace( msgTemplate, "%MESSAGE%", sMessage )

        Response.write msgTemplate
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function IsTicked ( ByVal nParId, ByVal sParList )
        ' Used only with check boxes as they send comma-separated list
        nParId   = ","&  Replace(nParId, " ", "") &","
        sParList = ","&  Replace(sParList, " ", "") &","

        If InStr( sParList, nParId ) > 0 Then
                IsTicked = TRUE
        Else
                IsTicked = FALSE
        End If
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function ProgressBar ()
        ProgressBar = "<DIV name='divProgressBar' id='divProgressBar' style='visibility:hidden;'><img src='icons/i_processing.gif' width='79' height='14'></DIV>"
End Function
'-----------------------------------------------------------------------------------------------------------------------------
Function HighlightSubstring ( SSstr, SSsubstr )
        Dim leftSTR, startPos
        startPos = InStr( 1, SSstr, SSsubstr, 1 )

        If startPos > 0 Then
                leftSTR = Left ( SSstr, startPos - 1 )
                Highlight_Substring = leftSTR &"<SPAN style='background:#ffff99;'>"& Mid( SSstr, startPos, Len(SSsubstr) ) &"</SPAN>"&  Right ( SSstr, Len(SSstr) - Len(leftSTR) - Len(SSsubstr)  )
        Else
                ' Subtring not found
                Highlight_Substring = SSstr
        End If

End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub DisplayColumn( sColumnName, sTableColumn, outOrderBy, bSetToDefault )
        Dim selectedColumnTemplate, tempColumnName, ordBy, ordType, ordImg, sLink, isDefaultColumn

        '--- Set Default Column ---
        isDefaultColumn = FALSE
        If (Request("ordby") = "")  AND bSetToDefault Then
                isDefaultColumn = TRUE
        End If

        '--- Create border for selected column ---
        selectedColumnTemplate = _
        "background='images/bg_table_border.gif'><table width='100%'  border='0' cellspacing='1' cellpadding='2'>"&_
    "  <tr>"&_
    "    <td align='right' nowrap background='images/bg_table_col.gif'>%COLUMN_NAME%</td>"&_
    "  </tr>"&_
    "</table>"


        '--- Create Order Name ---
        ordBy = LCase( Replace( sColumnName, " ", "_" ) )


        '--- Toggle Order Type ---
        ordType = "asc"
        ordImg = ""
        If Request("ordby") = ordBy  OR  isDefaultColumn Then
                If Request("ordtype") = "desc" Then
                        ordType = "asc"
                        ordImg = "<img src='icons/b_sort_desc.gif' hspace='4' border='0' align='absmiddle'>"
                Else
                        ordType = "desc"
                        ordImg = "<img src='icons/b_sort_asc.gif' hspace='4' border='0' align='absmiddle'>"
                End If
        End If


        '--- Set temporary Column name and link
        sLink = SCRIPT_NAME &"?ordby="& ordBy &"&ordtype="& ordType &"&"& objPMod.ComposeURL()

        tempColumnName = "<a href='"& sLink &"' class='body_linkbold'>&nbsp;"& ordImg & sColumnName &"&nbsp;</a>"


        '--- Display Formated Column Name ---
        If Request("ordby") = ordBy  OR  isDefaultColumn Then
                ' This column is selected
                outOrderBy = " ORDER BY UPPER("& sTableColumn &") "& Request("ordtype")
                Response.write Replace( selectedColumnTemplate, "%COLUMN_NAME%", tempColumnName)

        Else
                ' Check if column is sortable
                If NOT IsNull(sTableColumn)  OR (sTableColumn <> "") Then
                        Response.write "background='images/bg_table_col.gif'>" & tempColumnName
                Else
                        Response.write "background='images/bg_table_col.gif' class='body_col'>"& sColumnName
                End If


        End If

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function BomIcon ( sIsReadonly, sIsRejected )

        If sIsReadonly = enumDB_NO Then
                BomIcon = enumBOM_EDITMODE
        Else
                If (sIsRejected = "") OR IsNull(sIsRejected) Then
                        BomIcon = enumBOM_NEW

                ElseIf sIsRejected = enumDB_YES Then
                        BomIcon = enumBOM_REJECTED

                ElseIf sIsRejected = enumDB_NO Then
                        BomIcon = enumBOM_ACCEPTED

                End If

        End If

End Function
'-----------------------------------------------------------------------------------------------------------------
Sub GetBomDetails ( nBom_id, ByRef outobjDetails )
        Dim rsQry, query
        OraDatabase.Parameters.Add "BOM_ID", nBom_id,   ORAPARM_INPUT, ORATYPE_NUMBER

        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("BomDetails.sql") , ORADYN_DEFAULT )

        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                outobjDetails.Item ("bom_id")   = rsQry("bom_id")
                outobjDetails.Item ("bom_name") = rsQry("bom_name")
                outobjDetails.Item ("bom_name_id") = rsQry("bom_name_id")
                outobjDetails.Item ("branch_id") = rsQry("branch_id")
                outobjDetails.Item ("bom_version") = rsQry("bom_version")
                outobjDetails.Item ("bom_lifecycle") = rsQry("bom_lifecycle")
                outobjDetails.Item ("bom_comments") = rsQry("bom_comments")
                outobjDetails.Item ("is_readonly") = rsQry("is_readonly")
                outobjDetails.Item ("is_rejected") = rsQry("is_rejected")
                outobjDetails.Item ("parent_bom_id") = rsQry("parent_bom_id")
                outobjDetails.Item ("base_env_count") = rsQry("base_env_count")
                outobjDetails.Item ("rtag_id_fk") = rsQry("rtag_id_fk")
                outobjDetails.Item ("pdf_attachment_path") = rsQry("pdf_attachment_path")

        Else
                Err.Raise 8, "Sub GetBomDetails", "Empty record set returned. nBom_id="& nBom_id

        End If

        OraDatabase.Parameters.Remove "BOM_ID"
        rsQry.Close
        Set rsQry = Nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------
Sub GetProjDetails ( nBom_id, ByRef outobjDetails )
        Dim rsQry, query
        OraDatabase.Parameters.Add "BOM_ID", nBom_id,   ORAPARM_INPUT, ORATYPE_NUMBER

        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ProjDetails.sql") , ORADYN_DEFAULT )

        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                outobjDetails.Item ("is_download")   = rsQry("is_download")
        Else
                Err.Raise 8, "Sub GetBomDetails", "Empty record set returned. nBom_id="& nBom_id

        End If

        OraDatabase.Parameters.Remove "BOM_ID"
        rsQry.Close
        Set rsQry = Nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub RaiseMsg ( SSerrFile, SSerrDesc )
        ' Usage: enumERROR, parval1 &"|"& parval2 &"|"& parval3 ...
        Session( "DEPMGR_ERRDESCRIPTION" ) = SSerrDesc
        Response.Redirect ("messages/"& SSerrFile )
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function Wiki2HTML ( ByVal sWikiString )
        '=== Definition ===
        sWikiString = Replace ( sWikiString, "[BREAKLINE]", "<hr noshade size='1' color='#DAD7C8'>"  )
        sWikiString = Replace ( sWikiString, "[NEWLINE]", "<br>"  )

        Wiki2HTML = sWikiString
End Function
'----------------------------------------------------------------------------------------------------------------------------------------------
Function GetProductIcon ( rsQry )
        Const LIMG_BB_PRODUCT = "<img src='icons/i_product.gif' width='19' height='19' border='0' align='absmiddle'>"
        Const LIMG_BB_PATCH = "<img src='icons/i_patch_small.gif' border='0' align='absmiddle' hspace='2'>"
        Const LIMG_BB_PATCH_OBSOLETE = "<img src='icons/i_patch_small_obsolete.gif' border='0' align='absmiddle' hspace='2'>"
        Const LIMG_BB_PRODUCT_REJECTED = "<img src='icons/i_product_rejected.gif' width='19' height='19' border='0' align='absmiddle' title='Product is REJECTED! Click to see details.'>"

        '-- Set default icon
        GetProductIcon = LIMG_BB_PRODUCT

        If IsObject(rsQry) Then
                '/* Recordset is passed */
                If rsQry("is_rejected") = enumDB_YES Then
                        GetProductIcon = LIMG_BB_PRODUCT_REJECTED

                ElseIf rsQry("is_obsolete") = enumDB_YES Then
                        GetProductIcon = LIMG_BB_PATCH_OBSOLETE

                ElseIf rsQry("is_patch") = enumDB_YES Then
                        GetProductIcon = LIMG_BB_PATCH



                End If

        Else
                '/* Single Value is passed */
                If rsQry = enumDB_YES Then
                        GetProductIcon = LIMG_BB_PRODUCT_REJECTED
                End If

        End If

End Function
'----------------------------------------------------------------------------------------------------------------------------------------------
Function GetRootVersion ( sBomVersion )
        Dim tempArr

        If InStr( sBomVersion, "." ) > 0 Then
                '-- Dot separator found --

                '-- Split version --
                tempArr = Split( sBomVersion, "." )

                '-- Return first element as root version
                GetRootVersion = tempArr(0)

        Else
                '-- No dot separator, hence root version is version itself
                GetRootVersion = sBomVersion

        End If

End Function
'--------------------------------------------------------------------------------------------------------------------------
Function HighlightSubstring ( SSstr, SSsubstr )
        Dim leftSTR, startPos
        startPos = InStr( 1, SSstr, SSsubstr, 1 )

        If startPos > 0 Then
                leftSTR = Left ( SSstr, startPos - 1 )
                HighlightSubstring = leftSTR &"<SPAN style='background:#ffff99;'>"& Mid( SSstr, startPos, Len(SSsubstr) ) &"</SPAN>"&  Right ( SSstr, Len(SSstr) - Len(leftSTR) - Len(SSsubstr)  )
        Else
                ' Subtring not found
                HighlightSubstring = SSstr
        End If

End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub Destroy_All_Objects
        On Error Resume Next
        set brokenReadyHash = nothing
        set brokenHash = nothing
        set pkgInfoHash = nothing
        set OraDatabase = nothing
        set OraSession = nothing
        set userdetailsHash = nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Get_Pkg_Short_Info( SSparPv_id, SSpkgID, SSpkgName, SSpkgVersion, SSsrc_path, SSpkgDesc, BBdlocked )
        Dim rsTemp, Query_String
        If IsEmpty(SSparPv_id) Then Exit Sub

        Query_String = _
        " SELECT pkg.pkg_id, pkg.pkg_name, pv.pkg_version, pv.src_path, pv.pv_description, pv.dlocked"&_
        "  FROM packages pkg, package_versions pv"&_
        " WHERE pkg.pkg_id = pv.pkg_id  AND pv.pv_id ="& SSparPv_id

        Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

        If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
                SSpkgID = rsTemp.Fields("pkg_id")
                SSpkgName = rsTemp.Fields("pkg_name")
                SSpkgVersion = rsTemp.Fields("pkg_version")
                SSsrc_path = rsTemp.Fields("src_path")
                SSpkgDesc = rsTemp.Fields("pv_description")
                BBdlocked = rsTemp.Fields("dlocked")
        End If

        rsTemp.Close
        Set rsTemp = nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Create_Folder ( sCreateIn, sFolderName )
        Dim filesys, currfolder, folcoll, subfol
        Set filesys = CreateObject("Scripting.FileSystemObject")
        If filesys.FolderExists( sCreateIn ) Then
                Set currfolder = filesys.GetFolder( sCreateIn )
                Set folcoll = currfolder.SubFolders
                If NOT filesys.FolderExists( sCreateIn &"\"& sFolderName ) Then
                        folcoll.Add( sFolderName )
                End If
        End If
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub DeleteFile( SSpath )
        Dim filesys
        Set filesys = CreateObject("Scripting.FileSystemObject")
        If filesys.FileExists(SSpath) Then
                filesys.DeleteFile SSpath, TRUE
        End If
        Set filesys = nothing
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Get_Pkg_Info ( SSpv_id, NNrtag )
        Dim rsTemp, Query_String
        OraDatabase.Parameters.Add "PV_ID",             SSpv_id,        ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "RTAG_ID",           NNrtag,         ORAPARM_INPUT, ORATYPE_NUMBER
        OraDatabase.Parameters.Add "RETURN_NUMBER", NULL,               ORAPARM_OUTPUT, ORATYPE_NUMBER


        pkgInfoHash.Item ("can_unofficial") = "false"

        '/* Get Package Details */
        Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("PackageDetails.sql"), cint(0))

        If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
                pkgInfoHash.Add "pv_id", (rsTemp.Fields("pv_id"))
                pkgInfoHash.Add "pkg_id", (rsTemp.Fields("pkg_id"))
                pkgInfoHash.Add "pkg_name", (rsTemp.Fields("pkg_name"))
                pkgInfoHash.Add "pkg_version", (rsTemp.Fields("pkg_version"))
                pkgInfoHash.Add "v_ext", (rsTemp.Fields("v_ext"))
                pkgInfoHash.Add "comments", (rsTemp.Fields("comments"))

                pkgInfoHash.Add "modified_stamp", (rsTemp.Fields("modified_stamp"))
                pkgInfoHash.Add "modifier", (rsTemp.Fields("modifier"))
                pkgInfoHash.Add "modifier_id", (rsTemp.Fields("modifier_id"))
                pkgInfoHash.Add "modifier_email", (rsTemp.Fields("modifier_email"))

                pkgInfoHash.Add "created_stamp", (rsTemp.Fields("created_stamp"))
                pkgInfoHash.Add "creator", (rsTemp.Fields("creator"))
                pkgInfoHash.Add "creator_email", (rsTemp.Fields("creator_email"))

                pkgInfoHash.Add "owner", (rsTemp.Fields("owner"))
                pkgInfoHash.Add "owner_email", (rsTemp.Fields("owner_email"))

                pkgInfoHash.Add "dlocked", (rsTemp.Fields("dlocked"))
                pkgInfoHash.Add "proj_id", (rsTemp.Fields("proj_id"))
                pkgInfoHash.Add "rtag_id", (rsTemp.Fields("rtag_id"))
                pkgInfoHash.Add "rtag_name", (rsTemp.Fields("rtag_name"))
                pkgInfoHash.Add "pkg_label", (rsTemp.Fields("pkg_label"))
                pkgInfoHash.Add "src_path", (rsTemp.Fields("src_path"))
                pkgInfoHash.Add "pv_description", (rsTemp.Fields("pv_description"))
                pkgInfoHash.Add "last_pv_id", (rsTemp.Fields("last_pv_id"))
                pkgInfoHash.Add "previous_version", (rsTemp.Fields("previous_version"))
                pkgInfoHash.Add "release_notes_info", (rsTemp.Fields("release_notes_info"))

                pkgInfoHash.Add "is_patch", (rsTemp.Fields("is_patch"))
                pkgInfoHash.Add "is_obsolete", (rsTemp.Fields("is_obsolete"))
                pkgInfoHash.Add "obsolete_comments", (rsTemp.Fields("obsolete_comments"))

                pkgInfoHash.Add "build_type", (rsTemp.Fields("build_type"))
                pkgInfoHash.Add "change_type", (rsTemp.Fields("change_type"))

        End If








End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Function Folder_Is_Empty ( sPath )
        Dim filesys, oFolder
        Set filesys = CreateObject("Scripting.FileSystemObject")

        If filesys.FolderExists( sPath ) Then
                Set oFolder = filesys.GetFolder( sPath )
                If ( oFolder.Files.Count + oFolder.SubFolders.Count ) > 0 Then
                        Folder_Is_Empty = FALSE
                Else
                        Folder_Is_Empty = TRUE
                End If
        Else
                Folder_Is_Empty = TRUE
        End If

End Function
'-----------------------------------------------------------------------------------------------------------------------------
Sub DeleteFolder( SSpath )
        Dim  filesys
        Set filesys = CreateObject ("Scripting.FileSystemObject")
        If filesys.FolderExists( SSpath ) Then
                'Set oFolder = filesys.GetFolder( SSpath )
                filesys.DeleteFolder SSpath ,TRUE
        End If
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub PopulateSBOMField( nBomId, nProdId, sPkgName, sPkgVersion )

        Dim rsTemp, BomLocationDetails

        If IsNull(nProdId) Then
                Dim Query

                Query = "select pv.pv_id from package_versions pv, packages pkg where pv.pkg_id = pkg.pkg_id "&_
                                " and pv.pkg_version = '"&sPkgVersion&"' and pkg.pkg_name = '"&sPkgName&"'"

                'Response.Write Query
                Set rsTemp = OraDatabase.DbCreateDynaset( Query, cint(0))

                nProdId = rsTemp("pv_id")

        End If

        'OraDatabase.Parameters.Add "BOM_ID", nBomId,   ORAPARM_INPUT, ORATYPE_NUMBER

        '/* Get SBOM Details */
        Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("BomLocationDetails.sql"), cint(0))

        BomLocationDetails = rsTemp("proj_name") + " > " + rsTemp("branch_name") + " > " &_
                                                + rsTemp("bom_name") + " " + rsTemp("bom_version") + "." &_
                                                + rsTemp("bom_lifecycle")

        'Response.Write BomLocationDetails 'Data to be inserted into the 'sbom' field

        Call Insert_Into_ClearQuest_Schema( nProdId, BomLocationDetails )


        'OraDatabase.Parameters.Remove "BOM_ID"

        rsTemp.Close()
        Set rsTemp = Nothing




End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub Insert_Into_ClearQuest_Schema( nProdId, sBomDetails )

        Dim sqlstr, DEVIiss, Query_String, rsCQ, rsTemp

        Set rsCQ = CreateObject("ADODB.Recordset")

        sqlstr = " SELECT iss_db, iss_id"&_
                         "   FROM CQ_ISSUES "&_
                         "  WHERE iss_state = "& enumISSUES_STATE_FIXED &_
                         "    AND pv_id IN ( SELECT dpv_id FROM PACKAGE_DEPENDENCIES WHERE pv_id = "& nProdId &" )"


        'Response.Write sqlstr

        Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))

        DEVIiss = "-1"

        While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
                If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
                        DEVIiss = DEVIiss &","& rsTemp("iss_id")
                End If

                rsTemp.MoveNext
        WEnd

        Query_String = ReadFile( rootPath & "queries\cq_issues_full.sql" )
        Query_String = Replace( Query_String, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
        Query_String = Replace( Query_String, "/*DEVIiss*/", DEVIiss)

        'Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

        'Response.Write Query_String
        Call Get_CQ_Issues ( Query_String, rsCQ )

        While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF))

                If CInt(rsCQ("iss_db")) = enumCLEARQUEST_DEVI_ID AND IsNull(rsCQ("sbom")) Then

                        'Response.Write rsCQ("iss_num")

                        Set rsTemp = CreateObject("ADODB.Connection")

                        rsTemp.Open CQ_conn

      rsTemp.Execute "EXEC cq_devi.dbo.sp_DM_editSBOMDetails "& rsCQ("iss_id") &", '"& sBomDetails &"';"

                        rsTemp.Close()
                        Set rsTemp = Nothing
                End If

                rsCQ.MoveNext
        Wend

        rsCQ.Close()
        Set rsCQ = Nothing

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub  Get_CQ_Issues( SSsql, OOrsCQ )

        OOrsCQ.ActiveConnection = CQ_conn
        OOrsCQ.Source = SSsql
        OOrsCQ.CursorType = 0
        OOrsCQ.CursorLocation = 2
        OOrsCQ.LockType = 3
        OOrsCQ.Open()

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
%>