90 lines
5.9 KiB
Plaintext
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 |