Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,302 @@
|
||||
{
|
||||
==========================================================================
|
||||
PROGRAMA : INPRMT099
|
||||
OBJETIVO : Cierre Anual del Inventario de Materias Primas
|
||||
REALIZADO POR : Abner Montalvo
|
||||
FECHA : Septiembre 18, 1997.
|
||||
==========================================================================
|
||||
}
|
||||
GLOBALS "inprgb000.4gl"
|
||||
|
||||
DEFINE trn RECORD
|
||||
cod_n LIKE intb00006.cod_n,
|
||||
cod_grupo LIKE intb00006.cod_grupo,
|
||||
cod_tipo LIKE intb00006.cod_tipo,
|
||||
cod_sec LIKE intb00006.cod_sec,
|
||||
cantidad_2 LIKE intb00006.cantidad_2
|
||||
END RECORD
|
||||
|
||||
DEFINE productos RECORD LIKE intb00002.*
|
||||
DEFINE status_orden CHAR(1)
|
||||
DEFINE secuencia INTEGER
|
||||
DEFINE fecha_cierre, fecha_ultimo_cierre DATE
|
||||
DEFINE intb6_ascii CHAR(100)
|
||||
DEFINE intb2_ascii CHAR(100)
|
||||
DEFINE intb6_dbsch CHAR(100)
|
||||
DEFINE intb2_dbsch CHAR(100)
|
||||
DEFINE intb24 CHAR(100)
|
||||
DEFINE intb24_dat CHAR(100)
|
||||
DEFINE intb24_idx CHAR(100)
|
||||
DEFINE forma_ld CHAR(100)
|
||||
|
||||
DEFINE err_val INTEGER
|
||||
|
||||
FUNCTION inprmt099()
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 20,
|
||||
FORM LINE 8,
|
||||
ERROR LINE 24
|
||||
|
||||
OPEN FORM infmmt099 FROM "infmmt099"
|
||||
DISPLAY FORM infmmt099
|
||||
|
||||
CALL pantalla()
|
||||
|
||||
DISPLAY "inprmt099" AT 4,3
|
||||
DISPLAY " Cierre Anual " AT 6,33
|
||||
|
||||
LET c_ano = (YEAR(TODAY) - 2)
|
||||
|
||||
DISPLAY c_ano AT 11,49
|
||||
|
||||
SELECT MAX(fecha_corte) INTO fecha_cierre
|
||||
FROM prdtable
|
||||
WHERE ano = c_ano
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET fecha_cierre = TODAY
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME fecha_cierre
|
||||
|
||||
LET fecha_ultimo_cierre = NULL
|
||||
SELECT UNIQUE MAX(fecha) INTO fecha_ultimo_cierre
|
||||
FROM intb00006
|
||||
WHERE tipo = "1" AND status_t IS NULL
|
||||
|
||||
IF fecha_ultimo_cierre <= fecha_cierre THEN
|
||||
LET numero_msg = 380
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
SLEEP 2
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
{
|
||||
LET fecha_cierre = TODAY
|
||||
|
||||
INPUT BY NAME fecha_cierre WITHOUT DEFAULTS
|
||||
|
||||
AFTER FIELD fecha_cierre
|
||||
IF fecha_cierre IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_cierre
|
||||
END IF
|
||||
|
||||
IF fecha_cierre > TODAY THEN
|
||||
LET numero_msg = 375
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD p_ano
|
||||
END IF
|
||||
|
||||
# SELECT UNIQUE fecha FROM intb00025
|
||||
# WHERE fecha = fecha_cierre
|
||||
|
||||
# IF status != NOTFOUND THEN
|
||||
# LET numero_msg = 376
|
||||
# CALL msg(numero_msg)
|
||||
# NEXT FIELD p_ano
|
||||
# END IF
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
}
|
||||
|
||||
LET secuencia = fecha_cierre USING "DDMMYY"
|
||||
|
||||
LET intb6_ascii = fgl_getenv("DBPATH") CLIPPED,"/rayovac.dbs/",
|
||||
"intb00006_ascii.", fecha_cierre USING "DDMMYY"
|
||||
|
||||
LET intb2_ascii = fgl_getenv("DBPATH") CLIPPED,"/rayovac.dbs/",
|
||||
"intb00002_ascii.", fecha_cierre USING "DDMMYY"
|
||||
|
||||
LET intb6_dbsch = "dbschema -d rayovac -t intb00006 ",
|
||||
fgl_getenv("DBPATH") CLIPPED,"/rayovac.dbs/",
|
||||
"intb00006_dbsch.", fecha_cierre USING "DDMMYY"
|
||||
|
||||
LET intb2_dbsch = "dbschema -d rayovac -t intb00002 ",
|
||||
fgl_getenv("DBPATH") CLIPPED,"/rayovac.dbs/",
|
||||
"intb00002_dbsch.", fecha_cierre USING "DDMMYY"
|
||||
|
||||
SELECT dirpath INTO intb24 FROM systables
|
||||
WHERE tabname = "intb00024"
|
||||
|
||||
LET intb24 = fgl_getenv("DBPATH") CLIPPED,"/rayovac.dbs/",intb24
|
||||
|
||||
LET intb24_dat = "cp ", intb24 CLIPPED, ".dat ", intb24 CLIPPED, ".dat.",
|
||||
fecha_cierre USING "DDMMYY"
|
||||
|
||||
LET intb24_idx = "cp ", intb24 CLIPPED, ".idx ", intb24 CLIPPED, ".idx.",
|
||||
fecha_cierre USING "DDMMYY"
|
||||
|
||||
#DISPLAY intb6_ascii AT 6,2
|
||||
#DISPLAY intb2_ascii AT 7,2
|
||||
#DISPLAY intb6_dbsch AT 8,2
|
||||
#DISPLAY intb2_dbsch AT 9,2
|
||||
#DISPLAY intb24 AT 10,2
|
||||
#DISPLAY intb24_dat AT 11,2
|
||||
#DISPLAY intb24_idx AT 12,2
|
||||
|
||||
LABEL volver:
|
||||
PROMPT " Estas Seguro de Proceder (S/N)? "
|
||||
FOR decide
|
||||
|
||||
LET decide = UPSHIFT(decide)
|
||||
|
||||
IF decide != "S" AND decide != "N" THEN
|
||||
GOTO volver
|
||||
END IF
|
||||
|
||||
IF decide != "S" THEN
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DISPLAY " "
|
||||
AT 20,10
|
||||
|
||||
DISPLAY " Haciendo Backup del Historico de Transacciones. "
|
||||
AT 20,10
|
||||
|
||||
RUN intb24_dat
|
||||
RUN intb24_idx
|
||||
|
||||
DISPLAY " Haciendo Backup de las Transacciones que Califican. "
|
||||
AT 20,10
|
||||
|
||||
#----------- Trabajando con los Registros Anulados --------------------
|
||||
|
||||
DISPLAY " Haciendo Backup de las Transacciones que Anuladas. "
|
||||
AT 20,10
|
||||
|
||||
UNLOAD TO "trn1.ld" SELECT * FROM intb00006
|
||||
WHERE status_t = "E" AND
|
||||
fecha <= fecha_cierre
|
||||
|
||||
INSERT INTO intb00024 SELECT * FROM intb00006
|
||||
WHERE status_t = "E" AND
|
||||
fecha <= fecha_cierre
|
||||
|
||||
DELETE FROM intb00006 WHERE status_t = "E" AND
|
||||
fecha <= fecha_cierre
|
||||
|
||||
#----------- Trabajando con los Registros sin Ordenes de Compras -----
|
||||
|
||||
DISPLAY " Haciendo Backup de las Transacciones que no manejan O.C. "
|
||||
AT 20,10
|
||||
|
||||
UNLOAD TO "trn2.ld" SELECT * FROM intb00006
|
||||
WHERE status_t IS NULL AND
|
||||
cod_mov NOT IN (34,35) AND
|
||||
fecha <= fecha_cierre
|
||||
|
||||
UPDATE intb00006 SET status_t = "X"
|
||||
WHERE status_t IS NULL AND
|
||||
cod_mov NOT IN (34,35) AND
|
||||
fecha <= fecha_cierre
|
||||
|
||||
INSERT INTO intb00024 SELECT * FROM intb00006
|
||||
WHERE status_t = "X"
|
||||
|
||||
DELETE FROM intb00006 WHERE status_t = "X"
|
||||
|
||||
#----------- Trabajando con los Registros con Ordenes de Compras -----
|
||||
|
||||
DISPLAY " Haciendo Backup de las Transacciones que manejan O.C. "
|
||||
AT 20,10
|
||||
|
||||
UNLOAD TO "trn3.ld" SELECT * FROM intb00006
|
||||
WHERE status_t IS NULL AND
|
||||
cod_mov IN (34,35) AND
|
||||
fecha <= fecha_cierre AND
|
||||
orden_compra IN ( SELECT num_oc FROM cotb00014
|
||||
WHERE cierre = "S" )
|
||||
|
||||
UPDATE intb00006 SET status_t = "X"
|
||||
WHERE status_t IS NULL AND
|
||||
cod_mov IN (34,35) AND
|
||||
fecha <= fecha_cierre AND
|
||||
orden_compra IN ( SELECT num_oc FROM cotb00014
|
||||
WHERE cierre = "S" )
|
||||
|
||||
#----------- Trabajando con los Registros sin Ordenes de Compras -----
|
||||
|
||||
DISPLAY " Haciendo Backup de las Transacciones cuyas O.C. no existen. "
|
||||
AT 20,10
|
||||
|
||||
UNLOAD TO "trn4.ld" SELECT * FROM intb00006
|
||||
WHERE status_t IS NULL AND
|
||||
cod_mov IN (34,35) AND
|
||||
fecha <= fecha_cierre AND
|
||||
orden_compra NOT IN ( SELECT num_oc FROM cotb00014 )
|
||||
|
||||
UPDATE intb00006 SET status_t = "X"
|
||||
WHERE status_t IS NULL AND
|
||||
cod_mov IN (34,35) AND
|
||||
fecha <= fecha_cierre AND
|
||||
orden_compra NOT IN ( SELECT num_oc FROM cotb00014 )
|
||||
|
||||
INSERT INTO intb00024 SELECT * FROM intb00006
|
||||
WHERE status_t = "X"
|
||||
|
||||
DELETE FROM intb00006 WHERE status_t = "X"
|
||||
|
||||
LET forma_ld = "cat trn1.ld trn2.ld trn3.ld trn4.ld > ", intb6_ascii
|
||||
|
||||
RUN forma_ld
|
||||
|
||||
#------ Creando los Balances Iniciales de las Materias Primas ----------
|
||||
|
||||
DISPLAY " Creando Balances Iniciales de las Materias Primas. "
|
||||
AT 20,10
|
||||
|
||||
DECLARE transacciones CURSOR FOR SELECT cod_n, cod_grupo, cod_tipo, cod_sec,
|
||||
SUM(cantidad_2)
|
||||
FROM intb00024
|
||||
WHERE status_t = "X"
|
||||
GROUP BY 1,2,3,4
|
||||
ORDER BY 1,2,3,4
|
||||
|
||||
FOREACH transacciones INTO trn.*
|
||||
DISPLAY trn.cod_n USING "&" AT 21,30
|
||||
DISPLAY trn.cod_grupo USING "&" AT 21,32
|
||||
DISPLAY trn.cod_tipo USING "&&" AT 21,34
|
||||
DISPLAY trn.cod_sec USING "&&&" AT 21,37
|
||||
DISPLAY trn.cantidad_2 USING "###,###,##&.&&" AT 21,41
|
||||
|
||||
INSERT INTO intb00006(num_doc,fecha,cod_mov,cod_n,cod_grupo,cod_tipo,
|
||||
cod_sec,cantidad_2,bodega,us_crea,fech_crea)
|
||||
VALUES (secuencia,fecha_cierre,1,trn.cod_n,trn.cod_grupo,
|
||||
trn.cod_tipo,trn.cod_sec,trn.cantidad_2,1,USER,
|
||||
CURRENT)
|
||||
END FOREACH
|
||||
|
||||
UPDATE intb00024 SET status_t = NULL WHERE status_t = "X"
|
||||
|
||||
UNLOAD TO intb2_ascii SELECT * FROM intb00002
|
||||
|
||||
DISPLAY " Actualizando el Historico de Materias Primas. "
|
||||
AT 20,10
|
||||
|
||||
#INSERT INTO intb00025 SELECT "111111", * FROM intb00002
|
||||
|
||||
#UPDATE intb00025 SET fecha = fecha_cierre WHERE fecha = "111111"
|
||||
|
||||
RUN intb2_dbsch
|
||||
RUN intb6_dbsch
|
||||
|
||||
END FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user