135 lines
4.3 KiB
Plaintext
135 lines
4.3 KiB
Plaintext
IMPORT util
|
|
|
|
FUNCTION contactos(d)
|
|
DEFINE p RECORD
|
|
data RECORD
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente INT,
|
|
usuario VARCHAR(50),
|
|
clave VARCHAR(50),
|
|
id_crm STRING
|
|
END RECORD,
|
|
data_arr DYNAMIC ARRAY OF RECORD
|
|
contacto VARCHAR(60),
|
|
tipo_negocio_contacto INT,
|
|
puesto VARCHAR(60),
|
|
puesto1 VARCHAR(60),
|
|
email VARCHAR(60),
|
|
celular VARCHAR(20),
|
|
telefono_of VARCHAR(20),
|
|
telefono_casa VARCHAR(20)
|
|
END RECORD
|
|
END RECORD
|
|
DEFINE rep_out RECORD
|
|
sec_cliente INT,
|
|
cod_msg SMALLINT,
|
|
mensaje_out STRING
|
|
END RECORD,
|
|
s_out,selec,d STRING ,
|
|
idx INT
|
|
|
|
# WHENEVER ERROR CONTINUE
|
|
TRY
|
|
CALL util.JSON.parse(d, p)
|
|
CATCH
|
|
LET rep_out.cod_msg = STATUS
|
|
LET rep_out.mensaje_out = "FGL ERROR: ", err_get(status)
|
|
LET s_out=util.JSON.stringify(rep_out)
|
|
|
|
RETURN s_out
|
|
END TRY
|
|
DISPLAY "USUARIO ",p.data.usuario,' clave ',p.data.clave
|
|
|
|
CONNECT TO "smarmotech" USER p.data.usuario USING p.data.clave
|
|
IF STATUS < 0 THEN
|
|
LET rep_out.mensaje_out = 'ERROR EN USUARIO CONECTANDOSE A LA BASE DE DATOS',err_get(status)
|
|
LET rep_out.cod_msg = STATUS
|
|
LET s_out=util.JSON.stringify(rep_out)
|
|
LET rep_out.sec_cliente =0
|
|
DISCONNECT CURRENT
|
|
RETURN s_out
|
|
END IF
|
|
# VALIDA QUE EL CLIENTE EXISTA EN LA TABLA DE CLIENTES
|
|
SELECT a.sec_cliente FROM vetb00004 a
|
|
WHERE a.tipo_cliente = p.data.tipo_cliente AND a.sec_cliente = p.data.sec_cliente AND a.status_t IS NULL
|
|
IF STATUS =NOTFOUND THEN
|
|
LET rep_out.mensaje_out = 'CLIENTE NO EXISTE EN MAESTRA CLIENTES'
|
|
LET rep_out.cod_msg = STATUS
|
|
LET s_out=util.JSON.stringify(rep_out)
|
|
LET rep_out.sec_cliente =0
|
|
DISCONNECT CURRENT
|
|
RETURN s_out
|
|
END IF
|
|
|
|
# CONTACTOS
|
|
BEGIN WORK
|
|
DELETE FROM vetb00087 WHERE tipo_cliente = p.data.tipo_cliente AND sec_cliente = p.data.sec_cliente
|
|
|
|
FOR idx = 1 TO p.data_arr.getLength()
|
|
|
|
INSERT INTO vetb00087
|
|
(tipo_cliente
|
|
,sec_cliente
|
|
,tipo_negocio_contacto
|
|
,contacto
|
|
,puesto
|
|
,puesto1
|
|
,email
|
|
,celular
|
|
,telefono_of
|
|
,telefono_casa
|
|
,id
|
|
,us_crea
|
|
,fech_crea
|
|
,id_crm)
|
|
VALUES
|
|
(p.data.tipo_cliente
|
|
,p.data.sec_cliente
|
|
,p.data_arr[idx].tipo_negocio_contacto
|
|
,p.data_arr[idx].contacto
|
|
,p.data_arr[idx].puesto
|
|
,p.data_arr[idx].puesto1
|
|
,p.data_arr[idx].email
|
|
,p.data_arr[idx].celular
|
|
,p.data_arr[idx].telefono_of
|
|
,p.data_arr[idx].telefono_casa
|
|
,idx
|
|
,p.data.usuario
|
|
,getdate()
|
|
,p.data.id_crm)
|
|
|
|
IF STATUS < 0 THEN
|
|
ROLLBACK WORK
|
|
LET rep_out.mensaje_out = 'ERROR INSERTANDO DATOS EN TABLA vetb00087 ',err_get(status)
|
|
LET rep_out.cod_msg = STATUS
|
|
LET s_out=util.JSON.stringify(rep_out)
|
|
LET rep_out.sec_cliente =p.data.sec_cliente
|
|
DISCONNECT CURRENT
|
|
RETURN s_out
|
|
END IF
|
|
|
|
#VALIDA TIPO DE NEGOCIO
|
|
IF p.data_arr[idx].tipo_negocio_contacto IS NOT NULL THEN
|
|
SELECT a.tipo_negocio FROM cctb00013 a
|
|
WHERE a.tipo_negocio = p.data_arr[idx].tipo_negocio_contacto
|
|
IF STATUS = NOTFOUND THEN
|
|
ROLLBACK WORK
|
|
LET rep_out.mensaje_out = 'TIPO NEGOCIO NO EXISTE, NO PUEDES INSERTAR CONTACTO'
|
|
LET rep_out.cod_msg = STATUS
|
|
LET s_out=util.JSON.stringify(rep_out)
|
|
LET rep_out.sec_cliente =p.data.sec_cliente
|
|
DISCONNECT CURRENT
|
|
RETURN s_out
|
|
END IF
|
|
END IF
|
|
|
|
END FOR
|
|
COMMIT WORK
|
|
LET rep_out.mensaje_out = 'ADICION EXITOSA'
|
|
LET rep_out.cod_msg = 0
|
|
LET s_out=util.JSON.stringify(rep_out)
|
|
LET rep_out.sec_cliente =p.data.sec_cliente
|
|
DISCONNECT CURRENT
|
|
RETURN s_out
|
|
|
|
END FUNCTION |