451 lines
18 KiB
Plaintext
451 lines
18 KiB
Plaintext
GLOBALS
|
|
DEFINE usuarios,clave CHAR(50)
|
|
END GLOBALS
|
|
MAIN
|
|
#WHENEVER ERROR CONTINUE
|
|
DEFER INTERRUPT
|
|
CALL arg_val(1) RETURNING usuarios
|
|
CALL arg_val(2) RETURNING clave
|
|
CALL startlog("impordenes.log")
|
|
# CALL extraer()
|
|
CALL importar()
|
|
END MAIN
|
|
|
|
FUNCTION IMPORTAR()
|
|
DEFINE FILEPATH,FILEPATHt CHAR(80),
|
|
OPERATIVO CHAR(30),
|
|
caracter CHAR(2)
|
|
|
|
DEFINE eorden,progreso INT,
|
|
ptipo_cliente SMALLINT,
|
|
psec_cliente INT,
|
|
pnombre CHAR(50),
|
|
pcod_zona SMALLINT,
|
|
pcod_provincia SMALLINT,
|
|
ptelefono CHAR(16),
|
|
pfax CHAR(16),
|
|
ptelex CHAR(16),
|
|
ppatente CHAR(11),
|
|
plimite_credito dec(10,2) ,
|
|
pzona_postal CHAR(10),
|
|
pnum_rnc CHAR(11),
|
|
pnombre_patente CHAR(11),
|
|
fecha_trx DATE,
|
|
porden RECORD
|
|
num_oc INT,
|
|
fecha_oc CHAR(10),
|
|
nombre_file CHAR(40),
|
|
sec_vend INT,
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente SMALLINT,
|
|
direccion CHAR(80),
|
|
telefono CHAR(80),
|
|
cond_pago SMALLINT,
|
|
cantidad_i DEC(12,5),
|
|
precio_i DEC(12,2),
|
|
cantidad_mo DEC(12,5),
|
|
precio_mo DEC(12,2),
|
|
transporte DEC(10,2),
|
|
itbis DEC(12,2),
|
|
cotizacion_no INT,
|
|
us_crea CHAR(50)
|
|
|
|
END RECORD,
|
|
xdetalle RECORD
|
|
num_oc INT,
|
|
secuencia SMALLINT,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT ,
|
|
cod_tipo SMALLINT,
|
|
cod_Sec SMALLINT,
|
|
cantidad DEC(12,5),
|
|
precio DEC(12,2),
|
|
descuento DEC(12,2),
|
|
us_crea CHAR(50)
|
|
END RECORD,
|
|
xcotizacion RECORD
|
|
cod_cia SMALLINT,
|
|
cotizacion_no INT,
|
|
fecha CHAR(10),
|
|
ventas CHAR(1),
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente INT,
|
|
nombre_cliente CHAR(100),
|
|
rnc CHAR(11) ,
|
|
direccion_cliente CHAR(100),
|
|
cod_provincia SMALLINT,
|
|
cond_pago SMALLINT,
|
|
sec_vend SMALLINT,
|
|
porc_itbi DEC(12,2),
|
|
total_bruto DEC(12,2),
|
|
sub_total DEC(12,2),
|
|
monto_desc DEC(12,2),
|
|
monto_itbi DEC(12,2),
|
|
total_neto DEC(12,2),
|
|
direccion_proyecto CHAR(100),
|
|
us_crea CHAR(50)
|
|
END RECORD,
|
|
xcotizacion_detalle RECORD
|
|
cotizacion_no INT,
|
|
cod_Cia SMALLINT,
|
|
ventas CHAR(1),
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_Sec SMALLINT,
|
|
cantidad_1 DEC(12,5),
|
|
cantidad DEC(12,5),
|
|
precio DEC(12,5),
|
|
porc_desc DEC(12,5),
|
|
us_crea CHAR(50)
|
|
END RECORD
|
|
OPEN FORM f FROM "impimportar"
|
|
DISPLAY FORM f
|
|
|
|
LET OPERATIVO = FGL_GETENV("OP")
|
|
IF operativo IS NULL THEN
|
|
CALL FGL_WINMESSAGE( "Servero","LA VARIABLE <OP> NO ESTA SETADA, FAVOR DE INDICAR EL SISTEMA OP", "stop" )
|
|
EXIT PROGRAM
|
|
END IF
|
|
DISPLAY BY NAME operativo
|
|
|
|
# EXTRAER INFORMACION
|
|
|
|
LET filepath = FGL_GETENV("FILEPATH")
|
|
IF filepath IS NULL THEN
|
|
CALL FGL_WINMESSAGE( "Servero","LA VARIABLE <FILEPATH> NO ESTA SETADA, FAVOR DE INDICAR LA DIRECCION DEL FOLDER DONDE SE GENERAN LAS INFORMACIONES TEMPORALES","stop")
|
|
EXIT PROGRAM
|
|
END IF
|
|
|
|
LET progreso = 10
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
CONNECT TO "marmotech" AS "ex"
|
|
SELECT CONVERT(CHAR(10),MAX(a.fecha_oc),103) INTO fecha_trx FROM prtb00012 a
|
|
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
|
|
IF operativo = 'LINUX' THEN
|
|
LET caracter = '/'
|
|
ELSE
|
|
LET caracter = '\\'
|
|
|
|
END IF
|
|
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"prtb12.txt"
|
|
|
|
DISPLAY filepatht TO nombretabla
|
|
|
|
UNLOAD TO filepatht SELECT a.num_oc,CONVERT(CHAR(10),fecha_oc,103),a.nombre_file,a.sec_vend,
|
|
a.tipo_cliente,a.sec_cliente,a.direccion,a.telefono,
|
|
a.cond_pago,a.cantidad_i,a.precio_i,
|
|
a.cantidad_mo,a.precio_mo,a.transporte,a.itbis,a.cotizacion_no,'PROCESO'
|
|
|
|
FROM prtb00012 a,vetb00060 b
|
|
WHERE a.fecha_oc >= fecha_trx AND
|
|
a.tipo_cliente = b.tipo_cliente AND
|
|
b.paga_itbis = "S" and
|
|
a.status_t IS null
|
|
LET progreso = 20
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
LET filepatht = NULL
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"prtb13.txt"
|
|
|
|
DISPLAY filepatht TO nombretabla
|
|
|
|
UNLOAD TO filepatht SELECT a.num_oc,a.secuencia,a.cod_n,a.cod_grupo,a.cod_tipo,
|
|
a.cod_Sec,a.cantidad,a.precio,a.descuento,'PROCESO'
|
|
FROM prtb00013 a,prtb00012 b,vetb00060 c
|
|
WHERE a.num_oc = b.num_oc AND b.fecha_oc >= fecha_trx AND
|
|
b.tipo_cliente = c.tipo_cliente AND c.paga_itbis = "S" AND
|
|
b.status_t IS null
|
|
|
|
LET filepatht = NULL
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb04.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
UNLOAD TO filepatht SELECT DISTINCT a.tipo_cliente,a.sec_cliente,a.nombre,
|
|
a.cod_zona,a.cod_provincia,a.telefono,
|
|
a.fax,a.telex,a.patente,a.limite_credito,
|
|
a.zona_postal,a.num_rnc,a.nombre_patente,'PROCESO'
|
|
|
|
FROM vetb00004 a, prtb00012 b,vetb00060 c
|
|
WHERE a.tipo_cliente = B.tipo_cliente AND
|
|
a.sec_cliente = b.sec_cliente AND
|
|
b.fecha_oc >= fecha_trx AND
|
|
a.tipo_cliente = c.tipo_cliente AND
|
|
c.paga_itbis = "S" AND
|
|
b.status_t IS null
|
|
|
|
LET progreso = 40
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
LET filepatht = NULL
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb05.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
UNLOAD TO filepatht SELECT DISTINCT a.tipo_cliente,a.sec_cliente,
|
|
calle,a.casa_num,a.barrio,
|
|
a.urbanizacion,'PROCESO'
|
|
FROM vetb00005 a,vetb00060 c
|
|
WHERE a.tipo_cliente = c.tipo_cliente AND c.paga_itbis = "S" AND
|
|
a.status_t is null
|
|
|
|
|
|
LET filepatht = NULL
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb28.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
UNLOAD TO filepatht SELECT DISTINCT a.tipo_cliente,a.sec_cliente,
|
|
a.sec_vend,'PROCESO'
|
|
FROM vetb00028 a,vetb00060 c
|
|
WHERE a.tipo_cliente = c.tipo_cliente AND
|
|
c.paga_itbis = "S"
|
|
{ ESTE FILTRA SOLO LAS ORDENES QUE NECESITA UNLOAD TO filepatht SELECT DISTINCT a.tipo_cliente,a.sec_cliente,
|
|
a.sec_vend,'PROCESO'
|
|
FROM vetb00028 a, prtb00012 b
|
|
WHERE a.tipo_cliente = B.tipo_cliente AND
|
|
a.sec_cliente = b.sec_cliente and
|
|
b.num_oc > eorden
|
|
}
|
|
|
|
LET filepatht = NULL
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb49.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
UNLOAD TO filepatht SELECT DISTINCT a.tipo_cliente,a.sec_cliente,
|
|
a.nombre_proyecto,a.direccion_proyecto,
|
|
'PROCESO'
|
|
FROM vetb00049 a, prtb00012 b,vetb00060 c
|
|
WHERE a.tipo_cliente = B.tipo_cliente AND
|
|
a.sec_cliente = b.sec_cliente and
|
|
b.fecha_oc >= fecha_trx AND
|
|
a.tipo_cliente = c.tipo_cliente AND
|
|
c.paga_itbis = "S"
|
|
|
|
LET progreso = 50
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
LET filepatht = NULL
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb50.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
UNLOAD TO filepatht SELECT DISTINCT a.cod_cia,a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),
|
|
a.ventas,a.tipo_cliente,a.sec_cliente,
|
|
a.nombre_cliente,a.rnc,a.direccion_cliente,
|
|
a.cod_provincia,a.cond_pago,a.sec_vend,
|
|
a.porc_itbi,a.total_bruto,a.sub_total,
|
|
a.monto_desc,a.monto_itbi,a.total_neto,a.direccion_proyecto,'PROCESO'
|
|
FROM vetb00050 a,prtb00012 b ,vetb00060 c
|
|
where a.tipo_cliente is not null and
|
|
a.sec_cliente is not NULL AND
|
|
a.cotizacion_no = b.cotizacion_no AND
|
|
b.fecha_oc >= fecha_trx AND
|
|
a.tipo_cliente = c.tipo_cliente AND
|
|
c.paga_itbis = "S" AND
|
|
b.status_t IS NULL AND
|
|
a.status_t IS null
|
|
|
|
LET progreso = 55
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
LET filepatht = NULL
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb51.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
|
|
UNLOAD TO filepatht SELECT DISTINCT a.cotizacion_no,a.cod_Cia,a.ventas,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,
|
|
a.cantidad_1,a.cantidad,precio, a.porc_desc,'PROCESO'
|
|
FROM vetb00051 a,prtb00012 b,vetb00060 c
|
|
where a.cotizacion_no =b.cotizacion_no AND
|
|
b.fecha_oc >= fecha_trx AND
|
|
b.tipo_cliente = c.tipo_cliente AND
|
|
c.paga_itbis = "S" AND
|
|
b.status_t IS null
|
|
LET progreso = 60
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
SET CONNECTION "ex"
|
|
|
|
#IMPORTACION
|
|
|
|
DISPLAY "prtb00012" TO nombretabla
|
|
BEGIN WORK
|
|
DELETE FROM tmpprtb00012
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"\\prtb12.txt"
|
|
LOAD FROM filepatht INSERT INTO tmpprtb00012(num_oc,fecha_oc,nombre_file,sec_vend,
|
|
tipo_cliente,sec_cliente,direccion,telefono,
|
|
cond_pago,cantidad_i,precio_i,
|
|
cantidad_mo,precio_mo,transporte,itbis,cotizacion_no,us_crea)
|
|
|
|
DELETE FROM tmpprtb00013
|
|
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"\\prtb13.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
LOAD FROM filepatht INSERT INTO tmpprtb00013(num_oc,secuencia,cod_n,cod_grupo,cod_tipo,
|
|
cod_Sec,cantidad,precio,descuento,us_crea)
|
|
|
|
|
|
LET progreso = 70
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
DECLARE xorden CURSOR FOR
|
|
SELECT num_oc,fecha_oc,nombre_file,sec_vend,
|
|
tipo_cliente,sec_cliente,direccion,telefono,
|
|
cond_pago,cantidad_i,precio_i,
|
|
cantidad_mo,precio_mo,transporte,itbis,cotizacion_no,us_crea
|
|
FROM tmpprtb00012 WHERE num_oc NOT IN (SELECT num_oc FROM prtb00012)
|
|
|
|
FOREACH xorden INTO porden.*
|
|
|
|
|
|
INSERT INTO prtb00012(num_oc,fecha_oc,nombre_file,sec_vend,
|
|
tipo_cliente,sec_cliente,direccion,telefono,
|
|
cond_pago,cantidad_i,precio_i,
|
|
cantidad_mo,precio_mo,transporte,itbis,cotizacion_no,us_crea)
|
|
VALUES (porden.*)
|
|
|
|
END FOREACH
|
|
DECLARE xorden_Detalle CURSOR FOR
|
|
SELECT num_oc,secuencia,cod_n,cod_grupo,cod_tipo,
|
|
cod_Sec,cantidad,precio,descuento,us_crea
|
|
FROM tmpprtb00013
|
|
WHERE num_oc NOT IN (SELECT num_oc FROM prtb00013)
|
|
FOREACH xorden_detalle INTO xdetalle.*
|
|
|
|
INSERT INTO prtb00013(num_oc,secuencia,cod_n,cod_grupo,cod_tipo,
|
|
cod_Sec,cantidad,precio,descuento,us_crea)
|
|
VALUES (xdetalle.*)
|
|
|
|
END FOREACH
|
|
LET progreso = 75
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"\\vetb04.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
LOAD FROM filepatht INSERT INTO tmpclientes(tipo_cliente,sec_cliente,nombre,
|
|
cod_zona,cod_provincia,telefono,
|
|
fax,telex,patente,limite_credito,
|
|
zona_postal,num_rnc,nombre_patente,us_crea)
|
|
|
|
IF STATUS < 0 THEN
|
|
ERROR "PROBLEMAS CARGA tmpclientes "
|
|
|
|
END IF
|
|
|
|
DECLARE busca_clientes CURSOR FOR
|
|
SELECT a.* FROM tmpclientes a
|
|
|
|
FOREACH busca_clientes INTO ptipo_cliente,psec_cliente,pnombre,pcod_zona,pcod_provincia,
|
|
ptelefono,pfax,ptelex,ppatente,plimite_credito,pzona_postal,pnum_rnc,
|
|
pnombre_patente
|
|
SELECT a.sec_cliente FROM vetb00004 a
|
|
WHERE a.tipo_cliente = ptipo_cliente AND
|
|
a.sec_cliente = psec_cliente
|
|
IF STATUS = NOTFOUND THEN
|
|
INSERT INTO vetb00004(tipo_cliente,sec_cliente,nombre,cod_zona,cod_provincia,telefono,
|
|
fax,telex,patente,limite_credito,zona_postal,num_rnc,
|
|
nombre_patente,us_crea)
|
|
VALUES (ptipo_cliente,psec_cliente,pnombre,pcod_zona,pcod_provincia,
|
|
ptelefono,pfax,ptelex,ppatente,plimite_credito,pzona_postal,pnum_rnc,pnombre_patente,'PROCESO')
|
|
END IF
|
|
|
|
END FOREACH
|
|
DELETE FROM vetb00005
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"\\vetb05.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
LOAD FROM filepatht INSERT INTO vetb00005(tipo_cliente,sec_cliente,calle,casa_num,
|
|
barrio,urbanizacion,us_crea)
|
|
|
|
|
|
IF STATUS < 0 THEN
|
|
ERROR "PROBLEMAS en carga vetb05"
|
|
END IF
|
|
|
|
LET progreso = 80
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
DELETE FROM vetb00028
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"\\vetb28.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
|
|
LOAD FROM filepatht INSERT INTO vetb00028(tipo_cliente,sec_cliente,sec_vend,us_crea)
|
|
|
|
IF STATUS < 0 THEN
|
|
ERROR "PROBLEMAS en carga vetb28"
|
|
END IF
|
|
|
|
LET progreso = 90
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
DELETE FROM vetb00049
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb49.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
LOAD FROM filepatht INSERT INTO vetb00049(tipo_cliente,sec_cliente,nombre_proyecto,direccion_proyecto,us_crea)
|
|
|
|
IF STATUS < 0 THEN
|
|
ERROR "PROBLEMAS en carga vetb49 "
|
|
|
|
END IF
|
|
|
|
LET progreso = 95
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
DELETE FROM tmpvetb00050
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb50.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
LOAD FROM filepatht INSERT INTO tmpvetb00050(cod_cia,cotizacion_no,fecha,
|
|
ventas,tipo_cliente,sec_cliente,
|
|
nombre_cliente,rnc,direccion_cliente,
|
|
cod_provincia,cond_pago,sec_vend,
|
|
porc_itbi,total_bruto,sub_total,
|
|
monto_desc,monto_itbi,total_neto,direccion_proyecto,us_crea)
|
|
|
|
DELETE FROM tmpvetb00051
|
|
LET filepatht= filepath CLIPPED,caracter CLIPPED,"vetb51.txt"
|
|
DISPLAY filepatht TO nombretabla
|
|
LOAD FROM filepatht INSERT INTO tmpvetb00051(cotizacion_no,cod_Cia,ventas,cod_n,cod_grupo,cod_tipo,cod_Sec,
|
|
cantidad_1,cantidad,precio, porc_desc,us_crea)
|
|
|
|
DECLARE pcotizacion CURSOR FOR
|
|
SELECT cod_cia,cotizacion_no,fecha,
|
|
ventas,tipo_cliente,sec_cliente,
|
|
nombre_cliente,rnc,direccion_cliente,
|
|
cod_provincia,cond_pago,sec_vend,
|
|
porc_itbi,total_bruto,sub_total,
|
|
monto_desc,monto_itbi,total_neto,direccion_proyecto,us_crea
|
|
FROM tmpvetb00050
|
|
WHERE cotizacion_no NOT IN (SELECT cotizacion_no FROM vetb00050)
|
|
|
|
FOREACH pcotizacion INTO xcotizacion.*
|
|
INSERT INTO vetb00050(
|
|
cod_cia,cotizacion_no,fecha,
|
|
ventas,tipo_cliente,sec_cliente,
|
|
nombre_cliente,rnc,direccion_cliente,
|
|
cod_provincia,cond_pago,sec_vend,
|
|
porc_itbi,total_bruto,sub_total,
|
|
monto_desc,monto_itbi,total_neto,direccion_proyecto,us_crea)
|
|
VALUES (xcotizacion.*)
|
|
END FOREACH
|
|
|
|
DECLARE xcotizacion_d CURSOR FOR
|
|
SELECT cotizacion_no,cod_Cia,ventas,cod_n,cod_grupo,cod_tipo,cod_Sec,
|
|
cantidad_1,cantidad,precio, porc_desc,us_crea
|
|
FROM tmpvetb00051
|
|
WHERE cotizacion_no NOT IN (SELECT cotizacion_no FROM vetb00051)
|
|
FOREACH xcotizacion_d INTO xcotizacion_detalle.*
|
|
INSERT INTO vetb00051(cotizacion_no,cod_Cia,ventas,cod_n,cod_grupo,cod_tipo,cod_Sec,
|
|
cantidad_1,cantidad,precio, porc_desc,us_crea)
|
|
VALUES (xcotizacion_detalle.*)
|
|
END FOREACH
|
|
COMMIT WORK
|
|
LET progreso = 95
|
|
DISPLAY progreso TO progreso
|
|
CALL ui.Interface.refresh()
|
|
|
|
CALL FGL_WINMESSAGE( "Mensaje","FIN PROCEO EXPORTACION / IMPORTACION", "stop" )
|
|
END FUNCTION
|
|
|