218 lines
7.1 KiB
Plaintext
218 lines
7.1 KiB
Plaintext
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
|