Files
MBS/PROYECTO/ipdir/ipprmt006.4gl
T
jpegueroandClaude Sonnet 5 b6085d4140 Mueve ipdir (Productos Terminados) de PROYECTOS a PROYECTO
Instruccion de Johnny: todos los directorios de fuentes de inventario
deben migrarse de la carpeta temporal PROYECTOS a la carpeta real
PROYECTO, ya que PROYECTOS sera eliminada.

Se elimino tambien un archivo suelto sin relacion llamado "ipdir"
que existia en PROYECTO (del commit inicial) y bloqueaba el nombre
de la carpeta.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 09:29:01 -04:00

154 lines
3.9 KiB
Plaintext

{
==========================================================================
PROGRAMA : IPPRMT006
OBJETIVO : Cerrar Anualmente Inventario Productos
REALIZADO POR : Tadeo A. Ferreras F.
FECHA : Febrero 12, 1996
==========================================================================
}
GLOBALS "ipprgb000.4gl"
DEFINE trx RECORD LIKE iptb00006.*
DEFINE p_fecha1,p_fecha2 DATE,
cantidad DECIMAL(12,2),
o1,opt1 CHAR(1),
ano1 CHAR(4),
ano2 CHAR(2),
p_ano SMALLINT,
err_val INTEGER
DEFINE datos_6 RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad DECIMAL(12,2)
END RECORD
FUNCTION ipprmt006()
OPTIONS
PROMPT LINE 12,
FORM LINE 8,
ERROR LINE 24
OPEN FORM ipfmmt006 FROM "ipfmmt006"
DISPLAY FORM ipfmmt006
CALL pantalla()
DISPLAY "ipprmt006" AT 4,3
DISPLAY " " AT 6,1
DISPLAY " Cierre Anual" AT 6,30
LET p_ano = YEAR(TODAY) - 1
INPUT BY NAME p_ano WITHOUT DEFAULTS
AFTER FIELD p_ano
IF p_ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD p_ano
END IF
SELECT fecha_corte INTO p_fecha2 FROM prdtable
WHERE ano = p_ano AND mes = 12
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD p_ano
END IF
IF p_fecha2 > TODAY THEN
LET numero_msg = 189
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 ano1 = p_ano USING "&&&&"
LET ano2 = ano1[3,4]
LABEL volver:
PROMPT "Esta seguro de proceder (S/N)? " FOR opt1
LET opt1 = upshift(opt1)
IF opt1 != "S" AND opt1 != "N" THEN
GOTO volver
END IF
IF opt1 != "S" THEN
RETURN
END IF
DISPLAY "Haciendo Copia Seguridad... Espere Por Favor" AT 17,14
# Copia de Seguridad en ASCII
UNLOAD TO "iptb02.ld1" SELECT *FROM iptb00002
UNLOAD TO "iptb06.ld1" SELECT *FROM iptb00006
RUN "dbschema -t iptb00002 -d rayovac ip2.sql"
RUN "dbschema -t iptb00006 -d rayovac ip6.sql"
DISPLAY " " AT 17,14
DISPLAY "El Formato de copia se hara en CPIO " AT 10,1
DISPLAY "Introduzca La Cinta en La Unidad" AT 11,1
LABEL volver1:
PROMPT "Presione <ENTER> Cuando Este Listo" FOR opt4
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY "En Proceso... Espere Por Favor" AT 23,1 ATTRIBUTE (BOLD)
RUN "ls iptb06.ld1 iptb02.ld1 ip2.sql ip6.sql| cpio -ocuv > /dev/rmt0 "
RETURNING err_val
IF err_val = 256 THEN
ERROR "UNIDAD NO ESTA LISTA"
SLEEP 3
GOTO volver1
END IF
DISPLAY err_val AT 13,1
PROMPT "Backup Es Correcto Digite <ENTER>, Caso Contrario <CTRL-C>" FOR CHAR o1
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY "Insertando en Historicos... Espere Por Favor" AT 17,14
#### Proceso de Backup
INSERT INTO iptb00008 SELECT *FROM iptb00006
WHERE YEAR(fecha) <= p_ano
UPDATE iptb00008 SET (us_mod,fech_mod) = (USER,CURRENT)
WHERE YEAR(fecha) <= p_ano
INSERT INTO iptb00009 SELECT TODAY,*FROM iptb00002
DISPLAY "Buscando Balances... Espere Por Favor " AT 17,14
DECLARE busca CURSOR FOR
SELECT cod_n,cod_grupo,cod_tipo,cod_sec,SUM(cantidad_2)
FROM iptb00008
WHERE (YEAR(fecha) <= p_ano) AND (status_t IS NULL)
GROUP BY 1,2,3,4
LET p_fecha1 = p_fecha2 + 1
FOREACH busca INTO datos_6.*
INSERT INTO iptb00006(num_doc,fecha,cod_mov,cod_n,cod_grupo,cod_tipo,cod_sec,
cantidad_2,us_crea,fech_crea)
VALUES (1,p_fecha1,ano2,datos_6.cod_n,datos_6.cod_grupo,datos_6.cod_tipo,
datos_6.cod_sec,datos_6.cantidad,USER,CURRENT)
END FOREACH
DISPLAY "Eliminando Transacciones... Espere Por Favor" AT 17,14
# Borra las Informacion del historico
DELETE FROM iptb00006 WHERE (YEAR(fecha) <= p_ano)
END FUNCTION