Files
MBS/PROYECTO/vedir/vecrearcliente.4gl
T

205 lines
9.3 KiB
Plaintext

SCHEMA smarmotech
DEFINE url_verification,estado VARCHAR(255),
codigo_err INT
FUNCTION crearcliente(xnum_rnc,xtipocliente,xsecvend)
DEFINE xnum_rnc VARCHAR(11),
xcliente RECORD
tipo_cliente LIKE vetb00004.tipo_cliente,
sec_cliente LIKE vetb00004.sec_cliente,
zona_postal LIKE vetb00004.zona_postal,
num_rnc LIKE vetb00004.num_rnc,
nombre LIKE vetb00004.nombre,
cond_pago LIKE vetb00004.cond_pago,
tipo_negocio LIKE vetb00004.tipo_negocio,
generica LIKE vetb00004.generica,
codigodgii LIKE vetb00004.codigodgii,
calle LIKE vetb00005.calle,
casa_num LIKE vetb00005.casa_num,
urbanizacion LIKE vetb00005.urbanizacion,
codigo LIKE vetb00004.codigo,
cod_zona LIKE vetb00004.cod_zona,
cod_provincia LIKE vetb00004.cod_provincia,
id_ciudad LIKE vetb00004.id_ciudad,
telefono_casa LIKE vetb00004.telefono_casa,
telefono LIKE vetb00004.telefono,
fax LIKE vetb00004.fax,
telex LIKE vetb00004.telex,
nombre_patente LIKE vetb00004.nombre_patente,
puesto_laboral LIKE vetb00004.puesto_laboral,
patente LIKE vetb00004.patente,
url LIKE vetb00004.url,
num_emp LIKE vetb00028.sec_vend,
nombre_v VARCHAR(100)
END RECORD,
chitbis VARCHAR(1),
VECES,numero_msg,xtipocliente,xsecvend INT,
selec,respuesta STRING
OPEN WINDOW ws1 WITH FORM "vefmmt101_1"
INPUT BY NAME xcliente.*
BEFORE INPUT
IF xtipocliente IS NULL THEN
CALL msg(16)
NEXT FIELD tipo_cliente
END IF
LET xcliente.tipo_cliente = xtipocliente
SELECT a.codigo_dgii INTO xcliente.codigodgii
FROM vetb00060 a WHERE a.tipo_cliente = xcliente.tipo_cliente
CALL ctipoNegocio("formonly.tipo_negocio")
CALL ccondicion()
CALL paises()
LET xcliente.cond_pago =4
LET xcliente.zona_postal = 1
LET xcliente.cod_zona = 1
LET xcliente.codigo = 'RD'
LET xcliente.cod_provincia = 1
LET xcliente.generica = 'NO'
LET xcliente.num_emp = xsecvend
SELECT a.nom1_emp||' '||a.apell1_Emp INTO xcliente.nombre_v
FROM adtb00003 a WHERE a.num_emp = xcliente.num_emp
DISPLAY BY NAME xcliente.cond_pago,xcliente.zona_postal,xcliente.cod_zona,xcliente.cod_provincia,
xcliente.generica,xcliente.codigo,xcliente.num_emp,xcliente.nombre_v
AFTER FIELD tipo_cliente
SELECT a.paga_itbis,a.codigo_dgii INTO chitbis,xcliente.codigo FROM vetb00060 a
WHERE a.tipo_cliente = Xcliente.tipo_cliente
DISPLAY BY NAME xcliente.codigodgii
NEXT FIELD zona_postal
AFTER FIELD num_rnc
IF xcliente.tipo_cliente < 17 AND xcliente.generica='NO' THEN
SELECT a.paga_itbis INTO chitbis FROM vetb00060 a
WHERE a.tipo_cliente = Xcliente.tipo_cliente
IF chitbis = 'S' THEN
IF xcliente.num_rnc IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_rnc
END IF
LET xcliente.num_rnc =xcliente.num_rnc CLIPPED
IF xcliente.zona_postal = '1' THEN
IF LENGTH(xcliente.num_rnc) <> 9 THEN
LET numero_msg = 77
CALL msg(numero_msg)
NEXT FIELD num_rnc
END IF
ELSE
IF xcliente.zona_postal = '2' THEN
IF LENGTH(xcliente.num_rnc) <> 11 THEN
LET numero_msg = 77
CALL msg(numero_msg)
NEXT FIELD num_rnc
END IF
END IF
END IF
LET VECES = 0
SELECT UNIQUE a.tipo_cliente FROM vetb00004 a
WHERE a.num_rnc = xcliente.num_rnc AND
a.tipo_cliente = xcliente.tipo_cliente AND
a.status_t is NULL
IF STATUS <> NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT field num_rnc
END IF
LET VECES = 0
SELECT COUNT(*) INTO veces FROM vetb00004 a
WHERE a.num_rnc = xcliente.num_rnc AND
a.tipo_cliente = xcliente.tipo_cliente AND
a.status_t is NULL
IF veces >= 1 THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT field num_rnc
END IF
#BUSCA EL RNC EN LA TABLA DE LA DGII
IF xcliente.zona_postal ='1' THEN
LET selec =
"SELECT a.razon_social,RTRIM(a.calle),' NO.'+RTRIM(a.no_local),a.sector ",
"FROM DGII.dbo.empresas a ",
"WHERE a.rnc = ? "
PREPARE query2 FROM selec
EXECUTE query2 USING xcliente. num_rnc INTO xcliente.nombre,xcliente.calle,
xcliente.casa_num,xcliente.urbanizacion
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD num_rnc
END IF
DISPLAY BY NAME xcliente.nombre
END IF
END IF
END IF
AFTER INPUT
IF int_flag THEN
CALL msg(2)
LET xcliente.sec_cliente = NULL
LET xcliente.nombre = NULL
LET xcliente.calle = NULL
LET xcliente.urbanizacion = NULL
LET xcliente.telefono = NULL
LET xcliente.cod_zona = NULL
EXIT INPUT
END IF
# VERIFICA EMAIL
CALL inicializar()
LET url_verification =url_verification CLIPPED,xcliente.patente CLIPPED
CALL apiclient(url_verification) RETURNING estado,codigo_err
IF codigo_Err =400 THEN
CALL msg(1016)
NEXT FIELD patente
END IF
LET respuesta = fgl_winquestion("GUARDAR","DESEA GUARDAR ESTE CLIENTE?","YES","YES|NO","QUESTION",0)
IF respuesta = "YES" THEN
BEGIN WORK
SELECT ISNULL(MAX(a.sec_cliente),0) INTO xcliente.sec_cliente FROM vetb00004 a
WHERE a.tipo_cliente = xcliente.tipo_cliente
LET xcliente.sec_cliente = xcliente.sec_cliente +1
INSERT INTO vetb00004
(tipo_cliente,sec_cliente,nombre,cod_zona,cod_provincia,
telefono,fax,telex,limite_credito,zona_postal,num_rnc,
us_crea,fech_crea,telefono_casa,tipo_negocio,cond_pago,id_ciudad,url,nombre_patente,
patente,generica,codigodgii,codigo)
VALUES (xcliente.tipo_cliente,xcliente.sec_cliente,xcliente.nombre,xcliente.cod_zona,
xcliente.cod_provincia,xcliente.telefono,xcliente.fax,xcliente.telex,
'0',xcliente.zona_postal,xcliente.num_rnc,USER_NAME(),GETDATE(),xcliente.telefono_casa,
xcliente.tipo_negocio,xcliente.cond_pago,xcliente.id_ciudad,xcliente.url,
xcliente.nombre_patente,xcliente.patente,xcliente.generica,
xcliente.codigodgii,xcliente.codigo)
COMMIT WORK
END IF
END INPUT
CLOSE WINDOW ws1
RETURN xcliente.tipo_cliente, xcliente.sec_cliente, xcliente.nombre,xcliente.calle,xcliente.urbanizacion,xcliente.telefono,
xcliente.cod_zona
END FUNCTION
FUNCTION inicializar()
LET url_verification ='https://api.apilayer.com/email_verification/'
END FUNCTION