Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : CGPRMT018
|
||||
OBJETIVO : Copia costos a partir de un ano a otro
|
||||
PROGRAMADOR : Ing. Juan Soto
|
||||
FECHA REALIZACION: Febrero 28, 2007
|
||||
------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"cgprgb000.4gl"
|
||||
|
||||
DEFINE cuenta_ant CHAR(8)
|
||||
#DEFINE p_nivel SMALLINT
|
||||
DEFINE desc_nivel CHAR(15)
|
||||
DEFINE modifica CHAR(1),
|
||||
balance DECIMAL(12,2)
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL cgprmt018()
|
||||
END MAIN
|
||||
|
||||
FUNCTION cgprmt018()
|
||||
DEFINE mat_prima,terminados,repuestos,semi CHAR(2),
|
||||
ano_orig,ano_Act SMALLINT,
|
||||
intb13 RECORD LIKE intb00013.*,
|
||||
iptb4 RECORD LIKE iptb00004.*,
|
||||
irtb13 RECORD LIKE irtb00013.*,
|
||||
cttb34 RECORD LIKE cttb00034.*,
|
||||
cttb26 RECORD LIKE cttb00026.*,
|
||||
fecha_i DATE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 24,
|
||||
COMMENT LINE 23
|
||||
|
||||
CALL pantalla()
|
||||
OPEN FORM cgfmmt018 FROM "cgfmmt018"
|
||||
DISPLAY FORM cgfmmt018
|
||||
DISPLAY "cgprmt018" AT 4,3
|
||||
DISPLAY "Actualizacion Costos" AT 6,30
|
||||
|
||||
INPUT ano_orig,ano_act,mat_prima,terminados,repuestos,semi FROM
|
||||
ano_orig,ano_act,mat_prima,terminados,repuestos,semi
|
||||
|
||||
BEFORE INPUT
|
||||
LET ano_orig = YEAR(TODAY) - 1
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
IF ano_orig IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano_orig
|
||||
END IF
|
||||
IF ano_act IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ano_act
|
||||
END IF
|
||||
|
||||
#display mat_prima," ",terminados," ",repuestos," ",semi
|
||||
IF mat_prima = "1" THEN
|
||||
DECLARE busca_mt CURSOR FOR
|
||||
SELECT a.* FROM intb00013 a
|
||||
WHERE a.ano = ano_orig AND a.status_t is null
|
||||
|
||||
FOREACH busca_mt INTO intb13.*
|
||||
LET intb13.ano = ano_act
|
||||
SELECT UNIQUE a.ano FROM intb00013 a
|
||||
WHERE a.ano = intb13.ano AND
|
||||
a.cod_n = intb13.cod_n AND
|
||||
a.cod_grupo = intb13.cod_grupo AND
|
||||
a.cod_tipo = intb13.cod_tipo AND
|
||||
a.cod_sec = intb13.cod_sec AND
|
||||
a.status_t IS NULL
|
||||
IF STATUS != NOTFOUND THEN
|
||||
CONTINUE FOREACH
|
||||
END IF
|
||||
INSERT INTO intb00013 VALUES (intb13.*)
|
||||
END FOREACH
|
||||
UPDATE intb00013 SET us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE ano = ano_act
|
||||
END IF
|
||||
IF terminados = "1" THEN
|
||||
DECLARE busca_pt CURSOR FOR
|
||||
SELECT a.* FROM iptb00004 a
|
||||
WHERE a.ano = ano_orig AND a.status_t is null
|
||||
|
||||
FOREACH busca_pt INTO iptb4.*
|
||||
LET iptb4.ano = ano_act
|
||||
SELECT UNIQUE a.ano FROM iptb00004 a
|
||||
WHERE a.ano = iptb4.ano AND
|
||||
a.cod_n = iptb4.cod_n AND
|
||||
a.cod_grupo = iptb4.cod_grupo AND
|
||||
a.cod_tipo = iptb4.cod_tipo AND
|
||||
a.cod_sec = iptb4.cod_sec AND
|
||||
a.status_t IS NULL
|
||||
IF STATUS != NOTFOUND THEN
|
||||
CONTINUE FOREACH
|
||||
END IF
|
||||
INSERT INTO iptb00004 VALUES (iptb4.*)
|
||||
END FOREACH
|
||||
UPDATE iptb00004 SET us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE ano = ano_act
|
||||
END IF
|
||||
IF repuestos = "1" THEN
|
||||
DECLARE busca_rp CURSOR FOR
|
||||
SELECT a.* FROM irtb00013 a
|
||||
WHERE a.ano = ano_orig AND a.status_t is null
|
||||
|
||||
FOREACH busca_rp INTO irtb13.*
|
||||
LET irtb13.ano = ano_act
|
||||
SELECT UNIQUE a.ano FROM irtb00013 a
|
||||
WHERE a.ano = irtb13.ano AND
|
||||
a.cod_n = irtb13.cod_n AND
|
||||
a.cod_grupo = irtb13.cod_grupo AND
|
||||
a.cod_tipo = irtb13.cod_tipo AND
|
||||
a.cod_sec = irtb13.cod_sec AND
|
||||
a.status_t IS NULL
|
||||
IF STATUS != NOTFOUND THEN
|
||||
CONTINUE FOREACH
|
||||
END IF
|
||||
INSERT INTO irtb00013 VALUES (irtb13.*)
|
||||
END FOREACH
|
||||
UPDATE irtb00013 SET us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE ano = ano_act
|
||||
END IF
|
||||
IF semi = "1" THEN
|
||||
# BUSCA FECHA
|
||||
SELECT MIN(a.fecha_inicio) INTO fecha_i FROM prdtable a
|
||||
WHERE a.ano = ano_act
|
||||
IF fecha_i IS NULL THEN
|
||||
LET numero_msg = 395
|
||||
CALL msg(numero_msg)
|
||||
EXIT INPUT
|
||||
END IF
|
||||
DECLARE busca_semi CURSOR FOR
|
||||
SELECT a.* FROM cttb00034 a
|
||||
WHERE a.fecha <= fecha_i AND a.status_t IS NULL
|
||||
|
||||
FOREACH busca_semi INTO cttb34.*
|
||||
LET cttb34.fecha = fecha_i
|
||||
SELECT UNIQUE a.fecha FROM cttb00034 a
|
||||
WHERE a.fecha = fecha_i AND
|
||||
a.cod_prod = cttb34.cod_prod
|
||||
|
||||
IF STATUS != NOTFOUND THEN
|
||||
CONTINUE FOREACH
|
||||
END IF
|
||||
INSERT INTO cttb00034 VALUES (cttb34.*)
|
||||
END FOREACH
|
||||
UPDATE cttb00034 SET us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE fecha = fecha_i
|
||||
|
||||
# OTROS COSTOS DE LOS SEMI-ELABORADOS
|
||||
DECLARE busca_semi1 CURSOR FOR
|
||||
SELECT a.* FROM cttb00026 a
|
||||
WHERE ano = ano_orig AND a.status_t IS NULL
|
||||
|
||||
FOREACH busca_semi1 INTO cttb26.*
|
||||
LET cttb26.ano = ano_act
|
||||
SELECT a.cod_prod FROM cttb00026 a
|
||||
WHERE a.ano = cttb26.ano AND
|
||||
a.cod_prod = cttb26.cod_prod AND a.status_t IS NULL
|
||||
|
||||
IF STATUS != NOTFOUND THEN
|
||||
CONTINUE FOREACH
|
||||
END IF
|
||||
INSERT INTO cttb00026 VALUES (cttb26.*)
|
||||
END FOREACH
|
||||
UPDATE cttb00026 SET fech_mod = current,
|
||||
us_mod = user
|
||||
WHERE ano = ano_act
|
||||
|
||||
END IF
|
||||
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
END FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user