Files
MBS/WEBSERVICES/clientes_contacto.4gl

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