Subversion Repositories DevTools

Rev

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

<%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'|                                                   |
'|                 wSyncProducts                     |
'|                                                   |
'=====================================================
%>
<%
Option explicit
Response.Expires = 0
%>
<%
'To enable the script timeout to 10 mins
Server.ScriptTimeout=360
%>
<!--#include file="common/globals.asp"-->
<!--#include file="common/config.asp"-->
<!--#include file="common/common_subs.asp"-->
<!--#include file="common/_popup_window_common.asp"-->
<%
'------------ ACCESS CONTROL ------------------
%>
<!--#include file="_access_control_general.asp"-->
<%
'------------ VARIABLE DEFINITION -------------
Dim rsQry
Dim aProducts
Dim numOfRows
Dim rowNum
Dim objFormCollector
Dim currPkg_id
Dim Query_String
Dim errorMessage
Dim objList
Dim objHideList
Dim key

'------------ CONSTANTS DECLARATION -----------
'------------ VARIABLE INIT -------------------
parBom_id = Request("bom_id")
Set objFormCollector = CreateObject("Scripting.Dictionary")
Set objList = CreateObject("Scripting.Dictionary")
Set objHideList = CreateObject("Scripting.Dictionary")

'------------ CONDITIONS ----------------------
'----------------------------------------------
%>
<%
'----------------------------------------------------------------------------------------------------------------------------------
'   Get some basic information required by the form
'
Sub GetFormDetails ( nBom_id, ByRef outobjDetails )
   Dim rsQry, query
   OraDatabase.Parameters.Add "BOM_ID", nBom_id, ORAPARM_INPUT, ORATYPE_NUMBER

   query = _
   "  SELECT rt.RTAG_ID, "&_
   "         rt.RTAG_NAME, "&_
   "         rt.PRODUCT_STATE_USED "&_
   "    FROM RELEASE_TAGS rt,"&_
   "         BOMS bo"&_
   "   WHERE bo.RTAG_ID_FK = rt.RTAG_ID"&_
   "     AND bo.BOM_ID = :BOM_ID"

   Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
   If (NOT rsQry.BOF) AND (NOT rsQry.EOF)Then
      outobjDetails.Item ("rtag_id_fk") = rsQry("rtag_id")
      outobjDetails.Item ("rtag_name") = rsQry("rtag_name")
      outobjDetails.Item ("product_state_used") = rsQry("product_state_used")
   End If

   OraDatabase.Parameters.Remove "BOM_ID"
   rsQry.Close
   Set rsQry = Nothing
End Sub
'----------------------------------------------------------------------------------------------------------------------------------
Sub UpdateProducts()
   Dim aDiffList, numOfRows, rowNum, OraParameter
   Const os_id_column = 2
   Const old_prod_id_column = 1

   '/* Get Latest From Release Manager */
   OraDatabase.Parameters.Add "BOM_ID",  parBom_id,                           ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "RTAG_ID", objFormCollector.Item("rtag_id_fk"), ORAPARM_INPUT, ORATYPE_NUMBER

   Query_String = ReadFile( rootPath & "queries\CompareBomWithLatestFromRM.sql" )
   If objFormCollector.Item ("product_state_used") =  "Y"   Then
      Query_String = Replace( Query_String, "/* AND rc.PRODUCT_STATE = 3 */", " AND rc.PRODUCT_STATE = 3")
   End If
   Set rsQry = OraDatabase.DbCreateDynaset( Query_String, ORADYN_DEFAULT )

   OraDatabase.Parameters.Remove "BOM_ID"
   OraDatabase.Parameters.Remove "RTAG_ID"

   '-- Get Rows
   If rsQry.RecordCount > 0 Then
      aDiffList = rsQry.GetRows()
   Else
      '-- No differencses with Release Manager, hence exit
      Exit Sub
   End If

   ' Get the project id so we can filter out PopulateSBOMField() for SSW later.
   Dim rsProjId, proj_id
   Set rsProjId = OraDatabase.DbCreateDynaset("SELECT proj_id FROM branches br, boms b WHERE br.branch_id = b.branch_id AND b.bom_id = " & parBom_id, cint(0))
   proj_id = rsProjId("proj_id")
   rsProjId.Close()
   Set rsProjId = nothing

   '/* Update Versions */

   OraDatabase.Parameters.Add "BOM_ID",      parBom_id,               ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "OLD_PROD_ID", 0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "NEW_PROD_ID", 0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "OS_ID",       0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "USER_ID",     objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER

   Set OraParameter = OraDatabase.Parameters

   '    Try the database operations
   '    Must have On Error Resume Next in effect in order for the objEH.CatchORA to operate
   '
   objEH.TryORA ( OraSession )
   On Error Resume Next

   numOfRows = UBound( aDiffList, 2 )

   For rowNum = 0 To numOfRows

      If Request("update_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( old_prod_id_column, rowNum ) ) <> "" Then
         OraParameter("OLD_PROD_ID").Value = aDiffList( old_prod_id_column, rowNum )
         OraParameter("NEW_PROD_ID").Value = Request("update_" & aDiffList( os_id_column, rowNum ) &"_"& aDiffList( old_prod_id_column, rowNum ) )
         OraParameter("OS_ID").Value = aDiffList( os_id_column, rowNum )

'******************************************************************************
' This is causing problems for SSW, VTK and SEA and they don't use it, so it
' has been disabled for those projects until a fix is found.
'******************************************************************************
         If proj_id <> 421 AND proj_id <> 361 AND proj_id <> 122 AND proj_id <> 164 AND proj_id <> 581 Then
            ' Needs :BOM_ID, but not for any good reason that I can see
            Call PopulateSBOMField(parBom_id, Request("update_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( old_prod_id_column, rowNum ) ), NULL, NULL )
         End If

         'Response.Write("<script>alert('" &_
         '                     "OLD_PROD_ID=" & OraParameter("OLD_PROD_ID").Value & "\n" &_
         '                     "NEW_PROD_ID=" & OraParameter("NEW_PROD_ID").Value & "\n" &_
         '                     "OS_ID=" & OraParameter("OS_ID").Value & "\n" &_
         '                     "USER_ID=" & OraParameter("USER_ID").Value & "\n" &_
         '                     "rtag_id_fk=" & objFormCollector.Item("rtag_id_fk") & "\n" &_
         '                     "update_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( old_prod_id_column, rowNum ) &_
         '                     "')</script>")

         OraDatabase.ExecuteSQL "BEGIN   pk_Product.Replace_Product ( :OLD_PROD_ID, :NEW_PROD_ID, :OS_ID, :USER_ID );   END;"
      End If
   Next

   '--- Log Action ---
   'objEH.LogAction  _
   'objAccessControl.UserId, _
   'enumAT_EVENT_COMMENT, _
   '"Sub UpdateProducts for OS list="& Request("spos_id_list"), _
   'SCRIPT_NAME, _
   '"Updated Products with new versions.", _
   'OraDatabase

   OraDatabase.Parameters.Remove "BOM_ID"
   OraDatabase.Parameters.Remove "OLD_PROD_ID"
   OraDatabase.Parameters.Remove "NEW_PROD_ID"
   OraDatabase.Parameters.Remove "OS_ID"
   OraDatabase.Parameters.Remove "USER_ID"

   objEH.CatchORA ( OraSession )

End Sub
'----------------------------------------------------------------------------------------------------------------------------------
Sub AddPatches()
   Dim aDiffList, numOfRows, rowNum, OraParameter
   Const os_id_column = 2
   Const prod_id_column = 1

   '/* Get Lates Release Manager */
   OraDatabase.Parameters.Add "BOM_ID", parBom_id,    ORAPARM_INPUT, ORATYPE_NUMBER
   Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NewPatches.sql"), ORADYN_DEFAULT )
   OraDatabase.Parameters.Remove "BOM_ID"

   '-- Get Rows
   If rsQry.RecordCount > 0 Then
      aDiffList = rsQry.GetRows()

   Else
      '-- No differences with Release Manager, hence exit
      Exit Sub
   End If

   '/* Update Versions */
   OraDatabase.Parameters.Add "NEW_PROD_ID", 0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "OS_ID",       0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "USER_ID",     objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER

   Set OraParameter = OraDatabase.Parameters

   objEH.TryORA ( OraSession )
   On Error Resume Next

   numOfRows = UBound( aDiffList, 2 )

   For rowNum = 0 To numOfRows

      If Request("add_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( prod_id_column, rowNum ) ) <> "" Then
         OraParameter("NEW_PROD_ID").Value = Request("add_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( prod_id_column, rowNum ) )
         OraParameter("OS_ID").Value = aDiffList( os_id_column, rowNum )

         OraDatabase.ExecuteSQL "BEGIN   pk_Product.Add_Product ( :NEW_PROD_ID, :OS_ID, :USER_ID );   END;"
      End If

   Next

   OraDatabase.Parameters.Remove "NEW_PROD_ID"
   OraDatabase.Parameters.Remove "OS_ID"
   OraDatabase.Parameters.Remove "USER_ID"

   objEH.CatchORA ( OraSession )

End Sub
'----------------------------------------------------------------------------------------------------------------------------------
Sub HideProducts()
   Dim aDiffList, numOfRows, rowNum, OraParameter
   Const os_id_column = 2
   Const old_prod_id_column = 1

   '/* Get Latest from Release Manager */
   OraDatabase.Parameters.Add "BOM_ID",  parBom_id,                           ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "RTAG_ID", objFormCollector.Item("rtag_id_fk"), ORAPARM_INPUT, ORATYPE_NUMBER

   Query_String = ReadFile( rootPath & "queries\CompareBomWithLatestFromRM.sql" )
   If objFormCollector.Item ("product_state_used") =  "Y"   Then
      Query_String = Replace( Query_String, "/* AND rc.PRODUCT_STATE IN (3, 5) */", " AND rc.PRODUCT_STATE IN (3, 5)")
   End   If

   Set rsQry = OraDatabase.DbCreateDynaset( Query_String, ORADYN_DEFAULT )

   OraDatabase.Parameters.Remove "BOM_ID"
   OraDatabase.Parameters.Remove "RTAG_ID"

   '-- Get Rows
   If rsQry.RecordCount > 0 Then
      aDiffList = rsQry.GetRows()

   Else
      '-- No differences with Release Manager, hence exit
      Exit Sub

   End If

   '/* Hide Versions */
   OraDatabase.Parameters.Add "NEW_PROD_ID", 0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "OS_ID",       0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "USER_ID",     objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER

   Set OraParameter = OraDatabase.Parameters

   On Error Resume Next
   objEH.TryORA ( OraSession )

   numOfRows = UBound( aDiffList, 2 )

   For rowNum = 0 To numOfRows
      If Request("hide_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( old_prod_id_column, rowNum ) ) <> "" Then
         OraParameter("NEW_PROD_ID").Value = Request("hide_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( old_prod_id_column, rowNum ) )
         OraParameter("OS_ID").Value = aDiffList( os_id_column, rowNum )

         OraDatabase.ExecuteSQL "BEGIN   pk_Product.Hide_Product ( :NEW_PROD_ID, :OS_ID, :USER_ID );   END;"
      End If
   Next

   '--- Log Action ---
   'objEH.LogAction  _
   'objAccessControl.UserId, _
   'enumAT_EVENT_COMMENT, _
   '"Sub UpdateProducts for OS list="& Request("spos_id_list"), _
   'SCRIPT_NAME, _
   '"Updated Products with new versions.", _
   'OraDatabase

   OraDatabase.Parameters.Remove "NEW_PROD_ID"
   OraDatabase.Parameters.Remove "OS_ID"
   OraDatabase.Parameters.Remove "USER_ID"

   objEH.CatchORA ( OraSession )
End Sub
'----------------------------------------------------------------------------------------------------------------------------------
Sub HidePatches()
   Dim aDiffList, numOfRows, rowNum, OraParameter
   Const os_id_column = 2
   Const prod_id_column = 1

   '/* Get Latest from Release Manager */
   OraDatabase.Parameters.Add "BOM_ID", parBom_id,    ORAPARM_INPUT, ORATYPE_NUMBER
   Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NewPatches.sql"), ORADYN_DEFAULT )
   OraDatabase.Parameters.Remove "BOM_ID"

   '-- Get Rows
   If rsQry.RecordCount > 0 Then
      aDiffList = rsQry.GetRows()

   Else
      '-- No differencses with Release Manager, hence exit
      Exit Sub
   End If

   '/* Hide Versions */
   OraDatabase.Parameters.Add "NEW_PROD_ID", 0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "OS_ID",       0,                       ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "USER_ID",     objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER

   Set OraParameter = OraDatabase.Parameters

   objEH.TryORA ( OraSession )
   On Error Resume Next

   numOfRows = UBound( aDiffList, 2 )

   For rowNum = 0 To numOfRows
      If Request("hide_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( prod_id_column, rowNum ) ) <> "" Then
         OraParameter("NEW_PROD_ID").Value = Request("hide_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( prod_id_column, rowNum ) )
         OraParameter("OS_ID").Value = aDiffList( os_id_column, rowNum )

         OraDatabase.ExecuteSQL "BEGIN   pk_Product.Hide_Product ( :NEW_PROD_ID, :OS_ID, :USER_ID );   END;"
      End If
   Next

   OraDatabase.Parameters.Remove "NEW_PROD_ID"
   OraDatabase.Parameters.Remove "OS_ID"
   OraDatabase.Parameters.Remove "USER_ID"

   objEH.CatchORA ( OraSession )
End Sub
'----------------------------------------------------------------------------------------------------------------------------------
%>
<%
'------------ RUN BEFORE PAGE RENDER ----------
Call GetFormDetails ( parBom_id, objFormCollector )

If Request("action") <> "" Then
   ' -- Need to provide some level of validation
   '    Cannot handle multiple updates to the same package
   '    These can be detected by examining all the Update requests that have badly formed values
    Dim Item
        For Each Item In Request.Form
        If InStr(1, Item, "update_" , 1) = 1 Then
            If InStr( 1, Request.Form(Item), ",", 1) <> 0 Then
                errorMessage = "The selected set of packages to be updated is incorrect<br>" &_
                               "The selection attempts to update a target package with more than one version of a package"
                Exit For
            End If
        End If
    Next

    ' --- Form is Valid ---
    If isEmpty(errorMessage) Then
       Call UpdateProducts()

       Call AddPatches()

       Call HideProducts()

       Call HidePatches()

       If objEH.Finally Then
          Call OpenInParentWindow ("Bom_Home.asp?UPDATED=OK"& objPMod.ComposeURLWithout("rfile") )
          Call CloseWindow()
       End If
    Else
    Response.Write ("WTF")
    End If
End If

'----------------------------------------------
%>
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin

var checkflag = "false";

function check(field) {
   if (checkflag == "false") {
      for (i = 0; i < field.length; i++) {
         field[i].checked = true;
      }
      checkflag = "true";
      return "Uncheck all";
   }
   else {
      for (i = 0; i < field.length; i++) {
         field[i].checked = false;
      }
      checkflag = "false";
      return "Check all";
   }
}
//  End -->
</script>
<script language="javascript">

function checkAllHide()
{
   var args = arguments;
   start_point:
   for (var i=0;i<document.forms[0].elements.length;i++) {
      found = false;
      var e=document.forms[0].elements[i];
      if ((e.name != 'checkall') && (e.type=='checkbox')) {
         for (var j = 0; j < args.length; j++)
            if (args[j] == e.name) {
               e.checked=document.forms[0].checkallhide.checked;
            }
      }
   }
}

function checkAllAdd()
{
   var args = arguments;
   start_point:
   for (var i=0;i<document.forms[0].elements.length;i++) {

      found = false;
      var e=document.forms[0].elements[i];

      if ((e.name != 'checkall') && (e.type=='checkbox')) {
         for (var j = 0; j < args.length; j++)
            if (args[j] == e.name) {
               e.checked=document.forms[0].checkalladd.checked;
            }
      }
   }
}

// Toggle all checkboxes whose name begins with any strings listed as args to the function.
function toggleAll(elem)
{
   var args = arguments;
   start_point:

   for (var i=0;i<document.forms[0].elements.length;i++) {

      var e=document.forms[0].elements[i];

      if (e.type=='checkbox') {
         for (var j = 1; j < args.length; j++)
            if (e.name.indexOf(args[j]) == 0) {
               e.checked=elem.checked;
            }
      }
   }
   return true;
}

</script>


<title>Deployment Manager</title>
<link rel="shortcut icon" href="<%=FavIcon%>"/>
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="scripts/deployment_manager.css?ver=<%=VixVerNum%>" rel="stylesheet" type="text/css">
<script language="JavaScript" src="scripts/common.js?ver=<%=VixVerNum%>"></script>
<style type="text/css">
<!--
.style8 {font-size: 12px}
-->
</style>
</head>

<body background="images/bg_bage_0.gif" leftmargin="0" topmargin="0" onLoad="self.focus();">
<table width="100%"  border="0" cellspacing="0" cellpadding="10">
   <tr>
      <td bgcolor="#FFFFFF" class="body_txt"><span class="body_h1"><img src="icons/i_linkarrow_black.gif" width="11" height="11" align="absmiddle">&nbsp;Update Products </span> <br>
         Update Products, selecting the latest from "Release Manager".
      </td>
   </tr>
   <%
   '-- FROM START --------------------------------------------------------------------------------------------------------------
   objFormComponent.FormName = "FormName"
   objFormComponent.Action = SCRIPT_NAME
   objFormComponent.OnSubmit = "ShowProgress();"
   Call objFormComponent.FormStart()
   %>
   <tr>
      <td background="images/bg_login.gif">
         <table width="100%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
               <td><%=ProgressBar()%>
                  <input name="btn" type="submit" class="form_btn" value="Update Selected">
                  <input name="btn" type="reset" class="form_btn" value="Cancel" onClick="self.close();">
               </td>
               <td align="left">&nbsp;
               </td>
            </tr>
         </table>
      </td>
   </tr>
   <tr>
      <td>
         <!-- PRODUCT NAME RESULTS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
         <table width="100%"  border="0" cellspacing="10" cellpadding="0">
            <tr>
               <td width="100%" valign="top" nowrap class="body_txt">
                  <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                  <!--#include file="messages/_msg_inline.asp"-->
                  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                  <%
                  If objFormCollector.Item("rtag_id_fk") = "" Then
                     Call Messenger ( "This BOM does not have Release Manager Reference release.<br>Please edit BOM properties first.<br>", 1, "100%" )
                  End If
                  If NOT isEmpty(errorMessage) Then
                    Call Messenger ( errorMessage, 1, "100%" )
                  End If
                  %>
                  <!-- UPDATE PRODUCTS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                  Select Products and click Update.
                  <table width="100%"  border="0" cellspacing="3" cellpadding="0">
                     <tr>
                        <td width="1%" nowrap background="images/bg_bage_0h.gif" class="body_col" style="padding-right: 0px;">
                            Update <input type="checkbox" onclick="toggleAll(this, 'add_','update_')">
                        </td>
                        <td width="1%" nowrap background="images/bg_bage_0h.gif" class="body_col"></td>
                        <td width="40%" align="right" nowrap background="images/bg_bage_0h.gif" class="body_col"><div align="left">Location</div></td>
                        <td width="20%" align="right" nowrap background="images/bg_bage_0h.gif" class="body_col"><div align="left">Version</div></td>
                        <td align="right" background="images/bg_bage_0h.gif" class="body_col"><div align="center">Hide</div></td>
                        <td align="right" background="images/bg_bage_0h.gif" class="body_col"><div align="left"><img src="images/spacer.gif" width="1" height="18" align="absmiddle">Latest</div>                <div align="left"></div></td>
                     </tr>
                     <%
                     OraDatabase.Parameters.Add "BOM_ID", parBom_id,    ORAPARM_INPUT, ORATYPE_NUMBER
                     OraDatabase.Parameters.Add "RTAG_ID", objFormCollector.Item("rtag_id_fk"),    ORAPARM_INPUT, ORATYPE_NUMBER

                     Query_String = ReadFile( rootPath & "queries\CompareBomWithLatestFromRM.sql" )
                     If objFormCollector.Item ("product_state_used") =  "Y"   Then
                        Query_String = Replace( Query_String, "/* AND rc.PRODUCT_STATE = 3 */", " AND rc.PRODUCT_STATE = 3")
                     End   If

                     Set rsQry = OraDatabase.DbCreateDynaset( Query_String, ORADYN_DEFAULT )
                     Dim rsTemp
                     Dim hideResult()
                     Dim numHiddenProducts
                     Dim len_hideResult
                     Dim i_hideResult

                     ' Evaluate hidden status of products
                     ' Create a hask of 'keys' to assist in identifying packages with multiple updates
                     numHiddenProducts  = 0
                     len_hideResult = 0
                     While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                        key = rsQry("os_id") & "_" & rsQry("prod_id")
                        objList.Item(key) = objList.Item(key) + 1
 
                        Set rsTemp = OraDatabase.DbCreateDynaset( "SELECT * FROM HIDE_PRODUCTS WHERE OS_ID="& rsQry("os_id") &" AND PROD_ID="& rsQry("prod_id"), ORADYN_DEFAULT )

                        len_hideResult = len_hideResult + 1
                        ReDim Preserve hideResult(len_hideResult)

                        If rsTemp.RecordCount = 0 Then
                           hideResult(len_hideResult - 1) = False
                        Else
                           hideResult(len_hideResult - 1) = True
                           numHiddenProducts = numHiddenProducts + 1
                        End If

                        rsTemp.Close()
                        Set rsTemp = nothing
                        rsQry.MoveNext
                     Wend

                     If (rsQry.RecordCount = numHiddenProducts) Then
                     %>
                        <tr>
                           <td colspan="6" class="body_row">No Products to Update (some products are hidden and status of those has not been shown)</td>
                        </tr>
                     <%ElseIf (rsQry.RecordCount < 1) Then%>
                        <tr>
                           <td colspan="6" class="body_row">No Products to Update.</td>
                        </tr>
                     <%End If

                     ' Now render the product rows themselves
                     ' Have a hask of products with issues
                     currPkg_id = 0
                     rsQry.MoveFirst
                     i_hideResult = 0
                     While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                        key = rsQry("os_id") & "_" & rsQry("prod_id")
                        If hideResult(i_hideResult) = False Then
                           If currPkg_id <> rsQry("pkg_id") Then
                           %>
                              <tr>
                                 <td nowrap  colspan="6"><div align="left"><span class="body_row"><img src="icons/i_product.gif" width="19" height="19" hspace="2" align="absmiddle"><%=rsQry("prod_name")%>                                                                                   </span></div></td>
                              </tr>
                              <tr>
                                 <td colspan="6" background="images/bg_table_border.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                              </tr>
                              <%
                              currPkg_id = rsQry("pkg_id")
                           End If
                           %>

                           <tr>
                              <td align="right" nowrap>
                                    <input type="checkbox" name="update_<%=rsQry("os_id") &"_"& rsQry("prod_id")%>" value="<%=rsQry("latest_prod_id")%>">
                              </td>
                              <td align="left" nowrap>
                                    <%If objList.Item(key) > 1 Then%>
                                        <img hspace="2" src="icons/s_warning.gif" align="absmiddle" border="0" title="Package has multiple versions. Only one can be updated">
                                    <%End If%>
                              </td>
                              <td nowrap class="body_row"><img hspace="2" src="icons/<%=rsQry("node_icon")%>" align="absmiddle" border="0"><%=rsQry("prod_location")%></td>
                              <td nowrap class="body_row"><%=rsQry("prod_version")%></td>
                              <td align="center" nowrap>
                              <%If NOT objHideList.Exists(key) Then%>
                                    <input type="checkbox" name="hide_<%=rsQry("os_id") &"_"& rsQry("prod_id")%>" value="<%=rsQry("prod_id")%>">
                              <%End If%>
                              <%objHideList.Item(key) = 1%>
                              </td>
                              <td nowrap class="body_row"><span class="body_txtr"><%=rsQry("rm_latest_version")%></span></td>
                           </tr>
                           <tr>
                              <td colspan="6" background="images/bg_table_border.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                           </tr>
                        <%
                        End If

                        rsQry.MoveNext
                        i_hideResult = i_hideResult + 1
                     Wend
                     %>


                     <!-- NEW PATCHES +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                     <%
                     Dim strAdd, rsAdd, strHide
                     Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NewPatches.sql"), ORADYN_DEFAULT )
                     Set rsAdd = OraDatabase.DbCreateDynaset( GetQuery ("NewPatches.sql"), ORADYN_DEFAULT )
                     currPkg_id = 0

                     If rsQry.RecordCount > 0 Then
                        While (NOT rsAdd.BOF) AND (NOT rsAdd.EOF)
                           Set rsTemp = OraDatabase.DbCreateDynaset( "SELECT * FROM HIDE_PRODUCTS WHERE OS_ID="& rsAdd("os_id") &" AND PROD_ID="& rsAdd("prod_id"), ORADYN_DEFAULT )

                           If rsTemp.RecordCount = 0 Then
                              strAdd = strAdd + "'add_"&rsAdd("os_id") &"_"& rsAdd("prod_id")&"',"
                              strHide = strHide + "'hide_"&rsAdd("os_id") &"_"& rsAdd("prod_id")&"',"
                           End If
                           rsAdd.MoveNext
                        Wend

                        rsAdd.Close()
                        rsTemp.Close()
                        Set rsAdd = nothing
                        Set rsTemp = nothing

                        If NOT IsEmpty(strAdd) Then
                           strAdd = Mid(strAdd, 1, Len(strAdd)-1) + ", 'checkalladd'"
                        End If
                        If NOT IsEmpty(strHide) Then
                           strHide = Mid(strHide, 1, Len(strHide)-1) + ", 'checkallhide'"
                        End If
                        %>

                        <tr>
                           <td nowrap background="images/bg_bage_0h.gif" class="body_col" align="center">Add</td>
                           <td nowrap class="body_col">&nbsp;</td>
                           <td align="right" nowrap background="images/bg_bage_0h.gif" class="body_col"><div align="left">Location</div></td>
                           <td align="right" nowrap background="images/bg_bage_0h.gif" class="body_col"><div align="left">Version</div></td>
                           <td align="right" background="images/bg_bage_0h.gif" class="body_col"><div align="center">Hide</div></td>
                           <td align="right" background="images/bg_bage_0h.gif" class="body_col"><div align="left">Comments<img src="images/spacer.gif" width="1" height="18" align="absmiddle"></div>                </td>
                        </tr>
                        <%If NOT IsEmpty(strAdd) Then%>
                           <tr>
                              <td align="center" nowrap><INPUT type=checkbox name="checkalladd" value="Check All" onClick="checkAllAdd(<%=strAdd%>);"></td>
                              <td nowrap class="body_row">&nbsp;</td>
                              <td nowrap class="body_row">&nbsp;</td>
                              <td nowrap class="body_row">&nbsp;</td>
                              <td align="center" nowrap><INPUT type=checkbox name="checkallhide" value="Check All" onClick="checkAllHide(<%=strHide%>);"></td>
                              <td nowrap class="body_row">&nbsp;</td>
                           </tr>
                        <%
                        End If

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

                           Set rsTemp = OraDatabase.DbCreateDynaset( "SELECT * FROM HIDE_PRODUCTS WHERE OS_ID="& rsQry("os_id") &" AND PROD_ID="& rsQry("prod_id"), ORADYN_DEFAULT )

                           If rsTemp.RecordCount = 0 Then

                              If currPkg_id <> rsQry("pkg_id") Then
                              %>
                                 <tr>
                                    <td colspan="3" nowrap><div align="left"><span class="body_row"><img src="icons/i_product.gif" width="19" height="19" hspace="2" align="absmiddle"><%=rsQry("prod_name")%></span></div></td>
                                    <td nowrap class="body_row">&nbsp;</td>
                                    <td nowrap class="body_row"><div align="center"></div></td>
                                    <td nowrap class="body_row"></td>
                                 </tr>
                                 <tr>
                                    <td colspan="6" background="images/bg_table_border.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                                 </tr>
                                 <%
                                 currPkg_id = rsQry("pkg_id")
                              End If
                              %>
                              <tr>
                                <td align="center" nowrap><input type="checkbox" name="add_<%=rsQry("os_id") &"_"& rsQry("prod_id")%>" value="<%=rsQry("prod_id")%>"> </td>
                                <td nowrap class="body_row"></td>
                                <td nowrap class="body_row"><img hspace="2" src="icons/<%=rsQry("node_icon")%>" align="absmiddle" border="0"><%=rsQry("prod_location")%></td>
                                <td nowrap class="body_row"><img src="icons/i_patch_small.gif" width="16" height="16" border="0" align="absmiddle"><%=rsQry("prod_version")%></td>
                                <td align="center" nowrap><input type="checkbox" name="hide_<%=rsQry("os_id") &"_"& rsQry("prod_id")%>" value="<%=rsQry("prod_id")%>"> </td>
                                <td nowrap class="body_row"><span class="body_row"><%=rsQry("comments")%></span></td>
                              </tr>
                              <tr>
                                 <td colspan="6" background="images/bg_table_border.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                              </tr>
                           <%
                           End If

                           rsTemp.Close()
                           Set rsTemp = nothing

                           rsQry.MoveNext
                        Wend
                     End If
                     %>
                     <tr>
                        <td colspan="6" background="images/bg_table_border.gif"><img src="images/spacer.gif" width="1" height="3"></td>
                     </tr>
                  </table>
                  <%
                  OraDatabase.Parameters.Remove "RTAG_ID"
                  OraDatabase.Parameters.Remove "BOM_ID"
                  rsQry.Close
                  Set rsQry = Nothing
                  %>
               </td>
            </tr>
         </table>
         <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
      </td>
   </tr>
   <%=objPMod.ComposeHiddenTags()%>
   <input type="hidden" name="action" value="true">
   <%
   Call objFormComponent.FormEnd()
   '-- FROM END ----------------------------------------------------------------------------------------------------------------
   %>
</table>
</body>
</html>
<!--#include file="common/globals_destructor.asp"-->