Files
MBS/WEBSERVICES/repcotizacion.4gl
T

225 lines
8.8 KiB
Plaintext

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