1031 lines
50 KiB
Plaintext
1031 lines
50 KiB
Plaintext
IMPORT OS
|
|
SCHEMA "smarmotech"
|
|
|
|
GLOBALS
|
|
DEFINE datos RECORD
|
|
cod_n CHAR(10),
|
|
cod_grupo CHAR(10),
|
|
cod_tipo CHAR(10),
|
|
cod_sec CHAR(10),
|
|
codid INT,
|
|
online VARCHAR(2),
|
|
descripcion VARCHAR(100),
|
|
descripcion_user VARCHAR(100),
|
|
descripcion_us VARCHAR(100),
|
|
id_categoria,id_familia,id_subfamilia,id_brand,id_collection INT,
|
|
metadata VARCHAR(100),
|
|
factor_conv FLOAT,
|
|
precio FLOAT,
|
|
precio_usd FLOAT,
|
|
unidad_med VARCHAR(10),
|
|
existencia_min decimal(12,5),
|
|
lado_1,lado_2,lado_3,lado_4 DEC(12,5),
|
|
propiedades TEXT,
|
|
propiedades1 TEXT,
|
|
us_crea char(50),
|
|
fech_crea DATE,
|
|
nombre_file_foto varchar(100),
|
|
nombre_file_ficha,nombre_file_ficha2 varchar(100),
|
|
tasa DEC(12,2),
|
|
ruta_file_foto ,
|
|
ruta_file_ficha,
|
|
ruta_file_ficha1 VARCHAR(255)
|
|
|
|
END RECORD,
|
|
filetmp,selec, criterio_productos, comando STRING,
|
|
usuarios,clave CHAR(50),
|
|
d_tipos, f_tipos, filedestino, fichadestino,fichadestino1, filedestinovacio,
|
|
xnombreFile, mensaje, imagen_file, tmpdir_file, dir_file, filepath, l_file, p_res STRING,
|
|
pimagen,pficha1, pficha BYTE,
|
|
ficha_tecnica,ficha_tecnica1 byte,
|
|
respuesta char(3),
|
|
existe BOOLEAN,
|
|
operacion CHAR(1),
|
|
idx INT
|
|
DEFINE secuencia INT,
|
|
tipoOperacion VARCHAR(3)
|
|
|
|
DEFINE arr_productos DYNAMIC ARRAY OF RECORD
|
|
codigo VARCHAR(25),
|
|
descripcion1 VARCHAR(100),
|
|
unidadMed VARCHAR(4),
|
|
categoria VARCHAR(100),
|
|
existencia DEC(12,5),
|
|
precio_usd1 DEC(12,2),
|
|
codn1,codgrupo1,codtipo1,codSec1 INT,
|
|
nombre_file_foto1,nombre_file_ficha1,nombre_file_ficha3 VARCHAR(100),
|
|
codn2,codid1 INT,
|
|
descripcion_us1,descripcion_es1 VARCHAR(100),
|
|
precio1 DEC(12,2),
|
|
idcategoria1,idbrand,idfamilia INT,
|
|
ruta_ficha1,ruta_ficha2,ruta_foto1 STRING,
|
|
factor DEC(12,5),
|
|
online1 VARCHAR(2)
|
|
END RECORD,
|
|
galeria_fotos DYNAMIC ARRAY OF RECORD
|
|
nombre_galeria VARCHAR(100),
|
|
ruta_file_foto STRING
|
|
END RECORD
|
|
DEFINE url_ficha,criterio,selec STRING,
|
|
cantidadReg INT,
|
|
relacionados DYNAMIC ARRAY OF RECORD
|
|
cod_n2,cod_grupo2,cod_tipo2,cod_sec2 INT,
|
|
descripcion2 STRING,
|
|
precio2 FLOAT,
|
|
obligatorio VARCHAR(10),
|
|
codid_relacionado INT
|
|
|
|
|
|
END RECORD,
|
|
sugeridos DYNAMIC ARRAY OF RECORD
|
|
cod_n1,cod_grupo1,cod_tipo1,cod_sec1 INT,
|
|
descripcion3 STRING,
|
|
precio3 FLOAT,
|
|
obligatorio VARCHAR(10),
|
|
codid_sugerido INT
|
|
END RECORD
|
|
END GLOBALS
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
|
|
CALL pprmt075()
|
|
END MAIN
|
|
|
|
FUNCTION pprmt075()
|
|
OPEN WINDOW HOME_FRM WITH FORM 'ipfmmt075'
|
|
MENU
|
|
ON ACTION procesar
|
|
LET operacion = 'N'
|
|
CLEAR FORM
|
|
CALL buscaProductos()
|
|
|
|
ON ACTION Salir
|
|
EXIT MENU
|
|
|
|
END MENU
|
|
CLOSE WINDOW HOME_FRM
|
|
END FUNCTION
|
|
|
|
FUNCTION nuevosDatos()
|
|
|
|
DIALOG ATTRIBUTE(UNBUFFERED)
|
|
INPUT BY NAME datos.* ATTRIBUTE(WITHOUT DEFAULTS)
|
|
|
|
|
|
BEFORE INPUT
|
|
LET int_flag = FALSE
|
|
CALL otcategorias("input")
|
|
CALL familia()
|
|
|
|
CALL brand()
|
|
CALL collection()
|
|
AFTER FIELD id_familia
|
|
CALL familiasub(datos.id_familia)
|
|
ON ACTION busca_imagen
|
|
LET tipoOperacion = 'PRI'
|
|
CALL adicionaimagen()
|
|
|
|
ON ACTION busca_ficha_tecnica
|
|
CALL busca_ficha()
|
|
|
|
ON ACTION busca_ficha_tecnica1
|
|
CALL busca_ficha1()
|
|
|
|
ON ACTION abrir_doc
|
|
CALL abrir_documento()
|
|
ON ACTION abrir_doc1
|
|
CALL abrir_documento1()
|
|
|
|
ON ACTION salvar
|
|
IF datos.precio IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD precio
|
|
END IF
|
|
IF datos.descripcion_user IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD descripcion_user
|
|
END IF
|
|
IF datos.online IS NULL THEN
|
|
LET datos.online = 'NO'
|
|
END IF
|
|
IF operacion = "M" THEN
|
|
BEGIN WORK
|
|
UPDATE iptb00016
|
|
SET descripcion_user = datos.descripcion_user, precio = datos.precio,
|
|
precio_usd = datos.precio_usd,
|
|
descripcion_us = datos.descripcion_us,
|
|
existencia_minima = datos.existencia_min,
|
|
us_mod = usuarios,
|
|
fech_mod = getdate(),
|
|
id_categoria = datos.id_categoria,
|
|
id_familia = datos.id_familia,
|
|
id_subfamilia = datos.id_subfamilia,
|
|
id_brand = datos.id_brand,
|
|
id_product_collection = datos.id_collection,
|
|
propiedades = datos.propiedades,
|
|
propiedades1 = datos.propiedades1,
|
|
metadata = datos.metadata,
|
|
nombre_file_foto = datos.nombre_file_foto,
|
|
nombre_file_ficha = datos.nombre_file_ficha,
|
|
nombre_file_ficha1 = datos.nombre_file_ficha2,
|
|
online = datos.online,
|
|
# ficha_tecnica1 = pficha1,
|
|
lado_1 = datos.lado_1,
|
|
lado_2 = datos.lado_2,
|
|
lado_3 = datos.lado_3,
|
|
lado_4 = datos.lado_4,
|
|
ruta_foto = datos.ruta_file_foto,
|
|
ruta_file_ficha = datos.ruta_file_ficha,
|
|
ruta_file_ficha1 = datos.ruta_file_ficha1,
|
|
factor_conv = datos.factor_conv
|
|
WHERE cod_n = datos.cod_n AND cod_grupo = datos.cod_grupo AND cod_tipo = datos.cod_tipo AND cod_sec =datos.cod_sec
|
|
|
|
DELETE FROM iptb00018 WHERE codid = datos.codid
|
|
|
|
FOR idx = 1 TO galeria_fotos.getLength()
|
|
IF galeria_fotos[idx].nombre_galeria IS NOT NULL AND galeria_fotos[idx].ruta_file_foto IS NOT NULL THEN
|
|
INSERT INTO iptb00018 (nombre_file,codid,cod_n,cod_grupo,cod_tipo,cod_sec,ruta_file_foto)
|
|
VALUES (galeria_fotos[idx].nombre_galeria,datos.codid,datos.cod_n,datos.cod_grupo,
|
|
datos.cod_tipo,datos.cod_sec,galeria_fotos[idx].ruta_file_foto)
|
|
END IF
|
|
END FOR
|
|
# PRODUCTOS RELACIONADOS
|
|
DELETE FROM iptb00038 WHERE codid = datos.codid
|
|
FOR idx = 1 TO relacionados.getLength()
|
|
IF relacionados[idx].cod_n2 IS NOT NULL THEN
|
|
IF relacionados[idx].precio2 IS NULL THEN
|
|
ROLLBACK WORK
|
|
CALL msg(85)
|
|
END IF
|
|
IF relacionados[idx].obligatorio IS NULL THEN
|
|
ROLLBACK WORK
|
|
CALL msg(16)
|
|
END IF
|
|
IF relacionados[idx].codid_relacionado = datos.codid THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1002)
|
|
END IF
|
|
#VERIFICA SI EL PRODUCTO ESTA EN LA TABLA DE LA TIENDA RELACIONADO
|
|
SELECT a.codid FROM iptb00016 a WHERE a.cod_n = relacionados[idx].cod_n2 AND
|
|
a.cod_Grupo = relacionados[idx].cod_grupo2 AND
|
|
a.cod_tipo = relacionados[idx].cod_tipo2 AND
|
|
a.cod_Sec = relacionados[idx].cod_sec2
|
|
IF STATUS = NOTFOUND THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1003)
|
|
END IF
|
|
|
|
INSERT INTO iptb00038 (codid,codid_relacionado,cod_n,cod_grupo,cod_tipo,cod_sec,descripcion,precio,
|
|
obligatorio )
|
|
VALUES (datos.codid, relacionados[idx].codid_relacionado,
|
|
relacionados[idx].cod_n2,relacionados[idx].cod_grupo2,relacionados[idx].cod_tipo2,
|
|
relacionados[idx].cod_sec2,relacionados[idx].descripcion2,relacionados[idx].precio2,
|
|
relacionados[idx].obligatorio)
|
|
END IF
|
|
END FOR
|
|
# PRODUCTOS SUGERIDOS
|
|
DELETE FROM iptb00039 WHERE codid = datos.codid
|
|
|
|
FOR idx = 1 TO sugeridos.getLength()
|
|
IF sugeridos[idx].cod_n1 IS NOT NULL THEN
|
|
IF sugeridos[idx].precio3 IS NULL THEN
|
|
ROLLBACK WORK
|
|
CALL msg(85)
|
|
END IF
|
|
IF sugeridos[idx].codid_sugerido = datos.codid THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1002)
|
|
END IF
|
|
#VERIFICA SI EL PRODUCTO ESTA EN LA TABLA DE LA TIENDA PARA LOS SUGERIDOS
|
|
SELECT a.codid FROM iptb00016 a WHERE a.cod_n = sugeridos[idx].cod_n1 AND
|
|
a.cod_Grupo = sugeridos[idx].cod_grupo1 AND
|
|
a.cod_tipo = sugeridos[idx].cod_tipo1 AND
|
|
a.cod_Sec = sugeridos[idx].cod_sec1
|
|
IF STATUS = NOTFOUND THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1003)
|
|
END IF
|
|
|
|
INSERT INTO iptb00039 (codid,codid_sugerido,cod_n,cod_grupo,cod_tipo,cod_sec,descripcion,precio,
|
|
obligatorio )
|
|
VALUES (datos.codid, sugeridos[idx].codid_sugerido,
|
|
sugeridos[idx].cod_n1,sugeridos[idx].cod_grupo1,sugeridos[idx].cod_tipo1,
|
|
sugeridos[idx].cod_sec1,sugeridos[idx].descripcion3,sugeridos[idx].precio3,
|
|
sugeridos[idx].obligatorio)
|
|
|
|
END IF
|
|
END FOR
|
|
COMMIT WORK
|
|
|
|
CALL msg(13)
|
|
|
|
ELSE
|
|
BEGIN WORK
|
|
|
|
INSERT INTO iptb00016(codid, cod_n, cod_grupo, cod_tipo, cod_sec, descripcion,
|
|
unidad_med, precio, precio_usd, descripcion_user, fech_crea, us_crea,
|
|
nombre_file_foto, nombre_file_ficha, existencia_minima,
|
|
id_categoria,id_familia,id_brand,id_product_collection,propiedades,descripcion_us,
|
|
tasa,nombre_file_ficha1,metadata,propiedades1,
|
|
lado_1,lado_2,lado_3,lado_4,ruta_foto,ruta_file_ficha,ruta_file_ficha1,
|
|
factor_conv,id_subfamilia,online,fech_mod
|
|
)
|
|
VALUES(datos.codid, datos.cod_n, datos.cod_grupo, datos.cod_tipo, datos.cod_sec, datos.descripcion,
|
|
datos.unidad_med, datos.precio, datos.precio_usd, datos.descripcion_user, getdate(), usuarios,
|
|
datos.nombre_file_foto, datos.nombre_file_ficha, datos.existencia_min,
|
|
datos.id_categoria,datos.id_familia,datos.id_brand,datos.id_collection,
|
|
datos.propiedades,datos.descripcion_us,datos.tasa,datos.nombre_file_ficha2,datos.metadata,
|
|
datos.propiedades1,datos.lado_1,datos.lado_2,datos.lado_3,datos.lado_4,
|
|
datos.ruta_file_foto,datos.ruta_file_ficha,datos.ruta_file_ficha1,datos.factor_conv,
|
|
datos.id_subfamilia,datos.online,getdate())
|
|
|
|
FOR idx = 1 TO galeria_fotos.getLength()
|
|
IF galeria_fotos[idx].nombre_galeria IS NOT NULL AND galeria_fotos[idx].ruta_file_foto IS NOT NULL THEN
|
|
INSERT INTO iptb00018 (nombre_file,codid,cod_n,cod_grupo,cod_tipo,cod_sec,ruta_file_foto)
|
|
VALUES (galeria_fotos[idx].nombre_galeria,datos.codid,datos.cod_n,datos.cod_grupo,
|
|
datos.cod_tipo,datos.cod_sec,galeria_fotos[idx].ruta_file_foto)
|
|
END IF
|
|
END FOR
|
|
# PRODUCTOS RELACIONADOS
|
|
FOR idx = 1 TO relacionados.getLength()
|
|
IF relacionados[idx].cod_n2 IS NOT NULL THEN
|
|
IF relacionados[idx].precio2 IS NULL THEN
|
|
ROLLBACK WORK
|
|
CALL msg(85)
|
|
END IF
|
|
IF relacionados[idx].obligatorio IS NULL THEN
|
|
ROLLBACK WORK
|
|
CALL msg(16)
|
|
END IF
|
|
IF relacionados[idx].codid_relacionado = datos.codid THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1002)
|
|
END IF
|
|
#VERIFICA SI EL PRODUCTO ESTA EN LA TABLA DE LA TIENDA RELACIONADOS
|
|
SELECT a.codid FROM iptb00016 a WHERE a.cod_n = relacionados[idx].cod_n2 AND
|
|
a.cod_Grupo = relacionados[idx].cod_grupo2 AND
|
|
a.cod_tipo = relacionados[idx].cod_tipo2 AND
|
|
a.cod_Sec = relacionados[idx].cod_sec2
|
|
IF STATUS = NOTFOUND THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1003)
|
|
END IF
|
|
|
|
INSERT INTO iptb00038 (codid,codid_relacionado,cod_n,cod_grupo,cod_tipo,cod_sec,descripcion,precio,
|
|
obligatorio )
|
|
VALUES (datos.codid,relacionados[idx].codid_relacionado,
|
|
relacionados[idx].cod_n2,relacionados[idx].cod_grupo2,relacionados[idx].cod_tipo2,
|
|
relacionados[idx].cod_sec2,relacionados[idx].descripcion2,relacionados[idx].precio2,
|
|
relacionados[idx].obligatorio)
|
|
END IF
|
|
END FOR
|
|
# PRODUCTOS SUGERIDOS
|
|
FOR idx = 1 TO sugeridos.getLength()
|
|
IF sugeridos[idx].cod_n1 IS NOT NULL THEN
|
|
IF sugeridos[idx].precio3 IS NULL THEN
|
|
ROLLBACK WORK
|
|
CALL msg(85)
|
|
END IF
|
|
IF sugeridos[idx].codid_sugerido = datos.codid THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1002)
|
|
END IF
|
|
#VERIFICA SI EL PRODUCTO ESTA EN LA TABLA DE LA TIENDA SUGERIDOS
|
|
SELECT a.codid FROM iptb00016 a WHERE a.cod_n = sugeridos[idx].cod_n1 AND
|
|
a.cod_Grupo = sugeridos[idx].cod_grupo1 AND
|
|
a.cod_tipo = sugeridos[idx].cod_tipo1 AND
|
|
a.cod_Sec = sugeridos[idx].cod_sec1
|
|
IF STATUS = NOTFOUND THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1003)
|
|
END IF
|
|
|
|
INSERT INTO iptb00039 (codid,codid_relacionado,cod_n,cod_grupo,cod_tipo,cod_sec,descripcion,precio,
|
|
obligatorio )
|
|
VALUES (datos.codid,sugeridos[idx].codid_sugerido,
|
|
sugeridos[idx].cod_n1,sugeridos[idx].cod_grupo1,sugeridos[idx].cod_tipo1,
|
|
sugeridos[idx].cod_sec1,sugeridos[idx].descripcion3,sugeridos[idx].precio3,
|
|
sugeridos[idx].obligatorio)
|
|
|
|
END IF
|
|
END FOR
|
|
COMMIT WORK
|
|
|
|
CALL msg(1)
|
|
LET operacion ="M"
|
|
END IF
|
|
CALL refrescar()
|
|
AFTER FIELD lado_2
|
|
IF datos.lado_2 IS NOT NULL THEN
|
|
IF datos.lado_1 IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD lado_1
|
|
|
|
END IF
|
|
LET datos.lado_4 = datos.lado_1 * datos.lado_2
|
|
DISPLAY BY NAME datos.lado_4
|
|
END IF
|
|
AFTER FIELD lado_3
|
|
IF datos.lado_3 IS NOT NULL THEN
|
|
|
|
IF datos.lado_1 IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD lado_1
|
|
END IF
|
|
IF datos.lado_2 IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD lado_2
|
|
END IF
|
|
LET datos.lado_4 = datos.lado_1 * datos.lado_2 * datos.lado_3
|
|
DISPLAY BY NAME datos.lado_4
|
|
END IF
|
|
|
|
END INPUT
|
|
# Galeria de fotos
|
|
INPUT ARRAY galeria_fotos FROM sfotos1.*
|
|
# BEFORE INPUT
|
|
|
|
# IF operacion = "M" THEN
|
|
# CALL callImagen()
|
|
# END IF
|
|
BEFORE FIELD nombre_galeria
|
|
IF galeria_fotos[arr_curr()].nombre_galeria IS NOT NULL AND Operacion = 'M' THEN
|
|
LET filetmp = galeria_fotos[arr_curr()].ruta_file_foto
|
|
|
|
|
|
DISPLAY filetmp TO foto_producto1
|
|
END IF
|
|
|
|
AFTER FIELD nombre_galeria
|
|
IF galeria_fotos[arr_curr()].nombre_galeria IS NOT NULL THEN
|
|
LET filetmp = galeria_fotos[arr_curr()].ruta_file_foto
|
|
|
|
DISPLAY filetmp TO foto_producto1
|
|
END IF
|
|
|
|
ON ACTION buscar
|
|
LET tipoOperacion = "ARR"
|
|
LET secuencia = arr_curr()
|
|
CALL adicionaimagen()
|
|
LET galeria_fotos[arr_curr()].nombre_galeria = xnombreFile
|
|
DISPLAY "galeria ",galeria_fotos[arr_curr()].nombre_galeria
|
|
DISPLAY galeria_fotos[arr_curr()].nombre_galeria TO sfotos1[scr_line()].nombre_galeria
|
|
END INPUT
|
|
INPUT ARRAY relacionados FROM srelacionados.* ATTRIBUTE(WITHOUT DEFAULTS)
|
|
BEFORE ROW
|
|
LET idx = arr_curr()
|
|
ON ACTION producto ATTRIBUTE(TEXT="Buca Productos",IMAGE="find")
|
|
CALL busca_productos('SI',0,0,0,0) RETURNING relacionados[idx].cod_n2,relacionados[idx].cod_grupo2,
|
|
relacionados[idx].cod_tipo2,relacionados[idx].cod_sec2,
|
|
relacionados[idx].descripcion2,relacionados[idx].precio2,
|
|
relacionados[idx].codid_relacionado
|
|
|
|
DISPLAY relacionados[arr_curr()].descripcion2 TO srelacionados[scr_line()].descripcion2
|
|
DISPLAY relacionados[arr_curr()].precio2 TO srelacionados[scr_line()].precio2
|
|
AFTER FIELD cod_sec2
|
|
IF relacionados[idx].cod_sec2 IS NOT NULL THEN
|
|
CALL busca_productos('NO',relacionados[idx].cod_n2,relacionados[idx].cod_grupo2,relacionados[idx].cod_tipo2,
|
|
relacionados[idx].cod_sec2)
|
|
RETURNING relacionados[idx].cod_n2,relacionados[idx].cod_grupo2,
|
|
relacionados[idx].cod_tipo2,relacionados[idx].cod_sec2,
|
|
relacionados[idx].descripcion2,relacionados[idx].precio2,
|
|
relacionados[idx].codid_relacionado
|
|
IF relacionados[idx].precio2 IS NULL THEN
|
|
CALL msg(85)
|
|
NEXT FIELD cod_n2
|
|
END IF
|
|
DISPLAY relacionados[arr_curr()].descripcion2 TO srelacionados[scr_line()].descripcion2
|
|
DISPLAY relacionados[arr_curr()].precio2 TO srelacionados[scr_line()].precio2
|
|
IF relacionados[idx].codid_relacionado = datos.codid THEN
|
|
CALL msg(1002)
|
|
NEXT FIELD cod_n2
|
|
END IF
|
|
#VERIFICA SI EL PRODUCTO ESTA EN LA TABLA DE LA TIENDA
|
|
SELECT a.codid FROM iptb00016 a WHERE a.cod_n = relacionados[idx].cod_n2 AND
|
|
a.cod_Grupo = relacionados[idx].cod_grupo2 AND
|
|
a.cod_tipo = relacionados[idx].cod_tipo2 AND
|
|
a.cod_Sec = relacionados[idx].cod_sec2
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(1003)
|
|
NEXT FIELD cod_n2
|
|
END IF
|
|
END IF
|
|
AFTER FIELD obligatorio
|
|
IF relacionados[idx].cod_sec2 IS NOT NULL THEN
|
|
IF relacionados[idx].obligatorio IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD cod_n2
|
|
END IF
|
|
END IF
|
|
END INPUT
|
|
INPUT ARRAY sugeridos FROM ssugeridos.* ATTRIBUTE(WITHOUT DEFAULTS)
|
|
BEFORE ROW
|
|
LET idx = arr_curr()
|
|
ON ACTION producto ATTRIBUTE(TEXT="Buca Productos",IMAGE="find")
|
|
CALL busca_productos('SI',0,0,0,0) RETURNING sugeridos[idx].cod_n1,sugeridos[idx].cod_grupo1,
|
|
sugeridos[idx].cod_tipo1,sugeridos[idx].cod_sec1,
|
|
sugeridos[idx].descripcion3,sugeridos[idx].precio3,
|
|
sugeridos[idx].codid_sugerido
|
|
|
|
DISPLAY sugeridos[arr_curr()].descripcion3 TO ssugeridos[scr_line()].descripcion3
|
|
DISPLAY sugeridos[arr_curr()].precio3 TO ssugeridos[scr_line()].precio3
|
|
AFTER FIELD cod_sec1
|
|
IF sugeridos[idx].cod_sec1 IS NOT NULL THEN
|
|
CALL busca_productos('NO',sugeridos[idx].cod_n1,sugeridos[idx].cod_grupo1,sugeridos[idx].cod_tipo1,
|
|
sugeridos[idx].cod_sec1)
|
|
RETURNING sugeridos[idx].cod_n1,sugeridos[idx].cod_grupo1,
|
|
sugeridos[idx].cod_tipo1,sugeridos[idx].cod_sec1,
|
|
sugeridos[idx].descripcion3,sugeridos[idx].precio3,
|
|
sugeridos[idx].codid_sugerido
|
|
IF sugeridos[idx].precio3 IS NULL THEN
|
|
CALL msg(85)
|
|
NEXT FIELD cod_n1
|
|
END IF
|
|
DISPLAY sugeridos[arr_curr()].descripcion3 TO ssugeridos[scr_line()].descripcion3
|
|
DISPLAY sugeridos[arr_curr()].precio3 TO ssugeridos[scr_line()].precio3
|
|
IF sugeridos[idx].codid_sugerido = datos.codid THEN
|
|
CALL msg(1002)
|
|
NEXT FIELD cod_n1
|
|
END IF
|
|
#VERIFICA SI EL PRODUCTO ESTA EN LA TABLA DE LA TIENDA
|
|
SELECT a.codid FROM iptb00016 a WHERE a.cod_n = sugeridos[idx].cod_n1 AND
|
|
a.cod_Grupo = sugeridos[idx].cod_grupo1 AND
|
|
a.cod_tipo = sugeridos[idx].cod_tipo1 AND
|
|
a.cod_Sec = sugeridos[idx].cod_sec1
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(1003)
|
|
NEXT FIELD cod_n1
|
|
END IF
|
|
END IF
|
|
END INPUT
|
|
|
|
ON ACTION cancel
|
|
|
|
CALL msg(2)
|
|
INITIALIZE datos.* TO NULL
|
|
|
|
RETURN
|
|
|
|
END DIALOG
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION adicionaImagen()
|
|
|
|
LET d_tipos="Images"
|
|
LET f_tipos="*.jpg *.png *.gif"
|
|
LET mensaje=%"Elige Imagen"
|
|
LET imagen_file = "*.jpg"
|
|
CALL ui.interface.frontcall("standard","openfile",[imagen_file,d_tipos,f_tipos,mensaje],filepath)
|
|
|
|
IF filepath IS NOT NULL THEN
|
|
IF secuencia IS NULL THEN
|
|
LET secuencia = 0
|
|
END IF
|
|
|
|
IF tipoOperacion = "PRI" THEN
|
|
|
|
|
|
LET datos.nombre_file_foto = datos.cod_n USING '&&&&','-',datos.cod_grupo
|
|
USING '&&&&','-',datos.cod_tipo
|
|
USING '&&&&','-',datos.cod_sec
|
|
USING '&&&&&&',
|
|
# "-",
|
|
# secuencia USING "&&&",
|
|
'.',
|
|
OS.Path.extension(filepath)
|
|
CALL rutadefecto()
|
|
LET filedestino = filedestino CLIPPED,datos.nombre_file_foto
|
|
DISPLAY filedestino TO nombre_file_Foto
|
|
DISPLAY "rutas ",filepath," fi ",filedestino
|
|
CALL fgl_getfile(filepath,filedestino)
|
|
CALL comprimeImagen(filedestino,' -resize 500x500 ')
|
|
LET datos.ruta_file_foto = filedestino
|
|
|
|
DISPLAY filedestino TO ruta_file_foto
|
|
|
|
DISPLAY BY NAME datos.nombre_file_foto
|
|
|
|
ELSE
|
|
IF secuencia IS NULL THEN
|
|
LET secuencia = 1
|
|
END IF
|
|
|
|
LET xnombreFile='G', datos.cod_n USING '&&&&','-',datos.cod_grupo
|
|
USING '&&&&','-',datos.cod_tipo
|
|
USING '&&&&','-',datos.cod_sec
|
|
USING '&&&&&&', "-",
|
|
secuencia USING "&&&",
|
|
'.',
|
|
OS.Path.extension(filepath)
|
|
CALL rutadefecto()
|
|
LET filedestino = filedestino CLIPPED,xnombreFile CLIPPED
|
|
DISPLAY filedestino TO nombre_file_foto
|
|
LET galeria_fotos[secuencia].nombre_galeria = xnombrefile CLIPPED
|
|
LET galeria_fotos[secuencia].ruta_file_foto = filedestino
|
|
|
|
|
|
|
|
CALL fgl_getfile(filepath,filedestino)
|
|
CALL comprimeImagen(filedestino,' -resize 200x300 ')
|
|
# CALL rutadefecto()
|
|
DISPLAY filedestino TO foto_producto1
|
|
|
|
|
|
END IF
|
|
|
|
END IF
|
|
END FUNCTION
|
|
|
|
FUNCTION callImagen()
|
|
DISPLAY BY NAME datos.*
|
|
# LOCATE pimagen IN MEMORY
|
|
|
|
SELECT a.nombre_file_foto,a.ruta_foto
|
|
INTO datos.nombre_file_foto,datos.ruta_file_foto FROM iptb00016 a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec
|
|
|
|
IF datos.nombre_file_foto IS NULL THEN
|
|
|
|
LET datos.nombre_file_foto = datos.cod_n USING '&&&&','-',datos.cod_grupo
|
|
USING '&&&&','-',datos.cod_tipo
|
|
USING '&&&&','-',datos.cod_sec
|
|
USING '&&&&&&',
|
|
'.',
|
|
OS.Path.extension(datos.ruta_file_foto)
|
|
END IF
|
|
|
|
DISPLAY datos.ruta_file_foto TO ruta_file_foto
|
|
|
|
DECLARE busca_galeria CURSOR FOR
|
|
SELECT a.nombre_file,a.ruta_file_foto FROM iptb00018 a WHERE a.codid = datos.codid
|
|
|
|
LET idx = 1
|
|
|
|
FOREACH busca_galeria INTO galeria_fotos[idx].*
|
|
|
|
|
|
LET idx = idx + 1
|
|
|
|
END FOREACH
|
|
END FUNCTION
|
|
FUNCTION galerias()
|
|
|
|
DECLARE busca_galeria1 CURSOR FOR
|
|
SELECT a.nombre_file,a.ruta_file_foto FROM iptb00018 a WHERE a.codid = datos.codid
|
|
|
|
LET idx = 1
|
|
|
|
FOREACH busca_galeria1 INTO galeria_fotos[idx].*
|
|
|
|
|
|
LET idx = idx + 1
|
|
|
|
END FOREACH
|
|
END FUNCTION
|
|
FUNCTION relacionadosData()
|
|
|
|
DECLARE busca_rel CURSOR FOR
|
|
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descripcion,a.precio,a.obligatorio,a.codid_relacionado
|
|
FROM iptb00038 a
|
|
WHERE a.codid = datos.codid
|
|
|
|
LET idx = 1
|
|
FOREACH busca_rel INTO relacionados[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
END FUNCTION
|
|
|
|
FUNCTION sugeridosData()
|
|
|
|
DECLARE busca_sug CURSOR FOR
|
|
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descripcion,a.precio,a.obligatorio,a.codid_sugerido
|
|
FROM iptb00039 a
|
|
WHERE a.codid = datos.codid
|
|
|
|
LET idx = 1
|
|
FOREACH busca_sug INTO sugeridos[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
END FUNCTION
|
|
FUNCTION callFicha()
|
|
|
|
SELECT a.ruta_file_ficha,a.ruta_file_ficha1
|
|
INTO datos.ruta_file_ficha,datos.ruta_file_ficha1
|
|
FROM iptb00016 a
|
|
WHERE a.cod_n = datos.cod_n AND
|
|
a.cod_grupo = datos.cod_grupo AND
|
|
a.cod_tipo = datos.cod_tipo AND
|
|
a.cod_sec = datos.cod_sec
|
|
|
|
# CALL pficha1.writeFile(fichadestino)
|
|
DISPLAY BY NAME datos.nombre_file_ficha2,datos.ruta_file_ficha,datos.ruta_file_ficha1
|
|
--LET l_file = l_file CLIPPED,"\\",datos.nombre_file_ficha
|
|
--CALL fgl_putfile(tmpdir_file,l_file)
|
|
DISPLAY "nombre file p2 ",datos.nombre_file_ficha
|
|
END FUNCTION
|
|
FUNCTION busca_ficha()
|
|
LET d_tipos="Archivos"
|
|
LET f_tipos="*.pdf *.xls *.txt *.doc *.docx *.png *.jpg"
|
|
LET mensaje=%"Elige Ficha Tecnica"
|
|
LET dir_file = "*.pdf"
|
|
|
|
CALL rutadefecto()
|
|
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
|
|
IF filepath IS NOT NULL THEN
|
|
|
|
IF downshift(os.Path.extension(filepath)) = "pdf" OR
|
|
downshift(os.Path.extension(filepath)) = "txt" OR
|
|
downshift(os.Path.extension(filepath)) = "doc" OR
|
|
downshift(os.Path.extension(filepath)) = "xls" OR
|
|
downshift(os.Path.extension(filepath)) = "docx" OR
|
|
downshift(os.Path.extension(filepath)) = "png" OR
|
|
downshift(os.Path.extension(filepath)) = "jpg" OR
|
|
downshift(os.Path.extension(filepath)) = "xlsx" THEN
|
|
|
|
LET dir_file = os.Path.basename(filepath)
|
|
DISPLAY filepath TO ruta_file_ficha
|
|
|
|
LET fichadestino = filedestino ,
|
|
datos.cod_n USING '&&&&','-',datos.cod_grupo
|
|
USING '&&&&','-',datos.cod_tipo
|
|
USING '&&&&','-',datos.cod_sec
|
|
USING '&&&&&&&','-01','.',
|
|
OS.Path.extension(filepath)
|
|
CALL fgl_getfile(filepath,fichadestino)
|
|
|
|
LET datos.nombre_file_ficha = datos.cod_n USING '&&&&','-',datos.cod_grupo
|
|
USING '&&&&','-',datos.cod_tipo
|
|
USING '&&&&','-',datos.cod_sec
|
|
USING '&&&&&&&','-01','.',
|
|
OS.Path.extension(filepath)
|
|
LET datos.ruta_file_ficha = url_ficha CLIPPED,datos.nombre_file_ficha CLIPPED
|
|
|
|
DISPLAY BY NAME datos.ruta_file_ficha,datos.nombre_file_ficha
|
|
ELSE
|
|
CALL fgl_winmessage("ERROR","EL FILE DEBE SER PDF, JPG, PNG, XLS, DOC, DOCX","INFO")
|
|
|
|
END IF
|
|
END IF
|
|
END FUNCTION
|
|
|
|
FUNCTION busca_ficha1()
|
|
LET d_tipos="Archivos"
|
|
LET f_tipos="*.pdf *.xls *.txt *.doc *.docx *.png *.jpg"
|
|
LET mensaje=%"Elige Ficha Tecnica"
|
|
LET dir_file = "*.pdf"
|
|
|
|
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
|
|
IF filepath IS NOT NULL THEN
|
|
|
|
IF downshift(os.Path.extension(filepath)) = "pdf" OR
|
|
downshift(os.Path.extension(filepath)) = "txt" OR
|
|
downshift(os.Path.extension(filepath)) = "doc" OR
|
|
downshift(os.Path.extension(filepath)) = "xls" OR
|
|
downshift(os.Path.extension(filepath)) = "docx" OR
|
|
downshift(os.Path.extension(filepath)) = "png" OR
|
|
downshift(os.Path.extension(filepath)) = "jpg" OR
|
|
downshift(os.Path.extension(filepath)) = "xlsx" THEN
|
|
|
|
LET fichadestino1 = filedestino CLIPPED,
|
|
datos.cod_n USING '&&&&','-',datos.cod_grupo
|
|
USING '&&&&','-',datos.cod_tipo
|
|
USING '&&&&','-',datos.cod_sec
|
|
USING '&&&&&&&','-02','.',
|
|
OS.Path.extension(filepath)
|
|
|
|
LET dir_file = os.Path.basename(filepath)
|
|
|
|
DISPLAY filepath TO ruta_file_ficha1
|
|
|
|
CALL fgl_getfile(filepath,fichadestino1)
|
|
|
|
LET datos.nombre_file_ficha2 = datos.cod_n USING '&&&&','-',datos.cod_grupo
|
|
USING '&&&&','-',datos.cod_tipo
|
|
USING '&&&&','-',datos.cod_sec
|
|
USING '&&&&&&&','-02','.',
|
|
OS.Path.extension(filepath)
|
|
CALL rutadefecto()
|
|
LET datos.ruta_file_ficha1 = url_ficha CLIPPED,datos.nombre_file_ficha2
|
|
DISPLAY BY NAME datos.ruta_file_ficha1, datos.nombre_file_ficha2
|
|
ELSE
|
|
CALL fgl_winmessage("ERROR","EL FILE DEBE SER PDF, JPG, PNG, XLS, DOC, DOCX","INFO")
|
|
|
|
END IF
|
|
END IF
|
|
END FUNCTION
|
|
FUNCTION abrir_documento()
|
|
|
|
TRY
|
|
LET tmpdir_file = datos.ruta_file_ficha CLIPPED
|
|
DISPLAY "ruta ficha ",tmpdir_file
|
|
# CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [l_file] )
|
|
# LET l_file = l_file CLIPPED,"\\",datos.nombre_file_ficha
|
|
# CALL fgl_putfile(tmpdir_file,l_file)
|
|
# DISPLAY "lfile ",l_file
|
|
# CALL ui.Interface.frontCall("standard","shellexec", [l_file],[p_res])
|
|
CALL ui.Interface.frontCall("standard","launchURL",[datos.ruta_file_ficha],[])
|
|
CATCH
|
|
CALL fgl_winmessage("ERROR",err_get(STATUS),"INFO")
|
|
END TRY
|
|
END FUNCTION
|
|
|
|
FUNCTION abrir_documento1()
|
|
DISPLAY "file ",datos.nombre_file_ficha2
|
|
TRY
|
|
LET tmpdir_file = datos.ruta_file_ficha1 CLIPPED
|
|
|
|
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [l_file] )
|
|
LET l_file = l_file CLIPPED,"\\",datos.nombre_file_ficha2
|
|
CALL fgl_putfile(tmpdir_file,l_file)
|
|
|
|
CALL ui.Interface.frontCall("standard","shellexec", [l_file],[p_res])
|
|
|
|
CATCH
|
|
CALL fgl_winmessage("ERROR",err_get(STATUS),"INFO")
|
|
END TRY
|
|
END FUNCTION
|
|
|
|
FUNCTION buscaProductos()
|
|
DEFINE mensajes VARCHAR(100),
|
|
tasa DEC(12,2)
|
|
|
|
CALL ui.Interface.LoadStyles("mbsStyle")
|
|
DIALOG ATTRIBUTE(UNBUFFERED)
|
|
|
|
DISPLAY ARRAY arr_productos TO sproductos.*
|
|
|
|
BEFORE DISPLAY
|
|
CALL arr_productos.clear()
|
|
CALL criterioBusqueda() RETURNING mensajes
|
|
IF mensajes = "NO EXISTEN REGISTROS CON ESA CONDICION" THEN
|
|
CALL fgl_winmessage("INFO",mensajes,"INFO")
|
|
RETURN
|
|
END IF
|
|
ON ACTION actualiza ATTRIBUTE(TEXT="Actualizar")
|
|
INITIALIZE datos.* TO NULL
|
|
LOCATE datos.propiedades IN MEMORY
|
|
LOCATE datos.propiedades1 IN MEMORY
|
|
CALL galeria_fotos.clear()
|
|
CALL relacionados.clear()
|
|
DISPLAY BY NAME datos.*
|
|
LET datos.id_categoria = arr_productos[arr_curr()].idcategoria1
|
|
LET datos.id_familia = arr_productos[arr_curr()].idfamilia
|
|
LET datos.id_brand = arr_productos[arr_curr()].idbrand
|
|
|
|
LET datos.online = arr_productos[arr_curr()].online1
|
|
|
|
LET datos.precio_usd = arr_productos[arr_curr()].precio_usd1
|
|
SELECT ISNULL(a.prima,1) INTO datos.tasa FROM vetb00019 a WHERE a.disponible = 'S'
|
|
IF arr_productos[arr_curr()].codn2 IS NULL THEN
|
|
LET operacion = 'N'
|
|
SELECT ISNULL(AVG(a.precio),0) INTO datos.precio_usd FROM vetb00025 a
|
|
WHERE a.cod_n = arr_productos[arr_curr()].codn1 AND
|
|
a.cod_grupo = arr_productos[arr_curr()].codgrupo1 AND
|
|
a.cod_tipo = arr_productos[arr_curr()].codtipo1 AND
|
|
a.cod_sec = arr_productos[arr_curr()].codSec1 AND
|
|
a.ventas = 3
|
|
|
|
|
|
LET datos.precio = datos.precio_usd * datos.tasa
|
|
LET datos.factor_conv =0
|
|
SELECT a.factor_conv INTO datos.factor_conv FROM iptb00001 a
|
|
WHERE a.cod_n = arr_productos[arr_curr()].codn1 AND
|
|
a.cod_grupo = arr_productos[arr_curr()].codgrupo1 AND
|
|
a.cod_tipo = arr_productos[arr_curr()].codtipo1 AND
|
|
a.cod_sec = arr_productos[arr_curr()].codSec1
|
|
|
|
ELSE
|
|
|
|
LET operacion = 'M'
|
|
LET datos.precio_usd = arr_productos[arr_curr()].precio_usd1
|
|
LET datos.factor_conv = arr_productos[arr_curr()].factor
|
|
|
|
END IF
|
|
|
|
IF arr_productos[arr_curr()].precio1 IS NULL THEN
|
|
LET datos.precio = arr_productos[arr_curr()].precio_usd1 *
|
|
datos.tasa
|
|
|
|
ELSE
|
|
LET datos.precio = arr_productos[arr_curr()].precio1
|
|
END IF
|
|
|
|
LET datos.codid =arr_productos[arr_curr()].codid1
|
|
LET datos.cod_n = arr_productos[arr_curr()].codn1
|
|
LET datos.cod_tipo = arr_productos[arr_curr()].codtipo1
|
|
LET datos.cod_grupo = arr_productos[arr_curr()].codgrupo1
|
|
LET datos.cod_sec = arr_productos[arr_curr()].codsec1
|
|
LET datos.descripcion = arr_productos[arr_curr()].descripcion1
|
|
LET datos.unidad_med = arr_productos[arr_curr()].unidadMed
|
|
LET datos.descripcion_us = arr_productos[arr_curr()].descripcion_us1
|
|
LET datos.descripcion_user = arr_productos[arr_curr()].descripcion_es1
|
|
#LET datos.precio = arr_productos[arr_curr()].precio1
|
|
|
|
LET datos.ruta_file_ficha = arr_productos[arr_curr()].ruta_ficha1
|
|
LET datos.ruta_file_ficha1 = arr_productos[arr_curr()].ruta_ficha2
|
|
LET datos.ruta_file_foto = arr_productos[arr_curr()].ruta_foto1
|
|
LET datos.nombre_file_ficha = arr_productos[arr_curr()].nombre_file_ficha1
|
|
LET datos.nombre_file_ficha2 = arr_productos[arr_curr()].nombre_file_ficha3
|
|
|
|
|
|
LET datos.existencia_min = arr_productos[arr_curr()].existencia
|
|
|
|
SELECT a.propiedades,a.metadata,a.lado_1,a.lado_2,a.lado_3,a.lado_4
|
|
INTO datos.propiedades,datos.metadata,datos.lado_1,datos.lado_2,datos.lado_3,datos.lado_4
|
|
FROM iptb00016 a
|
|
WHERE a.codid = datos.codid
|
|
|
|
SELECT a.propiedades1 INTO datos.propiedades1 FROM iptb00016 a
|
|
WHERE a.codid = datos.codid
|
|
|
|
DISPLAY "ruta ",datos.ruta_file_foto
|
|
DISPLAY BY NAME datos.propiedades,datos.precio,datos.precio_usd,
|
|
datos.propiedades1,datos.metadata,datos.lado_1,datos.lado_2,
|
|
datos.lado_3,datos.lado_4,datos.ruta_file_foto,datos.factor_conv,
|
|
datos.online
|
|
|
|
CALL galerias()
|
|
CALL relacionadosData()
|
|
CALL sugeridosData()
|
|
{ IF arr_productos[arr_curr()].nombre_file_foto1 IS NOT NULL THEN
|
|
|
|
LET filedestino = 'tmp\\',arr_productos[arr_curr()].nombre_file_foto1 CLIPPED
|
|
CALL callImagen()
|
|
END IF
|
|
IF arr_productos[arr_curr()].nombre_file_ficha1 IS NOT NULL THEN
|
|
LET fichadestino = 'tmp\\',arr_productos[arr_curr()].nombre_file_ficha1 CLIPPED
|
|
LET datos.nombre_file_ficha = arr_productos[arr_curr()].nombre_file_ficha1
|
|
CALL callFicha()
|
|
END IF
|
|
IF arr_productos[arr_curr()].nombre_file_ficha3 IS NOT NULL THEN
|
|
LET fichadestino1 = 'tmp\\',arr_productos[arr_curr()].nombre_file_ficha3 CLIPPED
|
|
LET datos.nombre_file_ficha2 = arr_productos[arr_curr()].nombre_file_ficha3
|
|
CALL callFicha1()
|
|
END IF
|
|
}
|
|
CALL nuevosDatos()
|
|
|
|
ON ACTION CANCEL
|
|
CALL fgl_winmessage("INFO","OPERACION ABORTADA","INFO")
|
|
RETURN
|
|
|
|
END DISPLAY
|
|
END DIALOG
|
|
END FUNCTION
|
|
FUNCTION criterioBusqueda()
|
|
|
|
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec, b.id_categoria
|
|
FROM codn,codgrupo,codtipo,codsec, idcategoria
|
|
BEFORE CONSTRUCT
|
|
# CALL clase()
|
|
# CALL grupos()
|
|
CLEAR FORM
|
|
CALL otcategorias("CONSTRUCT")
|
|
AFTER CONSTRUCT
|
|
EXIT CONSTRUCT
|
|
END CONSTRUCT
|
|
IF int_flag THEN
|
|
LET int_flag = FALSE
|
|
RETURN "EXITO"
|
|
END IF
|
|
|
|
LET selec = "select '',a.descrip_esp,a.unidad_med,ISNULL(c.descripcion_esp,'NO TIENE'),SUM(d.cantidad_2),isnull(b.precio_usd,k.precio),
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,b.nombre_file_foto,b.nombre_file_ficha,b.nombre_file_ficha1,
|
|
b.cod_n,a.codid,b.descripcion_us,b.descripcion_user,b.precio,b.id_categoria,b.id_brand,b.id_familia,
|
|
b.ruta_file_ficha,b.ruta_file_ficha1,b.ruta_foto,b.factor_conv,b.online
|
|
FROM iptb00002 a LEFT OUTER JOIN iptb00016 b ON a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo and
|
|
a.cod_tipo = b.cod_tipo and a.cod_Sec = b.cod_Sec ",
|
|
" LEFT OUTER JOIN iptb00001 k1 ON a.cod_n = k1.cod_n AND a.cod_grupo = k1.cod_grupo AND a.cod_tipo = k1.cod_tipo AND ",
|
|
" a.cod_Sec = k1.cod_sec ",
|
|
" LEFT OUTER JOIN vetb00025 k ON k.cod_n = a.cod_n AND k.cod_grupo = a.cod_grupo AND k.cod_tipo = a.cod_tipo AND
|
|
k.cod_sec = a.cod_Sec and k.ventas = '3' ",
|
|
" LEFT OUTER JOIN categorias c ON c.id_categoria = b.id_categoria ",
|
|
" LEFT OUTER JOIN iptb00006 d ON (d.cod_n = a.cod_n and d.cod_grupo = a.cod_grupo and d.cod_tipo = a.cod_tipo and d.cod_sec = a.cod_Sec) ",
|
|
" INNER JOIN intb00009 k2 ON k2.cod_bodega = d.bodega AND k2.control_existencia = 'SI' ",
|
|
" WHERE a.status_t IS NULL AND ",
|
|
" d.status_t is null AND ",
|
|
criterio CLIPPED,
|
|
" GROUP BY a.descrip_esp,a.unidad_med,c.descripcion_esp,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,
|
|
b.nombre_file_foto,b.nombre_file_ficha,b.foto,b.ficha_tecnica,b.cod_n,a.codid,b.descripcion_us,b.descripcion_user, ",
|
|
" b.precio,b.precio_usd,k.precio,b.nombre_file_ficha1,b.id_categoria,b.id_brand,b.id_familia,
|
|
b.ruta_file_ficha,b.ruta_file_ficha1,b.ruta_foto,b.factor_conv,b.online ",
|
|
" ORDER BY a.descrip_esp "
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE buscar CURSOR FOR comando
|
|
|
|
LET idx = 1
|
|
FOREACH buscar INTO arr_productos[idx].*
|
|
LET arr_productos[idx].codigo =arr_productos[idx].codn1 USING "&&&&","-",
|
|
arr_productos[idx].codgrupo1 USING "&&&&",'-',
|
|
arr_productos[idx].codtipo1 USING "&&&&&",'-',
|
|
arr_productos[idx].codsec1 USING "&&&&&"
|
|
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
IF idx = 1 THEN
|
|
RETURN "NO EXISTEN REGISTROS CON ESA CONDICION"
|
|
END IF
|
|
LET cantidadReg = arr_productos.getLength()
|
|
DISPLAY BY NAME cantidadReg
|
|
RETURN "EXITO"
|
|
END FUNCTION
|
|
FUNCTION refrescar()
|
|
|
|
|
|
LET selec = "select '',a.descrip_esp,a.unidad_med,ISNULL(c.descripcion_esp,'NO TIENE'),SUM(d.cantidad_2),isnull(b.precio_usd,k.precio),
|
|
a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,b.nombre_file_foto,b.nombre_file_ficha,b.nombre_file_ficha1,
|
|
b.cod_n,a.codid,b.descripcion_us,b.descripcion_user,b.precio,b.id_categoria,b.id_brand,b.id_familia,
|
|
b.ruta_file_ficha,b.ruta_file_ficha1,b.ruta_foto,b.factor_conv,b.online
|
|
FROM iptb00002 a LEFT OUTER JOIN iptb00016 b ON a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo and
|
|
a.cod_tipo = b.cod_tipo and a.cod_Sec = b.cod_Sec ",
|
|
" LEFT OUTER JOIN iptb00001 k1 ON a.cod_n = k1.cod_n AND a.cod_grupo = k1.cod_grupo AND a.cod_tipo = k1.cod_tipo AND ",
|
|
" a.cod_Sec = k1.cod_sec ",
|
|
" LEFT OUTER JOIN vetb00025 k ON k.cod_n = a.cod_n AND k.cod_grupo = a.cod_grupo AND k.cod_tipo = a.cod_tipo AND
|
|
k.cod_sec = a.cod_Sec and k.ventas = '3' ",
|
|
" LEFT OUTER JOIN categorias c ON c.id_categoria = b.id_categoria ",
|
|
" LEFT OUTER JOIN iptb00006 d ON (d.cod_n = a.cod_n and d.cod_grupo = a.cod_grupo and d.cod_tipo = a.cod_tipo and d.cod_sec = a.cod_Sec) ",
|
|
" WHERE a.status_t IS NULL AND ",
|
|
" d.status_t is null AND ",
|
|
criterio CLIPPED,
|
|
" GROUP BY a.descrip_esp,a.unidad_med,c.descripcion_esp,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,
|
|
b.nombre_file_foto,b.nombre_file_ficha,b.foto,b.ficha_tecnica,b.cod_n,a.codid,b.descripcion_us,b.descripcion_user, ",
|
|
" b.precio,b.precio_usd,k.precio,b.nombre_file_ficha1,b.id_categoria,b.id_brand,b.id_familia,
|
|
b.ruta_file_ficha,b.ruta_file_ficha1,b.ruta_foto,b.factor_conv,b.online ",
|
|
" ORDER BY a.descrip_esp "
|
|
|
|
PREPARE comando1 FROM selec
|
|
DECLARE buscar1 CURSOR FOR comando1
|
|
|
|
LET idx = 1
|
|
FOREACH buscar1 INTO arr_productos[idx].*
|
|
LET arr_productos[idx].codigo =arr_productos[idx].codn1 USING "&&&&","-",
|
|
arr_productos[idx].codgrupo1 USING "&&&&",'-',
|
|
arr_productos[idx].codtipo1 USING "&&&&&",'-',
|
|
arr_productos[idx].codsec1 USING "&&&&&"
|
|
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
FUNCTION rutadefecto()
|
|
|
|
LET filedestino='..\\..\\imagenestienda\\'
|
|
LET fichadestino='..\\..\\imagenestienda\\'
|
|
LET fichadestino1='..\\..\\imagenestienda\\'
|
|
{ LET filedestino = 'C:\\Users\\jsoto\\Documents\\PROYECTOS\\BDL320\\IMAGENES'
|
|
LET fichadestino = 'C:\\Users\\jsoto\\Documents\\PROYECTOS\\BDL320\\IMAGENES'
|
|
LET fichadestino1 = 'C:\\Users\\jsoto\\Documents\\PROYECTOS\\BDL320\\IMAGENES'
|
|
}
|
|
LET url_ficha = 'https://ws.marmotech.com.do/imagenes/'
|
|
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [tmpdir_file] )
|
|
|
|
END FUNCTION |