205 lines
9.3 KiB
Plaintext
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
|