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

90 lines
5.9 KiB
Plaintext

FUNCTION autorizacioncontado(pcotizacion,valor_cotizado,pagado,usuarios,xmonto_avance,xnum_doc,xtipo_doc,xnombre_cliente)
DEFINE pcotizacion,xnum_oc,pcondpago,ptipocliente,psecliente,xnum_req,psecvend,xnum_doc INT,
xfecha_oc,xtipo_Doc CHAR(10),
usuarios,xestado VARCHAR(50),
valor_cotizado,xmonto_avance,pagado,valor_requisicion DEC(12,2),
descripcion_estado,nombre_ven,xnombre_cliente,estado VARCHAR(100)
SELECT a.num_oc,a.tipo_cliente,a.sec_cliente,a.cond_pago,a.sec_vend, CONVERT(CHAR(10),a.fecha_oc,103)
INTO xnum_oc,ptipocliente,psecliente,pcondpago,psecvend,xfecha_oc
FROM prtb00012 a WHERE a.cotizacion_no = pcotizacion AND a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET descripcion_estado = 'REQUISICION ',xnum_req USING "<<<<<<<<",
' NO AUTORIZADA POR SISTEMA, LA COTIZACION NO TIENE ORDEN, CONDICION AL CONTADO'
LET xestado = 'NO AUTORIZADA'
LET estado = descripcion_estado
INSERT INTO cctb00031 (fecha,us_crea,sec_vend,tipo_cliente,
sec_cliente,nombreCliente,num_req,limite_cr,monto_cotizacion,
balance,estado,tipo_doc_ref,monto_req,num_recibo,tipo_doc,
monto_avance,valor_cotizacion,descrip_estado,cotizacion_no,nombrevendedor,num_oc)
VALUES (getdate(),'MBS',psecvend,ptipocliente,psecliente,
xnombre_cliente,xnum_req,'0',valor_cotizado,'0',xestado,
xtipo_Doc,valor_cotizado,xnum_doc,xtipo_Doc,
xmonto_avance,valor_cotizado,descripcion_estado,xnum_oc,nombre_ven,xnum_oc )
RETURN
END IF
SELECT RTRIM(a.nom1_emp)+ISNULL(a.apell1_Emp,'') INTO nombre_ven
FROM adtb00003 a WHERE a.num_emp = psecvend
SELECT DISTINCT a.cotizacion_no FROM cctb00026 a WHERE a.cotizacion_no = pcotizacion
AND a.status_t IS NULL
## CUANDO NO TIENE LA REQUISICION DE DESPACHOS
IF STATUS = NOTFOUND THEN
CALL requisiciondespacho(xnum_oc,ptipocliente,psecliente,Pcondpago,valor_cotizado,
xfecha_oc,psecvend,usuarios)
RETURNING xnum_req,valor_requisicion
END IF
IF xnum_req IS NULL THEN
SELECT MAX(a.num_req) INTO xnum_req FROM cctb00026 a WHERE a.cotizacion_no = pcotizacion
AND a.status_t IS NULL
END IF
LET estado ="LA REQUISICION ",xnum_req USING "<<<<<<<<", " NO AUTORIZADA"
UPDATE cctb00001 SET num_req = xnum_req
WHERE tipo_doc =xtipo_Doc AND num_doc = xnum_doc AND
tipo_cliente =ptipocliente AND
sec_cliente = psecliente
IF xmonto_avance +pagado >= valor_cotizado THEN
LET xestado = 'AUTORIZADA'
UPDATE cctb00025 SET estado =xestado,us_mod = 'MBS',fech_mod = getdate()
WHERE num_req = xnum_req
LET descripcion_estado = 'REQUISICION ',xnum_req USING "<<<<<<<<",
' AUTORIZADA POR SISTEMA, LA COTIZACION ES AL CONTADO'
LET estado = descripcion_estado
INSERT INTO cctb00031 (fecha,us_crea,sec_vend,tipo_cliente,
sec_cliente,nombreCliente,num_req,limite_cr,monto_cotizacion,
balance,estado,tipo_doc_ref,monto_req,num_recibo,tipo_doc,
monto_avance,valor_cotizacion,descrip_estado,cotizacion_no,nombrevendedor,num_oc)
VALUES (getdate(),'MBS',psecvend,ptipocliente,psecliente,
xnombre_cliente,xnum_req,'0',valor_cotizado,'0',xestado,
xtipo_Doc,valor_cotizado,xnum_doc,xtipo_Doc,
xmonto_avance,valor_cotizado,descripcion_estado,xnum_oc,nombre_ven,xnum_oc )
ELSE
LET descripcion_estado = 'REQUISICION ',xnum_req USING "<<<<<<<<",
' NO AUTORIZADA POR SISTEMA, LA COTIZACION ES AL CONTADO'
LET xestado = 'NO AUTORIZADA'
LET estado = descripcion_estado
INSERT INTO cctb00031 (fecha,us_crea,sec_vend,tipo_cliente,
sec_cliente,nombreCliente,num_req,limite_cr,monto_cotizacion,
balance,estado,tipo_doc_ref,monto_req,num_recibo,tipo_doc,
monto_avance,valor_cotizacion,descrip_estado,cotizacion_no,nombrevendedor,num_oc)
VALUES (getdate(),'MBS',psecvend,ptipocliente,psecliente,
xnombre_cliente,xnum_req,'0',valor_cotizado,'0',xestado,
xtipo_Doc,valor_cotizado,xnum_doc,xtipo_Doc,
xmonto_avance,valor_cotizado,descripcion_estado,xnum_oc,nombre_ven,xnum_oc )
END IF
RETURN estado
END FUNCTION