Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
62 rsolanki 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
5
'|				         DIFF					     |
6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
12
Response.Expires = 0	' always load the page, dont store
13
%>
14
 
15
<%
16
'To enable the script timeout to 5 mins
17
Server.ScriptTimeout=600
18
%>
19
<!--#include file="common/config.asp"-->
20
<!--#include file="common/globals.asp"-->
21
<!--#include file="common/formating.asp"-->
22
<!--#include file="common/common_subs.asp"-->
23
<!--#include file="common/common_dbedit.asp"-->
24
<!--#include file="common/_form_window_common.asp"-->
25
<!--#include file="common/_rtree_common.asp"-->
26
<%
27
' Set rfile parameter. This is a return page after Login
28
'Call objPMod.StoreParameter ( "rfile", "rtree.asp" )
29
'objPMod.PersistInQryString("proj_id")
30
'------------ ACCESS CONTROL ------------------
31
%>
32
 
33
<!--#include file="_access_control_general.asp"-->
34
<%
35
'------------ Variable Definition -------------
36
Dim rsQry
37
Dim objRelCollectorA
38
Dim objRelCollectorB
39
Dim parRtagA
40
Dim parRtagB
41
Dim parSBOMA
42
Dim parSBOMB
43
Dim dDiffFilter
44
Dim colorA, colorB, ChangeTypeIcon
45
Dim btnMerge, btnRemove
46
Dim rowId
47
Dim email
48
Dim FSO
49
Dim NewTextFile
50
Dim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, sqlstrC, counterB
51
Dim SSsql, retVal, rsCQ, DEVIiss, TDSEiss, VT5DMiss		
52
Dim a, b, c, d, pkgversion, errormsg, source_change
53
 
54
 
55
'------------ Constants Declaration -----------
56
Const LIMG_UPDATED = "<img src='images/i_updated.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Updated'>"
57
Const LIMG_ADDED = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Added'>"
58
Const LIMG_REMOVED = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Removed'>"
59
Const LIMG_FILTER_ON = "<img src='images/i_data_table.gif' border='0' align='absmiddle' hspace='0' title='Filter in use.'>"
60
Const LIMG_FILTER_OFF = "<img src='images/i_data_table_off.gif' border='0' align='absmiddle' hspace='0' title='Filter not in use.'>"
61
Const LIMG_DROP_DOWN_ARROW = "<img src='images/i_drop_down_arrow.gif' width='5' height='15' hspace='1' border='0' align='absmiddle'>"
62
Const LCOLOR_NOT_CHANGED = "#F5F5F5"
63
Const LCOLOR_CHANGED = "#d2f7c9"
64
Const LCOLOR_BLANK = "#FFFFFF"
65
Const LIMG_MERGE = "<img src='images/bt_move_all_right.gif' title='Click to merge.' border='0'>"
66
Const LIMG_MERGE_WARN = "<img src='images/bt_move_warn_right.gif' title='Right hand side version is newer.' border='0'>"
67
Const LIMG_REMOVE = "<img src='images/bt_remove.gif' title='Remove this version from release.' border='0'>"
68
Const LIMG_UNDO = "<img src='images/bt_undo.gif' title='Undo merge/remove.' border='0'>"
69
'------------ Variable Init -------------------
70
Set rsCQ = Server.CreateObject("ADODB.Recordset")
71
parRtagA = Request("rtagA")
72
parRtagB = Request("rtagB")
73
parSBOMA = Request("sbomA")
74
parSBOMB = Request("sbomB")
75
Set objRelCollectorA = CreateObject("Scripting.Dictionary")
76
Set objRelCollectorB = CreateObject("Scripting.Dictionary")
77
Set dDiffFilter = CreateObject("Scripting.Dictionary")
78
 
79
'----------------------------------------------
80
If Request("btn") = "Mail Me Report" Then
81
	email = true
82
End If
83
%>
84
<%
85
'--------------------------------------------------------------------------------------------------------------------------
86
Sub GetDiffFilterValues ( outDepFilter )
87
	Dim FilterVal, aFilterValues
88
 
89
	If Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) <> "" Then	
90
		aFilterValues = Split( Replace( Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER), " ", ""), ",") 
91
 
92
		For Each FilterVal In aFilterValues
93
			outDepFilter.Item (CStr( FilterVal )) = ""
94
		Next
95
 
96
	End If
97
 
98
End Sub
99
'--------------------------------------------------------------------------------------------------------------------------
100
Sub Javascript()
101
	NewTextFile.WriteLine("<script language=""JavaScript"" type=""text/javascript"">")
102
	NewTextFile.WriteLine("function MM_findObj(n, d) { //v4.0")
103
	NewTextFile.WriteLine("  var p,i,x;")
104
	NewTextFile.WriteLine("  if(!d) d=document; ")
105
	NewTextFile.WriteLine("  if((p=n.indexOf(""?""))>0&&parent.frames.length) {")
106
	NewTextFile.WriteLine("  	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);")				
107
	NewTextFile.WriteLine("  }")	
108
	NewTextFile.WriteLine("  if(!(x=d[n])&&d.all) x=d.all[n]; ")	
109
	NewTextFile.WriteLine("  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];")	
110
	NewTextFile.WriteLine("  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);")	
111
	NewTextFile.WriteLine("  if(!x && document.getElementById) x=document.getElementById(n); ")
112
	NewTextFile.WriteLine("  return x;")			
113
	NewTextFile.WriteLine("}")
114
	NewTextFile.WriteLine("function DisplaySPAN(show, x) {")
115
	NewTextFile.WriteLine("	if (show) {")
116
	NewTextFile.WriteLine("		MM_findObj(""spanHideDetails"" + x).style.display = ""block"";")					
117
	NewTextFile.WriteLine("		MM_findObj(""spanPkgInfo"" + x).style.display = ""block"";")	
118
	NewTextFile.WriteLine("		MM_findObj(""spanShowDetails"" + x).style.display = ""none"";")	
119
	NewTextFile.WriteLine("	} else {")	
120
	NewTextFile.WriteLine("		MM_findObj(""spanHideDetails"" + x).style.display = ""none"";")	
121
	NewTextFile.WriteLine("		MM_findObj(""spanPkgInfo"" + x).style.display = ""none"";")	
122
	NewTextFile.WriteLine("		MM_findObj(""spanShowDetails"" + x).style.display = ""block"";")	
123
	NewTextFile.WriteLine("	}")
124
	NewTextFile.WriteLine("}")			
125
	NewTextFile.WriteLine("</script>")				
126
End Sub
127
'--------------------------------------------------------------------------------------------------------------------------
128
Sub GetFixedIssues(pv_id)
129
	Set sqlstrA = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &"  AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))						 
130
 
131
		If sqlstrA.RecordCount <> 0 Then
132
			NewTextFile.WriteLine()
133
			NewTextFile.WriteLine("<blockquote><blockquote>Fixed Issues:</blockquote></blockquote>")
134
			NewTextFile.WriteLine("<blockquote><blockquote><blockquote><table width='100%' border='1' cellspacing='0' cellpadding='1'>")
135
			NewTextFile.WriteLine("<tr>")
136
			NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue&nbsp;Id&nbsp;</font></td>")
137
			NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Summary</font></td>")
138
			NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue&nbsp;Type&nbsp;</font></td>")
139
			NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Priority</font></td>")
140
			NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Status</font></td>")
141
			NewTextFile.WriteLine("</tr>")
142
 
143
 
144
 
145
		For counterA=1 to sqlstrA.RecordCount
146
			DEVIiss = "-1"
147
			TDSEiss = "-1"
148
			VT5DMiss = "-1"
149
 
150
			If CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
151
				DEVIiss = DEVIiss &","& sqlstrA("iss_id")
152
			ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then
153
				TDSEiss = TDSEiss &","& sqlstrA("iss_id")
154
			ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then
155
				VT5DMiss = VT5DMiss &","& sqlstrA("iss_id")								
156
			End If
157
 
158
			SSsql = ReadFile( QUERIES_PATH & "\cq_issues.sql" )
159
			SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
160
			SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)
161
			SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)
162
			SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
163
			SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)
164
			SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)	
165
			retVal = Get_CQ_Issues ( SSsql, rsCQ )					
166
 
167
			NewTextFile.WriteLine("<tr>")
168
			NewTextFile.WriteLine("<td nowrap background='#CAC5B8' nowrap class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("iss_num")&"</font></td>")
169
			NewTextFile.WriteLine("				   <td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</font></td>")
170
			NewTextFile.WriteLine("				  <td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("issue_type")&"</font></td>")
171
			NewTextFile.WriteLine("<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("priority")&"</font></td>")
172
			NewTextFile.WriteLine("<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("Status")&"</font></td>")
173
			NewTextFile.WriteLine("                     </tr>")
174
 
175
			'If rsCQ("iss_num") <> "" Then
176
  			'	NewTextFile.Write("<blockquote><blockquote><blockquote>"&rsCQ("iss_num")&": ")
177
	    	'End If
178
 
179
	     	'If rsCQ("summary") <> "" Then
180
			'	NewTextFile.Write(rsCQ("summary")&" ")						
181
			'End If
182
 
183
			'If rsCQ("summary") <> "" Then
184
			'	NewTextFile.WriteLine("(Priority: "& rsCQ("priority") &")</blockquote></blockquote></blockquote>")						
185
			'End If
186
 
187
 
188
 
189
			sqlstrA.MoveNext
190
		Next
191
			NewTextFile.WriteLine( "                        </table></blockquote></blockquote></blockquote> 		")
192
			sqlstrA.Close()		
193
 
194
		End If
195
 
196
 
197
End Sub
198
'--------------------------------------------------------------------------------------------------------------------------
199
Sub GetDependencyFixedIssues(pv_id)
200
	Set sqlstrC = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &"  AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))						 
201
 
202
		If sqlstrC.RecordCount <> 0 Then
203
			NewTextFile.WriteLine()
204
			'NewTextFile.WriteLine("<blockquote><blockquote>Fixed Issues:</blockquote></blockquote>")
205
 
206
 
207
		For counterA=1 to sqlstrC.RecordCount
208
			DEVIiss = "-1"
209
			TDSEiss = "-1"
210
			VT5DMiss = "-1"
211
 
212
			If CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
213
				DEVIiss = DEVIiss &","& sqlstrC("iss_id")
214
			ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then
215
				TDSEiss = TDSEiss &","& sqlstrC("iss_id")
216
			ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then
217
				VT5DMiss = VT5DMiss &","& sqlstrC("iss_id")								
218
			End If
219
 
220
			SSsql = ReadFile( QUERIES_PATH & "\cq_issues.sql" )
221
			SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
222
			SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)
223
			SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)
224
			SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
225
			SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)
226
			SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)	
227
			retVal = Get_CQ_Issues ( SSsql, rsCQ )					
228
 
229
			If rsCQ("iss_num") <> "" Then
230
  				NewTextFile.Write("<blockquote><blockquote><blockquote>"&rsCQ("iss_num")&": ")
231
	    	End If
232
 
233
	     	If rsCQ("summary") <> "" Then
234
				NewTextFile.Write(rsCQ("summary")&" ")						
235
			End If
236
 
237
			If rsCQ("summary") <> "" Then
238
				NewTextFile.WriteLine("(Priority: "& rsCQ("priority") &")</blockquote></blockquote></blockquote>")						
239
			End If
240
 
241
 
242
 
243
			sqlstrC.MoveNext
244
		Next
245
			sqlstrC.Close()		
246
 
247
		End If			
248
 
249
 
250
End Sub
251
'--------------------------------------------------------------------------------------------------------------------------
252
 
253
Sub LastPvIdA(a)
254
	Dim qryA
255
	Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0))
256
 
257
	If a <> qryA("last_pv_id") Then	
258
		a = qryA("last_pv_id")
259
	Else 
260
		errormsg = true
261
	End If
262
 
263
	qryA.Close()
264
End Sub
265
'--------------------------------------------------------------------------------------------------------------------------
266
Sub LastPvIdB(b)
267
	Dim qryB
268
	Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0))
269
 
270
	If b <> qryB("last_pv_id") Then
271
		b = qryB("last_pv_id")
272
	Else
273
		errormsg = true	
274
	End If
275
 
276
	qryB.Close()
277
 
278
End Sub
279
'--------------------------------------------------------------------------------------------------------------------------
280
Sub PreviousVersions(a, b, versionA, versionB)
281
	NewTextFile.WriteLine()
282
 
283
 
284
	NewTextFile.WriteLine("<b>Versions Between: "&versionA&" and "&versionB&"</b>")
285
 
286
	If a < b Then
287
		While a < b  
288
			Call LastPvIdB(b)
289
			If a < b Then
290
				Call Comments(b)
291
				Call GetFixedIssues(b)
292
			End If			
293
		Wend
294
	End If	
295
 
296
	If b < a Then
297
		While b < a  
298
			Call LastPvIdA(a)
299
			If b < a Then
300
				Call Comments(a)
301
				Call GetFixedIssues(a)
302
			End If			
303
		Wend	
304
	End If
305
 
306
 
307
End Sub
308
'--------------------------------------------------------------------------------------------------------------------------
309
Sub GetDependencies(pv_id_a, pv_id_b, versionA, versionB, pkgName)
310
	On Error Resume Next
311
	Set sqlstrA = OraDatabase.DbCreateDynaset("select * from package_dependencies where pv_id = "& pv_id_b &" and dpv_id NOT IN (SELECT dpv_id from package_dependencies where pv_id ="& pv_id_a &" )", cint(0))	
312
		If sqlstrA.RecordCount <> 0 Then
313
			NewTextFile.WriteLine()
314
			'NewTextFile.WriteLine("<b>Dependencies Changed Between "&pkgName&" "&versionA&" and "&versionB&":</b>")
315
 
316
		For counterA=1 to sqlstrA.RecordCount
317
			Call dependencyComments(sqlstrA("dpv_id"))
318
			Call GetDependencyFixedIssues(sqlstrA("dpv_id"))
319
			Call IsRipple(sqlstrA("dpv_id"))		
320
			sqlstrA.MoveNext					
321
		Next 	
322
 
323
			sqlstrA.Close()
324
 
325
 
326
 
327
		End If			 
328
 
329
End Sub
330
'--------------------------------------------------------------------------------------------------------------------------
331
Sub IsRipple(depPv_id)
332
	Set sqlstrB = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&depPv_id, cint(0))	
333
 
334
	If sqlstrB("comments") = "Rippled Build." Then
335
		Dim sqlstrC
336
		Set sqlstrC = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&sqlstrB("last_pv_id"), cint(0))	
337
 
338
		Call GetDependencies(sqlstrB("last_pv_id"),depPv_id,sqlstrC("pkg_version"),sqlstrB("pkg_version"),sqlstrC("pkg_name") )
339
		sqlstrC.Close()
340
		Set sqlstrC = nothing
341
	End If
342
 
343
	sqlstrB.Close()
344
	Set sqlstrB = nothing		
345
 
346
 
347
End Sub
348
'--------------------------------------------------------------------------------------------------------------------------
349
Sub dependencyComments(pv_id)
350
	Set sqlstrB = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&pv_id, cint(0))	
351
	Set sqlstrC = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&sqlstrB("pv_id"), cint(0))	
352
 
353
			'NewTextFile.WriteLine("<blockquote><blockquote>Comments and Fixed Issues:</blockquote></blockquote>")
354
			NewTextFile.Write("<blockquote>"& sqlstrB("pkg_name") &" "& sqlstrC("pkg_version") &" => "& sqlstrB("pkg_version") &" = "& TextToHTML(sqlstrB("comments")) &"</blockquote>")	
355
 
356
	sqlstrC.Close()
357
	Set sqlstrC = nothing		
358
	sqlstrB.Close()
359
	Set sqlstrB = nothing		
360
 
361
 
362
End Sub
363
'--------------------------------------------------------------------------------------------------------------------------
364
Sub LastPvIdA(a)
365
	Dim qryA
366
	Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0))
367
 
368
	If a <> qryA("last_pv_id") Then	
369
		a = qryA("last_pv_id")
370
	Else 
371
		errormsg = true
372
	End If
373
 
374
	qryA.Close()
375
End Sub
376
'--------------------------------------------------------------------------------------------------------------------------
377
Sub LastPvIdB(b)
378
	Dim qryB
379
	Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0))
380
 
381
	If b <> qryB("last_pv_id") Then
382
		b = qryB("last_pv_id")
383
	Else
384
		errormsg = true	
385
	End If
386
 
387
	qryB.Close()
388
 
389
End Sub
390
'--------------------------------------------------------------------------------------------------------------------------
391
Sub pkg_Version(pv)
392
	Dim qry	
393
	Set qry = OraDatabase.DbCreateDynaset("SELECT PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&pv , cint(0))	
394
	pkgversion = qry("pkg_version")
395
	qry.Close()
396
End Sub
397
'--------------------------------------------------------------------------------------------------------------------------
398
Sub LastPvIdAa(a)
399
	Dim qryA
400
	Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0))
401
	c = qryA("last_pv_id")
402
	qryA.Close()
403
End Sub
404
'--------------------------------------------------------------------------------------------------------------------------
405
Sub LastPvIdBb(b)
406
	Dim qryB
407
	Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0))
408
	d = qryB("last_pv_id")	
409
	qryB.Close()
410
End Sub
411
'--------------------------------------------------------------------------------------------------------------------------
412
Sub Comments(Pv_Id)
413
	Dim comments
414
	Set comments = OraDatabase.DbCreateDynaset("SELECT PV.COMMENTS, PV.PKG_VERSION, PKG.PKG_NAME FROM PACKAGE_VERSIONS PV, PACKAGES PKG  WHERE PKG.PKG_ID = PV.PKG_ID AND PV.PV_ID="&Pv_id , cint(0))
415
	If comments("comments") <> "Rippled Build." Then
416
		NewTextFile.WriteLine("<font color="&chr(34)&"blue"&chr(34)&">"& comments("pkg_name") &" "& comments("pkg_version")&"</font>")
417
		If comments("comments") <> "" Then
418
			'NewTextFile.WriteLine("<blockquote><blockquote>Comments: </blockquote></blockquote>")
419
			NewTextFile.WriteLine(""& TextToHTML(comments("comments")) &"")
420
			source_change = true
421
		End If	
422
	End If
423
 
424
End Sub
425
'--------------------------------------------------------------------------------------------------------------------------
426
Sub Release(pvId)
427
	Dim release
428
	Set release = OraDatabase.DbCreateDynaset("SELECT INSERT_STAMP FROM RELEASE_CONTENT WHERE PV_ID="&pvId , cint(0))
429
 
430
	If release("insert_stamp") <> "" Then
431
		NewTextFile.Write(release("insert_stamp"))
432
	Else
433
		NewTextFile.Write("Version Not Used.")
434
	End If			
435
 
436
End Sub
437
'--------------------------------------------------------------------------------------------------------------------------
438
Sub Header() 
439
	NewTextFile.WriteLine("<html>")
440
End Sub
441
'--------------------------------------------------------------------------------------------------------------------------
442
Sub Footer()
443
	NewTextFile.WriteLine("</html>")
444
End Sub
445
'--------------------------------------------------------------------------------------------------------------------------
446
Function GetIsDiffFilterInUseIcon()
447
	GetIsDiffFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROW
448
 
449
	If dDiffFilter.Count > 0 Then
450
		GetIsDiffFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROW
451
	End If
452
 
453
End Function
454
'--------------------------------------------------------------------------------------------------------------------------
455
Function GetIsDiffFilterChecked( nFilterId )
456
 
457
	If dDiffFilter.Exists ( CStr(nFilterId)  ) Then
458
		GetIsDiffFilterChecked = "checked"
459
	End If
460
 
461
End Function
462
'---------------------------------------------------------------------------------------------------------------------------
463
Function  Get_CQ_Issues ( SSsql, OOrsCQ )
464
 
465
	If OOrsCQ.State = 1 Then 
466
		OOrsCQ.Close
467
	End If
468
 
469
	On Error Resume Next
470
	OOrsCQ.ActiveConnection = CQ_conn
471
	OOrsCQ.Source = SSsql
472
	OOrsCQ.CursorType = 0
473
	OOrsCQ.CursorLocation = 2
474
	OOrsCQ.LockType = 3
475
	OOrsCQ.Open()
476
	Get_CQ_Issues = Err.Number
477
 
478
End Function
479
'--------------------------------------------------------------------------------------------------------------------------
480
Public Function TextToHTML ( sString )
481
	Dim mString
482
 
483
	If (sString = "") OR IsNull(sString) Then Exit Function
484
 
485
	mString = Server.HTMLEncode( sString )
486
	mString = Replace(mString, VBNewLine, "<br>")
487
 
488
	TextToHTML = mString
489
End Function
490
 
491
'--------------------------------------------------------------------------------------------------------------------------
492
Sub GetFormDetails ( nSourceSBOM, ByRef outobjDetails )
493
	Dim rsQry, query
494
 
495
	' Exit if nSourceRtagId is empty
496
	If nSourceSBOM = "" Then Exit Sub 
497
 
498
	OraDatabase.Parameters.Add "SBOM", 	nSourceSBOM,		ORAPARM_INPUT, ORATYPE_NUMBER 
499
 
500
	query = _
501
	" SELECT pr.PROJ_NAME ||' &gt; '|| br.BRANCH_NAME ||' &gt; '|| b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
502
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID, b.IS_READONLY"&_
503
	"  FROM BRANCHES br,"&_
504
	"  		BOMS b,"&_	
505
	"  	    DM_PROJECTS pr"&_
506
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
507
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_	
508
	"   AND b.BOM_ID = :SBOM"
509
 
510
	Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
511
 
512
	OraDatabase.Parameters.Remove "SBOM"
513
 
514
	If rsQry.RecordCount > 0 Then
515
		outobjDetails.Item ("location") = rsQry("location")
516
		outobjDetails.Item ("official") = rsQry("IS_READONLY")
517
		outobjDetails.Item ("proj_id") = rsQry("proj_id")
518
		outobjDetails.Item ("branch_id") = rsQry("branch_id")
519
		outobjDetails.Item ("bom_id") = rsQry("bom_id")		
520
	Else
521
		Err.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOM
522
	End If
523
 
524
	If outobjDetails.Item ("location") = "" Then
525
		outobjDetails.Item ("location") = "N"
526
	End If
527
 
528
	rsQry.Close
529
	Set rsQry = Nothing
530
 
531
End Sub
532
'--------------------------------------------------------------------------------------------------------------------------
533
Sub GetDiffStateIcon( nDiffState, outIcon )
534
 
535
	Select Case nDiffState
536
		Case "U"
537
			outIcon  = LIMG_UPDATED		
538
		Case "UW"
539
			outIcon  = LIMG_UPDATED			
540
		Case "A"
541
			outIcon = LIMG_ADDED			
542
		Case "R"
543
			outIcon = LIMG_REMOVED			
544
		Case Else
545
			outIcon = ""			
546
	End Select
547
 
548
End Sub
549
'--------------------------------------------------------------------------------------------------------------------------
550
Sub MergePackages ()
551
	Dim aFullList, aAddPkgList, aRemovePkgList, dAddPkgList, dRemovePkgList, PvId
552
	Dim OraParameter
553
 
554
	Set dAddPkgList = CreateObject("Scripting.Dictionary")
555
	Set dRemovePkgList = CreateObject("Scripting.Dictionary")
556
 
557
	'--- Get Add Packages ---
558
	' Get full list of "addpkg" parameter
559
	aFullList = Split ( Replace( Request("addpkg"), " ", "" ), "," )
560
 
561
	' Clean empty parameters
562
	For Each PvId In aFullList
563
		If PvId <> "" Then
564
			dAddPkgList.Add CStr( PvId ), Empty
565
		End If
566
	Next
567
 
568
	aFullList = NULL
569
	aAddPkgList = dAddPkgList.Keys
570
 
571
	'--- Get Remove Packages ---
572
	' Get full list of "removepkg" parameter
573
	aFullList = Split ( Replace( Request("removepkg"), " ", "" ), "," )
574
 
575
	' Clean empty parameters
576
	For Each PvId In aFullList
577
		If PvId <> "" Then
578
			dRemovePkgList.Add CStr( PvId ), Empty
579
		End If
580
	Next
581
 
582
	aFullList = NULL
583
	aRemovePkgList = dRemovePkgList.Keys
584
 
585
	'-- Add package List to release --
586
	OraDatabase.Parameters.Add "PV_ID", 			NULL, 				ORAPARM_INPUT, ORATYPE_NUMBER 
587
	OraDatabase.Parameters.Add "VIEW_ID", 			NULL, 				ORAPARM_BOTH, ORATYPE_NUMBER 
588
	OraDatabase.Parameters.Add "RTAG_A", 			Request("rtagA"), 	ORAPARM_INPUT, ORATYPE_NUMBER 
589
	OraDatabase.Parameters.Add "RTAG_B", 			Request("rtagB"), 	ORAPARM_INPUT, ORATYPE_NUMBER 
590
	OraDatabase.Parameters.Add "PROJB", 			objRelCollectorB.Item("proj_id"), 	ORAPARM_INPUT, ORATYPE_NUMBER 
591
	OraDatabase.Parameters.Add "COMMENTS", 			"Merging from "& objRelCollectorA.Item("location") &" to "& objRelCollectorB.Item("location"), 	ORAPARM_INPUT, ORATYPE_VARCHAR2
592
	OraDatabase.Parameters.Add "USER_ID", 			objAccessControl.UserId, 				ORAPARM_INPUT, ORATYPE_NUMBER 
593
 
594
 
595
	Set OraParameter = OraDatabase.Parameters
596
 
597
 
598
	On Error Resume Next
599
 
600
 
601
	' Begin Database entry
602
	objEH.TryORA ( OraSession )
603
 
604
	OraSession.BeginTrans
605
 
606
	'-- Add Packages --
607
	For Each PvId In aAddPkgList
608
		OraParameter("PV_ID").Value = PvId
609
		OraDatabase.ExecuteSQL _
610
		"BEGIN  "&_
611
		"  :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_A ); "&_
612
		"  PK_RELEASE.ADD_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID );  "&_
613
		"END;"
614
	Next
615
 
616
	'-- Remove Packages --
617
	For Each PvId In aRemovePkgList		
618
		OraParameter("PV_ID").Value = PvId
619
		OraDatabase.ExecuteSQL _
620
		"BEGIN  "&_
621
		"  PK_RELEASE.REMOVE_PACKAGE ( :PV_ID, :RTAG_B, :USER_ID );  "&_
622
		"END;"
623
	Next
624
 
625
	'-- Log Project Merge Action
626
	OraDatabase.ExecuteSQL _
627
	"BEGIN  LOG_PROJECT_ACTION ( :PROJB, 'merge_release', :USER_ID, :COMMENTS );  END;"
628
 
629
	'-- Force package state recalculate 
630
	OraDatabase.ExecuteSQL _
631
	"BEGIN  "&_
632
	"  TOUCH_RELEASE ( :RTAG_B );  "&_
633
	"END;"
634
 
635
	OraSession.CommitTrans
636
 
637
	objEH.CatchORA ( OraSession )
638
 
639
	Set OraParameter = Nothing
640
	OraDatabase.Parameters.Remove "PV_ID"
641
	OraDatabase.Parameters.Remove "VIEW_ID"
642
	OraDatabase.Parameters.Remove "RTAG_A"
643
	OraDatabase.Parameters.Remove "RTAG_B"
644
	OraDatabase.Parameters.Remove "USER_ID"
645
	OraDatabase.Parameters.Remove "PROJB"
646
	OraDatabase.Parameters.Remove "COMMENTS"
647
	'Response.write "<br>"& sAddPkgList &"-"& dAddPkgList.Count &"-"& UBound( aFullList )
648
End Sub
649
'--------------------------------------------------------------------------------------------------------------------------
650
%>
651
<%
652
'------------ RUN BEFORE PAGE RENDER ----------
653
If Request("btn") = "Exit" Then
654
	Call OpenInWindow ( "reports.asp" )
655
End If
656
 
657
' Get release details
658
 
659
Call GetFormDetails ( parSBOMA, objRelCollectorA )
660
Call GetFormDetails ( parSBOMB, objRelCollectorB )
661
 
662
If (Request("btn") = "Merge")  AND (objAccessControl.IsActive("MergeRelease")) Then
663
	If objRelCollectorB.Item("official") <> "Y" Then
664
		Call MergePackages ()
665
	End If
666
End If
667
 
668
If Request("btn") = "Swap Compare" Then
669
	Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA )
670
End If
671
 
672
If Request("btn") = "Hide" Then
673
	' Store filter in cookie
674
	Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")
675
End If
676
 
677
 
678
Call GetDiffFilterValues ( dDiffFilter )
679
'----------------------------------------------
680
%>
681
<html>
682
<head>
683
<title>Deployment Manager SBOM Differences</title>
684
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
685
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
686
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
687
<link rel="stylesheet" href="images/navigation.css" type="text/css">
688
<script language="JavaScript" src="images/common.js"></script>
689
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
690
<script language="JavaScript" type="text/javascript">
691
<!--
692
 
693
function RequestReleaseCombo( paramString, rowId ){
694
	var requestURL = 'RequestReleaseCombo.asp';
695
 
696
	// Set ajax divname
697
	ajaxdivname = rowId;
698
 
699
	//Append the name to search for to the requestURL
700
	var url = requestURL + paramString;
701
 
702
	//Progress
703
	//alert(MM_findObj( rowId ));
704
 
705
	//MM_findObj( rowId ).options[0] = new Option('Loading...','');
706
	//MM_findObj( rowId ).selectedIndex = 0;
707
	rowId.options[0] = new Option('Loading...','');
708
	rowId.selectedIndex = 0;
709
 
710
 
711
	//Create the xmlHttp object to use in the request
712
	//stateChangeHandler will fire when the state has changed, i.e. data is received back
713
	// This is non-blocking (asynchronous)
714
	xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
715
 
716
	//Send the xmlHttp get to the specified url
717
	xmlHttp_Get(xmlHttp, url);
718
 
719
 
720
}
721
 
722
function RequestSBOMCombo( paramString, rowId ){
723
	var requestURL = 'RequestSBOMCombo.asp';
724
 
725
	// Set ajax divname
726
	ajaxdivname = rowId;
727
 
728
	//Append the name to search for to the requestURL
729
	var url = requestURL + paramString;
730
 
731
	//Progress
732
	//alert(MM_findObj( rowId ));
733
 
734
	//MM_findObj( rowId ).options[0] = new Option('Loading...','');
735
	//MM_findObj( rowId ).selectedIndex = 0;
736
	rowId.options[0] = new Option('Loading...','');
737
	rowId.selectedIndex = 0;
738
 
739
 
740
	//Create the xmlHttp object to use in the request
741
	//stateChangeHandler will fire when the state has changed, i.e. data is received back
742
	// This is non-blocking (asynchronous)
743
	xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
744
 
745
	//Send the xmlHttp get to the specified url
746
	xmlHttp_Get(xmlHttp, url);
747
 
748
 
749
}
750
 
751
 
752
function MergePackage ( pkga, pkgb, rowId )
753
{
754
 
755
	// Set merge hidden field with new value
756
	MM_findObj( 'ADDPKG_' + rowId ).value = pkga;
757
 
758
	var divA = MM_findObj( 'PVA' + rowId );
759
	var divB = MM_findObj( 'PVB' + rowId );
760
 
761
	// Set text equal
762
	divB.innerHTML = divA.innerHTML;
763
 
764
	// Set highlight to blank
765
	divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
766
	divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
767
 
768
    // Set Change state icon to blank
769
	MM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';
770
 
771
	// Remove Merge Button
772
	MM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';
773
	MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';
774
 
775
	// Show undo button
776
	MM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';
777
 
778
 
779
}
780
 
781
 
782
function RemovePackage ( pkga, pkgb, rowId )
783
{
784
 
785
	// Set remove hidden field with new value
786
	MM_findObj( 'REMOVEPKG_' + rowId ).value = pkgb;
787
 
788
	var divA = MM_findObj( 'PVA' + rowId );
789
	var divB = MM_findObj( 'PVB' + rowId );
790
 
791
	// Set text equal
792
	divB.style.textDecoration = 'line-through';
793
 
794
	// Set highlight to blank
795
	if (MM_findObj( 'CHANGETYPE_' + rowId ).value != "A")
796
	{
797
		divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
798
	}
799
	divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
800
 
801
    // Set Change state icon to blank
802
	MM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';
803
 
804
	// Remove Merge Button
805
	MM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';
806
	MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';
807
 
808
	// Show undo button
809
	MM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';
810
 
811
 
812
}
813
 
814
 
815
 
816
function UndoPackage ( rowId )
817
{
818
 
819
	// Set merge/remove hidden field with new value
820
	MM_findObj( 'ADDPKG_' + rowId ).value = '';
821
	MM_findObj( 'REMOVEPKG_' + rowId ).value = '';
822
 
823
	var divA = MM_findObj( 'PVA' + rowId );
824
	var divB = MM_findObj( 'PVB' + rowId );
825
 
826
	// Set text equal
827
	divB.innerHTML = MM_findObj( 'UNDOPKG_' + rowId ).value;
828
	divB.style.textDecoration = 'none';
829
 
830
 
831
	// Set highlight to blank
832
	divA.style.backgroundColor = MM_findObj( 'UNDOCOLORA_' + rowId ).value;
833
	divB.style.backgroundColor = MM_findObj( 'UNDOCOLORB_' + rowId ).value;
834
 
835
 
836
    // Set Change state icon to blank
837
	MM_findObj( 'IMGSTATE' + rowId ).style.display = 'block';
838
 
839
 
840
	// Remove Merge Button
841
	var cht = MM_findObj( 'CHANGETYPE_' + rowId );
842
 
843
	if (cht.value == "R")
844
	{
845
		MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';
846
	} 
847
	else if ( (cht.value == "A") || (cht.value == "") ) 
848
	{
849
		MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';
850
	} 
851
	else 
852
	{
853
		MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';
854
		MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';
855
	}
856
 
857
	// Show undo button
858
	MM_findObj( 'IMGUNDO' + rowId ).style.display = 'none';
859
 
860
}
861
 
862
 
863
function MergeAll()
864
{
865
	var elem
866
 
867
	if (document.all)
868
	{
869
		// Run this for IE
870
		elem = document.all;
871
	} else {
872
		// Run this for other browsers
873
		elem = document.getElementsByTagName('div');
874
	}
875
 
876
	for (i in elem)
877
	{
878
		if (elem[i].id)
879
		{	
880
			if (elem[i].id.indexOf('SHORT_') == 0) elem[i].style.display = 'none';
881
			if (elem[i].id.indexOf('LONG_') == 0) elem[i].style.display = 'block';
882
		}
883
	}
884
 
885
}
886
 
887
//-->
888
</script>
889
 
890
</head>
891
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
892
<form name="FormName" method="post" action="<%=SCRIPT_NAME%>">
893
<!-- HEADER -->
894
<!--#include file="_header.asp"-->
895
<!-- BODY ---->
896
<table width="100%" border="0" cellspacing="0" cellpadding="0">
897
  <tr> 
898
    <td width="1%" background="images/bg_lite_blue.gif" valign="top">
899
 
900
 
901
	<!-- SELECT SBOM A ---------------------------------------------->
902
 
903
	<br>
904
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
905
 
906
		<tr>
907
          <td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13">&nbsp;Select SBOM A<hr size="1px" color="Olive" noshade></td>
908
        </tr>
909
        <tr>
910
          <td align="left">
911
		  <select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );">
912
              <option value="">-- Select Project --</option>
913
			  <%
914
			  OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorA.Item("proj_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
915
 
916
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
917
 
918
			  OraDatabase.Parameters.Remove "PROJ_ID"
919
 
920
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
921
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
922
              <%rsQry.MoveNext
923
			  WEnd
924
 
925
			  rsQry.Close
926
			  Set rsQry = Nothing
927
			%>
928
          </select></td>
929
        </tr>
930
        <tr>
931
          <td align="left">
932
 
933
		  <select name="rtagA" id="rtagA" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomA );">
934
              <option value="">-- Select SBOM --</option>			  
935
			  <%
936
			  OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorA.Item("proj_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
937
			  OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorA.Item("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
938
 
939
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
940
 
941
			  OraDatabase.Parameters.Remove "PROJ_ID"
942
			  OraDatabase.Parameters.Remove "BRANCH_ID"
943
 
944
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
945
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
946
              <%rsQry.MoveNext
947
			  WEnd
948
 
949
			  rsQry.Close
950
			  Set rsQry = Nothing
951
			  %>
952
		  </select></td>
953
        </tr>
954
        <tr>
955
          <td align="left">
956
 
957
 
958
		  <select name="sbomA" id="sbomA" class="form_item">
959
            <%
960
			  OraDatabase.Parameters.Add "BOM_ID", 	objRelCollectorA.Item("bom_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
961
			  OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorA.Item("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
962
 
963
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
964
 
965
			  OraDatabase.Parameters.Remove "BOM_ID"
966
			  OraDatabase.Parameters.Remove "BRANCH_ID"
967
 
968
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
969
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
970
            <%rsQry.MoveNext
971
			  WEnd
972
 
973
			  rsQry.Close
974
			  Set rsQry = Nothing
975
			  %>
976
          </select>
977
 
978
		  </td>
979
        </tr>
980
		<%If (parRtagA <> "") Then%>  
981
		<tr>
982
          <td align="left"><a href="Bom_Home.asp?bom_id=<%=parSBOMA%>" class="body_txt_drk">Go To SBOM A &raquo;</a></td>
983
        </tr>
984
		<%End If%>
985
    </table>
986
 
987
    <!-- SELECT SBOM A END ---------------------------------------------->	</td>
988
    <td width="1%" valign="top" background="images/bg_lght_gray.gif">&nbsp;</td>
989
    <td rowspan="2" valign="top" width="100%" background="images/bg_lght_gray.gif" align="center"> 
990
      <!-- DIFF -------------------------------------------------------->
991
      <br>
992
 
993
 
994
 
995
 
996
      <table width="100%" border="0" cellspacing="10" cellpadding="0">
997
        <tr>
998
          <td>
999
 
1000
 
1001
 
1002
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
1003
			  <tr> 
1004
                <td width="1%"></td>
1005
                <td width="100%" align="left" class="form_ttl">DIFF SBOM</td>
1006
                <td width="1%"></td>
1007
              </tr>
1008
              <tr> 
1009
                <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
1010
                <td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl">&nbsp; 
1011
                </td>
1012
                <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
1013
              </tr>
1014
              <tr> 
1015
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
1016
                <td bgcolor="#FFFFFF" valign="top" class="form_item">
1017
 
1018
 
1019
 
1020
				<table width="100%"  border="0" cellspacing="0" cellpadding="5">
1021
                  <tr>
1022
                    <td width="100%" bgcolor="#DAD7C8">
1023
					<input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;">
1024
					<input type="submit" name="btn" value="Swap Compare" class="form_btn_comp">
1025
					<span class="body_txt">
1026
					<input name="btn" type="submit" class="form_btn" value="Mail Me Report">
1027
					</span>					</td>
1028
                    <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
1029
					<table width="100%"  border="0" cellspacing="0" cellpadding="0">
1030
                      <tr>
1031
 
1032
                        <td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td>
1033
                      </tr>
1034
                    </table></td>
1035
                  </tr>
1036
				  <tr>
1037
                    <td>
1038
					<%If (parRtagA <> "") AND (parRtagB <> "")Then%> 
1039
					<!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ -->   
1040
					<fieldset style="width:150px;">
1041
					<legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %>&nbsp;Filter&nbsp;Results...</a></legend>			            	  
1042
					<div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;">
1043
					<br>
1044
					<table width="100%"  border="0" cellspacing="1" cellpadding="3">
1045
					    <tr>
1046
					      <td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_UPDATED)%>></td>
1047
					      <td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td>
1048
					    </tr>
1049
					    <tr>
1050
					      <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_NEW)%>></td>
1051
					      <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td>
1052
					    </tr>
1053
					    <tr>
1054
					      <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_REMOVED)%>></td>
1055
					      <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td>
1056
					    </tr>
1057
					    <tr>
1058
 
1059
					    <tr>
1060
					      <td background="images/bg_action_norm.gif">&nbsp;</td>
1061
					      <td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td>
1062
					    </tr>
1063
					  </table>
1064
					</div>
1065
					</fieldset>
1066
					<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
1067
					<%End If%>
1068
					</td>
1069
                    <td></td>
1070
                  </tr>
1071
                </table>
1072
 
1073
				<%
1074
				' Successfull Merge
1075
				If (Request("btn") = "Merge") Then
1076
					Call Messenger ( "Merge has completed successfully.", 3, "100%" )				
1077
				End If
1078
 
1079
				Set FSO=Server.CreateObject("Scripting.FileSystemObject")
1080
				Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html"), true)
1081
				Call Header()				
1082
 
1083
				If (parRtagA <> "") AND (parRtagB <> "")Then%>  
1084
                <table width="100%"  border="0" cellspacing="1" cellpadding="0">
1085
                  <tr>
1086
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
1087
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
1088
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
1089
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
1090
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
1091
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
1092
                  </tr>
1093
			    <%
1094
 
1095
				OraDatabase.Parameters.Add "SBOM_A", 	parSBOMA,	ORAPARM_INPUT, ORATYPE_NUMBER 
1096
				OraDatabase.Parameters.Add "SBOM_B", 	parSBOMB,	ORAPARM_INPUT, ORATYPE_NUMBER 
1097
				OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE),		ORAPARM_INPUT, ORATYPE_VARCHAR2
1098
				OraDatabase.Parameters.Add "ADDED", 	GetIsDiffFilterChecked(enumDB_DIFF_NEW),		ORAPARM_INPUT, ORATYPE_VARCHAR2
1099
				OraDatabase.Parameters.Add "UPDATED", 	GetIsDiffFilterChecked(enumDB_DIFF_UPDATED),		ORAPARM_INPUT, ORATYPE_VARCHAR2
1100
				OraDatabase.Parameters.Add "REMOVED", 	GetIsDiffFilterChecked(enumDB_DIFF_REMOVED),		ORAPARM_INPUT, ORATYPE_VARCHAR2
1101
 
1102
				Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiff.sql"), cint(0))
1103
 
1104
				OraDatabase.Parameters.Remove "SBOM_A"
1105
				OraDatabase.Parameters.Remove "SBOM_B"
1106
				OraDatabase.Parameters.Remove "NO_CHANGE"
1107
				OraDatabase.Parameters.Remove "ADDED"
1108
				OraDatabase.Parameters.Remove "UPDATED"
1109
				OraDatabase.Parameters.Remove "REMOVED"
1110
 
1111
				Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
1112
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
1113
	"  FROM BRANCHES br,"&_
1114
	"  		BOMS b,"&_	
1115
	"  	    DM_PROJECTS pr"&_
1116
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
1117
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_	
1118
	"   AND b.BOM_ID ="&parSBOMA, cint(0))
1119
 
1120
 
1121
				Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
1122
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
1123
	"  FROM BRANCHES br,"&_
1124
	"  		BOMS b,"&_	
1125
	"  	    DM_PROJECTS pr"&_
1126
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
1127
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_	
1128
	"   AND b.BOM_ID ="&parSBOMB, cint(0))
1129
 
1130
 
1131
				Call Javascript()
1132
 
1133
				NewTextFile.WriteLine("<title>Difference Report Between "&rsQryA("branch_name")&" "&rsQryA("location")&" and "&rsQryB("branch_name")&" "&rsQryB("location")&"</title>")
1134
				NewTextFile.WriteLine("<div align="&chr(34)&"center"&chr(34)&"><font color="&chr(34)&"red"&chr(34)&" size="&chr(34)&"4"&chr(34)&" face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">Difference Report Between "&rsQryA("branch_name")&" "&rsQryA("location")&" and "&rsQryB("branch_name")&" "&rsQryB("location")&"</font></div><br>")
1135
 
1136
				While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
1137
				errormsg = false
1138
					rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
1139
 
1140
					btnMerge = LIMG_MERGE
1141
					btnRemove = LIMG_REMOVE
1142
					colorA = LCOLOR_NOT_CHANGED
1143
					colorB = LCOLOR_NOT_CHANGED
1144
 
1145
					Select Case rsQry("change_type")
1146
						Case "U"
1147
							colorA = LCOLOR_CHANGED
1148
							colorB = LCOLOR_CHANGED							
1149
						Case "UW"
1150
							colorA = LCOLOR_CHANGED
1151
							colorB = LCOLOR_CHANGED
1152
							btnMerge = LIMG_MERGE_WARN
1153
						Case "A"
1154
							colorA = LCOLOR_BLANK
1155
						Case "R"
1156
							colorB = LCOLOR_BLANK
1157
					End Select
1158
 
1159
					Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )
1160
				%>
1161
				  <tr>
1162
                    <td class="body_row" nowrap>
1163
						<DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
1164
						<%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
1165
						</DIV>
1166
						<input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
1167
					</td>
1168
                    <td bgcolor="#F5F5F5"></td>
1169
                    <td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td>
1170
                    <td bgcolor="#F5F5F5"></td>
1171
                    <td class="body_row" nowrap>
1172
						<DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
1173
						<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
1174
						</DIV>
1175
						<input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
1176
						<input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
1177
						<input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
1178
						<input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
1179
					</td>
1180
                    <td bgcolor="#F5F5F5"><DIV id="IMGUNDO<%=rowId%>" style="display:none;" ><a href="javascript:;" onClick="UndoPackage( '<%=rowId%>' );"><%=LIMG_UNDO%></a></DIV></td>
1181
                  </tr> 
1182
<%
1183
	If email then 
1184
		If rsQry("pv_id_a") Then
1185
			Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0)) 
1186
		End If
1187
 
1188
		If rsQry("pv_id_b") Then
1189
			Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0)) 
1190
		End If
1191
 
1192
		pkgA = rsQry("pkg_name_a")
1193
		pkgB = rsQry("pkg_name_b")
1194
 
1195
		If pkgA <> "" then 
1196
			pkgname = pkgA
1197
		Else
1198
			pkgname = pkgB
1199
		End If
1200
 
1201
		If rsQry("change_type") = "U" OR rsQry("change_type") = "UW" Then
1202
				NewTextFile.Write("<p><SPAN id=""spanShowDetails"& rowId &""" name=""spanShowDetails""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(true,'"& rowId &"');"">"& pkgname &"</a></SPAN>")
1203
				NewTextFile.Write("<SPAN id=""spanHideDetails"& rowId &""" name=""spanHideDetails"" style=""display:none;""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(false,'"& rowId &"');"">"& pkgname &"</a></SPAN>")
1204
				NewTextFile.WriteLine("<SPAN id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")								
1205
				'NewTextFile.WriteLine("<b><font face="&chr(34)&"arial"&chr(34)&">Package Name: "&pkgname&"</font></b><br>")
1206
				NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
1207
 
1208
				NewTextFile.WriteLine("<br>")
1209
				NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
1210
 
1211
				a = rsQry("pv_id_a")
1212
				b = rsQry("pv_id_b")
1213
				c = rsQry("pv_id_a")
1214
				d = rsQry("pv_id_b")
1215
 
1216
				'On Error Resume Next
1217
 
1218
 
1219
 
1220
				'NewTextFile.WriteLine("<br><br>")
1221
				'NewTextFile.WriteLine()
1222
				'NewTextFile.WriteLine("<b>"&rsQryA("location")&"</b>")	
1223
				'Call Comments(rsQry("pv_id_a"))
1224
				'Call GetFixedIssues(rsQry("pv_id_a"))
1225
				'Call GetDependencies(rsQry("pv_id_a"), rsQry("pv_id_b"))
1226
 
1227
				NewTextFile.WriteLine("<br><br>")
1228
				NewTextFile.WriteLine()
1229
				'NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")	
1230
				Call Comments(rsQry("pv_id_b"))
1231
				Call GetFixedIssues(rsQry("pv_id_b"))
1232
 
1233
				Dim rsQryLast
1234
				Set rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0)) 
1235
 
1236
				If rsQryLast("last_pv_id") <> a Then
1237
					Call PreviousVersions(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"))
1238
				End If	
1239
 
1240
				a = rsQry("pv_id_a")
1241
				b = rsQry("pv_id_b")
1242
				Call GetDependencies(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), rsQry("pkg_name_a"))	
1243
				NewTextFile.WriteLine("</SPAN>")	
1244
 
1245
				rsQryLast.Close
1246
				Set rsQryLast = nothing
1247
 
1248
		End If
1249
 
1250
		If rsQry("change_type") = "A" AND rsQry("patch_b") = "Y" Then
1251
			Dim rsQryPatch
1252
			OraDatabase.Parameters.Add "PV_ID", 	rsQry("pv_id_b"),	ORAPARM_INPUT, ORATYPE_NUMBER 
1253
			Set rsQryPatch = OraDatabase.DbCreateDynaset( GetQuery("pd_patch.sql"), cint(0))
1254
			OraDatabase.Parameters.Remove "PV_ID"
1255
			If NOT IsNull(rsQryPatch("pv_id")) Then
1256
				NewTextFile.Write("<p><SPAN id=""spanShowDetails"& rowId &""" name=""spanShowDetails""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(true,'"& rowId &"');"">"& rsQryPatch("pkg_name") &" "& rsQryPatch("pkg_version") &"</a></SPAN>")
1257
				NewTextFile.Write("<SPAN id=""spanHideDetails"& rowId &""" name=""spanHideDetails"" style=""display:none;""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(false,'"& rowId &"');"">"& rsQryPatch("pkg_name") &" "& rsQryPatch("pkg_version") &"</a></SPAN>")
1258
				NewTextFile.WriteLine("<SPAN id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")								
1259
				Call Comments(rsQryPatch("pv_id"))
1260
				Call GetFixedIssues(rsQryPatch("pv_id"))
1261
			Else
1262
				NewTextFile.Write("<p><SPAN id=""spanShowDetails"& rowId &""" name=""spanShowDetails""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(true,'"& rowId &"');"">"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b") &"</a></SPAN>")
1263
				NewTextFile.Write("<SPAN id=""spanHideDetails"& rowId &""" name=""spanHideDetails"" style=""display:none;""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(false,'"& rowId &"');"">"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b") &"</a></SPAN>")
1264
				NewTextFile.WriteLine("<SPAN id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")								
1265
				Call Comments(rsQry("pv_id_b"))
1266
				Call GetFixedIssues(rsQry("pv_id_b"))	
1267
			End If	
1268
 
1269
			NewTextFile.WriteLine("</SPAN>")	
1270
			rsQryPatch.Close
1271
			Set rsQryPatch = nothing
1272
 
1273
		End If
1274
 
1275
	End If
1276
 
1277
	rsQry.MoveNext
1278
	WEnd
1279
 
1280
	rsQry.Close
1281
	Set rsQry = Nothing
1282
%>									  
1283
<%
1284
	Call Footer()
1285
	NewTextFile.Close
1286
	Set NewTextFile=Nothing 
1287
%>				  
1288
                </table>
1289
                <br>
1290
			<%Else%>	
1291
				<br>
1292
				<%
1293
				If (parRtagB <> "") Then
1294
					Call Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )					
1295
				ElseIf (parRtagA <> "") Then
1296
					Call Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )					
1297
				Else
1298
					Call Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )					
1299
				End If
1300
				%>
1301
 
1302
			<%End If%>
1303
 
1304
				</td>
1305
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1306
              </tr>
1307
              <tr> 
1308
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1309
                <td background="images/lbox_bg_blue.gif"></td>
1310
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
1311
              </tr>
1312
            </table>
1313
          </td>
1314
        </tr>
1315
      </table>
1316
    <!-- DIFF END ---------------------------------------------------->
1317
    </td>
1318
	<td valign="top" width="1%" background="images/bg_lite_blue.gif"> 
1319
 
1320
 
1321
	  <!-- SELECT SBOM B ---------------------------------------------->
1322
      <br>
1323
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
1324
		<tr>
1325
          <td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13">&nbsp;Select SBOM B<hr size="1px" color="Olive" noshade></td>
1326
        </tr>
1327
        <tr>
1328
          <td align="left">
1329
		  <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
1330
              <option value="">-- Select Project --</option>
1331
			  <%
1332
			  OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorB.Item("proj_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
1333
 
1334
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
1335
 
1336
			  OraDatabase.Parameters.Remove "PROJ_ID"
1337
 
1338
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1339
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1340
              <%rsQry.MoveNext
1341
			  WEnd
1342
 
1343
			  rsQry.Close
1344
			  Set rsQry = Nothing
1345
			%>
1346
          </select></td>
1347
        </tr>
1348
        <tr>
1349
          <td align="left">
1350
 
1351
		  <select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );">
1352
              <option value="">-- Select SBOM --</option>		  
1353
			  <%
1354
			  OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorB.Item("proj_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
1355
			  OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorB.Item("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
1356
 
1357
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
1358
 
1359
			  OraDatabase.Parameters.Remove "PROJ_ID"
1360
			  OraDatabase.Parameters.Remove "BRANCH_ID"
1361
 
1362
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1363
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
1364
              <%rsQry.MoveNext
1365
			  WEnd
1366
 
1367
			  rsQry.Close
1368
			  Set rsQry = Nothing
1369
			  %>
1370
		  </select></td>
1371
        </tr>
1372
        <tr>
1373
          <td align="left">
1374
 
1375
 
1376
		  <select name="sbomB" id="sbomB" class="form_item">
1377
            <%
1378
			  OraDatabase.Parameters.Add "BOM_ID", 	objRelCollectorB.Item("bom_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
1379
			  OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorB.Item("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
1380
 
1381
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
1382
 
1383
			  OraDatabase.Parameters.Remove "BOM_ID"
1384
			  OraDatabase.Parameters.Remove "BRANCH_ID"
1385
 
1386
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1387
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
1388
            <%rsQry.MoveNext
1389
			  WEnd
1390
 
1391
			  rsQry.Close
1392
			  Set rsQry = Nothing
1393
			  %>
1394
          </select>
1395
 
1396
 
1397
		  </td>
1398
        </tr>
1399
		<%If (parRtagB <> "") Then%>  
1400
		<tr>
1401
          <td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B &raquo;</a></td>
1402
        </tr>
1403
		<%End If%>
1404
      </table>
1405
      <!-- SELECT RELEASE B END ---------------------------------------------->	  </td>
1406
  </tr>
1407
  <tr> 
1408
    <td valign="bottom" align="center" background="images/bg_lite_blue.gif"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td>
1409
    <td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="500"></td>
1410
	<td valign="bottom" background="images/bg_lite_blue.gif" align="center"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td>
1411
  </tr>
1412
</table>
1413
</form>
1414
<!-- FOOTER -->
1415
<!--#include file="_footer.asp"-->
1416
<%
1417
	If email Then
1418
 
1419
		Dim myMail, LocalPath
1420
		Set myMail=Server.CreateObject("Persits.MailSender")
1421
		LocalPath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html")
1422
 
1423
		myMail.Host = SMTP_HOST
1424
		myMail.Subject="BOM Comparisons from Deployment Manager"
1425
		myMail.From="releasem@erggroup.com"
1426
		myMail.AddAddress objAccessControl.UserEmail
1427
		' Attach the file
1428
		myMail.AddAttachment LocalPath
1429
		myMail.Body = "Your requested report..." 
1430
		myMail.Send
1431
 
1432
		set myMail=nothing
1433
 
1434
	End If
1435
%>
1436
</body>
1437
</html>
1438
<%
1439
Call Destroy_All_Objects
1440
%>
1441
<!--#include file="common/globals_destructor.asp"-->