TrinDeleteContracts

From Pickwiki
Revision as of 23:48, 26 February 2015 by Conversion script (talk) (link fix)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

HomePage>>SourceCode>>BasicSource>>InfoLease

This is an extremely dangerous program! Make sure you are in the right account, on the right machine, and you know what it is doing!

It will take several seconds per contract, so be prepared for an evening or weekend run.

***************************************************************************
* Program: TRIN.DELETE.CONTRACTS
* Author : mcgowan
* Date   : 05/14/2002
* Edited : 15:58:40 May 28 2002 By MCGOWAN 
* Comment:
***************************************************************************
* Date       By   Desc
* ---------- ---- ---------------------------------------------------------

OPEN 'LS.MASTER' TO LS.MASTER ELSE ABORT
OPEN 'LS.MASTER,LS.BILLING' TO LS.BILLING ELSE ABORT
OPEN 'CS.MASTER,CS.APPLICATIONS' TO CS.APPLICATIONS ELSE ABORT
OPEN 'CS.MASTER,CS.CONTRACTS' TO CS.CONTRACTS ELSE ABORT
OPEN 'TRIN.DELETE.CONTRACT.LOG' TO DELETE.LOG ELSE ABORT

PRINT 'This program will *DELETE* all contracts in the save list DEL.CONTRACTS'
PRINT 'Are you sure (Y[[/N]])':
INPUT YORN
IF YORN # 'Y' THEN STOP

* Make sure there are no locks present
PRINT 'Have all locks been cleared (YES[[/N]])':
INPUT YORN
IF YORN # 'YES' THEN STOP

COMO=\DELETE.CONTRACTS.\:TIME()
EXECUTE \COMO ON \:COMO

E=\GET.LIST DEL.CONTRACTS\
PRINT E
EXECUTE E RTNLIST L1
CTR=0 ; TOT.TM=0
LOOP
   READNEXT CONTRACT FROM L1 ELSE EXIT
   T1=TIME()
   PRINT TIMEDATE():" ":CONTRACT:" deleting ":CTR
   GOSUB DELETE.CONTRACT
   PRINT TIMEDATE():" ":CONTRACT:" done"
   T2=TIME()
   CTR+=1
   TM=T2-T1
   TOT.TM+=TM
   PRINT TM:' seconds to delete, Average: ':TOT.TM[[/CTR]]
REPEAT
PRINT 'Done'
EXECUTE \COMO OFF \:COMO
STOP

DELETE.CONTRACT:
   LESSOR=CONTRACT[1,3]
   SCHEDULE=CONTRACT[5,11]
   
   * 1 is for maintenance, 0 for inquiry
   DATA 1
   * Not sure what the next three are for
   DATA ""
   DATA ""
   DATA ""
   DATA LESSOR
   DATA SCHEDULE
   * "D" for delete
   DATA "D"
   * "Y", why yes I do want to delete
   DATA "Y"
   
   * If there are active assets there will be another question
   READV NUM.OF.ASSETS FROM LS.BILLING, CONTRACT, 9 ELSE STOP 'CANNOT READ LS.BILLING:':CONTRACT
   IF NUM.OF.ASSETS > 0 THEN
      PRINT "There are active assets"
      DATA "Y"
   END
      
   * If this is the last contract for this cust, there will be a question
   READV CCAN FROM LS.MASTER, CONTRACT, 13 ELSE STOP 'CANNOT READ LS.MASTER:':CONTRACT
   READ APP.REC FROM CS.APPLICATIONS, CCAN ELSE APP.REC=''
   READ POINTER.REC FROM CS.CONTRACTS, CCAN ELSE STOP 'CANNOT READ CS.POINTERS:':CCAN
   * The count includes active and disposed, and we need to check for apps
   CONTRACT.COUNT=DCOUNT(POINTER.REC<1>,@VM)+DCOUNT(POINTER.REC<2>,@VM)
   IF CONTRACT.COUNT = 1 THEN
      IF APP.REC<1> = "" THEN
         PRINT "This is the last contract, there are no apps"
         DATA "Y"
      END
   END
         
   * The final cut
   DATA ""
   
   EXECUTE \CMAINT.00\\

RETURN