80 lines
2.1 KiB
Plaintext
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
|
|
|