Subversion Repositories DevTools

Rev

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