Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
123 ghuddy 4
'                  NEW VERSION
119 ghuddy 5
'               --- PROCESS FORM ---
6
'=====================================================
7
%>
8
<%
9
Option explicit
10
' Good idea to set when using redirect
123 ghuddy 11
Response.Expires = 0   ' always load the page, dont store
119 ghuddy 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"-->
5169 dpurdie 20
<!--#include file="common/release_changed.asp"-->
119 ghuddy 21
<%
22
' Set rfile parameter. This is a return page after Login
23
Call objPMod.StoreParameter ( "rfile", "dependencies.asp" )
24
'------------ ACCESS CONTROL ------------------
25
%>
26
<!--#include file="_access_control_login.asp"-->
27
<!--#include file="_access_control_general.asp"-->
28
<!--#include file="_access_control_project.asp"-->
29
<%
30
'------------ Variable Definition -------------
31
Dim parOLDpv_id
32
Dim parFRnewver
33
Dim NEWpv_id
34
Dim parSetToPv_id
35
Dim parSync_rtags
36
Dim toTouch
3959 dpurdie 37
Dim parNewPackage
38
Dim parFRpkgName
39
Dim parChangeType
40
Dim parBase_view_id
41
Dim parPersonal_view_id
42
Dim parBuildType
43
Dim newPkgPv_id
44
Dim errMessage
45
 
119 ghuddy 46
'------------ Constants Declaration -----------
47
'------------ Variable Init -------------------
48
parOLDpv_id = QStrPar("OLDpv_id")
49
parFRnewver = QStrPar("FRnewver")
50
parSetToPv_id = QStrPar("pv_id")
51
parSync_rtags = Request("sync_rtags")
151 ghuddy 52
 
3959 dpurdie 53
parNewPackage = Request("newPackage")
54
parFRpkgName = Request("FRpkgName")
55
parChangeType = Request("change_type")
56
parBase_view_id = Request("base_view_id")
57
parPersonal_view_id = Request("personal_view_id")
58
parBuildType = Request("build_type")
59
 
119 ghuddy 60
'----------------------------------------------
61
%>
62
<%
5169 dpurdie 63
'----------------------------------------------
64
'   Appears to be a 'Replace Version'
65
'   Args:   SSnewver            - New Version String (may be empty)
66
'           NNorig_pv_id        - original PVID
67
'           NNSetToPv_id        - New PVID
68
'           NNrtag_id           - Release Identifier
69
'           sSyncRtags          - Not Used any more
70
'           retNEWpv_id         - Return the PVID of the (replaced) package
71
'
72
 
119 ghuddy 73
Sub New_Version ( SSnewver, NNorig_pv_id, NNSetToPv_id, NNrtag_id, sSyncRtags, retNEWpv_id )
123 ghuddy 74
   Dim cAlterReleaseWhileRestrictive, rsQry
1334 dpurdie 75
   Dim Original_SSnewver
4203 dpurdie 76
   Dim newPkgVersion
1334 dpurdie 77
   Original_SSnewver = SSnewver
123 ghuddy 78
 
79
   On Error Resume Next
80
   objEH.ErrorRedirect = TRUE
81
 
4203 dpurdie 82
   ' Manually built package
83
   '    Force change type of 'Fixed'
84
   If parBuildType = "M" Then
85
      parChangeType = "F"
86
   End If
87
 
88
   ' If automatically assigned version number
89
   '    Reset the version string
90
   If parChangeType = "F" Then
91
      newPkgVersion = SSnewver
92
   Else
93
      newPkgVersion = Request("v_ext")
123 ghuddy 94
      SSnewver = ""
95
   End If
96
 
5061 dpurdie 97
   OraDatabase.Parameters.Add "ORIG_PV_ID",  NNorig_pv_id,  ORAPARM_INPUT, ORATYPE_NUMBER
4203 dpurdie 98
   OraDatabase.Parameters.Add "PKG_VERSION", newPkgVersion, ORAPARM_INPUT, ORATYPE_VARCHAR2
123 ghuddy 99
 
100
   ' Access Control - Allow release change while release is in restrictive mode
101
   cAlterReleaseWhileRestrictive = "N"
5061 dpurdie 102
   If canActionControlInProject("AlterReleaseContentsInRestrictiveMode") Then cAlterReleaseWhileRestrictive = "Y"
123 ghuddy 103
 
4203 dpurdie 104
   OraDatabase.Parameters.Add "BUILD_TYPE",                parBuildType,                  ORAPARM_INPUT, ORATYPE_CHAR
5061 dpurdie 105
   OraDatabase.Parameters.Add "CHANGE_TYPE",               parChangeType,                 ORAPARM_INPUT, ORATYPE_CHAR
123 ghuddy 106
   OraDatabase.Parameters.Add "ALTER_RELEASE",             cAlterReleaseWhileRestrictive, ORAPARM_INPUT, ORATYPE_CHAR
107
   OraDatabase.Parameters.Add "SET_TO_PV_ID",              NNSetToPv_id,                  ORAPARM_INPUT, ORATYPE_NUMBER
108
   OraDatabase.Parameters.Add "RTAG_ID",                   NNrtag_id,                     ORAPARM_INPUT, ORATYPE_NUMBER
109
   OraDatabase.Parameters.Add "USER_ID",                   objAccessControl.UserId,       ORAPARM_INPUT, ORATYPE_NUMBER
110
   OraDatabase.Parameters.Add "enumISSUES_STATE_IMPORTED", enumISSUES_STATE_IMPORTED,     ORAPARM_INPUT, ORATYPE_NUMBER
111
   OraDatabase.Parameters.Add "RETPV_ID",                  0,                             ORAPARM_OUTPUT,ORATYPE_NUMBER
112
 
113
   objEH.TryORA ( OraSession )
114
 
4203 dpurdie 115
   ' The new package may be based on an existing package
116
   '    Get the information on the existing package
123 ghuddy 117
   Set rsQry = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_CONTENT WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID = "& NNorig_pv_id &"", cint(0))
118
 
4203 dpurdie 119
   '  If the previous version exists and it is deprecated then ...
5169 dpurdie 120
   '    What is so special about a deprecated package. The '...', on the previous line, 
121
   '    is not very useful
122
   '
123
   '  Not sure that we can even get here
124
   '  Whatever '6' means - it is not for deprecated packages
125
   '
123 ghuddy 126
   If (NOT IsNull(rsQry("pkg_id"))) AND rsQry("pkg_state") = 6  Then
127
 
128
      Dim rsPv_id
129
 
130
      If (SSnewver) <> ""  Then
131
 
132
         Set rsPv_id = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS WHERE PKG_VERSION ='"& SSnewver &"' AND PKG_ID = "& rsQry("pkg_id") &"", cint(0))
133
 
134
         retNEWpv_id =  rsPv_id("pv_id")
135
 
136
         rsPv_id.Close()
137
         Set rsPv_id = nothing
138
      Else
139
         retNEWpv_id = NNSetToPv_id
140
      End If
4203 dpurdie 141
 
123 ghuddy 142
      If NOT IsNull(retNewpv_id) Then
143
         OraDatabase.ExecuteSQL _
144
         "BEGIN "&_
3959 dpurdie 145
         " UPDATE RELEASE_CONTENT SET PV_ID ="& retNEWpv_id &" WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID ="& parOLDpv_id &"; "&_
123 ghuddy 146
         "END;"
147
      Else
148
         OraDatabase.ExecuteSQL _
149
         "BEGIN "&_
150
         " PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_
151
         "                    :PKG_VERSION,"&_
152
         "                    :BUILD_TYPE,"&_
153
         "                    :SET_TO_PV_ID,"&_
154
         "                    :RTAG_ID,"&_
155
         "                    :USER_ID,"&_
156
         "                    :enumISSUES_STATE_IMPORTED,"&_
157
         "                    :RETPV_ID ); "&_
158
         " PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_
159
         " PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_
160
         "END;"
161
 
162
         retNEWpv_id = OraDatabase.Parameters("RETPV_ID").Value
161 iaugusti 163
 
1334 dpurdie 164
      End If
123 ghuddy 165
   Else
4203 dpurdie 166
 
5169 dpurdie 167
      ' Create a new version of the package (if It does not exist)
168
      ' Check that we can update the release
169
      ' Replace package in the release
4203 dpurdie 170
      '
123 ghuddy 171
      OraDatabase.ExecuteSQL _
172
      "BEGIN "&_
173
      " PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_
4203 dpurdie 174
                               " :PKG_VERSION,"&_
175
                               " :BUILD_TYPE,"&_
176
                               " :CHANGE_TYPE,"&_
177
                               " :SET_TO_PV_ID,"&_
178
                               " :RTAG_ID,"&_
179
                               " :USER_ID,"&_
180
                               " :enumISSUES_STATE_IMPORTED,"&_
181
                               " :RETPV_ID ); "&_
123 ghuddy 182
      " PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_
183
      " PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_
184
      "END;"
185
 
186
      retNEWpv_id = OraDatabase.Parameters("RETPV_ID").Value
161 iaugusti 187
 
123 ghuddy 188
   End If
189
 
151 ghuddy 190
   objEH.CatchORA ( OraSession )
191
   If objEH.LastOraFailed = FALSE Then
3959 dpurdie 192
      Call UpdateChangeType (retNEWpv_id, parChangeType )
151 ghuddy 193
      Call UpdateReasonForVersion (retNEWpv_id, Request("FRreason"))
194
   End If
195
 
123 ghuddy 196
   rsQry.Close()
197
   Set rsQry = nothing
198
 
199
   OraDatabase.Parameters.Remove "ORIG_PV_ID"
200
   OraDatabase.Parameters.Remove "ALTER_RELEASE"
201
   OraDatabase.Parameters.Remove "PKG_VERSION"
4203 dpurdie 202
   OraDatabase.Parameters.Remove "CHANGE_TYPE"
123 ghuddy 203
   OraDatabase.Parameters.Remove "BUILD_TYPE"
204
   OraDatabase.Parameters.Remove "SET_TO_PV_ID"
205
   OraDatabase.Parameters.Remove "RTAG_ID"
206
   OraDatabase.Parameters.Remove "USER_ID"
207
   OraDatabase.Parameters.Remove "enumISSUES_STATE_IMPORTED"
208
   OraDatabase.Parameters.Remove "RETPV_ID"
119 ghuddy 209
End Sub
210
'---------------------------------------------------------------
211
Function SanityCheck ( newVersion )
212
 
123 ghuddy 213
   SanityCheck = False
119 ghuddy 214
 
123 ghuddy 215
   Dim objRegEx, objRegEx2
216
   Set objRegEx = New RegExp
217
   Set objRegEx2 = New RegExp
119 ghuddy 218
 
123 ghuddy 219
   objRegEx.IgnoreCase = True
220
   objRegEx.Pattern = "^[0-9]+\.[0-9]+\.[0-9]+\.[a-zA-Z0-9]+$"
3959 dpurdie 221
   objRegEx2.Pattern = "\.(cots)|(tool)$"
121 hknight 222
 
123 ghuddy 223
   If Len(newVersion) <= 50 Then
224
      If objRegEx.Test( newVersion ) OR objRegEx2.Test( newVersion ) Then
225
         SanityCheck = True
226
      End If
227
   End If
228
 
3959 dpurdie 229
   If parBuildType = "A" Then
123 ghuddy 230
      SanityCheck = True
231
   End If
232
 
233
   Set objRegEx = Nothing
234
   Set objRegEx2 = Nothing
121 hknight 235
End Function
161 iaugusti 236
 
237
'-----------------------------------------------------------------------------------
3959 dpurdie 238
'   Seed the Database
239
'   Create proto package-version to be used later
240
'
241
Sub Seed_DB ( retPV_ID )
242
   Dim QueryString
243
   On Error Resume Next
244
 
245
    OraDatabase.Parameters.Add "retPV_ID", 0, ORAPARM_OUTPUT, ORATYPE_NUMBER
246
    QueryString = "BEGIN Seed_Package_Names_Versions ("&_
247
                " '" & parFRpkgName & "'"&_
248
                ",'" & parFRnewver & "'" &_
249
                ",:USER_ID" &_
250
                ",:retPV_ID" &_
251
                ",NULL" &_
252
                ",'"& parBuildType & "'" &_
253
                ",'"& parChangeType & "'" &_
254
                "); END;"
255
    OraDatabase.ExecuteSQL QueryString
256
    retPV_ID = OraDatabase.Parameters("retPV_ID").Value
257
 
258
    OraDatabase.Parameters.Remove "retPV_ID"
259
End Sub
260
 
261
'-----------------------------------------------------------------------------------
262
' Add Package to a Release
263
Sub AddPackage ( sPvId )
264
 
265
   Dim rsQry, AssocMASS
266
 
267
   On Error Resume Next
268
   Set rsQry = OraDatabase.DbCreateDynaset( "SELECT * FROM RELEASE_TAGS RT, PACKAGE_VERSIONS PV WHERE RT.RTAG_ID ="&parRtag_id&" AND PV.PV_ID IN ("&sPvId&")", cint(0))
269
   AssocMASS = rsQry("ASSOC_MASS_REF")
270
 
271
   If ( IsNull(AssocMASS) ) OR (AssocMASS <> "" AND (rsQry("v_ext") <> ".cr" AND rsQry("v_ext") <> ".mas" )) Then
272
      OraDatabase.Parameters.Add "PV_ID_LIST", sPvId, ORAPARM_OUTPUT, ORATYPE_VARCHAR2
273
      OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.ADD_PACKAGE ( :PV_ID_LIST, :BASE_VIEW_ID, :RTAG_ID, :USER_ID ); END;"
274
      OraDatabase.Parameters.Remove "PV_ID_LIST"
275
   Else
276
      Err.Raise 8, "Cannot ADD a CORE/MASS package into a MASS_REF Reference Release!"
277
   End If
278
 
279
End Sub
280
 
281
'-----------------------------------------------------------------------------------
282
Sub Add_Packages_To_View_Definition ( NNpkg_list )
283
   If OraDatabase.Parameters("PERSONAL_VIEW_ID").Value = "" Then Exit Sub
284
   OraDatabase.ExecuteSQL _
285
   " INSERT INTO view_def"&_
286
   "   SELECT TO_NUMBER( :PERSONAL_VIEW_ID ) AS view_id, pkg.pkg_id"&_
287
   "     FROM packages pkg"&_
288
   "    WHERE pkg.pkg_id IN ( "& NNpkg_list &" )"&_
289
   "   MINUS "&_
290
   "   SELECT vd.view_id, vd.pkg_id"&_
291
   "     FROM view_def vd"&_
292
   "    WHERE vd.view_id = :PERSONAL_VIEW_ID "
293
End Sub
294
'-----------------------------------------------------------------------------------
295
 
119 ghuddy 296
%>
297
<%
298
'-----------------------  MAIN LINE  ---------------------------
299
Dim rsQry, Query_String, Record_Count
123 ghuddy 300
Dim versionToSanityCheck
161 iaugusti 301
 
3959 dpurdie 302
'Response.Write "<pre>------------<br>"
303
'Dim Item
304
'For Each Item In Request.Form
305
'    Response.Write "User Data: " &Item & ": " & Request.Form(Item) & "<br>"
306
'Next
307
'Response.Write "------------<br></pre>"
5169 dpurdie 308
'Response.End
3959 dpurdie 309
 
119 ghuddy 310
'--- Process submission ---
3959 dpurdie 311
If ((parNewPackage <> "") AND parNewPackage) Then
312
    '
313
    ' Creating a new package and its first version
314
    ' Appears to work for others too
315
    Dim reResult
316
    Dim pkgFound
317
 
318
    ' Ensure that the named package does not exist
319
    ' Can't create it if it already exists
320
    '
321
    pkgFound = ""
322
    Query_String = "SELECT pkg.*" &_
323
         "  FROM packages pkg"&_
324
         " WHERE pkg.pkg_id != 0"&_
325
         "   AND UPPER(pkg.pkg_name) = UPPER('"& Trim(parFRpkgName) & "')"
326
 
327
    Set rsQry = OraDatabase.DbCreateDynaset( Query_String, ORADYN_DEFAULT )
328
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
329
        pkgFound = rsQry("pkg_id")
330
    End If
331
    rsQry.Close
332
    Set rsQry = Nothing
333
 
334
    '
335
    ' Don't need to create the package
336
    ' It will spring into existance if it does not exist
337
    '
338
 
339
    On Error Resume Next
340
    Dim bAdded: bAdded = False
341
 
342
    'Response.Write "<pre>------------<br>"
343
    'Dim Item
344
    'For Each Item In Request.Form
345
    '    Response.Write "User Data: " &Item & ": " & Request.Form(Item) & "<br>"
346
    'Next
347
    'Response.Write "------------<br></pre>"
348
 
349
    If ( parFRpkgName <> "" and parFRnewver  <> "") Then
350
 
351
        ' Determine the state of the Release
352
        ' Can only add packages to a release that is in Open Mode(N) or Restricted Mode(R)
353
        Set rsQry = OraDatabase.DbCreateDynaset( "SELECT OFFICIAL FROM RELEASE_TAGS WHERE RTAG_ID ="&parRtag_id, cint(0))
354
        objEH.Try
355
        If rsQry("official") = "N" OR rsQry("official") = "R" Then
356
 
357
          OraSession.BeginTrans
358
 
359
          '---- SQL parameters ----
360
          OraDatabase.Parameters.Add "RTAG_ID", parRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
361
          OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
362
          OraDatabase.Parameters.Add "BASE_VIEW_ID", parBase_view_id, ORAPARM_INPUT, ORATYPE_NUMBER
363
          OraDatabase.Parameters.Add "PERSONAL_VIEW_ID", parPersonal_view_id, ORAPARM_INPUT, ORATYPE_NUMBER
364
 
365
          '---- Create Version and Add to Release ----
366
          Call Seed_DB ( newPkgPv_id )
367
          If Err.Number = 0 Then
368
            Call AddPackage ( newPkgPv_id )
369
            If Err.Number = 0 Then
370
                If NOT IsNull(parPersonal_view_id) Then
371
                    Call Add_Packages_To_View_Definition ( newPkgPv_id )
372
                End If
373
            End If
374
          End If
375
 
376
          OraDatabase.Parameters.Remove "RTAG_ID"
377
          OraDatabase.Parameters.Remove "USER_ID"
378
          OraDatabase.Parameters.Remove "BASE_VIEW_ID"
379
          OraDatabase.Parameters.Remove "PERSONAL_VIEW_ID"
380
 
381
          '---- Insert additional information
382
          If Err.Number = 0 Then
383
            Call UpdateReasonForVersion (newPkgPv_id, Request("FRreason"))
384
          End If
385
 
386
          '---- Commit or Rollback the transaction
387
          If Err.number <> 0 Then
388
             OraSession.RollBack
389
             Call RaiseMsg ( enum_MSG_ERROR, Err.description )
390
          Else
391
            OraSession.CommitTrans
392
            bAdded = True
393
          End If
394
 
395
          '---- Run Release Changed scripts on archive server
396
          '---- This is a new package so it should not be needed
397
          '
398
          'If bAdded Then
399
          '  Dim objRC: Set objRC = New ReleaseChanged
400
          '  Call objRC.Run_ReleaseChanged_List(parRtag_id,newPkgPv_id,enumRELEASE_CHANGE_MODE_PKG_ADDED)
401
          '  Set objRC = Nothing
402
          'End If
403
 
404
          '--- Direct user the package-version that we have just added
405
          '--- Goto the page with the release notes as more info will need to be added
406
          Response.Redirect("fixed_issues.asp?rtag_id="& parRtag_id & "&pv_id=" & newPkgPv_id )
407
 
408
        Else
409
          Err.Raise 8, "Cannot ADD a package in a CLOSED or CCB Release Mode"
410
        End If
411
        rsQry.Close
412
        Set rsQry = nothing
413
        objEH.Catch
414
    Else
415
       Response.write "Some mandatory parameters are missing!. Need parNewPackage and parFRnewver" & "<br>" 'TODO
4955 dpurdie 416
       Response.write QSTR_FullQuery
3959 dpurdie 417
    End If
418
 
419
' Not Creating a new package
420
ElseIf (parOLDpv_id <> "") AND ( (parFRnewver <> "") OR (parSetToPv_id <> "") ) AND (parRtag_id <> "") Then
123 ghuddy 421
      ' All mandatory parameters FOUND
422
      If ( (parSetToPv_id <> "") OR SanityCheck(parFRnewver) ) Then
119 ghuddy 423
 
131 ghuddy 424
         Record_Count = 0
425
 
3959 dpurdie 426
         If parBuildType = "M" Then
123 ghuddy 427
            Query_string = " SELECT pv.pv_id, pv.is_patch, pv.dlocked"&_
428
                           " FROM package_versions pv"&_
429
                           " WHERE pv.pkg_version = '"& parFRnewver &"'"&_
430
                           " AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id"&_
431
                           "  FROM package_versions origpv"&_
432
                           " WHERE origpv.pv_id = "& parOLDpv_id &")"
433
 
434
            Set rsQry = OraDatabase.DbCreateDynaset(Query_String, cint(0))
435
            Record_Count = rsQry.RecordCount
436
            rsQry.Close()
437
            Set rsQry = Nothing
438
         End If
439
 
3959 dpurdie 440
         If Record_Count > 0 And parBuildType = "M" Then
123 ghuddy 441
            Call RaiseMsg ( enum_MSG_PACKAGE_VERSION_EXISTS&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )
442
         Else
443
            Call New_Version ( parFRnewver, parOLDpv_id, parSetToPv_id, parRtag_id, parSync_rtags, NEWpv_id )
444
 
5169 dpurdie 445
            ' Report change to Release archive server so that it can be synced
446
            Dim objRC: Set objRC = New ReleaseChanged
447
            Call objRC.Run_ReleaseChanged(parRtag_id,parSetToPv_id,enumRELEASE_CHANGE_MODE_PKG_ADDED, true)
448
            Call objRC.Run_ReleaseChanged(parRtag_id,parOLDpv_id,enumRELEASE_CHANGE_MODE_PKG_REMOVED, true)
449
            Set objRC = Nothing
450
 
123 ghuddy 451
            If objEH.Finally Then
452
               Response.Redirect("dependencies.asp?rtag_id="& parRtag_id &"&pv_id="& NEWpv_id )
453
            End If
454
         End If
455
      Else
456
         Call RaiseMsg( enum_MSG_PACKAGE_VERSION_INVALID&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )
457
      End If
458
 
3959 dpurdie 459
Else
460
    Response.write "Some mandatory parameters are missing!" & "<br>" 'TODO
4955 dpurdie 461
    Response.write QSTR_FullQuery
3959 dpurdie 462
End If ' If (parOLDpv_id <> "") AND ( (parFRnewver <> "") OR (parSetToPv_id <> "") ) AND (parRtag_id <> "") Then
119 ghuddy 463
%>
464
 
465
<!-- DESTRUCTOR ------->
123 ghuddy 466
<!--#include file="common/destructor.asp"-->