95 lines
3.0 KiB
Plaintext
95 lines
3.0 KiB
Plaintext
IMPORT util
|
|
IMPORT security
|
|
|
|
FUNCTION orden_insert(xorden)
|
|
DEFINE i SMALLINT,
|
|
xorden STRING,
|
|
ximpresor,xcopia SMALLINT,
|
|
xtipoOrden VARCHAR(30),
|
|
estado BOOLEAN
|
|
|
|
DEFINE data RECORD
|
|
generales RECORD
|
|
usuario VARCHAR(50),
|
|
clave VARCHAR(50),
|
|
cotizacion_no INT,
|
|
orden_cliente STRING,
|
|
comentario_adicional VARCHAR(100)
|
|
END RECORD,
|
|
archivos DYNAMIC ARRAY OF RECORD
|
|
tipo_file VARCHAR(3),
|
|
imagen BYTE
|
|
END RECORD
|
|
END RECORD
|
|
DEFINE r_out RECORD
|
|
orden INT,
|
|
mensaje_out STRING,
|
|
cod_msg INT
|
|
END RECORD,
|
|
xnombre_file,contenido STRING,
|
|
id_file SMALLINT
|
|
|
|
# LOCATE data.archivos.imagen IN MEMORY
|
|
CALL util.JSON.parse(xorden,data)
|
|
# WHENEVER ERROR CONTINUE
|
|
|
|
CONNECT TO "smarmotech" USER data.generales.usuario USING data.generales.clave
|
|
IF STATUS < 0 THEN
|
|
LET r_out.cod_msg = STATUS
|
|
LET r_out.orden=0
|
|
LET r_out.mensaje_out = 'ERROR EN USUARIO CONECTANDOSE A LA BASE DE DATOS'
|
|
DISCONNECT CURRENT
|
|
RETURN util.JSON.stringify(r_out)
|
|
END IF
|
|
DISPLAY "DATOS ",data.generales.cotizacion_no
|
|
SELECT a.num_oc FROM prtb00012 a WHERE a.cotizacion_no = data.generales.cotizacion_no AND a.status_t IS NULL
|
|
IF STATUS <> NOTFOUND THEN
|
|
LET r_out.cod_msg = -10
|
|
LET r_out.orden=0
|
|
LET r_out.mensaje_out = 'COTIZACION TIENE ORDEN DE PEDIDOS'
|
|
DISCONNECT CURRENT
|
|
RETURN util.JSON.stringify(r_out)
|
|
ELSE
|
|
SELECT a.printerdefecto,a.otro_printer
|
|
INTO ximpresor,xcopia
|
|
FROM seg0001 a
|
|
WHERE a.usuario = data.generales.usuario
|
|
LET xtipoOrden='GENERAL'
|
|
|
|
CALL convierteorden(data.generales.cotizacion_no,data.generales.orden_cliente,data.generales.usuario,data.generales.clave,ximpresor,xcopia,xtipoOrden,data.generales.comentario_adicional)
|
|
RETURNING r_out.orden,estado
|
|
IF data.archivos.getLength() > 0 THEN
|
|
|
|
|
|
FOR i = 1 TO data.archivos.getLength()
|
|
IF data.archivos[i].tipo_file IS NOT NULL THEN
|
|
LET id_file = i
|
|
LET xnombre_file = r_out.orden USING "<<<<<<<<","-",id_file USING "&&&",".",data.archivos[i].tipo_file CLIPPED
|
|
|
|
INSERT INTO prtb00029
|
|
(num_oc
|
|
,documento
|
|
,nombre_file
|
|
,tipo_file
|
|
,id
|
|
,us_crea
|
|
,fech_crea
|
|
)
|
|
VALUES
|
|
(r_out.orden,data.archivos[i].imagen,xnombre_file,'DI',id_file,data.generales.usuario,getdate())
|
|
|
|
|
|
# CALL gen_nombre_archivo(rusuario.tipo_file) RETURNING nombre_file
|
|
# CALL rusuario.imagen.writeFile(nombre_file)
|
|
# CALL file_to_b64(nombre_file) RETURNING rusuario.imagen
|
|
# CALL documento(rusuario.imagen,r_out.orden)
|
|
END IF
|
|
END FOR
|
|
END IF
|
|
END IF
|
|
LET r_out.cod_msg=13
|
|
LET r_out.mensaje_out='ADICION EXITOSA'
|
|
DISCONNECT CURRENT
|
|
RETURN util.JSON.stringify(r_out)
|
|
END FUNCTION
|