Files

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