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 OR xnum_req = 0 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