Subversion Repositories DevTools

Rev

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

<%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'|                                                   |
'|                                Product Issues                                 |
'|                                                   |
'=====================================================
%>
<%
Option explicit
Response.Expires = 0
%>
<!--#include file="common/globals.asp"-->
<!--#include file="common/config.asp"-->
<!--#include file="common/common_subs.asp"-->
<!--#include file="common/_product_common.asp"-->
<%
'------------ ACCESS CONTROL ------------------
%>
<!--#include file="_access_control_general.asp"-->
<%
'------------ VARIABLE DEFINITION -------------
Dim rsQry
Dim errNumber
Dim objIssueCollector
Dim altRowColor
Dim currRowColor
Dim outORDER_BY
Dim parFilter_on
Dim parBase_env_id
Dim objFormCollector
Dim a, b, VersionList, sqlstrA
'------------ CONSTANTS DECLARATION -----------
Const LIMG_FIXED = "<img src='icons/i_tick.gif' border='0' hspace='2' title='Latest Fixed Issue'>"
Const LIMG_OLD_FIXED = "<img src='icons/i_tick_gray.gif' border='0' hspace='2' title='Old Fixed Issue'>"
'------------ VARIABLE INIT -------------------
errNumber = 0
Set objIssueCollector = CreateObject("Scripting.Dictionary")
Set objFormCollector = CreateObject("Scripting.Dictionary")
parProd_id = Request("prod_id_list")
parOs_id = Request("os_id")
parBom_id = Request("bom_id")
parFilter_on = Request("filter_on")
parBase_env_id = Request("base_env_id")
'------------ CONDITIONS ----------------------
'----------------------------------------------
%>
<%
'--------------------------------------------------------------------------------------------------------------------------
Sub GetFormDetails ( nProd_id, nOs_id, nBaseEnvId, nBom_id, ByRef outobjDetails )
        Dim rsQry, query

        OraDatabase.Parameters.Add "BOM_ID", nBom_id,   ORAPARM_INPUT, ORATYPE_NUMBER 
        
        
        
        
        
        '/* Get Project Details */
        query = _
        " SELECT proj.RM_PROJECTS_FK, bo.rtag_id_fk"&_
        "  FROM BOMS bo,"&_
        "          BRANCHES br,"&_
        "          DM_PROJECTS proj"&_
        " WHERE br.PROJ_ID = proj.PROJ_ID"&_
        "   AND bo.BRANCH_ID = br.BRANCH_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 ("rm_projects_fk")   = rsQry("rm_projects_fk")
                outobjDetails.Item ("rtag_id_fk")   = rsQry("rtag_id_fk")
                
        Else
                Err.Raise 8, "Sub GetFormDetails", "Empty record set returned. nBom_id="& nBom_id 
                
        End If
        
        OraDatabase.Parameters.Remove "PROD_ID"
        OraDatabase.Parameters.Remove "OS_ID"
        OraDatabase.Parameters.Remove "BASE_ENV_ID"
        OraDatabase.Parameters.Remove "BOM_ID"
        
        rsQry.Close
        Set rsQry = Nothing
End Sub
'--------------------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------------------
Sub GetIssueDetails ( nIssID, nIssDB, oIssueCollector, nErrNumber )
        Dim query, rsCQ
        
        If objFormCollector.Item("rm_projects_fk") = 122 Then
                query = GetQuery ("IssuesList_cqVTSUP.sql")
                query = Replace( query, "/*VTSUPiss*/", nIssID )
        Else
                query = GetQuery ("IssuesList_cqDEVI.sql")
                query = Replace( query, "/*DEVIiss*/", nIssID )
        End If
        
        Set rsCQ = Server.CreateObject("ADODB.Recordset")
        
        nErrNumber = GetCQIssue ( query, rsCQ )
        
        If nErrNumber = 0 Then
                If (NOT rsCQ.BOF) AND (NOT rsCQ.EOF) Then
                        oIssueCollector.Item ("iss_id") = CStr( rsCQ("iss_id") )
                        oIssueCollector.Item ("iss_num") = CStr( rsCQ("iss_num") )
                        oIssueCollector.Item ("summary") = CStr( rsCQ("summary") )
                        oIssueCollector.Item ("status") = CStr( rsCQ("status") )
                        oIssueCollector.Item ("priority") = CStr( rsCQ("priority") )
                        oIssueCollector.Item ("issue_type") = CStr( rsCQ("issue_type") )
                        
                End If
        End If
        
End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Function  GetCQIssue ( sSQL, oRsCQ )
        On Error Resume Next
        oRsCQ.ActiveConnection = CQ_CONN
        oRsCQ.Source = sSQL
        oRsCQ.CursorType = 0
        oRsCQ.CursorLocation = 2
        oRsCQ.LockType = 3
        oRsCQ.Open()
        
        GetCQIssue = Err.Number
        
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SetRowColor( cRowColor )
        If cRowColor = "" Then
                SetRowColor = altRowColor
        Else
                SetRowColor = ""
        End If
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Sub PreviousVersions(a, b)
        
        If CLng(a) < CLng(b) Then
                While CLng(a) < CLng(b)
                        b = LastPvId(b)
                        If CLng(a) < CLng(b) Then
                                VersionList = VersionList + ","& b
                        End If
                Wend
        End If  

        If CLng(b) < CLng(a) Then
                While CLng(b) < CLng(a)
                        a = LastPvId(a)
                        If CLng(b) < CLng(a) Then
                                VersionList = VersionList + ","& a
                        End If
                Wend    
        End If
                 

End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Sub GetDependencies(pv_id_a, pv_id_b)
        
        VersionList = "0"
        Set sqlstrA = OraDatabase.DbCreateDynaset("select distinct dpv_id from package_dependencies where pv_id IN ("& pv_id_b &") and dpv_id NOT IN (SELECT dpv_id from package_dependencies where pv_id ="& pv_id_a &" ) order by dpv_id desc", cint(0))      

                
        If sqlstrA.RecordCount <> 0 Then
                
                While ((NOT sqlstrA.BOF) AND (NOT sqlstrA.EOF))
                        VersionList = VersionList + ","& sqlstrA("dpv_id")
                        sqlstrA.MoveNext
                Wend

        End If
                
        sqlstrA.Close()
        Set sqlstrA = Nothing

End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Function LastPvId(pvId)
        Dim qryA
        Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&pvId , cint(0))
        
        LastPvId = pvId
        
        If pvId <> qryA("last_pv_id") Then      
                LastPvId = qryA("last_pv_id")
        Else 
                errormsg = true
        End If
        
        qryA.Close()
        Set qryA = Nothing

End Function
'----------------------------------------------------------------------------------------------------------------------------------------
%>
<%
'------------ RUN BEFORE PAGE RENDER ----------
' --- Get Form details from DB ---
Call GetFormDetails ( parProd_id, parOs_id, parBase_env_id, parBom_id, objFormCollector )
'----------------------------------------------
%>
<html>
<head>
<title>Production Manager</title>
<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" rel="stylesheet" type="text/css">
<script language="JavaScript" src="scripts/common.js"></script>
</head>

<body leftmargin="0" topmargin="0">
<!-- HEADER ++++++++++++++++ -->
<!--#include file="_header.asp"-->
<!-- +++++++++++++++++++++++ -->
<!-- MAIN MENU  +  CRUMBS ++++++++++++++++ -->
<!--#include file="_main_menu.asp"-->
<!-- +++++++++++++++++++++++++++++++++++++ -->
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="1%" valign="top" background="images/bg_bage_0.gif">
        <!-- NODE BROWSER ++++++++++++++++++++++ -->
        <!--#include file="_bom_browser.asp"-->
        <!-- END OF NODE BROWSER +++++++++++++++ -->
        </td>
    <td width="1" background="images/bg_bage_1.gif"><img src="images/spacer.gif" width="1" height="600"></td>
    <td width="100%" valign="top" bgcolor="#FFFFFF">
        <table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
        <td valign="top" background="images/bg_green.gif"></td>
        <td align="right" valign="bottom" background="images/bg_green.gif" class="body_txtw"><%Call RenderTitle( objProdCollector )%></td>
        <td background="images/bg_green.gif"><img src="images/spacer.gif" width="10" height="20"></td>
      </tr>
      <tr>
        <td width="1%" valign="top" background="images/bg_green.gif"></td>
        <td width="100%" valign="bottom" background="images/bg_green.gif">
                <!-- TAB CONTROLS ++++++++++++++++++++++ -->
                <!--#include file="_tabs_definition.asp"-->
                <%
                Set objTabControl = New TabControl
                objTabControl.TemplateDoc = ReadFile( Server.MapPath("controls/ERGTabStyleWinXP/tab_style.html") ) ' Supply tab style definition
                objTabControl.TabStyle = "StyleWinXP"
                objTabControl.AddTabDefnition ( arrProdTabDef )
                objTabControl.SelectByName ("Issues")
                objTabControl.Render ()
                %>
                <!-- END OF TAB CONTROLS +++++++++++++++ -->
                </td>
        <td width="1%" background="images/bg_green.gif"><img src="images/spacer.gif" width="10" height="35"></td>
        </tr>
      <tr>
        <td background="images/bg_bage_0.gif"><img src="images/spacer.gif" width="30" height="10"></td>
        <td background="images/bg_bage_0.gif">
                <!-- BUTTONS CONTROL +++++++++++++++++++ -->
                <%
                '-- Define Action buttons on this tab
                'aTabBtnsDef = Array("btnAddOs", "width=10", "btnCopyOs", "btnPasteOs")
                
                'Call LoadTabActionButtons ( aTabBtnsDef, objBtnControl )
                
                'objBtnControl.Render( aTabBtnsDef )
                %>
                <!-- +++++++++++++++++++++++++++++++++++ -->
                </td>
        <td background="images/bg_green.gif"><img src="images/p_bar_corrner.gif" width="17" height="42"></td>
        </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td valign="top"><%If Request.Cookies( enumCOOKIE_NAME )( "user_bar" ) = "hide" Then%><a href="<%=SCRIPT_NAME%>?user_bar=<%=enumDEFAULT%>&<%=objPMod.ComposeURL()%>"><img src="icons/b_left.gif" title="Maximize favourits" width="13" height="13" vspace="5" border="0"></a><%End If%></td>
        </tr>
    </table>
        <table width="100%"  border="0" cellspacing="10" cellpadding="0">
      <tr>
        <td>
                <!-- PAGE DETAILS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                <%
                OraDatabase.Parameters.Add "PROD_ID",           dbPARprod_id,           ORAPARM_INPUT, ORATYPE_NUMBER 
                %>
                <form name="OldVersion" method="get" action="<%=SCRIPT_NAME%>">
                        <SPAN class="body_txt">Changes since version&nbsp;</SPAN>
                        <select name="old_prod_id" class="form_ivalue">
                           <option value=""></option>
                          <%
                          Dim nOldProdID
                          nOldProdID = Request("old_prod_id")
                          If nOldProdID = "" Then nOldProdID = objProdCollector.Item ("last_pv_id")
                          
                          
                          OraDatabase.Parameters.Add "PKG_ID",          objProdCollector.Item ("pkg_id"),       ORAPARM_INPUT, ORATYPE_NUMBER 
                          OraDatabase.Parameters.Add "V_EXT",           objProdCollector.Item ("v_ext"),        ORAPARM_INPUT, ORATYPE_NUMBER 
                          OraDatabase.Parameters.Add "OLD_PROD_ID", nOldProdID, ORAPARM_INPUT, ORATYPE_NUMBER 
                          OraDatabase.Parameters.Add "PROJ_ID",   objFormCollector.Item("rm_projects_fk"),      ORAPARM_INPUT, ORATYPE_NUMBER 
                          OraDatabase.Parameters.Add "BRANCH_ID",   objFormCollector.Item("rtag_id_fk"),        ORAPARM_INPUT, ORATYPE_NUMBER 
                      OraDatabase.Parameters.Add "FILTER_ON",   0,      ORAPARM_INPUT, ORATYPE_NUMBER 
                          
                          
                          Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ProductVersionsList.sql"), ORADYN_DEFAULT )
                          While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                          %>
                                <option value="<%=rsQry("pv_id")%>" <%=rsQry("selected")%>><%=rsQry("pkg_version")%></option>
                          <%
                                rsQry.MoveNext
                          WEnd
                          rsQry.Close
                          
                          OraDatabase.Parameters.Remove "PROD_ID"
                          OraDatabase.Parameters.Remove "PKG_ID"
                          OraDatabase.Parameters.Remove "V_EXT"
                          OraDatabase.Parameters.Remove "OLD_PROD_ID"
                      OraDatabase.Parameters.Remove "PROJ_ID"
                          OraDatabase.Parameters.Remove "BRANCH_ID"
                      OraDatabase.Parameters.Remove "FILTER_ON"
                                          
                          %>
                        </select>
                        <%=objPMod.ComposeHiddenTags()%>
                        <input type="submit" name="btn" value="Compare" class="form_btn">
                <hr width="100%" size="1px" noshade color="Black">
                </form>
                
                <table width="100%"  border="0" cellspacing="3" cellpadding="0">
          <tr>  
            <td width="1%" nowrap align="right" <%Call DisplayColumn("Issue ID", "iss_id", outORDER_BY, TRUE)%></td>
                        <td width="100%" nowrap align="right" <%Call DisplayColumn("Summary", NULL, outORDER_BY, FALSE)%></td>
                        <td width="1%" nowrap align="right" <%Call DisplayColumn("Issue Type", NULL, outORDER_BY, FALSE)%></td>
                        <td width="1%" nowrap align="right" <%Call DisplayColumn("Priority", NULL, outORDER_BY, FALSE)%></td>
                        <td width="1%" nowrap align="right" <%Call DisplayColumn("Source", "pkg_name", outORDER_BY, FALSE)%></td>
          </tr>
                  <%
                  VersionList = "0"                      
                  On Error Resume Next
                  Dim rsQryLast
                  Set rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& Request("old_prod_id"), cint(0)) 

                  If rsQryLast("last_pv_id") <> Request("prod_id") Then 
                        Call PreviousVersions( Request("prod_id"), Request("old_prod_id") )
                  End If

                  Call GetDependencies(Request("prod_id"), VersionList + ","+ Request("old_prod_id"))
                  

                  Set rsQry = OraDatabase.DbCreateDynaset( "select * from cq_issues cq, packages pkg, package_versions pv "&_
                  " where cq.iss_db = 7 and pv.pv_id IN ("&VersionList&") and pv.pkg_id = pkg.pkg_id and cq.pv_id = pv.pv_id order by pv.pv_id desc", ORADYN_DEFAULT )
                  'Response.Write VersionList
                  Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                        Call GetIssueDetails ( rsQry("iss_id"), rsQry("iss_db"), objIssueCollector, errNumber )
                        
                        currRowColor = SetRowColor( currRowColor )
                        
                        If errNumber <> 0 Then Exit Do
                  %>
          <tr>          
            <td <%=currRowColor%> nowrap valign="top" class="body_link"><%=objIssueCollector.Item ("iss_num")%></td>
                        <td <%=currRowColor%> valign="top" class="body_rowlite"><%=objIssueCollector.Item ("summary")%></td>
                        <td <%=currRowColor%> nowrap valign="top" class="body_rowlite"><%=objIssueCollector.Item ("issue_type")%></td>
            <td <%=currRowColor%> nowrap valign="top" class="body_rowlite"><%=objIssueCollector.Item ("priority")%></td>
                        <%If IsEmpty(objIssueCollector.Item ("summary")) Then%>
                                <td <%=currRowColor%> nowrap valign="top" class="body_rowlite"></a></td>
                        <%Else%>
                                <td <%=currRowColor%> nowrap valign="top" class="body_rowlite"><%=rsQry("pkg_name").Value &" "& rsQry("pkg_version").Value%></a></td>
                        <%End If%>
                        
          </tr>
                  <%rsQry.MoveNext%>
                  
                  <%If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then%>
          <tr>
            <td colspan="6"><img src="images/spacer.gif" width="1" height="1"></td>
          </tr>
                  <%End If%>
                  
                  <%
                  Loop                  

                  rsQry.Close()
                  Set rsQry = Nothing                     
                  rsQryLast.Close()
                  Set rsQryLast = Nothing


                

                  OraDatabase.Parameters.Add "PROD_ID",                 dbPARprod_id,           ORAPARM_INPUT, ORATYPE_NUMBER 
                  OraDatabase.Parameters.Add "OLD_PROD_ID",     objProdCollector.Item("last_pv_id"),            ORAPARM_INPUT, ORATYPE_NUMBER 
                  OraDatabase.Parameters.Add "OTHER_PROD_ID",   dbPARprod_id,           ORAPARM_INPUT, ORATYPE_NUMBER 
                  
                  If objFormCollector.Item("rm_projects_fk") = 122 Then 
                        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("VTIssuesList.sql") & outORDER_BY, ORADYN_DEFAULT )
                  Else
                        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("IssuesList.sql") & outORDER_BY, ORADYN_DEFAULT )
                  End If

                  altRowColor = "bgcolor='#F7F7F8'"
                  currRowColor = ""
                  
                  Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                        Call GetIssueDetails ( rsQry("iss_id"), rsQry("iss_db"), objIssueCollector, errNumber )
                        
                        currRowColor = SetRowColor( currRowColor )
                        
                        If errNumber <> 0 Then Exit Do
                  %>
          <tr>
            <td <%=currRowColor%> nowrap valign="top" class="body_link"><%=objIssueCollector.Item ("iss_num")%></td>
                        <td <%=currRowColor%> valign="top" class="body_rowlite"><%=objIssueCollector.Item ("summary")%></td>
                        <td <%=currRowColor%> nowrap valign="top" class="body_rowlite"><%=objIssueCollector.Item ("issue_type")%></td>
            <td <%=currRowColor%> nowrap valign="top" class="body_rowlite"><%=objIssueCollector.Item ("priority")%></td>
                        <%If IsEmpty(objIssueCollector.Item ("summary")) Then%>
                                <td <%=currRowColor%> nowrap valign="top" class="body_rowlite"></a></td>
                        <%Else%>
                                <td <%=currRowColor%> nowrap valign="top" class="body_rowlite"><%=rsQry("pkg_name").Value &" "& rsQry("pkg_version").Value%></a></td>
                        <%End If%>
                        
          </tr>
                  <%rsQry.MoveNext%>
                  
                  <%If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then%>
          <tr>
            <td colspan="6"><img src="images/spacer.gif" width="1" height="1"></td>
          </tr>
                  <%End If%>
                  
                  <%
                  Loop
                  OraDatabase.Parameters.Remove "PROD_ID"
                  OraDatabase.Parameters.Remove "OLD_PROD_ID"
                  OraDatabase.Parameters.Remove "OTHER_PROD_ID"

                  %>
                  
                  
                  <%If errNumber <> 0 Then              '--- Handle any errors during data retrieve from MS SQL database (i.e. Cannot connect to DB.)%>
                  <tr>
            <td colspan="6">
                          <%Response.write enumMSSQL_ERROR%>
                        </td>
          </tr>
                  <%End If%>
                  
          <tr>
            <td colspan="6" background="images/bg_table_border.gif">
                         <table width="100%"  border="0" cellspacing="1" cellpadding="2">
              <tr>
                <td nowrap background="images/bg_table_col.gif"><img src="images/spacer.gif" width="1" height="1"></td>
              </tr>
             </table>
                        </td>
          </tr>
         </table>       
                <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
                </td>
      </tr>
    </table>
        </td>
    <td width="1%" valign="top" background="images/bg_favourits.gif">
        <!-- PERSONAL BAR +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!--#include file="_personal_bar.asp"-->
        <!-- END OF PERSONAL BAR ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
   </td>
  </tr>
  <tr>
    <td background="images/bg_bage_0a.gif"><img src="images/spacer.gif" width="1" height="15"></td>
    <td background="images/bg_bage_1.gif"><img src="images/spacer.gif" width="1" height="1"></td>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="1"></td>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="1"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="20"></td>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="1"></td>
    <td bgcolor="#FFFFFF"><img src="images/spacer.gif" width="1" height="1"></td>
    <td bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
</table>
<!-- FOOTER ++++++++++++++++ -->
<!--#include file="_footer.asp"-->
<!-- +++++++++++++++++++++++ -->
</body>
</html>
<%
'------------ RUN AFTER PAGE RENDER -----------
Set objPMod = Nothing
Set objCrumbs = Nothing
Set objTabControl = Nothing
Set objBtnControl = Nothing
'----------------------------------------------
%><!--#include file="common/globals_destructor.asp"-->