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