Files
MBS/PROYECTO/otrodir/ordenes.4gl
T

80 lines
2.1 KiB
Plaintext

{
PROGRAMA: ORDENES
OBJETIVO: IMPRTAR LAS ORDENES DE PEDIDOS DESDE SQL SERVER A INFORMIX
}
GLOBALS
DEFINE usuarios,clave CHAR(50),
numero_orden INT
END GLOBALS
MAIN
#WHENEVER ERROR CONTINUE
DEFER INTERRUPT
CALL arg_val(1) RETURNING usuarios
CALL arg_val(2) RETURNING clave
CALL arg_val(3) RETURNING numero_orden
CALL startlog("ordenes.log")
CALL ordenes()
END MAIN
FUNCTION ordenes()
CONNECT TO "smarmotech" USER usuarios USING clave
UNLOAD TO "d:\\prtb012.txt" SELECT a.num_oc,CONVERT(CHAR(10),a.fecha_oc,101),a.tipo_cliente,a.sec_cliente,a.sec_vend,
a.cond_pago,a.cotizacion_no,'PROCESO2'
FROM prtb00012 a WHERE
a.status_t IS NULL
AND a.num_oc = numero_orden
UNLOAD TO "d:\\prtb13.txt" SELECT a.num_oc,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.cantidad,
'PROCESO2'
FROM prtb00013 a,prtb00012 b
WHERE
b.fecha_oc BETWEEN '12/01/2013' AND '01/30/2014' AND b.status_t IS NULL AND
a.num_oc = b.num_oc
AND a.num_oc =numero_orden
CONNECT TO "exterior" AS "ex"
DELETE FROM tmpprtb00012
DELETE FROM tmpprtb00013
# WHENEVER ERROR CONTINUE
# BEGIN WORK
LOAD FROM "d:\\prtb012.txt" INSERT INTO TMPPRTB00012
(num_oc,fecha_oc,tipo_cliente,sec_cliente,sec_vend,
cond_pago,cotizacion_no,us_crea)
IF STATUS < 0 THEN
# ROLLBACK WORK
ERROR "ERROR EN LOAD 1"
EXIT PROGRAM
END IF
LOAD FROM "d:\\prtb13.txt" INSERT INTO tmpprtb00013
(num_oc,cod_n,cod_grupo,cod_tipo,cod_Sec,cantidad,us_crea)
IF STATUS < 0 THEN
# ROLLBACK WORK
ERROR "ERROR EN LOAD 2"
EXIT PROGRAM
END IF
UNLOAD TO "d:\\xprtb12.txt" SELECT * FROM tmpprtb00012
WHERE num_oc NOT IN (SELECT num_oc FROM prtb00012)
UNLOAD TO "d:\\xprtb13.txt" SELECT * FROM tmpprtb00013
WHERE num_oc NOT IN (SELECT num_oc FROM prtb00013)
DELETE FROM prtb00012 WHERE num_oc IN (SELECT num_oc FROM tmpprtb00012)
DELETE FROM prtb00013 WHERE num_oc IN (SELECT num_oc FROM tmpprtb00012)
INSERT INTO prtb00012 SELECT * FROM tmpprtb00012
INSERT INTO prtb00013 SELECT * FROM tmpprtb00013
END FUNCTION