108 lines
4.2 KiB
Plaintext
108 lines
4.2 KiB
Plaintext
IMPORT util
|
|
FUNCTION crearcliente(scliente)
|
|
DEFINE scliente STRING
|
|
DEFINE cliente RECORD
|
|
nombre,cond_pago,rnc,tipo_doc STRING,
|
|
limite_cr FLOAT,
|
|
tipo_negocio INT,
|
|
direccion,urbanizacion,sector,pais,zona,provincia, telefono_casa,telefono_celular,email,url,contacto STRING,
|
|
tipo_cliente INT
|
|
END RECORD,
|
|
xtipo_cliente,xsec_cliente INT,
|
|
selec STRING
|
|
CALL util.JSON.parse(scliente,cliente)
|
|
|
|
IF cliente.pais IS NULL THEN
|
|
LET cliente.pais = 'RD'
|
|
END IF
|
|
IF cliente.pais = 'DO' THEN
|
|
LET cliente.pais = 'RD'
|
|
END IF
|
|
|
|
LET xtipo_cliente = cliente.tipo_cliente
|
|
LET selec = "SELECT a.cod_zona FROM vetb00008 a WHERE a.cod_zona = ? and a.status_t IS NULL"
|
|
|
|
PREPARE buscazona FROM selec
|
|
|
|
LET selec = "select a.rnc from dgii.dbo.empresas a where a.rnc = ?"
|
|
|
|
PREPARE buscarnc FROM selec
|
|
|
|
LET selec = "SELECT DISTINCT a.num_rnc,a.sec_cliente FROM marmotech.dbo.vetb00004 a
|
|
WHERE a.tipo_cliente = ? AND
|
|
a.num_rnc = ? AND
|
|
a.status_t IS NULL"
|
|
PREPARE buscacliente FROM selec
|
|
|
|
LET selec =
|
|
"INSERT INTO marmotech.dbo.vetb00004
|
|
(tipo_cliente,sec_cliente,nombre,cod_zona,cod_provincia,
|
|
telefono,telex,limite_credito,zona_postal,num_rnc,
|
|
us_crea,fech_crea,telefono_casa,tipo_negocio,cond_pago,id_ciudad,url,patente,nombre_patente,
|
|
codigo,generica)
|
|
VALUES (?,?,?,?,?,?,?,?,?,?,'ecommerce',GETDATE(),?,1,4,1000,?,?,?,?,'NO')
|
|
"
|
|
PREPARE inscliente FROM selec
|
|
|
|
LET selec =
|
|
"INSERT INTO marmotech.dbo.vetb00005
|
|
(tipo_cliente,sec_cliente,calle,barrio,urbanizacion,us_crea,fech_crea)
|
|
VALUES (?,?,?,?,?,'ecommerce',GETDATE())"
|
|
|
|
PREPARE insdireccion FROM selec
|
|
|
|
LET selec = "SELECT ISNULL(a.sec_cliente,0) FROM marmotech.dbo.vetb00111 a WHERE a.tipo_cliente = ?"
|
|
|
|
PREPARE buscamax FROM selec
|
|
LET selec = 'UPDATE marmotech.dbo.vetb00111 set sec_cliente = ? WHERE tipo_cliente = ?'
|
|
|
|
PREPARE updatemax FROM selec
|
|
|
|
LET selec =
|
|
"INSERT INTO marmotech.dbo.vetb00028
|
|
(tipo_cliente,sec_cliente,sec_vend,us_crea,fech_crea)
|
|
VALUES (?,?,?,'ecommerce',GETDATE())"
|
|
|
|
PREPARE insvend FROM selec
|
|
|
|
EXECUTE buscarnc USING cliente.rnc
|
|
|
|
IF STATUS != NOTFOUND THEN # VERIFICA SI EL RNC ESTA EN LA BASE DE DATOS DE LA DGII
|
|
# CHEQUEA QUE EL CLIENTE ESTE CREADO CON ESTE RNC
|
|
EXECUTE buscacliente INTO cliente.rnc,xsec_cliente USING xtipo_cliente,cliente.rnc
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
BEGIN WORK
|
|
EXECUTE buscamax INTO xsec_cliente USING xtipo_cliente
|
|
LET xsec_cliente = xsec_cliente +1
|
|
EXECUTE updatemax USING xsec_cliente,xtipo_cliente
|
|
|
|
EXECUTE inscliente USING xtipo_cliente,xsec_cliente,cliente.nombre,
|
|
cliente.zona,cliente.provincia,cliente.telefono_casa,cliente.telefono_celular,
|
|
cliente.limite_cr,cliente.tipo_doc,cliente.rnc,cliente.telefono_casa,cliente.url,
|
|
cliente.email,cliente.contacto,cliente.pais
|
|
|
|
EXECUTE insdireccion USING xtipo_cliente,xsec_cliente,cliente.direccion,cliente.urbanizacion,cliente.sector
|
|
EXECUTE insvend USING xtipo_cliente,xsec_cliente,'9'
|
|
COMMIT WORK
|
|
END IF
|
|
ELSE
|
|
|
|
EXECUTE buscamax INTO xsec_cliente USING xtipo_cliente
|
|
LET xsec_cliente = xsec_cliente +1
|
|
BEGIN WORK
|
|
EXECUTE updatemax USING xsec_cliente,xtipo_cliente
|
|
|
|
DISPLAY "SECUENCIA CLIENTE ",xsec_cliente
|
|
EXECUTE inscliente USING xtipo_cliente,xsec_cliente,cliente.nombre,
|
|
cliente.zona,cliente.provincia,cliente.telefono_casa,cliente.telefono_celular,
|
|
cliente.limite_cr,cliente.tipo_doc,cliente.rnc,cliente.telefono_casa,cliente.url,
|
|
cliente.email,cliente.contacto,cliente.pais
|
|
|
|
EXECUTE insdireccion USING xtipo_cliente,xsec_cliente,cliente.direccion,cliente.urbanizacion,cliente.sector
|
|
EXECUTE insvend USING xtipo_cliente,xsec_cliente,'9'
|
|
COMMIT WORK
|
|
END IF
|
|
|
|
RETURN xtipo_cliente,xsec_cliente
|
|
END FUNCTION |