Está en la página 1de 3

*-----------------------------------------------------------------------------

* <Rating>-61</Rating>
*-----------------------------------------------------------------------------
SUBROUTINE PRBK.E.CHEQU.RR(ALL.DATA)

$INSERT I_EQUATE
$INSERT I_COMMON
$INSERT I_F.USER
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.PRBK.CHEQUERA.RUSSILLO.RODRIGO
$INSERT I_F.PRBK.CHEQUES.RUSSILLO.RODRIGO
****************************
* PROGRAMA PRINCIPAL
****************************
DEBUG
GOSUB INITIALIZE
GOSUB OPEN.FILE
GOSUB PROCESS
RETURN
****************************
INITIALIZE:
****************************
FN.CHEQUERA = 'F.PRBK.CHEQUERA.RUSSILLO.RODRIGO'
F.CHEQUERA = ''
FN.CHEQUES = 'F.PRBK.CHEQUES.RUSSILLO.RODRIGO'
F.CHEQUES = ''
ALL.DATA=''
RETURN

****************************
OPEN.FILE:
****************************
CALL OPF(FN.CHEQUERA,F.CHEQUERA)
CALL OPF(FN.CHEQUES,F.CHEQUES)

RETURN

PROCESS:

LOCATE "CLIENTE.ID" IN D.FIELDS<1> SETTING Y.CLIENTE.ID.POS THEN


Y.CLIENTE.ID = D.RANGE.AND.VALUE<Y.CLIENTE.ID.POS>
END

LOCATE "CHEQUERA.ID" IN D.FIELDS<1> SETTING Y.CHEQUERA.ID.POS THEN


Y.CHEQUERA.ID = D.RANGE.AND.VALUE<Y.CHEQUERA.ID.POS>
END

IF NOT (Y.CLIENTE.ID OR Y.CHEQUERA.ID)THEN


ENQ.ERROR = "DEBE INGRESAR ALGUN FILTRO"
END
IF Y.CLIENTE.ID AND Y.CHEQUERA.ID THEN

Y.CHEQUERA.ID.SEL =Y.CLIENTE.ID:"-":Y.CHEQUERA.ID
GOSUB CHEQUERAS.DE.CLIENTE ;*UNA CHEQUERA ESCRIBE UNA LINEA EN ALL.DATA CON LA
INFORMACION CORRESPONDIENTE
RETURN
END

;*BUSCO LAS CHEQUERAS DEL CLIENTE


IF Y.CLIENTE.ID THEN
;*BUSCO LAS CHEQUERAS DEL CLIENTE
SEL.CMD = "SELECT ":FN.CHEQUERA:" WITH @ID LIKE ":Y.CLIENTE.ID:"-..."
SEL.ERROR = "NO HAY CHEQUERAS PARA ESE CLIENTE O EL CLIENTE NO EXISTE"
END
ELSE
;*SI NO TENGO MI IDENTIFICADOR DE CLIENTE ENTONCES TENGO EL DE LA CHEQUERA POR
LO Q
;*PASO A BUSCAR TODAS LAS CHEQUERAS Q TENGA ESE ID
SEL.CMD = "SELECT ":FN.CHEQUERA:" WITH @ID LIKE ...-":Y.CHEQUERA.ID
SEL.ERROR = "NO HAY CHEQUERAS CON ESE IDENTIFICADOR"

END
CALL EB.READLIST(SEL.CMD,SEL.LIST.CHEQUERAS,'',NO.OF.REC,RET.CODE)
IF SEL.LIST.CHEQUERAS EQ '' THEN
ENQ.ERROR = SEL.ERROR
RETURN
END

LOOP

REMOVE Y.CHEQUERA.ID FROM SEL.LIST.CHEQUERAS SETTING Y.POS


WHILE Y.CHEQUERA.ID:Y.POS
IF Y.CLIENTE.ID EQ '' THEN
Y.CLIENTE.ID.FIELD.CHEQ = FIELDS(Y.CHEQUERA.ID,'-',1)
;*SI NO TENGO MI ID DE CLIENTE ES POR Q SOLO ME INGRESARON EL ID DE
CHEQUERA POR LO TANTO
;*PARA OBTENERLO NECESITO PARSEARLO DEL ID DE CHEQUERA POR CADA
QCHEQUERA Q SACO
;*YA Q EN CADA CHEQUERA EL CLIENTE PUEDE CAMBIAR
END
Y.CHEQUERA.ID.SEL=Y.CHEQUERA.ID

GOSUB CHEQUERAS.DE.CLIENTE

REPEAT

RETURN

CHEQUES.DE.CHEQUERA:

Y.CHEQUE.ID=''
Y.CHEQUE.ESTADO=''
SEL.CMD = 'SELECT ':FN.CHEQUES:' WITH @ID LIKE ':Y.CHEQUERA.ID.SEL:'...'
CALL EB.READLIST(SEL.CMD,SEL.LIST.CHEQUES,'',NO.OF.REC,RET.CODE)
IF SEL.LIST.CHEQUES EQ '' THEN
ENQ.ERROR = "NO HAY CHEQUES PARA ESE CLIENTE CON ESE NUMERO DE CHEQUERA
"
RETURN
END

LOOP

REMOVE Y.ID FROM SEL.LIST.CHEQUES SETTING Y.POS


WHILE Y.ID:Y.POS
CALL F.READ(FN.CHEQUES,Y.ID,R.CHEQUE,F.CHEQUES,Y.CHEQUES.ERR)
Y.CHEQUE.ID<-1> = Y.ID
Y.CHEQUE.ESTADO<-1> = R.CHEQUE<CHEQUES.RR.ESTADO>

REPEAT

CHANGE FM TO VM IN Y.CHEQUE.ID
CHANGE FM TO VM IN Y.CHEQUE.ESTADO
IF Y.CLIENTE.ID THEN
Y.LINEA = Y.CLIENTE.ID
END
ELSE
Y.LINEA = Y.CLIENTE.ID.FIELD.CHEQ
END
Y.LINEA := "*" : Y.CHEQUERA.ID
Y.LINEA := "*" : Y.CHEQUE.ID
Y.LINEA := "*" : Y.CHEQUE.ESTADO

RETURN

CHEQUERAS.DE.CLIENTE:

*;BUSCA LOS CHEQUES DE LA CHEQUERA Y.CHEUQERA.ID.SEL Y GUARDA EN Y.LINEA UNA LINEA


*;FORMADA POR Y.CLEINTE Y.CHEQUERA Y.CHEQUE.ID Y Y.CHEQUE.ESTADO
;* SI NO TENGO ID.CLIENTE QUIERE DECIR Q TENGO SOLAMENTE EL

GOSUB CHEQUES.DE.CHEQUERA
ALL.DATA<-1> = Y.LINEA
RETURN

END

También podría gustarte