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 "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