Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,260 @@
|
||||
{
|
||||
MODULO : cgprmt021
|
||||
OBJETIVO : TRANSFERIR COSTOS STANDARES DE UN ANO A OTRO
|
||||
FECHA DESARROLLO: 3/6/2016
|
||||
DESARROLLADO POR: ING. JUAN SOTO
|
||||
|
||||
}
|
||||
GLOBALS
|
||||
DEFINE usuarios,clave VARCHAR(50),
|
||||
opt1 VARCHAR(3)
|
||||
END GLOBALS
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL STARTLOG("CGPRMT021.TXT")
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
|
||||
|
||||
CALL cgprmt021()
|
||||
END MAIN
|
||||
|
||||
FUNCTION cgprmt021()
|
||||
DEFINE pano,pano_act,progreso,idx SMALLINT,
|
||||
cuenta INT,
|
||||
opcion VARCHAR(3),
|
||||
pcosto RECORD
|
||||
ano SMALLINT,
|
||||
mes_ini CHAR(2),
|
||||
mes_fin CHAR(2),
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
material DEC(18,5),
|
||||
labor DEC(18,5),
|
||||
gastos DEC(18,5),
|
||||
ventas SMALLINT
|
||||
|
||||
END RECORD,
|
||||
inventario VARCHAR(2),
|
||||
selec STRING
|
||||
OPEN WINDOW w1 WITH FORM "cgfmmt021"
|
||||
|
||||
INPUT BY NAME pano,inventario
|
||||
BEFORE INPUT
|
||||
LET pano = YEAR(TODAY)-1
|
||||
LET cuenta = 0
|
||||
LET pano_act = YEAR(TODAY)
|
||||
|
||||
AFTER FIELD inventario
|
||||
IF inventario = "IP" THEN
|
||||
SELECT DISTINCT a.ano FROM iptb00004 a WHERE a.ano = pano_act
|
||||
IF STATUS <> NOTFOUND THEN
|
||||
IF fgl_winquestion("INFO","COSTO EXISTE PARA ESTE ANO, DESEA ACTUALIZAR DE TODAS FORMAS?","NO","NO|YES","QUESTION",0) ="NO" THEN
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
IF inventario = "IN" THEN
|
||||
SELECT DISTINCT a.ano FROM intb00013 a WHERE a.ano = pano_act
|
||||
IF STATUS <> NOTFOUND THEN
|
||||
IF fgl_winquestion("INFO","COSTO EXISTE PARA ESTE ANO, DESEA ACTUALIZAR DE TODAS FORMAS?","NO","NO|YES","QUESTION",0) ="NO" THEN
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END IF
|
||||
IF inventario = "IR" THEN
|
||||
SELECT DISTINCT a.ano FROM irtb00013 a WHERE a.ano = pano_act
|
||||
IF STATUS <> NOTFOUND THEN
|
||||
IF fgl_winquestion("INFO","COSTO EXISTE PARA ESTE ANO, DESEA ACTUALIZAR DE TODAS FORMAS?","NO","NO|YES","QUESTION",0) ="NO" THEN
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END IF
|
||||
IF inventario = "SM" THEN
|
||||
SELECT DISTINCT a.ano FROM cttb00026 a WHERE a.ano = pano_act
|
||||
IF STATUS <> NOTFOUND THEN
|
||||
IF fgl_winquestion("INFO","COSTO EXISTE PARA ESTE ANO, DESEA ACTUALIZAR DE TODAS FORMAS?","NO","NO|YES","QUESTION",0) ="NO" THEN
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
IF INT_FLAG THEN
|
||||
CALL fgl_Winmessage("INFO","OPERACION ABORTADA","INFO")
|
||||
LET INT_FLAG = FALSE
|
||||
EXIT INPUT
|
||||
END IF
|
||||
LET opcion =fgl_winquestion("ACTUALIZAR","ESTA SEGURO DE REALIZAR ESTA OPERACION?","NO","NO|YES","QUESTION",0)
|
||||
IF opcion ="YES" THEN
|
||||
IF inventario = "IP" THEN
|
||||
LET selec =
|
||||
"SELECT a.ano,a.mes_ini,a.mes_fin,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.material,a.labor,a.gastos, ",
|
||||
" a.ventas ",
|
||||
" FROM iptb00004 a,iptb00002 b WHERE a.ano =",pano USING "&&&&",
|
||||
" AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec ",
|
||||
" AND a.status_t IS NULL AND b.status_t IS NULL"
|
||||
|
||||
SELECT COUNT(*) INTO cuenta
|
||||
FROM iptb00004 a,iptb00002 b WHERE a.ano =pano
|
||||
AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec
|
||||
AND a.status_t IS NULL AND b.status_t IS NULL
|
||||
|
||||
|
||||
END IF
|
||||
IF inventario = "IN" THEN
|
||||
LET selec =
|
||||
"SELECT a.ano,a.mes_ini,a.mes_fin,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.costo_st ",
|
||||
" FROM intb00013 a,intb00001 b WHERE a.ano =",pano USING "&&&&",
|
||||
" AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec ",
|
||||
" AND a.status_t IS NULL AND b.status_t IS NULL"
|
||||
|
||||
|
||||
SELECT COUNT(*) INTO cuenta
|
||||
FROM intb00013 a,intb00001 b WHERE a.ano =pano
|
||||
AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec
|
||||
AND a.status_t IS NULL AND b.status_t IS NULL
|
||||
|
||||
|
||||
END IF
|
||||
IF inventario = "IR" THEN
|
||||
LET selec =
|
||||
"SELECT a.ano,a.mes_ini,a.mes_fin,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.costo_st ",
|
||||
" FROM irtb00013 a,irtb00002 b WHERE a.ano =",pano USING "&&&&",
|
||||
" AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec ",
|
||||
" AND a.status_t IS NULL AND b.status_t IS NULL"
|
||||
|
||||
SELECT COUNT(*) INTO cuenta
|
||||
FROM irtb00013 a,irtb00001 b WHERE a.ano =pano
|
||||
AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec
|
||||
AND a.status_t IS NULL AND b.status_t IS NULL
|
||||
|
||||
END IF
|
||||
|
||||
IF inventario = "SM" THEN
|
||||
LET selec =
|
||||
"SELECT a.ano,a.mes_ini,a.mes_fin,a.cod_prod,'0','0','0',a.costo_st ",
|
||||
" FROM cttb00026 a,cttb00001 b WHERE a.ano =",pano USING "&&&&",
|
||||
" AND a.cod_prod = b.cod_prod ",
|
||||
" AND a.status_t IS NULL AND b.status_t IS NULL"
|
||||
|
||||
SELECT COUNT(*) INTO cuenta
|
||||
FROM cttb00026 a,cttb00001 b WHERE a.ano =pano
|
||||
AND a.cod_prod = b.cod_prod
|
||||
AND a.status_t IS NULL AND b.status_t IS NULL
|
||||
|
||||
END IF
|
||||
|
||||
LET progreso = 10
|
||||
DISPLAY progreso TO progreso
|
||||
CALL ui.Interface.refresh()
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE costo_productos CURSOR FOR comando
|
||||
|
||||
|
||||
LET idx = 1
|
||||
BEGIN WORK
|
||||
#IF inventario = "IP" THEN
|
||||
# DELETE FROM iptb00004 WHERE ano = pano_act
|
||||
#END IF
|
||||
#IF inventario = "IN" THEN
|
||||
# DELETE FROM intb00013 WHERE ano = pano_act
|
||||
#END IF
|
||||
#IF inventario = "IR" THEN
|
||||
# DELETE FROM irtb00013 WHERE ano = pano_act
|
||||
#END IF
|
||||
|
||||
#IF inventario = "SM" THEN
|
||||
# DELETE FROM cttb00026 WHERE ano = pano_act
|
||||
#END IF
|
||||
|
||||
FOREACH costo_productos INTO pcosto.*
|
||||
LET pcosto.ano=pano_act
|
||||
IF inventario = "IP" THEN
|
||||
SELECT DISTINCT a.cod_n FROM iptb00004 a WHERE a.cod_n = pcosto.cod_n AND
|
||||
a.cod_grupo = pcosto.cod_grupo AND a.cod_tipo = pcosto.cod_tipo AND a.cod_Sec =pcosto.cod_sec
|
||||
AND a.ano =pano_act
|
||||
IF STATUS= NOTFOUND THEN
|
||||
INSERT INTO iptb00004 (ano,mes_ini,mes_fin,cod_n,cod_grupo,cod_tipo,cod_sec,material,labor,gastos,ventas,
|
||||
us_crea,fech_crea)
|
||||
VALUES (pcosto.*,usuarios,getdate())
|
||||
|
||||
LET progreso = (idx/cuenta) * 100
|
||||
|
||||
DISPLAY progreso TO progreso
|
||||
CALL ui.Interface.refresh()
|
||||
|
||||
LET idx = idx + 1
|
||||
END IF
|
||||
END IF
|
||||
IF inventario = "IN" THEN
|
||||
SELECT DISTINCT a.cod_n FROM intb00013 a WHERE a.cod_n = pcosto.cod_n AND
|
||||
a.cod_grupo = pcosto.cod_grupo AND a.cod_tipo = pcosto.cod_tipo AND a.cod_Sec =pcosto.cod_sec
|
||||
AND a.ano =pano_act
|
||||
IF STATUS = NOTFOUND THEN
|
||||
|
||||
INSERT INTO intb00013 (ano,mes_ini,mes_fin,cod_n,cod_grupo,cod_tipo,cod_sec,costo_st,us_crea,fech_crea)
|
||||
VALUES (pcosto.ano,pcosto.mes_ini,pcosto.mes_fin,pcosto.cod_n,pcosto.cod_grupo,pcosto.cod_tipo,pcosto.cod_Sec,
|
||||
pcosto.material,usuarios,getdate())
|
||||
|
||||
LET progreso = (idx/cuenta) * 100
|
||||
DISPLAY progreso TO progreso
|
||||
CALL ui.Interface.refresh()
|
||||
|
||||
LET idx = idx + 1
|
||||
END IF
|
||||
END IF
|
||||
IF inventario = "IR" THEN
|
||||
SELECT DISTINCT a.cod_n FROM irtb00013 a WHERE a.cod_n = pcosto.cod_n AND
|
||||
a.cod_grupo = pcosto.cod_grupo AND a.cod_tipo = pcosto.cod_tipo AND a.cod_Sec =pcosto.cod_sec
|
||||
AND a.ano =pano_act
|
||||
IF STATUS = NOTFOUND THEN
|
||||
|
||||
INSERT INTO irtb00013 (ano,mes_ini,mes_fin,cod_n,cod_grupo,cod_tipo,cod_sec,costo_st,us_crea,fech_crea)
|
||||
VALUES (pcosto.ano,pcosto.mes_ini,pcosto.mes_fin,pcosto.cod_n,pcosto.cod_grupo,pcosto.cod_tipo,pcosto.cod_Sec,
|
||||
pcosto.material,usuarios,getdate())
|
||||
|
||||
LET progreso = (idx/cuenta) * 100
|
||||
DISPLAY progreso TO progreso
|
||||
CALL ui.Interface.refresh()
|
||||
|
||||
LET idx = idx + 1
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF inventario = "SM" THEN
|
||||
SELECT DISTINCT a.cod_prod FROM cttb00026 a WHERE a.cod_prod = pcosto.cod_n
|
||||
AND a.ano =pano_act
|
||||
IF STATUS = NOTFOUND THEN
|
||||
|
||||
INSERT INTO cttb00026 (ano,mes_ini,mes_fin,cod_prod,costo_st,us_crea,fech_crea)
|
||||
VALUES (pcosto.ano,pcosto.mes_ini,pcosto.mes_fin,pcosto.cod_n,pcosto.material,usuarios,getdate())
|
||||
|
||||
LET progreso = (idx/cuenta) * 100
|
||||
DISPLAY progreso TO progreso
|
||||
CALL ui.Interface.refresh()
|
||||
|
||||
LET idx = idx + 1
|
||||
END IF
|
||||
END IF
|
||||
END FOREACH
|
||||
COMMIT WORK
|
||||
LET progreso =100
|
||||
DISPLAY progreso TO progreso
|
||||
CALL ui.Interface.refresh()
|
||||
|
||||
CALL fgl_winmessage("INFO","ACTUALIZACION EXITOSA","INFO")
|
||||
|
||||
ELSE
|
||||
CALL fgl_Winmessage("ACTUALIZAR","NO SE ACTUALIZARON LOS DATOS","INFO")
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
CLOSE WINDOW w1
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user