Rev 62 | Rev 66 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'====================================================='| |'| Bom_Home |'| |'=====================================================%><%Option explicitResponse.Expires = 0%><%'To enable the script timeout to 10 minsServer.ScriptTimeout=600%><!--#include file="common/globals.asp"--><!--#include file="common/config.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/_bom_common.asp"--><!--#include file="controls/ERGFormComponent/classFormComponent.asp"--><%'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_general.asp"--><%'------------ VARIABLE DEFINITION -------------Dim rsQryDim aProductListDim parProd_id_selectDim parShowallDim numOfRowsDim rowNum, Numrow, maxnumOfRowsDim objFormCollectorDim objFormComponentDim sMessageDim ProdId, PkgId, OldProdId, OsIdDim ChangeTypeDim IsPatchDim rsTempDim PkgVersion, CurrentPkgVersion, IsDisplay, Comments'------------ CONSTANTS DECLARATION -----------Const LIMG_UPDATED = "<img src='icons/i_updated.gif' width='11' height='11' hspace='2' vspace='2' border='0' align='absmiddle' title='Updated'>"Const LIMG_ADDED = "<img src='icons/i_added.gif' width='11' height='11' border='0' hspace='2' vspace='2' align='absmiddle' title='Added'>"Const LIMG_REMOVED = "<img src='icons/i_removed.gif' width='11' height='11' border='0' hspace='2' vspace='2' align='absmiddle' title='Removed'>"Const LIMG_NOTE_NEW = "<img src='icons/i_note_new.gif' width='18' height='18' border='0' align='absmiddle'>"Const LIMG_NOTE_EDIT = "<img src='icons/i_note_edit.gif' width='18' height='18' border='0' align='absmiddle'>"'------------ VARIABLE INIT -------------------Set objFormCollector = CreateObject("Scripting.Dictionary")Set objFormComponent = New FormComponent'------------ CONDITIONS ----------------------'----------------------------------------------%><%'--------------------------------------------------------------------------------------------------------------------------Function CheckProduction (ProductionBOM, ComparisonBOM)CheckProduction = False 'Setting it initially to be falseOraDatabase.Parameters.Remove "PRODUCTION_BOM"OraDatabase.Parameters.Add "PRODUCTION_BOM", ProductionBOM, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "CURRENT_BOM", ComparisonBOM, ORAPARM_INPUT, ORATYPE_NUMBERSet rsTemp = OraDatabase.DbCreateDynaset( GetQuery ("BomCheck.sql"), ORADYN_DEFAULT )While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)PkgId = rsTemp("pkg_id")PkgVersion = rsTemp("pkg_version")OraDatabase.Parameters.Add "PKG_ID", PkgId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset(GetQuery("ProdVersion.sql"), ORADYN_DEFAULT)CurrentPkgVersion = rsQry("pkg_version")Dim MajorA, MajorB, MinorA, MinorB, PatchA, PatchB, posMajorA = NULLMajorB = NULLMinorA = NULLMinorB = NULLPatchA = NULLPatchB = NULL' Find the first occurence of the dot in package version Apos = InStr(PkgVersion, ".")If pos <> 0 Then' Extract the Major Version for AMajorA = Mid(PkgVersion, 1, pos - 1)' Delete the Major Version Value from the string to get the minor and patch versionPkgVersion = Mid(PkgVersion, pos + 1, Len(PkgVersion))' Find the second occurence of the dot in package version Apos = InStr(PkgVersion, ".")' Extract the Minor Version for AIf pos <> 0 ThenMinorA = Mid(PkgVersion, 1, pos - 1)' Delete the Minor Version value from the string to get the patch versionPkgVersion = Mid(PkgVersion, pos + 1, Len(PkgVersion))' Find the last occurence of the dot in package version Apos = InStr(PkgVersion, ".")If pos <> 0 Then' Extract the Patch Version for APatchA = Mid(PkgVersion, 1, pos - 1)End IfEnd IfEnd If' Find the first occurence of the dot in package version Bpos = InStr(CurrentPkgVersion, ".")If pos <> 0 Then' Extract the Major Version for BMajorB = Mid(CurrentPkgVersion, 1, pos - 1)' Delete the Major Version Value from the string to get the minor and patch versionCurrentPkgVersion = Mid(CurrentPkgVersion, pos + 1, Len(CurrentPkgVersion))' Find the second occurence of the dot in package version Bpos = InStr(CurrentPkgVersion, ".")' Extract the Minor Version for BIf pos <> 0 ThenMinorB = Mid(CurrentPkgVersion, 1, pos - 1)' Delete the Minor Version value from the string to get the patch versionCurrentPkgVersion = Mid(CurrentPkgVersion, pos + 1, Len(CurrentPkgVersion))' Find the last occurence of the dot in package version Bpos = InStr(CurrentPkgVersion, ".")If pos <> 0 Then' Extract the Patch Version for BPatchB = Mid(CurrentPkgVersion, 1, pos - 1)End IfEnd IfEnd IfIf NOT isNull(PatchA) AND NOT isNull(PatchB) ThenIf isNumeric(PatchA) AND isNumeric(PatchB) ThenIf CLng(PatchA) < 1000 ThenPatchA = CLng(PatchA) * 1000End IfIf CLng(PatchB) < 1000 ThenPatchB = CLng(PatchB) * 1000End IfEnd IfEnd IfIf MajorA = MajorB ThenIf MinorA = MinorB ThenIf IsNumeric(PatchA) AND IsNumeric(PatchB) ThenIf CDbl(PatchB) > CDbl(PatchA) ThenElseCheckProduction = TrueEnd IfEnd IfElseIf IsNumeric(MinorA) AND IsNumeric(MinorB) ThenIf CInt(MinorB) > CInt(MinorA) ThenElseCheckProduction = TrueEnd IfEnd IfEnd IfElseIf IsNumeric(MajorA) AND IsNumeric(MajorB) ThenIf CInt(MajorB) > CInt(MajorA) ThenElseCheckProduction = TrueEnd IfEnd IfEnd IfrsQry.Close()Set rsQry = NothingOraDatabase.Parameters.Remove "PKG_ID"rsTemp.MoveNext()WendOraDatabase.Parameters.Remove "CURRENT_BOM"OraDatabase.Parameters.Remove "PRODUCTION_BOM"rsTemp.Close()Set rsTemp = NothingEnd Function'--------------------------------------------------------------------------------------------------------------------------Function AddTrailingZeros(byval n, byval count)if len(n) >= count thenAddTrailingZeros = nexit functionend ifdim c, s, ic = count - len(n)for i = 1 to cs = s & "0"nexts = cstr(n) & sAddTrailingZeros = sEnd function'--------------------------------------------------------------------------------------------------------------Sub GetProductList ( nBom_id, nComparedBomId, outProductList, Flag )Dim rsQry, query, showAll'' Use SHOWALL parameter is BOM has old bom'showAll = "Y"'If nBom_id <> nComparedBomId Then' showAll = parShowall'End IfOraDatabase.Parameters.Add "BOM_ID", nBom_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "COMPARE_BOM_ID", nComparedBomId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "CURRENT_BOM", dbPARbom_id, ORAPARM_INPUT, ORATYPE_NUMBERIf Flag = TRUE ThenSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("BomCompare.sql"), ORADYN_DEFAULT )ElseSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("BomCompare_BaseConfig.sql"), ORADYN_DEFAULT )End IfIf rsQry.RecordCount > 0 ThenoutProductList = rsQry.GetRows()ElseoutProductList = NULLEnd IfOraDatabase.Parameters.Remove "COMPARE_BOM_ID"OraDatabase.Parameters.Remove "BOM_ID"OraDatabase.Parameters.Remove "CURRENT_BOM"End Sub'--------------------------------------------------------------------------------------------------------------------------Sub GetFormDetails ( nBom_id, ByRef outobjDetails )Call GetBomDetails ( nBom_id, outobjDetails )outobjDetails.Item("root_version") = GetRootVersion ( outobjDetails.Item("bom_version") )'-- Set compare_bom_idIf Request("compare_bom_id") <> "" ThenoutobjDetails.Item("compare_bom_id") = Request("compare_bom_id")ElseoutobjDetails.Item("compare_bom_id") = outobjDetails.Item("parent_bom_id")End IfEnd Sub'--------------------------------------------------------------------------------------------------------------Function GetBomTreeList ()Dim rsQry, queryOraDatabase.Parameters.Add "BRANCH_ID", objFormCollector.Item("rtag_id_fk"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BOM_ID", objFormCollector.Item("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BOM_NAME", objFormCollector.Item("bom_name"), ORAPARM_INPUT, ORATYPE_NUMBERIf objFormCollector.Item("rtag_id_fk") = 542 Then'This is because SFO uses Front Office and Back OfficeSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ProductionTreeComboSFO.sql"), ORADYN_DEFAULT )ElseSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ProductionTreeCombo.sql"), ORADYN_DEFAULT )End IfIf rsQry.RecordCount > 0 ThenGetBomTreeList = rsQry.GetRows()ElseGetBomTreeList = NULLEnd IfOraDatabase.Parameters.Remove "BRANCH_ID"OraDatabase.Parameters.Remove "BOM_NAME"OraDatabase.Parameters.Remove "BOM_ID"rsQry.CloseSet rsQry = NothingEnd Function'--------------------------------------------------------------------------------------------------------------Function GetCompareBomDetails ( nBomId )Dim rsQry, queryOraDatabase.Parameters.Add "BOM_ID", nBomId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("BomLocationDetails.sql"), ORADYN_DEFAULT )If rsQry.RecordCount > 0 ThenGetCompareBomDetails = rsQry("proj_name") &" / "& rsQry("branch_name") &" / "& rsQry("bom_name") &" "& rsQry("bom_version") &"."& rsQry("bom_lifecycle")ElseGetCompareBomDetails = NULLEnd IfOraDatabase.Parameters.Remove "BOM_ID"rsQry.CloseSet rsQry = NothingEnd Function'--------------------------------------------------------------------------------------------------------------%><%'------------ RUN BEFORE PAGE RENDER ----------objPMod.PersistInQryString ( Array("compare_bom_id") )Call GetFormDetails ( dbPARbom_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><script language="JavaScript" src="scripts/remote_scripting.js"></script><script language="JavaScript" type="text/javascript"><!--function RequestProductLocation( paramString, rowId ){var requestURL;// Product is changes, hence can be found in current bomrequestURL = 'RequestBomDiffProductLocation.asp';// Show divToggleDisplay( 'PRODUCT_'+ rowId, 'IMG_EXPAND_PRODUCT_' + rowId, 'IMG_COLLAPSE_PRODUCT_' + rowId );// Set ajax divnameajaxdivname = 'PRODUCT_'+ rowId;if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//Append the name to search for to the requestURLvar url = requestURL + paramString;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received back// This is non-blocking (asynchronous)xmlHttp = GetXmlHttpObject(stateChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}}function RequestProductNotes( paramString, rowId ){var requestURL;// Product is changes, hence can be found in current bomrequestURL = 'RequestProductNotes.asp';// Show divToggleDisplay( 'PROD_'+ rowId, 'IMG_EXPAND_PROD_' + rowId, 'IMG_COLLAPSE_PROD_' + rowId );// Set ajax divnameajaxdivname = 'PROD_'+ rowId;if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//Append the name to search for to the requestURLvar url = requestURL + paramString;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received back// This is non-blocking (asynchronous)xmlHttp = GetXmlHttpObject(stateChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}}function RequestPatches( paramString, rowId ){var requestURL;// Product is changes, hence can be found in current bomrequestURL = 'RequestBomDiffPatches.asp';// Show divToggleDisplay( 'PRODUCT_'+ rowId, 'IMG_EXPAND_PRODUCT_' + rowId, 'IMG_COLLAPSE_PRODUCT_' + rowId );// Set ajax divnameajaxdivname = 'PRODUCT_'+ rowId;if ( MM_findObj( ajaxdivname ).innerHTML == '<%=enumLOADING%>'){//Append the name to search for to the requestURLvar url = requestURL + paramString;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received back// This is non-blocking (asynchronous)xmlHttp = GetXmlHttpObject(stateChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}}//--></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 RenderTitleWithoutVersion( objBomCollector )%></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 TabControlobjTabControl.TemplateDoc = ReadFile( Server.MapPath("controls/ERGTabStyleWinXP/tab_style.html") ) ' Supply tab style definitionobjTabControl.TabStyle = "StyleWinXP"objTabControl.AddTabDefnition ( arrBomTabDef )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 tabaTabBtnsDef = Array("abtnAddPatches")Call LoadTabActionButtons ( aTabBtnsDef, objBtnControl )' -- Tell control if buttons need to be readonly actionsobjBtnControl.IsReadonlyAction = objBomCollector.Item("is_readonly")' -- Render ButtonsCall 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> </td><td> </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><!-- PRODUCT REJECTED ------------------------------------------------------------------------------------------ --><%If objBomCollector.Item ("is_rejected") = enumDB_YES Then%><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td><%OraDatabase.Parameters.Add "ENTITY_ID", dbPARbom_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "ENUM_ENTITY_TYPE", "enumENTITY_TYPE_BOM", ORAPARM_INPUT, ORATYPE_VARCHAR2Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("RejectionTrail.sql"), ORADYN_DEFAULT )sMessage = "<table width='100%' border='0' cellspacing='3' cellpadding='0'>"sMessage = sMessage &"<tr>"sMessage = sMessage &"<td width='100%' class='body_txt'><b>BOM is REJECTED!</b><br><br><br></td>"sMessage = sMessage &"<td width='1%' nowrap valign='bottom' align='right'><a href='javascript:;' onClick=""MM_openBrWindow('wBomRejectNote.asp?rfile="& SCRIPT_NAME &"&"& objPMod.ComposeURL() &"','BomRejectNote','scrollbars=yes,resizable=yes,width=600,height=350');"" class='body_smllink' title='Create new note'>Create Note"& LIMG_NOTE_NEW &"</a></td>"sMessage = sMessage &"</tr>"While (NOT rsQry.BOF) AND (NOT rsQry.EOF)sMessage = sMessage & "<tr><td colspan='2' background='images/bg_table_border.gif'><img src='images/spacer.gif' width='1' height='1'></td></tr>"sMessage = sMessage &"<tr>"sMessage = sMessage &"<td class='body_txt'>"If rsQry("is_rejected") = enumDB_YES ThensMessage = sMessage &"BOM is REJECTED!<br>"ElsesMessage = sMessage &"BOM is Accepted!<br>"End IfsMessage = sMessage & objFormater.TextToHTML( rsQry("comments") ) &"<br><SPAN class='body_smltxtg'>"& rsQry("creator") &"</SPAN></td>"sMessage = sMessage &"<td nowrap valign='bottom' align='right'><a href='javascript:;' onClick=""MM_openBrWindow('wBomRejectNote.asp?reject_seq="& rsQry("reject_seq") &"&rfile="& SCRIPT_NAME &"&"& objPMod.ComposeURL() &"','BomRejectNote','scrollbars=yes,resizable=yes,width=600,height=350');"" class='body_smllink' title='Edit note'>Edit Note"& LIMG_NOTE_EDIT &"</a></td>"sMessage = sMessage &"</tr>"rsQry.MoveNextWEndrsQry.ClosesMessage = sMessage &"</table>"Call Messenger ( sMessage, "bi_rejected.gif", "100%" )Response.write "<br>"OraDatabase.Parameters.Remove "ENTITY_ID"OraDatabase.Parameters.Remove "ENUM_ENTITY_TYPE"%></td></tr></table><%End If%><!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td width="1"><img src="images/spacer.gif" width="1" height="1"></td><td width="100%"><img src="images/spacer.gif" width="1" height="1"></td></tr><!-- BOM Comments +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><%If (objBomCollector.Item("bom_comments") <> "") Then%><tr><td align="right" valign="top"><img src="icons/i_bom_properties.gif" width="30" height="30" hspace="3"></td><td valign="top" class="body_txt"><SPAN class="body_colb">BOM Comments</SPAN><hr width="100%" size="1px" noshade color="#808080"><SPAN class="body_txt"><%= objFormater.TextToHTML( objBomCollector.Item("bom_comments") )%></SPAN><br><br><br><br></td></tr><%End If%><!-- COMPARE BOM +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><tr><td align="right" valign="top"><img src="icons/i_bom_diff.gif" width="37" height="33" hspace="3"></td><td valign="top" class="body_txt"><%'-- FROM START --------------------------------------------------------------------------------------------------------------objFormComponent.FormName = "OldVersion"objFormComponent.Action = SCRIPT_NAMEobjFormComponent.Method = "get"Call objFormComponent.FormStart()If (NOT IsNull(GetBomTreeList())) ThennumOfRows = UBound( GetBomTreeList(), 2 )ElsenumOfRows = -1End IfmaxnumOfRows = numOfRowsFor Numrow = 0 To numOfRowsCall GetFormDetails ( (GetBomTreeList()( 0, Numrow )), objBomCollector )%><SPAN class="body_colb"><br><%= objFormater.TextToHTML( objBomCollector.Item("bom_comments") )%><br><br></SPAN><SPAN class="body_colb">Products/Patches Introduced in <%Call RenderTitle( objBomCollector )%> but not yet deployed in Production BOM<br></SPAN><a href="pdf\<%Call RenderTitleWithoutBold( objBomCollector )%>.pdf" class="body_link" target="_blank"><b>Click here to Download PDF</b></a><hr width="100%" size="1px" noshade color="#808080"><table width="100%" border="0" cellspacing="2" cellpadding="0"><tr><td width="20%" background="images/bg_table_border.gif"><table width="100%" border="0" cellspacing="1" cellpadding="2"><tr><td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Product</td></tr></table></td><td width="20%" nowrap align="left" background="images/bg_table_col.gif" class="body_col">Version</td><td width="60%" nowrap align="left" background="images/bg_table_col.gif" class="body_col">Reason For This Version</td><td width="60%" nowrap align="left" background="images/bg_table_col.gif" class="body_col">Approval</td></tr><%If NOT CheckProduction( Request("bom_id"), (GetBomTreeList()( 0, Numrow ))) Then%><tr><td colspan="4" class="body_txtr"><b>Found Matching BOM or Older Versions...Exiting Comparison</b></td></tr><%Exit ForEnd IfIf Numrow = maxnumOfRows ThenCall GetProductList ( (GetBomTreeList()( 0, Numrow )), 0, aProductList, TRUE )ElseCall GetProductList ( (GetBomTreeList()( 0, Numrow )), (GetBomTreeList()( 0, Numrow + 1 )), aProductList, TRUE )End IfIf NOT IsNull( aProductList ) ThennumOfRows = UBound( aProductList, 2 )Dim currentpkgIdcurrentpkgId = -1For rowNum = 0 To numOfRows'For Next Loop BeginsProdId = aProductList( 0, rowNum )PkgVersion = aProductList( 2, rowNum )'ChangeType = aProductList( 3, rowNum )IsPatch = aProductList( 3, rowNum )PkgId = aProductList( 5, rowNum )'Response.Write(PkgId)OraDatabase.Parameters.Remove "PRODUCTION_BOM"OraDatabase.Parameters.Add "PRODUCTION_BOM", dbPARbom_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PKG_ID", PkgId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset(GetQuery("ProdVersion.sql"), ORADYN_DEFAULT)OldProdId = rsQry("prod_id")CurrentPkgVersion = rsQry("pkg_version")Comments = rsQry("comments")OraDatabase.Parameters.Remove "CURRENT_BOM"OraDatabase.Parameters.Remove "PKG_ID"IsDisplay = TrueIf IsNull(IsPatch) ThenDim MajorA, MajorB, MinorA, MinorB, PatchA, PatchB, posMajorA = NULLMajorB = NULLMinorA = NULLMinorB = NULLPatchA = NULLPatchB = NULL' Find the first occurence of the dot in package version Apos = InStr(PkgVersion, ".")If pos <> 0 Then' Extract the Major Version for AMajorA = Mid(PkgVersion, 1, pos - 1)' Delete the Major Version Value from the string to get the minor and patch versionPkgVersion = Mid(PkgVersion, pos + 1, Len(PkgVersion))' Find the second occurence of the dot in package version Apos = InStr(PkgVersion, ".")' Extract the Minor Version for AIf pos <> 0 ThenMinorA = Mid(PkgVersion, 1, pos - 1)' Delete the Minor Version value from the string to get the patch versionPkgVersion = Mid(PkgVersion, pos + 1, Len(PkgVersion))' Find the last occurence of the dot in package version Apos = InStr(PkgVersion, ".")If pos <> 0 Then' Extract the Patch Version for APatchA = Mid(PkgVersion, 1, pos - 1)End IfEnd IfEnd If' Find the first occurence of the dot in package version Bpos = InStr(CurrentPkgVersion, ".")If pos <> 0 Then' Extract the Major Version for BMajorB = Mid(CurrentPkgVersion, 1, pos - 1)' Delete the Major Version Value from the string to get the minor and patch versionCurrentPkgVersion = Mid(CurrentPkgVersion, pos + 1, Len(CurrentPkgVersion))' Find the second occurence of the dot in package version Bpos = InStr(CurrentPkgVersion, ".")' Extract the Minor Version for BIf pos <> 0 ThenMinorB = Mid(CurrentPkgVersion, 1, pos - 1)' Delete the Minor Version value from the string to get the patch versionCurrentPkgVersion = Mid(CurrentPkgVersion, pos + 1, Len(CurrentPkgVersion))' Find the last occurence of the dot in package version Bpos = InStr(CurrentPkgVersion, ".")If pos <> 0 Then' Extract the Patch Version for BPatchB = Mid(CurrentPkgVersion, 1, pos - 1)End IfEnd IfEnd IfIf NOT isNull(PatchA) AND NOT isNull(PatchB) ThenIf isNumeric(PatchA) AND isNumeric(PatchB) ThenIf CLng(PatchA) < 1000 ThenPatchA = CLng(PatchA) * 1000End IfIf CLng(PatchB) < 1000 ThenPatchB = CLng(PatchB) * 1000End IfEnd IfEnd IfIf MajorA = MajorB ThenIf MinorA = MinorB ThenIf IsNumeric(PatchA) AND IsNumeric(PatchB) ThenIf CDbl(PatchB) > CDbl(PatchA) ThenIsDisplay = FalseElseIsDisplay = TrueEnd IfEnd IfElseIf IsNumeric(MinorA) AND IsNumeric(MinorB) ThenIf CInt(MinorB) > CInt(MinorA) ThenIsDisplay = FalseElseIsDisplay = TrueEnd IfEnd IfEnd IfElseIf IsNumeric(MajorA) AND IsNumeric(MajorB) ThenIf CInt(MajorB) > CInt(MajorA) ThenIsDisplay = FalseElseIsDisplay = TrueEnd IfEnd IfEnd IfEnd If'If ProdId > NewProdId ThenIf IsDisplay ThenSet rsTemp = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS PV, PRODUCT_DETAILS PD WHERE PD.PROD_ID(+) = PV.PV_ID AND PV.PV_ID ="&ProdId, ORADYN_DEFAULT )%><%If IsNull(IsPatch) ThenIf CDbl(currentpkgId) <> CDbl(pkgId) Then%><tr><td nowrap valign="top"><SPAN id="IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>" name="IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>" style="display:block;"><a href="javascript:;" class="menu_link" onClick="RequestProductLocation('?new_version=<%=aProductList( 2, rowNum )%>&new_prod_id=<%=ProdId%>&prod_id=<%=OldProdId%>&bom_id=<%=dbPARbom_id%>&compare_bom_id=<%=(GetBomTreeList()( 0, Numrow ))%>&pkg_id=<%=PkgId%>&change_type=<%=ChangeType%>', '<%=ProdId & ChangeType%>');"><%=LIMG_EXPAND & GetProductIcon( rsTemp ) & aProductList( 1, rowNum )%></a></SPAN><SPAN id="IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>" name="IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>" style="display:none;"><a href="javascript:;" class="menu_link" onClick="ToggleDisplay( 'PRODUCT_<%=ProdId & ChangeType%>', 'IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>', 'IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>');"><%=LIMG_COLLAPSE & GetProductIcon( aProductList( 4, rowNum ) ) & aProductList( 1, rowNum )%></a></SPAN></td><td nowrap class="body_row" valign="top"><%=aProductList( 2, rowNum )%> </td><td class="body_rowlite"><%=rsTemp("comments")%> <!-- <a href="download_version.asp?prod_id=<%=ProdId%>&bom_id=<%=Request("bom_id")%>&os_id=" class="body_link">Download</a> --></td><%Dim rsForm, Tester, ManagerTester = FalseManager = FalseIf objAccessControl.IsActive("ApprovedByManager") ThenManager = TrueElseIf objAccessControl.IsActive("ApprovedByTester") ThenTester = TrueEnd IfSet rsForm = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_AUTHORISATION WHERE PV_ID="&ProdId&" AND BOM_ID="&Request("bom_id"), ORADYN_DEFAULT)%><%If rsForm.RecordCount = 0 Then%><%If Tester Then%><td class="body_rowlite"><a href="_wform_approval.asp?pv_id=<%=ProdId%>&bom_id=<%=Request("bom_id")%>" onClick="popup = window.open('_wform_approval.asp?pv_id=<%=ProdId%>&bom_id=<%=Request("bom_id")%>', 'Approval Form', 'height=220,width=600,scrollbars=yes,resizable=yes'); return false" target="_blank" style="text-decoration:none" class="body_txtr">Accept/Reject</a></td><%ElseIf Manager Then%><td class="body_txto">Awaiting Tester</td><%Else%><td class="body_txto"></td><%End If%><%ElseIf IsNull(rsForm("is_official")) Then%><%If NOT IsNull(rsForm("tester_id")) And Tester Then %><td class="body_txto">Awaiting Manager</td><%ElseIf NOT IsNull(rsForm("tester_id")) And Manager Then%><td class="body_rowlite"><a href="_wform_approval.asp?pv_id=<%=ProdId%>&bom_id=<%=Request("bom_id")%>" onClick="popup = window.open('_wform_approval.asp?pv_id=<%=ProdId%>&bom_id=<%=Request("bom_id")%>', 'Approval Form', 'height=440,width=600,scrollbars=yes,resizable=yes'); return false" target="_blank" style="text-decoration:none" class="body_txtr">Accept</a></td><%Else%><td class="body_rowlite"></td><%End If%><%Else%><td class="body_txtg">Accepted</td><%End IfrsForm.Close()Set rsForm = nothing%></tr><tr><td nowrap valign="top" class="body_row" colspan="3"><DIV id="PRODUCT_<%=ProdId & ChangeType%>" name="PRODUCT_<%=ProdId & ChangeType%>" style="display:none;"><%=enumLOADING%></DIV></td></tr><%If rowNum <> numOfRows Then%><tr><td colspan="4" background="images/bg_table_border.gif"><img src="images/spacer.gif" width="1" height="1"></td></tr><%End If%><%End If%><%Else%><%If CDbl(currentpkgId) <> CDbl(pkgId) Then%><tr><%If Numrow <> maxnumOfRows Then%><td nowrap valign="top"><SPAN id="IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>" name="IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>" style="display:block;"><a href="javascript:;" class="menu_link" onClick="RequestPatches('?pkg_id=<%=pkgId%>&bom_id=<%=(GetBomTreeList()( 0, Numrow ))%>&compare_bom_id=<%=(GetBomTreeList()( 0, Numrow + 1 ))%>¤t_bom_id=<%=dbPARbom_id%>', '<%=ProdId & ChangeType%>');"><%=LIMG_EXPAND & GetProductIcon( rsTemp ) & aProductList( 1, rowNum )%></a></SPAN><SPAN id="IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>" name="IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>" style="display:none;"><a href="javascript:;" class="menu_link" onClick="ToggleDisplay( 'PRODUCT_<%=ProdId & ChangeType%>', 'IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>', 'IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>');"><%=LIMG_COLLAPSE & GetProductIcon( rsTemp ) & aProductList( 1, rowNum )%></a></SPAN></td><%Else%><td nowrap valign="top"><SPAN id="IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>" name="IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>" style="display:block;"><a href="javascript:;" class="menu_link" onClick="RequestPatches('?pkg_id=<%=pkgId%>&bom_id=<%=(GetBomTreeList()( 0, Numrow ))%>&compare_bom_id=<%=(GetBomTreeList()( 0, Numrow ))%>¤t_bom_id=<%=dbPARbom_id%>', '<%=ProdId & ChangeType%>');"><%=LIMG_EXPAND & GetProductIcon( rsTemp ) & aProductList( 1, rowNum )%></a></SPAN><SPAN id="IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>" name="IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>" style="display:none;"><a href="javascript:;" class="menu_link" onClick="ToggleDisplay( 'PRODUCT_<%=ProdId & ChangeType%>', 'IMG_EXPAND_PRODUCT_<%=ProdId & ChangeType%>', 'IMG_COLLAPSE_PRODUCT_<%=ProdId & ChangeType%>');"><%=LIMG_COLLAPSE & GetProductIcon( rsTemp ) & aProductList( 1, rowNum )%></a></SPAN></td><%End If%><td nowrap class="body_row" valign="top"></td><td class="body_rowlite"></td></tr><tr><td nowrap valign="top" class="body_row" colspan="3"><DIV id="PRODUCT_<%=ProdId & ChangeType%>" name="PRODUCT_<%=ProdId & ChangeType%>" style="display:none;"><%=enumLOADING%></DIV></td></tr><%If rowNum <> numOfRows Then%><tr><td colspan="4" background="images/bg_table_border.gif"><img src="images/spacer.gif" width="1" height="1"></td></tr><%End If%><%currentpkgId = CDbl(pkgId)End If' -------- END GROUP ------------------------End If%><%' End IfrsTemp.Close()Set rsTemp = nothingEnd IfNext'For Next Loop EndElse%><tr><td colspan="4" class="body_txtr"><b>No Changes Detected In Comparison</b></td></tr><%'Exit For%><%End If%><tr><td colspan="4" 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><br><%NextCall objFormComponent.FormEnd()'-- FROM END ----------------------------------------------------------------------------------------------------------------%></td></tr></table></td><td width="1%" valign="top" background="images/bg_favourits.gif"><%If Request.Cookies( enumCOOKIE_NAME )( "user_bar" ) <> "hide" Then%><%End If%></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"> </td></tr></table><!-- FOOTER ++++++++++++++++ --><!--#include file="_footer.asp"--><!-- +++++++++++++++++++++++ --></body></html><%'------------ RUN AFTER PAGE RENDER -----------Set objPMod = NothingSet objCrumbs = NothingSet objTabControl = Nothing'----------------------------------------------%><!--#include file="common/globals_destructor.asp"-->