394 lines
13 KiB
Plaintext
394 lines
13 KiB
Plaintext
IMPORT util
|
|
IMPORT os
|
|
IMPORT security
|
|
DEFINE j INT,
|
|
tasa DEC(10,2),
|
|
pfecha DATE,
|
|
cantidad_orden,pcantidadConduce,transito,existencia,reservado DEC(12,5)
|
|
DEFINE documento DYNAMIC ARRAY OF RECORD
|
|
nombre_file,ruta_file STRING
|
|
END RECORD
|
|
DEFINE galeria DYNAMIC ARRAY OF RECORD
|
|
nombre_file VARCHAR(100),
|
|
ruta_foto STRING,
|
|
imagen BYTE
|
|
END RECORD,
|
|
tmpfile,tmpfile_f1,tmpfile_f2,userfolder,userfolder_g,userfolder_f STRING
|
|
FUNCTION productosnoonline(pdata)
|
|
|
|
DEFINE pdata STRING
|
|
DEFINE contenido_file RECORD
|
|
nombre_file_foto STRING
|
|
# contenido BYTE
|
|
END RECORD
|
|
DEFINE producto RECORD
|
|
codid INT,
|
|
cod_n INT,
|
|
cod_grupo INT,
|
|
cod_tipo INT,
|
|
cod_sec INT,
|
|
descripcion VARCHAR(100),
|
|
unidad_med VARCHAR(4),
|
|
titulo_esp STRING,
|
|
categoria_padre STRING,
|
|
categoria_us ,
|
|
marca STRING,
|
|
meta_data STRING,
|
|
precio_rd FLOAT,
|
|
precio_us FLOAT,
|
|
existencia FLOAT,
|
|
descripcion_larga_es,descripcion_larga_us TEXT,
|
|
internal_id_brand,wooc_id_brand,idcategoria_padre,sub_categoria,parentcode INT,
|
|
sub_categoria_2,
|
|
sub_categoria_3 STRING,
|
|
online VARCHAR(2),
|
|
factor_conv DEC(12,5),
|
|
contenido STRING,
|
|
ruta_file,codigo_ref STRING
|
|
|
|
END RECORD
|
|
DEFINE credenciales RECORD
|
|
usuario,clave VARCHAR(50),
|
|
fecha_actualiza DATE
|
|
END RECORD,
|
|
relacionado RECORD
|
|
codid INT,
|
|
codid_relacionado INT,
|
|
cod_n,cod_grupo, cod_tipo,cod_sec INT,
|
|
descripcion STRING,
|
|
precio FLOAT,
|
|
obligatorio VARCHAR(10)
|
|
END RECORD,
|
|
sugeridos RECORD
|
|
codid INT,
|
|
codid_sugerido INT,
|
|
cod_n,cod_grupo, cod_tipo,cod_sec INT,
|
|
descripcion STRING,
|
|
precio FLOAT,
|
|
obligatorio VARCHAR(10)
|
|
END RECORD
|
|
DEFINE p RECORD
|
|
productos DYNAMIC ARRAY OF RECORD
|
|
codid INT,
|
|
cod_n INT,
|
|
cod_grupo INT,
|
|
cod_tipo INT,
|
|
cod_sec INT,
|
|
descripcion VARCHAR(100),
|
|
unidad_med VARCHAR(4),
|
|
titulo_esp STRING,
|
|
categoria_padre STRING,
|
|
categoria_us ,
|
|
marca STRING,
|
|
meta_data STRING,
|
|
precio_rd FLOAT,
|
|
precio_us FLOAT,
|
|
existencia FLOAT,
|
|
descripcion_larga_es,descripcion_larga_us STRING,
|
|
internal_id_brand,wooc_id_brand,idcategoria_padre,sub_categoria,parentcode INT,
|
|
sub_categoria_2,
|
|
sub_categoria_3 STRING,
|
|
online VARCHAR(2),
|
|
factor_conv DEC(12,5),
|
|
contenido ,
|
|
ruta_file,codigo_ref STRING,
|
|
documentos DYNAMIC ARRAY OF RECORD
|
|
codid INT,
|
|
|
|
tipo_file,nombre_file,ruta_file STRING
|
|
END RECORD
|
|
|
|
END RECORD,
|
|
galerias DYNAMIC ARRAY OF RECORD
|
|
codid INT,
|
|
nombre_file STRING,
|
|
ruta_foto STRING
|
|
END RECORD,
|
|
relacionados DYNAMIC ARRAY OF RECORD
|
|
codid INT,
|
|
codid_relacionado INT,
|
|
cod_n,cod_grupo, cod_tipo,cod_sec INT,
|
|
descripcion STRING,
|
|
precio FLOAT,
|
|
obligatorio VARCHAR(10)
|
|
END RECORD,
|
|
sugeridos DYNAMIC ARRAY OF RECORD
|
|
codid INT,
|
|
codid_sugerido INT,
|
|
cod_n,cod_grupo, cod_tipo,cod_sec INT,
|
|
descripcion STRING,
|
|
precio FLOAT,
|
|
obligatorio VARCHAR(10)
|
|
END RECORD
|
|
|
|
{,
|
|
almacenes DYNAMIC ARRAY OF RECORD
|
|
ubicacion VARCHAR(100),
|
|
codid INT,
|
|
existencia DEC(12,5)
|
|
END RECORD
|
|
}
|
|
,
|
|
mensajes RECORD
|
|
cod_msg INT,
|
|
descripcion STRING
|
|
END RECORD
|
|
END RECORD,
|
|
i,j1,j2,j3,i1,i2 int,
|
|
selec,nombre_f1,nombre_f2 STRING,
|
|
url_files STRING
|
|
|
|
CALL util.JSON.parse(pdata,credenciales)
|
|
IF STATUS < 0 THEN
|
|
LET p.mensajes.cod_msg=STATUS
|
|
LET p.mensajes.descripcion = 'ERROR EN CONEXION ',SQLCA.sqlerrm
|
|
RETURN util.JSON.stringify(p)
|
|
|
|
END IF
|
|
|
|
CONNECT TO "smarmotech" USER credenciales.usuario USING credenciales.clave
|
|
IF STATUS < 0 THEN
|
|
LET p.mensajes.cod_msg=STATUS
|
|
LET p.mensajes.descripcion = 'ERROR EN CONEXION ',SQLCA.sqlerrm
|
|
DISCONNECT CURRENT
|
|
RETURN util.JSON.stringify(p)
|
|
END IF
|
|
DISPLAY "<PRODUCTOSTODOS>USUARIO: ",credenciales.usuario," pass ",credenciales.clave," ",credenciales.fecha_actualiza
|
|
|
|
#EXSTENCIA
|
|
|
|
#(SELECT SUM(k.cantidad_2) FROM iptb00006 k WHERE (a.cod_n = k.cod_n and a.cod_grupo = k.cod_grupo AND a.cod_tipo = k.cod_tipo and
|
|
# a.cod_sec = k.cod_sec) AND k.status_t IS NULL)
|
|
|
|
LET pfecha = TODAY
|
|
# BUSCA LA TASA VIGENTE EN EL SISTEMA
|
|
SELECT a.prima INTO tasa FROM vetb00019 a WHERE a.disponible = 'S'
|
|
LET selec =
|
|
"SELECT a.codid,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,
|
|
a.descripcion , a.unidad_med,
|
|
a.descripcion_user ,
|
|
f.descripcion_esp,
|
|
f.descripcion_us,
|
|
k11.descripcion,
|
|
a.metadata,
|
|
a.precio,
|
|
a.precio_usd
|
|
,a.disponible
|
|
,a.propiedades
|
|
,a.propiedades1
|
|
, k11.id_brand
|
|
,k11.code
|
|
, f.code
|
|
, k10.code
|
|
, k14.id_subfamilia
|
|
, k10.descripcion
|
|
, ISNULL(k14.titulo,'NO TIENE')
|
|
, a.online
|
|
, a.factor_conv
|
|
,' '
|
|
,a.ruta_foto
|
|
,' '
|
|
,a.nombre_file_foto
|
|
,'NO'
|
|
|
|
FROM iptb00016 a
|
|
LEFT OUTER JOIN categorias f ON (a.id_categoria = f.id_categoria)
|
|
LEFT OUTER JOIN familia k10 on a.id_familia = k10.id_familia
|
|
LEFT OUTER JOIN familia_sub k14 on k14.id_familia = a.id_familia and k14.id_subfamilia = a.id_subfamilia
|
|
LEFT OUTER JOIN brand k11 ON k11.id_brand = a.id_brand
|
|
LEFT OUTER JOIN product_collection k12 ON k12.id_collection = a.id_product_collection
|
|
where
|
|
a.status_t IS NULL AND
|
|
a.online ='NO' ",
|
|
|
|
" ORDER BY a.codid"
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE c2 CURSOR FOR comando
|
|
|
|
LET selec = "SELECT a.codid,a.codid_relacionado,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descripcion,
|
|
a.precio,RTRIM(a.obligatorio) FROM
|
|
iptb00038 a WHERE a.codid = ? "
|
|
PREPARE rcomando FROM SELEC
|
|
DECLARE busca_r CURSOR FOR rcomando
|
|
|
|
LET selec = "SELECT a.codid,a.codid_sugerido,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descripcion,
|
|
a.precio,RTRIM(a.obligatorio) FROM
|
|
iptb00039 a WHERE a.codid = ? "
|
|
PREPARE scomando FROM SELEC
|
|
DECLARE busca_s CURSOR FOR scomando
|
|
|
|
# LET selec = "SELECT 'OUTLET' ,a.codid,sum(a.cantidad_2) FROM iptb00006 a WHERE a.bodega = 22 and a.status_t is null ",
|
|
# " AND a.codid = ? ",
|
|
# "ORDER BY a.codid"
|
|
# PREPARE almacen FROM selec
|
|
# DECLARE buscaalm CURSOR FOR almacen
|
|
|
|
LET i = 1
|
|
LET i1 =1
|
|
LET j = 1
|
|
LET j1 = 1
|
|
|
|
# DE ESTA FORMA ES QUE ESTABAN LOS DRIVE
|
|
LET userfolder="e:\\imagenestienda\\"
|
|
LET userfolder_g="e:\\imagenestienda\\"
|
|
LET userfolder_f="e:\\imagenestienda\\"
|
|
|
|
|
|
|
|
{
|
|
LET cmdfiles = 'DEL /Q ', userfolder CLIPPED,'*.*'
|
|
RUN cmdfiles
|
|
LET cmdfiles = 'DEL /Q ',userfolder_g CLIPPED,'*.*'
|
|
RUN cmdfiles
|
|
LET cmdfiles ='DEL /Q ',userfolder_f CLIPPED,'*.*'
|
|
RUN cmdfiles
|
|
}
|
|
# PARA PRUEBAS
|
|
# LET url_files = 'http://200.88.67.188:2089/imagenes/'
|
|
LET url_files = 'https://ws.marmotech.com.do/imagenes/'
|
|
#DISPLAY "path ",fgl_getenv('PATH')
|
|
|
|
#LOCATE contenido_file.contenido IN MEMORY
|
|
LOCATE producto.descripcion_larga_es IN MEMORY
|
|
LOCATE producto.descripcion_larga_us IN MEMORY
|
|
|
|
FOREACH c2 INTO producto.*,contenido_file.*
|
|
|
|
|
|
IF contenido_file.nombre_file_foto IS NULL THEN
|
|
LET producto.ruta_file = 'NO TIENE'
|
|
END IF
|
|
|
|
# IF producto.existencia IS NULL OR producto.existencia < 0.959 THEN
|
|
# LET producto.existencia =0
|
|
# CONTINUE FOREACH
|
|
# END IF
|
|
|
|
LET producto.ruta_file = url_files ,contenido_file.nombre_file_foto CLIPPED
|
|
LET nombre_f1 = producto.codid USING "<<<<<<","-esp.txt"
|
|
LET nombre_f2 =producto.codid USING "<<<<<<","-us.txt"
|
|
LET tmpfile_f1 = userfolder_f CLIPPED,nombre_f1 CLIPPED
|
|
LET tmpfile_f2 = userfolder_f CLIPPED,nombre_f2 CLIPPED
|
|
LET producto.codigo_ref = producto.cod_n USING "&&&&","-",producto.cod_grupo USING "&&&&&","-",
|
|
producto.cod_tipo USING "&&&&&",'-',producto.cod_sec USING "&&&&&&&"
|
|
|
|
LET p.productos[i].descripcion_larga_es = producto.descripcion_larga_es
|
|
LET p.productos[i].descripcion_larga_us = producto.descripcion_larga_us
|
|
|
|
LET p.productos[i].codid = producto.codid
|
|
LET p.productos[i].categoria_padre = producto.categoria_padre
|
|
LET p.productos[i].categoria_us = producto.categoria_us
|
|
LET p.productos[i].cod_grupo = producto.cod_grupo
|
|
LET p.productos[i].cod_n = producto.cod_n
|
|
LET p.productos[i].cod_sec = producto.cod_sec
|
|
LET p.productos[i].cod_tipo = producto.cod_tipo
|
|
LET p.productos[i].descripcion = producto.descripcion
|
|
|
|
LET p.productos[i].existencia = producto.existencia
|
|
LET p.productos[i].meta_data = producto.meta_data
|
|
LET p.productos[i].precio_rd = producto.precio_us * tasa
|
|
LET p.productos[i].precio_us = producto.precio_us
|
|
LET p.productos[i].ruta_file = producto.ruta_file
|
|
|
|
|
|
LET p.productos[i].titulo_esp = producto.titulo_esp
|
|
LET p.productos[i].unidad_med = producto.unidad_med
|
|
|
|
LET p.productos[i].parentcode = producto.parentcode
|
|
LET p.productos[i].sub_categoria_2 = producto.sub_categoria_2 CLIPPED
|
|
LET p.productos[i].sub_categoria_3 = producto.sub_categoria_3 CLIPPED
|
|
LET p.productos[i].marca = producto.marca CLIPPED
|
|
LET p.productos[i].codigo_ref = producto.codigo_ref
|
|
LET p.productos[i].online = producto.online
|
|
LET p.productos[i].factor_conv = producto.factor_conv
|
|
|
|
# RELACIONADOS
|
|
LET j2 = 1
|
|
OPEN busca_r USING producto.codid
|
|
FOREACH busca_r INTO relacionado.*
|
|
LET p.relacionados[j2].* = relacionado.*
|
|
LET j2 = j2 +1
|
|
END FOREACH
|
|
# SUGERIDOS
|
|
|
|
LET j2 = 1
|
|
OPEN busca_s USING producto.codid
|
|
FOREACH busca_s INTO sugeridos.*
|
|
|
|
LET p.sugeridos[j2].* = sugeridos.*
|
|
LET j2 = j2 +1
|
|
END FOREACH
|
|
# OUTLET
|
|
# LET j2 = 1
|
|
# OPEN buscaalm USING producto.codid
|
|
|
|
# FOREACH buscaalm INTO p.almacenes[j2].*
|
|
# LET j2 = j2 +1
|
|
# END FOREACH
|
|
|
|
CALL galeriasno(producto.codid)
|
|
FOR j = 1 TO galeria.getLength()
|
|
LET p.galerias[j1].codid = producto.codid
|
|
LET p.galerias[j1].nombre_file = galeria[j].nombre_file
|
|
LET p.galerias[j1].ruta_foto = url_files CLIPPED,galeria[j].nombre_file
|
|
|
|
LET j1 = j1 + 1
|
|
END FOR
|
|
|
|
CALL fichano(producto.codid)
|
|
FOR j3 = 1 TO documento.getLength()
|
|
IF documento[j3].nombre_file IS NOT NULL THEN
|
|
LET p.productos[i].documentos[j3].codid = producto.codid
|
|
LET p.productos[i].documentos[j3].nombre_file = documento[j3].nombre_file
|
|
LET p.productos[i].documentos[j3].ruta_file = documento[j3].ruta_file
|
|
LET p.productos[i].documentos[j3].tipo_file = 'FT'
|
|
LET i1 = i1 + 1
|
|
END IF
|
|
END FOR
|
|
|
|
LET i = i + 1
|
|
|
|
END FOREACH
|
|
|
|
DISPLAY "NUMERO DE REGISTROS ",i
|
|
DISCONNECT CURRENT
|
|
RETURN util.JSON.stringify(p)
|
|
|
|
END FUNCTION
|
|
FUNCTION galeriasno(pcodid)
|
|
DEFINE pcodid,k INT,
|
|
imagen BYTE,
|
|
fileuser STRING
|
|
|
|
|
|
DECLARE busca_galeria CURSOR FOR
|
|
SELECT a.nombre_file,a.ruta_file_foto, a.codid FROM iptb00018 a
|
|
WHERE a.codid = pcodid
|
|
ORDER BY a.codid
|
|
LET k = 1
|
|
LOCATE imagen IN MEMORY
|
|
FOREACH busca_galeria INTO galeria[k].nombre_file
|
|
|
|
LET k = k + 1
|
|
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
FUNCTION fichano(pcodid)
|
|
DEFINE pcodid,k1,i INT
|
|
DECLARE busca_ficha CURSOR FOR
|
|
SELECT nombre_file_ficha,a.ruta_file_ficha FROM iptb00016 a
|
|
WHERE a.status_t IS NULL AND a.ruta_file_ficha IS NOT NULL AND a.codid = pcodid
|
|
ORDER BY a.codid
|
|
LET k1 = 1
|
|
FOREACH busca_ficha INTO documento[k1].*
|
|
LET k1 = k1 +1
|
|
END FOREACH
|
|
FOR i = 1 TO documento.getLength()
|
|
IF documento[i].nombre_file IS NULL THEN
|
|
CALL documento.deleteElement(i)
|
|
END IF
|
|
END FOR
|
|
END FUNCTION
|