IMPORT util IMPORT os IMPORT com TYPE t_sync_cmd RECORD oper STRING, data STRING END RECORD FUNCTION reporte(url) DEFINE url STRING DEFINE p RECORD cotizaciones RECORD cotizacion_no INT, fecha DATE, ventas VARCHAR(1), tipo_cliente SMALLINT, sec_cliente INT, nombre VARCHAR(100), rnc VARCHAR(11), nombre_proyecto VARCHAR(60), direccion_proyecto VARCHAR(60), direccion_cliente VARCHAR(80), cond_pago SMALLINT, descripcion VARCHAR(50), celular VARCHAR(15), email VARCHAR(60), sec_vend INT, total_bruto DEC(12,2), monto_desc DEC(12,2), monto_itbis DEC(12,2), total_cotizacion DEC(12,2), contacto VARCHAR(60), nombre_ciudad VARCHAR(60), telefono_o VARCHAR(20), telefono_r VARCHAR(20), celular1 VARCHAR(20), soporte VARCHAR(200), instalador VARCHAR(200), vendedor_aux VARCHAR(100), sec_vend_aux INT, cod_provincia SMALLINT, nombre_vend VARCHAR(60), porc_itbis DEC(8,2), plazo_entrega VARCHAR(100), comentario VARCHAR(100), usuario VARCHAR(50), clave VARCHAR(50), etiqueta_cotizacion VARCHAR(60), cod_zona SMALLINT, codigo VARCHAR(10), guiId STRING, sincronizado BOOLEAN, tipo_documento CHAR(10), bodega INT, titulo_bodega VARCHAR(100) END RECORD, detalles DYNAMIC ARRAY OF RECORD secuencia INT, area SMALLINT, descripcion_area CHAR(50), codid VARCHAR(25), codigo VARCHAR(20), cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, # descripcion VARCHAR(100), cantidad DEC(12,5), cantidad1 DEC(12,5), precio DEC(12,2), porc_desc DEC(12,2), itbis DEC(12,2), valor DEC(12,2), cantidad_reservada DEC(12,5), fecha_inicio_reserva DATE, fecha_vence_reserva DATE, autorizada VARCHAR(10), idkit INT END RECORD, pprima,pitbis DEC(12,8), puser,pfecha_crea STRING END RECORD DEFINE rep_out RECORD generales RECORD cotizcion_no INT, contenido STRING, nomb_arch STRING, cod_msg SMALLINT, mensaje_out,valorBruto,valorDescuento,valorItbis,valorNeto STRING END RECORD, detalles DYNAMIC ARRAY OF RECORD codid,area,cod_n,cod_grupo,cod_tipo,cod_sec INT, titulo STRING, cantidad1,cantidad,valorBruto,valorDescuento,valorItbis,valorTotal DEC(12,2) END RECORD END RECORD , detalles_out DYNAMIC ARRAY OF RECORD codid,area,cod_n,cod_grupo,cod_tipo,cod_sec INT, titulo STRING, cantidad1,cantidad,valorBruto,valorDescuento,valorItbis,valorTotal DEC(12,2) END RECORD DEFINE s,archivo,res,msg STRING, r_cmd t_sync_cmd, ret INT # LET p.cotizaciones.cotizacion_no = 263010 LET p.cotizaciones.fecha =TODAY LET p.cotizaciones.etiqueta_cotizacion='COTIZACION' LET p.cotizaciones.ventas ='1' LET p.cotizaciones.tipo_cliente =15 LET p.cotizaciones.sec_cliente=9729 LET p.cotizaciones.nombre ='CONSTRU IMPERMEABILIZADORA FURCAL modificada' LET p.cotizaciones.rnc = '130387214' LET p.cotizaciones.cod_provincia =1 LET p.cotizaciones.nombre_proyecto ='ESCALERAS' LET p.cotizaciones.direccion_proyecto='CALLE PRIMEREA RES. SOL CRECIENTE MODIFICADA' LET p.cotizaciones.direccion_cliente = 'RESIDENCIAL SOL CRECIENTE' LET p.cotizaciones.telefono_o='(809)747-3187' LET p.cotizaciones.telefono_r='(829)847-3878' LET p.cotizaciones.cond_pago = 2 LET p.cotizaciones.descripcion = '30 DUAS' LET p.cotizaciones.celular = '829-847-3878' LET p.cotizaciones.email = 'juan.f.sotoc@gmail.com' LET p.cotizaciones.sec_vend = 3555 LET p.cotizaciones.nombre_vend = 'JUAN SOTO' LET p.cotizaciones.total_bruto =1 LET p.cotizaciones.monto_desc =0 LET p.cotizaciones.porc_itbis =18 LET p.cotizaciones.monto_itbis =0 LET p.cotizaciones.total_cotizacion = 0 LET p.cotizaciones.etiqueta_cotizacion= 'COTIZACION' LET p.cotizaciones.plazo_entrega = '20 DIAS DESPUES' LET p.cotizaciones.comentario = 'ESTE ES EL EJEMPLO DEL COMENTARIO' LET p.cotizaciones.usuario = 'jsoto' LET p.cotizaciones.clave='lmmjvsd2014' LET p.cotizaciones.cod_zona=1 LET p.cotizaciones.codigo='DO' LET p.cotizaciones.guiId = 'STR_GUIID' LET p.cotizaciones.sincronizado=TRUE LET p.cotizaciones.bodega = 1 LET p.cotizaciones.titulo_bodega = 'PLANTA' # SELECT a.descrip_esp,a.imagen INTO p.detalles[1].descripcion ,p.detalles[1].imagen # FROM iptb00002 a WHERE a.cod_n = 19 AND a.cod_grupo = 668 AND # a.cod_tipo = 178 AND a.cod_Sec = 1079 LET p.detalles[1].secuencia=1 LET p.detalles[1].area=1 LET p.detalles[1].descripcion_area = 'AREA GENERAL' LET p.detalles[1].codid = '132' LET p.detalles[1].codigo ='1-104-2-78' LET p.detalles[1].cod_n =1 LET p.detalles[1].cod_grupo=104 LET p.detalles[1].cod_tipo=2 LET p.detalles[1].cod_sec=78 # LET p.detalles[1].descripcion='KIT CUBRE MOCHETA: 80mm/ SP' LET p.detalles[1].cantidad = 10 LET p.detalles[1].cantidad1=10 LET p.detalles[1].precio = 2433 LET p.detalles[1].porc_desc=30 LET p.detalles[1].itbis =18 LET p.detalles[1].valor =0 LET p.detalles[1].idkit=null LET p.detalles[1].cantidad_reservada=1000 LET p.detalles[1].fecha_inicio_reserva='09/20/2019' LET p.detalles[1].fecha_vence_reserva='09/26/2019' LET p.detalles[1].autorizada='SI' LET p.detalles[2].secuencia=2 LET p.detalles[2].area=1 LET p.detalles[2].descripcion_area = 'AREA GENERAL' LET p.detalles[2].codid = '3891' LET p.detalles[2].codigo ='33-668-62-758' LET p.detalles[2].cod_n =33 LET p.detalles[2].cod_grupo=668 LET p.detalles[2].cod_tipo=62 LET p.detalles[2].cod_sec=758 # LET p.detalles[1].descripcion='KIT CUBRE MOCHETA: 80mm/ SP' LET p.detalles[2].cantidad = 5 LET p.detalles[2].cantidad1=5 LET p.detalles[2].precio = 735 LET p.detalles[2].porc_desc=5 LET p.detalles[2].itbis =18 LET p.detalles[2].valor =0 LET p.detalles[2].idkit=null LET p.detalles[2].cantidad_reservada=1 LET p.detalles[2].fecha_inicio_reserva='03/17/2023' LET p.detalles[2].fecha_vence_reserva='03/23/2023' LET p.detalles[2].autorizada='SI' # LET p.detalles[2].descripcion='LAVAMANO SOHO LANTANA C/SEMI-PEDESTAL BLANCO 3048D' { LET p.detalles[2].cantidad = 2 LET p.detalles[2].cantidad1=2 LET p.detalles[2].precio = 500 LET p.detalles[2].porc_desc=0 LET p.detalles[2].itbis =18 LET p.detalles[2].valor =518 } LET r_cmd.oper = 'rep_cotizacion' LET r_cmd.data = util.JSON.stringify(p) LET s = util.JSON.stringify(r_cmd) CALL sync_send_command(url, s) RETURNING ret, res IF ret == 0 THEN CALL util.JSON.parse(res, rep_out) # CALL util.JSON.parse(res,p.rep_out) ELSE LET msg=SFMT(%"Connection '%1' failed",r_cmd.oper),"\n",url,"\n",res # CALL show_sync_err(msg) END IF IF rep_out.generales.nomb_arch="ERROR" THEN ERROR "Se ha producido un error al generar el reporte" ELSE # CALL check_create_folder("ArchRecibidos") LET archivo="ArchRecibidos/",rep_out.generales.nomb_arch # DISPLAY "files ",archivo # CALL b64_to_file(rep_out.contenido,archivo) # CALL ver_archivo(archivo) END IF DISPLAY "COTIZACION ",res END FUNCTION