Rev 1281 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' Update Issues State' --- 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"--><%' Set rfile parameter. This is a return page after LoginCall objPMod.StoreParameter ( "rfile", "fixed_issues.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 parFRfixed'------------ Constants Declaration -----------'------------ Variable Init -------------------parPv_id = QStrPar("pv_id")parRtag_id = QStrPar("rtag_id")parFRfixed = Request("FRfixed")'----------------------------------------------%><%'-----------------------------------------------------------------------------------------------------------------------------Sub GetOldIssueStates ( nPvId, ByRef outobjOldIssStates )Dim rsQry, queryquery = _" SELECT cqi.ISS_DB ||'.'|| cqi.ISS_ID AS iss_db_id,"&_" cqi.ISS_STATE"&_" FROM CQ_ISSUES cqi"&_" WHERE cqi.PV_ID = :PV_ID"OraDatabase.Parameters.Add "PV_ID", nPvId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( query , ORADYN_DEFAULT )While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))outobjOldIssStates.Item ( CStr(rsQry("iss_db_id")) ) = Cstr(rsQry("iss_state"))rsQry.MoveNext()WEndrsQry.CloseSet rsQry = NothingOraDatabase.Parameters.Remove "PV_ID"End Sub'-----------------------------------------------------------------------------------------------------------------------------Sub Update_Issues ( NNpv_id, NNfixed_iss_list )Dim fixedIssArr, isspkArr, isspk, objOldIssStates, iss_num, outstandingIssArrSet objOldIssStates = CreateObject("Scripting.Dictionary")Call GetOldIssueStates ( NNpv_id, objOldIssStates )objEH.TryORA ( OraSession )On Error Resume Next'-- Set all issues to "imported" i.e. "not fixed"'OraDatabase.ExecuteSQL _' " UPDATE cq_issues "&_' " SET iss_state = "& enumISSUES_STATE_IMPORTED &_' " WHERE pv_id = "& NNpv_id'-- Now set "fixed" for selected issuesIf NNfixed_iss_list <> "" ThenfixedIssArr = Split( Replace( NNfixed_iss_list, " ", "" ) , ",")For Each isspk In fixedIssArrisspkArr = Split(isspk, ".")iss_num = GetIssueNumber ( isspkArr(0), isspkArr(1) )If Err.Number = 0 ThenOraDatabase.ExecuteSQL _" UPDATE cq_issues "&_" SET iss_state = "& enumISSUES_STATE_FIXED &_" WHERE pv_id = "& NNpv_id &_" AND iss_db = "& isspkArr(0) &_" AND iss_id = "& isspkArr(1)If Err.Number = 0 Then'/* Log Action */If CStr( objOldIssStates.Item ( isspk ) ) = CStr(enumISSUES_STATE_IMPORTED) ThenOraDatabase.ExecuteSQL _"BEGIN Log_Action ( "& NNpv_id &", 'issue_fixed', "& objAccessControl.UserId &", 'Issue number: "& iss_num &"' ); END;"End IfEnd If'-- Remove this element from objOldIssStatesobjOldIssStates.Remove ( isspk )End IfNextEnd If'/* Log Action */'-- Log Set to OutstandingoutstandingIssArr = objOldIssStates.KeysFor Each isspk In outstandingIssArrIf CStr( objOldIssStates.Item ( isspk ) ) = CStr(enumISSUES_STATE_FIXED) ThenisspkArr = Split(isspk, ".")iss_num = GetIssueNumber ( isspkArr(0), isspkArr(1) )If Err.Number = 0 ThenOraDatabase.ExecuteSQL _"BEGIN Log_Action ( "& NNpv_id &", 'issue_outstanding', "& objAccessControl.UserId &", 'Issue number: "& iss_num &"' ); END;"End IfEnd IfNextobjEH.CatchORA ( OraSession )End Sub'-----------------------------------------------------------------------------------------------------------------------------%><%'----------------------- MAIN LINE ---------------------------'--- Process submition ---If (parPv_id <> "") Then' All mandatory parameters FOUNDCall Update_Issues ( parPv_id, parFRfixed )Response.Redirect("fixed_issues.asp?hidenv=true&pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id"))ElseResponse.write "Some mandatory parameters are missing!" & "<br>" 'TODOResponse.write QSTR_AllEnd If%><!-- DESTRUCTOR -------><!--#include file="common/destructor.asp"-->