Files
2026-09-22 20:38:51 -04:00

81 lines
3.8 KiB
Plaintext

FUNCTION buscacliente(pnombre,ptipo,secliente)
DEFINE idx,ptipo,secliente,cuenta,secvend INT,
selec,pnombre,rnombre,rdireccion,rciudad,vende STRING,
arrclientes DYNAMIC ARRAY OF RECORD
tipo_cliente,sec_cliente INT,
nombre,direccion,ciudad,vendedor STRING,
sec_vend INT
END RECORD,
bdata STRING
LET bdata = ptipo USING "<<" ,secliente USING "<<<<<<<<<<" ,pnombre CLIPPED
LET bdata = bdata.trimLeft()
LET selec = "SELECT COUNT(*) FROM vetb00004 a WHERE RTRIM(CAST(a.tipo_cliente AS CHAR(2))+
RTRIM(CAST(a.sec_cliente AS CHAR(10)))+RTRIM(a.nombre)) LIKE '%",bdata CLIPPED,"%'"
PREPARE comando1 FROM selec
EXECUTE comando1 INTO cuenta
IF cuenta IS NULL OR cuenta = 0 THEN
LET rnombre ='NO EXISTEN CLIENTES CON ESA CONDICION'
LET ptipo=0
LET secliente=0
LET secvend =0
LET vende = NULL
RETURN rnombre,ptipo,secliente,rdireccion,rciudad,secvend,vende,false
END IF
IF cuenta > 1 THEN
LET selec = "SELECT a.tipo_cliente,a.sec_cliente,a.nombre,b.calle,b.urbanizacion,CONCAT(ISNULL(c.nom1_emp,' '),' ',ISNULL(c.apell1_Emp,' ')),a.sec_vend
FROM vetb00004 a LEFT OUTER JOIN vetb00005 b ON
a.tipo_cliente= b.tipo_cliente and a.sec_cliente = b.sec_cliente
INNER JOIN adtb00003 c ON c.num_emp = a.sec_vend
WHERE CONCAT(RTRIM(CAST(a.tipo_cliente AS CHAR(2))),
RTRIM(CAST(a.sec_cliente AS CHAR(10))),RTRIM(a.nombre)) LIKE '%",ptipo USING "<<",
secliente USING "<<<<<<<<<<",pnombre CLIPPED,"%'"
PREPARE comando2 FROM selec
DECLARE busca CURSOR FOR comando2
LET idx = 1
FOREACH busca INTO arrclientes[idx].*
LET idx = idx + 1
END FOREACH
IF idx = 1 THEN
LET rnombre = 'NO EXISTEN CLIENTES CON ESA CONDICION'
LET ptipo=0
LET secliente=0
LET secvend =0
LET vende = null
RETURN rnombre,ptipo,secliente,rdireccion,rciudad,secvend,vende,false
ELSE
OPEN WINDOW w1 WITH FORM "vefmwd002"
DISPLAY ARRAY arrclientes TO sclientes.*
AFTER DISPLAY
LET rnombre = arrclientes[arr_curr()].nombre
LET ptipo = arrclientes[arr_curr()].tipo_cliente
LET secliente = arrclientes[arr_curr()].sec_cliente
LET secvend = arrclientes[arr_curr()].sec_vend
LET vende = arrclientes[arr_curr()].vendedor
EXIT DISPLAY
END DISPLAY
END IF
ELSE
LET selec = "SELECT a.tipo_cliente,a.sec_cliente,a.nombre,b.calle,b.urbanizacion,ISNULL(c.nom1_emp,' ')+' '+ISNULL(c.apell1_Emp,' '),a.sec_vend
FROM vetb00004 a LEFT OUTER JOIN vetb00005 b ON
a.tipo_cliente= b.tipo_cliente and a.sec_cliente = b.sec_cliente
INNER JOIN adtb00003 c ON a.sec_vend = a.sec_vend
WHERE CAST(a.tipo_cliente AS CHAR(2))+
CAST(a.sec_cliente AS CHAR(10))+RTRIM(a.nombre) LIKE '%",bdata CLIPPED,"%'"
DISPLAY "en otro ",selec
PREPARE comando3 FROM selec
EXECUTE comando3 INTO ptipo,secliente,rnombre,rdireccion,rciudad,vende,secvend
END IF
IF cuenta > 1 THEN
CLOSE WINDOW w1
END IF
RETURN rnombre,ptipo,secliente,rdireccion,rciudad,secvend,vende, true
END FUNCTION