Blame | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' MAKE APPROVED FOR AUTOMATED BUILD' --- PROCESS FORM ---'=====================================================%><%Option explicit' Good idea to set when using redirectResponse.Expires = 0 ' always load the page, dont store%><!--#include file="common/conf.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/common_dbedit.asp"--><%'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_login.asp"--><!--#include file="_access_control_general.asp"--><!--#include file="_access_control_project.asp"--><%'------------ Variable Definition -------------Dim parPv_idDim parRfileDim retERRmsgDim retALRTmsgDim retParametersDim pkgTypeDim retVal'------------ Constants Declaration -----------'------------ Variable Init -------------------parPv_id = Request("pv_id")parRfile = Request("rfile")Set pkgInfoHash = CreateObject("Scripting.Dictionary")'------------ Constants Declaration -----------'------------ Variable Init -------------------'----------------------------------------------%><%'----------------------------------------------------------------------------------------------------------------------------------------Function Get_CQ_Issues ( SSsql, OOrsCQ )'On Error Resume NextOOrsCQ.ActiveConnection = CQ_connOOrsCQ.Source = SSsqlOOrsCQ.CursorType = 0OOrsCQ.CursorLocation = 2OOrsCQ.LockType = 3OOrsCQ.Open()Get_CQ_Issues = Err.NumberEnd Function'------------------------------------------------------------------------------------------------------------------------------------------Sub NotifyInterest(NNpv_id, NNrtag_id)On Error Resume NextDim Query_String, rsQry, myMailQuery_String = _" SELECT * FROM PACKAGE_INTEREST PI, PACKAGES PKG, PACKAGE_VERSIONS PV, USERS U,"&_" RELEASE_TAGS RT, PROJECTS PRJ WHERE PKG.PKG_ID = PI.PKG_ID AND "&_" RT.RTAG_ID = "& NNrtag_id &""&_" AND PV.PV_ID = "& NNpv_id &" AND PV.PKG_ID = PKG.PKG_ID AND "&_" PRJ.PROJ_ID = RT.PROJ_ID AND PRJ.PROJ_ID = PI.PROJ_ID AND U.USER_ID = PI.USER_ID"Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )If rsQry.RecordCount <> "" ThenWhile ((NOT rsQry.BOF) AND (NOT rsQry.EOF))Set myMail=Server.CreateObject("Persits.MailSender")myMail.Host = SMTP_HOSTmyMail.Subject="New Version of Package "& rsQry("pkg_name") &" in Project " & rsQry("proj_name") &" on Release Branch " & rsQry("rtag_name") &" would be autobuild soon."myMail.From=ADMIN_EMAILmyMail.AddAddress rsQry("user_email")myMail.Sendset myMail=nothingrsQry.MoveNextWendEnd IfrsQry.Close()set rsQry = nothingEnd Sub'-------------------------------------------------------------------------------------Sub Get_Package_Issues(NNpv_id, SSsql)Dim sqlstr, rsTemp, DEVIiss, TDSEiss, VT5DMiss, VTSUPisssqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& NNpv_id &" AND iss_state = 1"Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))DEVIiss = "-1"TDSEiss = "-1"VT5DMiss = "-1"VTSUPiss = "-1"While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) ThenDEVIiss = DEVIiss &","& rsTemp("iss_id")ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) ThenTDSEiss = TDSEiss &","& rsTemp("iss_id")ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) ThenVT5DMiss = VT5DMiss &","& rsTemp("iss_id")ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) ThenVTSUPiss = VTSUPiss &","& rsTemp("iss_id")End IfrsTemp.MoveNextWEnd' Construct SQL statement for CQ databaseIf Len(DEVIiss) <> 1 OR Len(TDSEiss) <> 1 ThenSSsql = ReadFile( rootPath & "queries\cq_issues.sql" )SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID)SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)SSsql = Replace( SSsql, "/*VTSUPiss*/", VTSUPiss)End IfrsTemp.CloseSet rsTemp = nothingEnd Sub'-------------------------------------------------------------------------------------Sub MakeApproved (EmailBody)'Dim objWSH'Set objWSH = Server.CreateObject("WScript.Shell")OraDatabase.Parameters.Add "PV_ID", Request("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "RTAG_ID", Request("rtag_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBEROraSession.BeginTransOraDatabase.ExecuteSQL _"BEGIN "&_" PK_ENVIRONMENT.MAKE_APPROVED ( :PV_ID, :RTAG_ID, :USER_ID ); "&_"END; "OraSession.CommitTransDim myMail,parPv_id, rsQry, EmailAutoBuild, comments, release, packageEmailAutoBuild = ReadFile( rootPath & "queries\EmailAutoBuild.sql" )EmailAutoBuild = Replace( EmailAutoBuild, ":PV_ID", (Request("pv_id")) )EmailAutoBuild = Replace( EmailAutoBuild, ":RTAG_ID", (Request("rtag_id")) )Set rsQry = OraDatabase.DbCreateDynaset( EmailAutoBuild , cint(0))If rsQry("comments") <> "" Thencomments = comments & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"comments = comments & "<tr>"comments = comments & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Reason For Release</b></font></td>"comments = comments & "</tr>"comments = comments & "<tr>"comments = comments & "<td background='#CAC5B8' nowrap class='form_item'><font size='1' face='tahoma,sans-serif'>"&NewLine_To_BR((rsQry("comments")))&"</font></td>"comments = comments & "</tr>"comments = comments & "</table>"comments = comments & "<br>"End IfSet myMail=Server.CreateObject("Persits.MailSender")If rsQry("owner_email") <> "" ThenmyMail.Host = SMTP_HOSTmyMail.Subject="Build required for package "& rsQry("pkg_name") &" in Project " & rsQry("proj_name") &" on Release Branch " & rsQry("rtag_name")release = release & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"release = release & "<tr>"release = release & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Release</b></font></td>"release = release & "</tr>"release = release & "<tr>"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>"release = release & "</tr>"release = release & "</table>"release = release & "<br>"package = package & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"package = package & "<tr>"package = package & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Package</b></font></td>"package = package & "</tr>"package = package & "<tr>"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>"package = package & "</tr>"package = package & "</table>"package = package & "<br>"EmailBody = release & package & comments & EmailBodymyMail.IsHTML = TruemyMail.Body = EmailBodymyMail.From=ADMIN_EMAILIf Timer < 28800 OR Timer > 61200 ThenIf rsQry("owner_personal_email") <> "" ThenmyMail.AddAddress rsQry("owner_personal_email")ElsemyMail.AddAddress rsQry("owner_email")End IfElsemyMail.AddAddress rsQry("owner_email")End If' Attach the file'parPv_id = Request(pv_id)myMail.Sendset myMail=nothingEnd IfOraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "USER_ID"End Sub'-------------------------------------------------------------------------------------Function Check_Package_WIP_Already_Exists(NNrtag_id, NNpv_id)Dim Query_String, rsQryQuery_String = _" SELECT * "&_" FROM planned pl, package_versions pv "&_" WHERE pl.rtag_id = "& NNrtag_id &_" AND pv.pv_id = pl.pv_id "&_" AND pv.dlocked = 'A' "&_" AND pv.pkg_id = (SELECT pkg_id "&_" FROM package_versions "&_" WHERE pv_id = "& NNpv_id &") "Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )Check_Package_WIP_Already_Exists = rsQry.RecordCountrsQry.Close()Set rsQry = NothingEnd Function'-------------------------------------------------------------------------------------%><%'----------------------- MAIN LINE ---------------------------'--- Process submission ---If ( Request("rtag_id") <> "") AND (Request("pv_id") <> "") Then'Check If There Already Exists A WIP Instance Of The Package In The ReleaseIf Check_Package_WIP_Already_Exists(Request("rtag_id"), Request("pv_id")) > 0 ThenCall RaiseMsg ( enum_MSG_PACKAGE_WIP_EXISTS&"?rtag_id="& parRtag_id &"&pv_id="& parPv_id &"", parPv_id )End If'-- Get Package detailsCall Get_Pkg_Info ( Request("pv_id"), Request("rtag_id") )If pkgInfoHash.Item("build_type") = "M" Then'-- Approve Manual-build packageCall OpenInWindow( "_make_released.asp?rfile=dependencies.asp&pv_id="& parPv_id &"&rtag_id="& parRtag_id )Else'-- Approve Automatic-build packageCall CheckRequirementsForMakeApproved ( parPv_id, parRtag_id, pkgType, retERRmsg, retALRTmsg, retParameters )End IfIf IsNull(retERRmsg) ThenDim SSsql, rsCQSet rsCQ = Server.CreateObject("ADODB.Recordset")' All Requirements OK'COMPLETE THE REQUEST...Call Get_Package_Issues(parPv_id, SSsql)retVal = Get_CQ_Issues ( SSsql, rsCQ )If retVal = 0 ThenDim EmailBodyEmailBody = EmailBody & "<font size='2' face='tahoma,sans-serif'><b>Fixed Issues</b></font>"EmailBody = EmailBody & "<table width='100%' border='1' cellspacing='0' cellpadding='1'>"EmailBody = EmailBody & "<tr>"EmailBody = EmailBody & "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue Id </font></td>"EmailBody = EmailBody & "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Summary</font></td>"EmailBody = EmailBody & "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue Type </font></td>"EmailBody = EmailBody & "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Priority</font></td>"EmailBody = EmailBody & "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Status</font></td>"EmailBody = EmailBody & "</tr>"If ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF)) ThenWhile ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF))EmailBody = EmailBody & "<tr>"EmailBody = EmailBody & "<td background='#CAC5B8' nowrap class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("iss_num")&"</font></td>"EmailBody = EmailBody & " <td background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</font></td>"EmailBody = EmailBody & " <td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("issue_type")&"</font></td>"EmailBody = EmailBody & "<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("priority")&"</font></td>"EmailBody = EmailBody & "<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("Status")&"</font></td>"EmailBody = EmailBody & " </tr>"rsCQ.MoveNextWEndrsCQ.Close%><%ElseEmailBody = EmailBody & " <tr> "EmailBody = EmailBody & " <td background='#CAC5B8' nowrap></td>"EmailBody = EmailBody & " <td background='#CAC5B8' class='form_item'></td>"EmailBody = EmailBody & " <td background='#CAC5B8' class='form_item'></td>"EmailBody = EmailBody & " <td background='#CAC5B8' class='form_item'></td>"EmailBody = EmailBody & " <td background='#CAC5B8' class='form_item'></td>"EmailBody = EmailBody & " </tr>"End IfEmailBody = EmailBody & " </table> "End IfCall MakeApproved (EmailBody )'Call NotifyInterest(parPv_id, parRtag_id)If Request("rfile") <> "" ThenResponse.Redirect ( Request("rfile") &"?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") )ElseResponse.Redirect ( "dependencies.asp?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") )End IfElseCall RaiseMsg ( Eval(retERRmsg), parRtag_id &"|"& parPv_id &"|"& retParameters &"|"& "N" )End IfElseResponse.write "Some mendatory parameters are missing!" & "<br>" 'TODOResponse.write QSTR_AllEnd If%><!-- DESTRUCTOR -------><!--#include file="common/destructor.asp"-->