Files
MBS/PROYECTO/otrodir/autorizarequisicion.4gl
T

69 lines
3.3 KiB
Plaintext

{
FUNCION: autorizarequisicion.4gl
DESARROLLADO : ING. JUAN SOTO
FECHA : FEB, 24 2023
OBJETIVO : TERMINAR EL PROCESO QUE VIENE DE LA FUNCION evaluaclientes.4gl,
ACTUALIZA LA REQUISICION DE DESPACHO
}
FUNCTION autorizarequisicion(balance,monto_actual_req, monto_req_autorizadas, limite_cr,tienefactura,factura)
DEFINE balance,monto_actual_req, monto_req_autorizadas, limite_cr,valor_total DEC(12,2),
string_estado STRING,
tienefactura VARCHAR(2),
autoriza BOOLEAN,
factura INT
LET valor_total = monto_req_autorizadas+monto_actual_req
IF tienefactura = "SI" THEN
LET string_estado = "ESTA REQUISICION NO FUE AUTORIZADA, TIENE FACTURAS VENCIDAS EL CLIENTE, UNA DE LAS FACTURAS ES ",factura USING "<<<<<<<<"
RETURN FALSE,string_estado
END IF
IF tienefactura = 'NO' THEN
#CUANDO EL CLIENTE TIENE SALDO A FAVOR
IF balance < 0 THEN
IF ((balance * -1)) >=valor_total THEN
LET autoriza = TRUE
LET string_estado = "ESTA REQUISICION ESTA AUTORIZADA, PORQUE EL BALANCE DE ",balance USING "##,###,###.##",
" ES MAYOR O IGUAL A LA SUMATORIA DEL MONTO DE LAS REQUISICIONES PENDIENTES POR DESPACHAR, LA CUAL ES ",valor_total USING "##,###,###.##"
RETURN autoriza,string_estado
ELSE
LET string_estado = "ESTA REQUISICION NO FUE AUTORIZADA, PORQUE EL BALANCE DE ",balance USING "##,###,###.##",
" NO SATISFACE EL VALOR DE LA COTIZACION MAS EL MONTO DE ESTA REQUISICION LA CUAL ES ",valor_total USING "##,###,###.##"
LET autoriza = FALSE
RETURN autoriza,string_estado
END IF
END IF
#CONTROL LIMITE DE CREDITO
IF limite_cr > 0 THEN
IF (balance+valor_total) > limite_cr THEN
LET autoriza = FALSE
LET string_estado = "ESTA REQUISICION NO FUE AUTORIZADA, PORQUE LA SUMATORIA DEL BALANCE, VALOR PENDIENTE POR DESPACHAR, MONTO DE ESTA REQUISICION, LO CUAL ES ",balance *-1 USING "##,###,###.##",
" NO SATISFACE EL VALOR DEL LIMITE DE CREDITO DEL CLIENTE, LO CUAL ES ",
limite_cr USING "##,###,###.##"
RETURN autoriza,string_estado
ELSE
LET string_estado = "ESTA REQUISICION ESTA AUTORIZADA, PORQUE LA SUMATORIA DEL BALANCE, VALOR PENDIENTE POR DESPACHAR, MONTO DE ESTA REQUISICION, LO CUAL ES ",
balance+valor_total USING "##,###,###.##",
" SATISFACE EL VALOR DEL LIMITE DE CREDITO DEL CLIENTE, LO CUAL ES ",limite_cr USING "##,###,###.##"
LET autoriza = TRUE
RETURN autoriza,string_estado
END IF
END IF
END IF
IF balance=0 AND limite_Cr = 0 THEN
LET string_estado = "ESTA REQUISICION NO FUE AUTORIZADA, YA QUE EL CLIENTE NO TIENE AVANCE A COTIZACION APLICADO, ASI COMO TAMPOCO LIMITE DE CREDITO "
LET autoriza = FALSE
END IF
RETURN autoriza,string_estado
END FUNCTION