IMPORT util FUNCTION cotizacion() DEFINE s STRING DEFINE p RECORD cotizaciones DYNAMIC ARRAY OF RECORD cotizacion_no INT, fecha DATE, ventas VARCHAR(1), tipo_cliente SMALLINT, sec_cliente INT, nombre VARCHAR(80), rnc VARCHAR(11), nombre_proyecto VARCHAR(50), direccion_proyecto VARCHAR(50), direccion_cliente VARCHAR(50), 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), us_crea VARCHAR(50), us_mod VARCHAR(50), fech_crea DATETIME YEAR TO MINUTE, fech_mod DATETIME YEAR TO MINUTE END RECORD, detalles DYNAMIC ARRAY OF RECORD cotizacion_no INT, area SMALLINT, descripcion_area CHAR(50), cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descripcion VARCHAR(80), 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) , codid INT, guiid STRING, sincronizado BOOLEAN END RECORD, pprima,pitbis DEC(12,2), puser,pfecha_crea VARCHAR(50) END RECORD , pcotizacion_no INT DEFINE cotizacion RECORD cotizacion_no INT, fecha DATE, ventas VARCHAR(1), tipo_cliente SMALLINT, sec_cliente INT, nombre VARCHAR(80), rnc VARCHAR(11), nombre_proyecto VARCHAR(50), direccion_proyecto VARCHAR(50), direccion_cliente VARCHAR(50), 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), us_crea VARCHAR(50), us_mod VARCHAR(50), fech_crea DATETIME YEAR TO MINUTE, fech_mod DATETIME YEAR TO MINUTE END RECORD DEFINE detalle RECORD cotizacion_no INT, area SMALLINT, descripcion_area CHAR(50), cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descripcion VARCHAR(80), 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) , codid INT, guiid STRING, sincronizado BOOLEAN END RECORD DEFINE r RECORD ERROR STRING --max_order_num LIKE orders.order_num, --max_customer_num LIKE customer.customer_num END RECORD DEFINE i INT TRY CALL util.JSON.parse(s, p) CATCH LET r.error = "FGL ERROR: ", err_get(status) RETURN util.JSON.stringify(r) END TRY SELECT a.cotizacion_no INTO pcotizacion_no FROM vetb00053 a LET pcotizacion_no = pcotizacion_no + 1 # BEGIN WORK DECLARE cu21 CURSOR FOR INSERT INTO cotizacion_detalle ( cotizacion_no_mob , area , descripcion_area , cod_n , cod_grupo , cod_tipo , cod_sec , descripcion , cantidad , cantidad1 , precio , porc_desc , itbis , valor , codid , guiid, sincronizado ) VALUES(detalle.*) OPEN cu21 DECLARE cu20 CURSOR FOR INSERT INTO cotizacion ( cotizacion_no_mob , fecha , ventas , tipo_cliente , sec_cliente , nombre , rnc , nombre_proyecto , direccion_proyecto , direccion_cliente , cond_pago , descripcion , celular , email , sec_vend , total_bruto , monto_desc , monto_itbis , total_cotizacion , us_crea , us_mod , fech_crea , fech_mod ) VALUES(cotizacion.*) OPEN cu20 FOR i = 1 TO p.cotizaciones.getLength() LET cotizacion.* = p.cotizaciones[i].* INSERT INTO vetb00050 ( cod_cia ,ventas ,cotizacion_no ,tipo_cliente ,sec_cliente ,nombre_cliente ,rnc , nombre_proyecto, direccion_cliente, direccion_proyecto, email ,celular ,prima,porc_itbi, fecha , comentario ,cond_pago , sec_vend , total_bruto,sub_total,monto_desc,monto_itbi,total_neto, us_crea,fech_crea,cod_provincia) VALUES ("1",cotizacion.ventas,pcotizacion_no,cotizacion.tipo_cliente,cotizacion.sec_cliente, cotizacion.nombre,cotizacion.rnc,cotizacion.nombre_proyecto,cotizacion.direccion_cliente, cotizacion.direccion_proyecto,cotizacion.email,cotizacion.celular,P.pprima,P.pitbis,cotizacion.fecha, cotizacion.descripcion,cotizacion.cond_pago,cotizacion.sec_vend,cotizacion.total_bruto, cotizacion.total_bruto-cotizacion.monto_desc,cotizacion.monto_desc,cotizacion.monto_itbis, cotizacion.total_cotizacion, P.puser,p.pfecha_crea,"1") LET pcotizacion_no = pcotizacion_no + 1 PUT cu20 END FOR CLOSE cu20 FOR i = 1 TO p.detalles.getLength() IF p.detalles[i].cod_n IS NOT NULL THEN LET detalle.* = p.detalles[i].* INSERT INTO vetb00051 (cod_cia,ventas,cotizacion_no,area,descripcion_area,cod_n,cod_grupo,cod_tipo,cod_Sec,descripcion,cantidad,cantidad_1,porc_desc,precio,guiid,sincronizado) VALUES ('1',cotizacion.ventas,pcotizacion_no,p.detalles[i].area,p.detalles[i].descripcion_area, p.detalles[i].cod_n,p.detalles[i].cod_grupo, p.detalles[i].cod_tipo,p.detalles[i].cod_sec,p.detalles[i].descripcion, p.detalles[i].cantidad,p.detalles[i].cantidad1, p.detalles[i].porc_desc,p.detalles[i].precio,p.detalles[i].guiid,p.detalles[i].sincronizado) PUT cu21 END IF END FOR # COMMIT WORK CLOSE cu21 UPDATE cotizacion SET cotizacion_no = pcotizacion_no WHERE cotizacion_no_mob = cotizacion.cotizacion_no UPDATE cotizacion_detalle SET cotizacion_no = pcotizacion_no WHERE cotizacion_no_mob = cotizacion.cotizacion_no UPDATE vetb00053 SET cotizacion_no =pcotizacion_no LET r.ERROR='INSERTE COTIZACION, VERIFIQUE SISTEMA DESKTOP' RETURN util.JSON.stringify(r) END FUNCTION