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