69 lines
3.3 KiB
Plaintext
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 |