Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
' 			 	    MAKE APPROVED FOR AUTOMATED BUILD
5
'               --- PROCESS FORM ---
6
'=====================================================
7
%>
8
<%
9
Option explicit
10
' Good idea to set when using redirect
11
Response.Expires = 0	' always load the page, dont store
12
%>
13
 
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/common_dbedit.asp"-->
20
<%
21
'------------ ACCESS CONTROL ------------------
22
%>
23
<!--#include file="_access_control_login.asp"-->
24
<!--#include file="_access_control_general.asp"-->
25
<!--#include file="_access_control_project.asp"-->
26
<%
27
'------------ Variable Definition -------------
28
Dim parPv_id
29
Dim parRfile
30
Dim retERRmsg
31
Dim retALRTmsg
32
Dim retParameters
33
Dim pkgType
34
Dim retVal
35
'------------ Constants Declaration -----------
36
'------------ Variable Init -------------------
37
parPv_id = Request("pv_id")
38
parRfile = Request("rfile")
39
Set pkgInfoHash = CreateObject("Scripting.Dictionary")
40
'------------ Constants Declaration -----------
41
'------------ Variable Init -------------------
42
'----------------------------------------------
43
%>
44
<%
45
'----------------------------------------------------------------------------------------------------------------------------------------
46
Function  Get_CQ_Issues ( SSsql, OOrsCQ )
47
 
48
 
49
	'On Error Resume Next
50
	OOrsCQ.ActiveConnection = CQ_conn
51
	OOrsCQ.Source = SSsql
52
	OOrsCQ.CursorType = 0
53
	OOrsCQ.CursorLocation = 2
54
	OOrsCQ.LockType = 3
55
	OOrsCQ.Open()
56
 
57
 
58
 
59
	Get_CQ_Issues = Err.Number
60
 
61
End Function
62
'------------------------------------------------------------------------------------------------------------------------------------------
63
Sub NotifyInterest(NNpv_id, NNrtag_id)
64
	On Error Resume Next
65
	Dim Query_String, rsQry, myMail
66
 
67
	Query_String = _
68
	"	SELECT * FROM PACKAGE_INTEREST PI, PACKAGES PKG, PACKAGE_VERSIONS PV, USERS U,"&_
69
	"	RELEASE_TAGS RT, PROJECTS PRJ WHERE PKG.PKG_ID = PI.PKG_ID AND "&_
70
	"	RT.RTAG_ID = "& NNrtag_id &""&_
71
	"	AND PV.PV_ID = "& NNpv_id &" AND PV.PKG_ID = PKG.PKG_ID AND "&_
72
	"	PRJ.PROJ_ID = RT.PROJ_ID AND PRJ.PROJ_ID = PI.PROJ_ID AND U.USER_ID = PI.USER_ID" 
73
 
74
	Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )	
75
 
76
	If rsQry.RecordCount <> "" Then
77
		While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
78
			Set myMail=Server.CreateObject("Persits.MailSender")
79
			myMail.Host = SMTP_HOST
80
			myMail.Subject="New Version of Package "& rsQry("pkg_name") &" in Project " & rsQry("proj_name") &" on Release Branch " & rsQry("rtag_name") &" would be autobuild soon." 
81
			myMail.From=ADMIN_EMAIL
82
			myMail.AddAddress rsQry("user_email")
83
 
84
			myMail.Send
85
			set myMail=nothing
86
			rsQry.MoveNext	
87
		Wend
88
 
89
	End If
90
 
91
	rsQry.Close()
92
	set rsQry = nothing
93
 
94
 
95
End Sub
96
'-------------------------------------------------------------------------------------
97
Sub Get_Package_Issues(NNpv_id, SSsql)
98
Dim sqlstr, rsTemp, DEVIiss, TDSEiss, VT5DMiss, VTSUPiss
99
 
100
	sqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& NNpv_id &"  AND iss_state = 1"
101
 
102
	Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))
103
 
104
	DEVIiss = "-1"
105
	TDSEiss  = "-1"
106
	VT5DMiss = "-1"
107
	VTSUPiss = "-1"
108
 
109
	While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
110
		If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
111
			DEVIiss = DEVIiss &","& rsTemp("iss_id")
112
 
113
		ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then
114
			TDSEiss = TDSEiss &","& rsTemp("iss_id")
115
		ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then
116
			VT5DMiss = VT5DMiss &","& rsTemp("iss_id")
117
		ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then
118
			VTSUPiss = VTSUPiss &","& rsTemp("iss_id")
119
 
120
		End If
121
 
122
		rsTemp.MoveNext
123
	WEnd	
124
 
125
	' Construct SQL statement for CQ database
126
	If Len(DEVIiss) <> 1 OR Len(TDSEiss) <> 1 Then
127
		SSsql = ReadFile( rootPath & "queries\cq_issues.sql" )
128
		SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
129
		SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)
130
		SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)
131
		SSsql = Replace( SSsql, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID)
132
		SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
133
		SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)
134
		SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)
135
		SSsql = Replace( SSsql, "/*VTSUPiss*/", VTSUPiss)
136
	End If	
137
 
138
	rsTemp.Close
139
	Set rsTemp = nothing	
140
 
141
End Sub
142
'-------------------------------------------------------------------------------------
143
Sub MakeApproved (EmailBody)
144
	'Dim objWSH
145
	'Set objWSH = Server.CreateObject("WScript.Shell")
146
 
147
 
148
	OraDatabase.Parameters.Add "PV_ID", 		Request("pv_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
149
	OraDatabase.Parameters.Add "RTAG_ID", 		Request("rtag_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
150
	OraDatabase.Parameters.Add "USER_ID", 		objAccessControl.UserId,	ORAPARM_INPUT, ORATYPE_NUMBER 
151
 
152
 
153
	OraSession.BeginTrans
154
 
155
	OraDatabase.ExecuteSQL _
156
	"BEGIN "&_
157
	" PK_ENVIRONMENT.MAKE_APPROVED ( :PV_ID, :RTAG_ID, :USER_ID ); "&_
158
	"END; "
159
 
160
 
161
 
162
 
163
	OraSession.CommitTrans
164
		Dim myMail,parPv_id, rsQry, EmailAutoBuild, comments, release, package
165
		EmailAutoBuild = ReadFile( rootPath & "queries\EmailAutoBuild.sql" )
166
		EmailAutoBuild = Replace( EmailAutoBuild, ":PV_ID", (Request("pv_id")) )
167
		EmailAutoBuild = Replace( EmailAutoBuild, ":RTAG_ID", (Request("rtag_id")) )
168
		Set rsQry = OraDatabase.DbCreateDynaset( EmailAutoBuild , cint(0))
169
			If rsQry("comments") <> "" Then
170
				comments = comments & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"
171
    	        comments = comments & "<tr>" 
172
        	    comments = comments & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Reason&nbsp;For&nbsp;Release</b></font></td>"
173
            	comments = comments & "</tr>"
174
	  			comments = comments & "<tr>"
175
   	    	    comments = comments & "<td background='#CAC5B8' nowrap class='form_item'><font size='1' face='tahoma,sans-serif'>"&NewLine_To_BR((rsQry("comments")))&"</font></td>"			
176
				comments = comments & "</tr>"
177
				comments = comments & "</table>"
178
				comments = comments & "<br>"							
179
			End If
180
 
181
		Set myMail=Server.CreateObject("Persits.MailSender")
182
		If rsQry("owner_email") <> "" Then
183
			myMail.Host = SMTP_HOST
184
			myMail.Subject="Build required for package "& rsQry("pkg_name") &" in Project " & rsQry("proj_name") &" on Release Branch " & rsQry("rtag_name") 
185
			release = release & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"
186
    	    release = release & "<tr>" 
187
        	release = release & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Release</b></font></td>"
188
            release = release & "</tr>"
189
	  		release = release & "<tr>"
190
   	    	release = release & "<td background='#CAC5B8' nowrap class='form_item'><a href='http://erg:8002/ManagerSuite/Release_Manager/dependencies.asp?rtag_id="&Request("rtag_id")&"'><font size='1' face='tahoma,sans-serif'>"&rsQry("rtag_name")&"</font></a></td>"			
191
			release = release & "</tr>"
192
			release = release & "</table>"
193
			release = release & "<br>"
194
 
195
			package = package & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"
196
    	    package = package & "<tr>" 
197
        	package = package & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Package</b></font></td>"
198
            package = package & "</tr>"
199
	  		package = package & "<tr>"
200
   	    	package = package & "<td background='#CAC5B8' nowrap class='form_item'><a href='http://erg:8002/ManagerSuite/Release_Manager/fixed_issues.asp?pv_id="&Request("pv_id")&"&rtag_id="&Request("rtag_id")&"'><font size='1' face='tahoma,sans-serif'>"&rsQry("pkg_name")&" "&rsQry("pkg_version")&"</font></a></td>"			
201
			package = package & "</tr>"
202
			package = package & "</table>"
203
			package = package & "<br>" 	
204
 
205
			EmailBody =  release & package & comments & EmailBody
206
			myMail.IsHTML = True
207
			myMail.Body = EmailBody
208
			myMail.From=ADMIN_EMAIL
209
 
210
			If Timer < 28800 OR Timer > 61200 Then 
211
				If rsQry("owner_personal_email") <> "" Then
212
					myMail.AddAddress rsQry("owner_personal_email")
213
				Else
214
					myMail.AddAddress rsQry("owner_email")			
215
				End If
216
			Else
217
				myMail.AddAddress rsQry("owner_email")
218
			End If
219
			' Attach the file
220
			'parPv_id = Request(pv_id)
221
 
222
			myMail.Send
223
			set myMail=nothing
224
		End If
225
 
226
	OraDatabase.Parameters.Remove "PV_ID"
227
	OraDatabase.Parameters.Remove "RTAG_ID"
228
	OraDatabase.Parameters.Remove "USER_ID"
229
 
230
End Sub
231
'-------------------------------------------------------------------------------------
232
Function Check_Package_WIP_Already_Exists(NNrtag_id, NNpv_id)
233
	Dim Query_String, rsQry
234
 
235
	Query_String = _
236
	"	SELECT * "&_
237
	"	FROM planned pl, package_versions pv "&_
238
	"	WHERE pl.rtag_id = "& NNrtag_id &_
239
	"	AND pv.pv_id = pl.pv_id "&_
240
	"	AND pv.dlocked = 'A' "&_
241
	"	AND pv.pkg_id = (SELECT pkg_id "&_
242
    "                  FROM package_versions "&_
243
    "                 WHERE pv_id = "& NNpv_id &") "
244
 
245
 
246
	Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )	
247
 
248
	Check_Package_WIP_Already_Exists = rsQry.RecordCount
249
 
250
	rsQry.Close()
251
	Set rsQry = Nothing
252
End Function
253
'-------------------------------------------------------------------------------------
254
%>
255
<%
256
'-----------------------  MAIN LINE  ---------------------------
257
 
258
'--- Process submission ---
259
If ( Request("rtag_id") <> "") AND (Request("pv_id") <> "") Then
260
 
261
	'Check If There Already Exists A WIP Instance Of The Package In The Release
262
	 If Check_Package_WIP_Already_Exists(Request("rtag_id"), Request("pv_id")) > 0 Then
263
		Call RaiseMsg ( enum_MSG_PACKAGE_WIP_EXISTS&"?rtag_id="& parRtag_id &"&pv_id="& parPv_id &"", parPv_id )
264
	 End If
265
 
266
	'-- Get Package details
267
	Call Get_Pkg_Info ( Request("pv_id"), Request("rtag_id") )
268
 
269
 
270
	If pkgInfoHash.Item("build_type") = "M" Then
271
		'-- Approve Manual-build package
272
		Call OpenInWindow( "_make_released.asp?rfile=dependencies.asp&pv_id="& parPv_id &"&rtag_id="& parRtag_id  )
273
 
274
	Else
275
		'-- Approve Automatic-build package
276
		Call CheckRequirementsForMakeApproved ( parPv_id, parRtag_id, pkgType, retERRmsg, retALRTmsg, retParameters )
277
 
278
	End If
279
 
280
 
281
	If IsNull(retERRmsg) Then
282
		Dim SSsql, rsCQ 
283
		Set rsCQ = Server.CreateObject("ADODB.Recordset")
284
		' All Requirements OK
285
		'COMPLETE THE REQUEST...
286
		Call Get_Package_Issues(parPv_id, SSsql)
287
 
288
		retVal = Get_CQ_Issues ( SSsql, rsCQ )
289
 
290
		If retVal = 0 Then	
291
			Dim EmailBody					
292
			EmailBody = EmailBody & "<font size='2' face='tahoma,sans-serif'><b>Fixed Issues</b></font>"
293
            EmailBody = EmailBody & "<table width='100%' border='1' cellspacing='0' cellpadding='1'>"
294
            EmailBody = EmailBody & "<tr>" 
295
            EmailBody = EmailBody &                           "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue&nbsp;Id&nbsp;</font></td>"
296
 
297
            EmailBody = EmailBody &                           "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Summary</font></td>"
298
            EmailBody = EmailBody &						   "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue&nbsp;Type&nbsp;</font></td>"
299
            EmailBody = EmailBody &                           "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Priority</font></td>"
300
            EmailBody = EmailBody &						   "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Status</font></td>"
301
 
302
            EmailBody = EmailBody &                      "</tr>"
303
					  If ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF)) Then
304
                         While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF))
305
            EmailBody = EmailBody & "<tr>"
306
            EmailBody = EmailBody &  "<td background='#CAC5B8' nowrap class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("iss_num")&"</font></td>"
307
 
308
			EmailBody = EmailBody &		"				   <td background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</font></td>"
309
            EmailBody = EmailBody &		"				  <td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("issue_type")&"</font></td>"
310
            EmailBody = EmailBody &                           "<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("priority")&"</font></td>"
311
            EmailBody = EmailBody &						   "<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("Status")&"</font></td>"
312
            EmailBody = EmailBody &    "                     </tr>"
313
                         rsCQ.MoveNext
314
					  WEnd
315
					  rsCQ.Close%>
316
					  <%Else
317
 EmailBody = EmailBody &    "                          <tr> "
318
 EmailBody = EmailBody &    "                            <td background='#CAC5B8' nowrap></td>"
319
 EmailBody = EmailBody &    " 						   <td background='#CAC5B8' class='form_item'></td>"
320
 EmailBody = EmailBody &    "                            <td background='#CAC5B8' class='form_item'></td>"
321
 EmailBody = EmailBody &    "                            <td background='#CAC5B8' class='form_item'></td>"
322
 EmailBody = EmailBody &    " 						   <td background='#CAC5B8' class='form_item'></td>"
323
 EmailBody = EmailBody &    "                          </tr>"
324
					  End If
325
 
326
 EmailBody = EmailBody &    "                        </table> 		"
327
 
328
		End If
329
		Call MakeApproved (EmailBody )
330
		'Call NotifyInterest(parPv_id, parRtag_id)
331
		If Request("rfile") <> "" Then
332
			Response.Redirect ( Request("rfile") &"?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") )
333
		Else
334
			Response.Redirect ( "dependencies.asp?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") )
335
		End If
336
 
337
	Else
338
		Call RaiseMsg ( Eval(retERRmsg), parRtag_id &"|"& parPv_id 	&"|"& retParameters &"|"& "N" )
339
 
340
	End If
341
 
342
Else
343
	Response.write "Some mendatory parameters are missing!" & "<br>" 'TODO
344
	Response.write QSTR_All 
345
End If
346
%>
347
 
348
<!-- DESTRUCTOR ------->
349
<!--#include file="common/destructor.asp"-->