Files

507 lines
19 KiB
Plaintext

GLOBALS "cgprgb000.4gl"
REPORT entrada(x, usuarios)
DEFINE x RECORD
cod_cia LIKE iptb00002.cod_cia,
cod_n LIKE iptb00002.cod_n,
cod_grupo LIKE iptb00002.cod_grupo,
cod_tipo LIKE iptb00002.cod_tipo,
cod_sec LIKE iptb00002.cod_sec,
descrip_esp CHAR(100),
descrip_ing LIKE iptb00002.descrip_ing,
unidad_med LIKE iptb00002.unidad_med,
cod_mov LIKE iptb00006.cod_mov,
descrip_mov LIKE iptb00005.descrip_mov,
consumo DECIMAL(30, 5),
material DECIMAL(30, 3),
labor DECIMAL(30, 3),
gastos DECIMAL(30, 3),
descripcion_bodega VARCHAR(30),
descripcion_origen VARCHAR(30),
cuenta_material VARCHAR(14),
cuenta_labor VARCHAR(14),
cuenta_gasto VARCHAR(14),
cuenta_imp_material VARCHAR(14),
cuenta_origen VARCHAR(14),
detalle VARCHAR(80),
entrada_d VARCHAR(25),
nombre_cia VARCHAR(100),
departamento INT,
descripcion_depto VARCHAR(80),
id_orden VARCHAR(25),
afecta VARCHAR(2),
valor_material, valor_labor, valor_gasto DEC(30, 2),
usuario VARCHAR(50)
END RECORD,
usuarios VARCHAR(50)
DEFINE hora CHAR(25)
DEFINE
debito_material,
credito_material,
debito_labor,
debito_gasto,
credito_labor,
credito_gasto,
debito1,
credito1
DECIMAL(30, 2),
nombre_ctamaterial,
nombre_ctalabor,
nombre_ctagasto,
nombre_cta2,
nombre_cta3
VARCHAR(80),
xdepto CHAR(1)
DEFINE t_debito, t_credito DECIMAL(30, 2)
ORDER BY x.cuenta_origen, x.departamento
FORMAT
PAGE HEADER
# IF x.afecta = 'SI' AND primera IS NULL THEN
# BEGIN WORK
# LET primera = 'S'
# END IF
LET hora = TODAY, " ", TIME
PRINTX fecha_final, x.entrada_d, x.detalle, x.nombre_cia, hora
AFTER GROUP OF x.departamento
IF x.consumo < 0 THEN
LET credito_material = 0
LET credito_labor = 0
LET credito_gasto = 0
# MATERIAL PARA LOS MOV DE SALIDA
IF x.cuenta_material IS NOT NULL THEN
LET debito_material = GROUP SUM(x.valor_material)
SELECT a.descripcion, a.depto
INTO nombre_ctamaterial, xdepto
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_material
IF xdepto = 'N' THEN
LET x.departamento = NULL
END IF
{ IF debito = 0 OR debito IS NULL THEN
LET nombre_ctamaterial = " "
END IF}
IF debito_material < 0 THEN
LET debito_material = debito_material * -1
END IF
DISPLAY " DATA 1 ",
x.cuenta_material,
" ",
debito_material,
" ",
credito_material
IF x.afecta = "SI" THEN
IF x.cuenta_material IS NOT NULL THEN
INSERT INTO cgtb00004(
fecha,
tipo,
ref,
cuenta_no,
departamento,
detalle_1,
debito,
credito,
us_crea,
fech_crea)
VALUES(fecha_final,
1,
x.entrada_d,
x.cuenta_material,
x.departamento,
x.detalle,
debito_material,
credito_material,
x.usuario,
GETDATE())
END IF
END IF
END IF
# LABOR PARA LOS MOV DE SALIDA
DISPLAY " DATA 2 ",
x.cuenta_labor,
" ",
debito_labor,
" ",
credito_labor
IF x.cuenta_labor IS NOT NULL THEN
LET debito_labor = GROUP SUM(x.valor_labor)
IF debito_labor < 0 THEN
LET debito_labor = debito_labor * -1
END IF
SELECT a.descripcion, a.depto
INTO nombre_ctalabor, xdepto
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_labor
IF xdepto = 'N' THEN
LET x.departamento = NULL
END IF
{ IF debito = 0 OR debito IS NULL THEN
LET nombre_ctalabor = " "
END IF}
IF x.afecta = "SI" THEN
IF x.cuenta_labor IS NOT NULL THEN
INSERT INTO cgtb00004(
fecha,
tipo,
ref,
cuenta_no,
departamento,
detalle_1,
debito,
credito,
us_crea,
fech_crea)
VALUES(fecha_final,
1,
x.entrada_d,
x.cuenta_labor,
x.departamento,
x.detalle,
debito_labor,
credito_labor,
x.usuario,
GETDATE())
END IF
END IF
END IF
# GASTO PARA LOS MOV DE SALIDAS
IF x.cuenta_gasto IS NOT NULL THEN
LET debito_gasto = GROUP SUM(x.valor_gasto)
IF debito_gasto < 0 THEN
LET debito_gasto = debito_gasto * -1
END IF
SELECT a.descripcion, a.depto
INTO nombre_ctagasto, xdepto
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_gasto
IF xdepto = 'N' THEN
LET x.departamento = NULL
END IF
{ IF debito = 0 OR debito IS NULL THEN
LET nombre_ctagasto = " "
END IF}
DISPLAY " DATA 3 ",
x.cuenta_gasto,
" ",
debito_gasto,
" ",
credito_gasto
IF x.afecta = "SI" THEN
IF x.cuenta_gasto IS NOT NULL THEN
INSERT INTO cgtb00004(
fecha,
tipo,
ref,
cuenta_no,
departamento,
detalle_1,
debito,
credito,
us_crea,
fech_crea)
VALUES(fecha_final,
1,
x.entrada_d,
x.cuenta_gasto,
x.departamento,
x.detalle,
debito_gasto,
credito_gasto,
x.usuario,
GETDATE())
END IF
END IF
END IF
ELSE
LET debito_material = 0
LET debito_labor = 0
LET debito_gasto = 0
#MATERIAL PARA LOS MOV DE ENTRADA
IF x.cuenta_material IS NOT NULL THEN
LET credito_material = GROUP SUM(x.valor_material)
IF credito_material < 0 THEN
LET credito_material = credito_material * -1
END IF
SELECT a.descripcion, a.depto
INTO nombre_ctamaterial, xdepto
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_material
IF xdepto = 'N' THEN
LET x.departamento = NULL
END IF
{ IF credito = 0 OR credito IS NULL THEN
LET nombre_ctamaterial = " "
END IF}
IF x.afecta = "SI" THEN
IF x.cuenta_material IS NOT NULL THEN
INSERT INTO cgtb00004(
fecha,
tipo,
ref,
cuenta_no,
departamento,
detalle_1,
debito,
credito,
us_crea,
fech_crea)
VALUES(fecha_final,
1,
x.entrada_d,
x.cuenta_material,
x.departamento,
x.detalle,
debito_material,
credito_material,
x.usuario,
GETDATE())
DISPLAY " DATA 4 ",
x.cuenta_material,
" ",
debito_material,
" ",
credito_material
END IF
END IF
END IF
#LABOR PARA LOS MOV DE ENTRADA
IF x.cuenta_labor IS NOT NULL THEN
LET credito_labor = GROUP SUM(x.valor_labor)
IF credito_labor < 0 THEN
LET credito_labor = credito_labor * -1
END IF
SELECT a.descripcion, a.depto
INTO nombre_ctalabor, xdepto
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_labor
IF xdepto = 'N' THEN
LET x.departamento = NULL
END IF
{IF credito = 0 OR credito IS NULL THEN
LET nombre_ctalabor = " "
END IF}
IF x.afecta = "SI" THEN
IF x.cuenta_labor IS NOT NULL THEN
INSERT INTO cgtb00004(
fecha,
tipo,
ref,
cuenta_no,
departamento,
detalle_1,
debito,
credito,
us_crea,
fech_crea)
VALUES(fecha_final,
1,
x.entrada_d,
x.cuenta_labor,
x.departamento,
x.detalle,
debito_labor,
credito_labor,
x.usuario,
GETDATE())
DISPLAY " DATA 5 ",
x.cuenta_labor,
" ",
debito_labor,
" ",
credito_labor
END IF
END IF
END IF
# GASTO PARA LOS MOV DE ENTRADAS
IF x.cuenta_gasto IS NOT NULL THEN
LET credito_gasto = GROUP SUM(x.valor_gasto)
IF credito_gasto < 0 THEN
LET credito_gasto = credito_gasto * 1
END IF
SELECT a.descripcion, a.depto
INTO nombre_ctagasto, xdepto
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_gasto
IF xdepto = 'N' THEN
LET x.departamento = NULL
END IF
{ IF credito = 0 OR credito IS NULL THEN
LET nombre_ctagasto = " "
END IF}
IF x.afecta = "SI" THEN
IF x.cuenta_gasto IS NOT NULL THEN
INSERT INTO cgtb00004(
fecha,
tipo,
ref,
cuenta_no,
departamento,
detalle_1,
debito,
credito,
us_crea,
fech_crea)
VALUES(fecha_final,
1,
x.entrada_d,
x.cuenta_gasto,
x.departamento,
x.detalle,
debito_gasto,
credito_gasto,
x.usuario,
GETDATE())
DISPLAY " DATA 6 ",
x.cuenta_gasto,
" ",
debito_gasto,
" ",
credito_gasto
END IF
END IF
END IF
END IF
PRINTX x.nombre_cia,
x.detalle,
x.cuenta_material,
x.cuenta_labor,
x.cuenta_gasto,
nombre_ctamaterial,
nombre_ctalabor,
nombre_ctagasto,
hora,
fecha_inicial,
fecha_final,
x.departamento,
x.descripcion_depto,
debito_material,
credito_material,
debito_labor,
debito_gasto,
credito_labor,
credito_gasto
AFTER GROUP OF x.cuenta_origen
IF x.consumo < 0 THEN
LET debito1 = 0
LET credito1 =
GROUP SUM(x.valor_material + x.valor_labor + x.valor_gasto)
ELSE
LET debito1 =
GROUP SUM(x.valor_material + x.valor_labor + x.valor_gasto)
LET credito1 = 0
END IF
SELECT a.descripcion, a.depto
INTO nombre_cta2, xdepto
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_origen
SELECT a.descripcion
INTO nombre_cta3
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_imp_material
IF xdepto = 'N' THEN
LET x.departamento = NULL
END IF
IF debito1 < 0 THEN
LET debito1 = debito1 * -1
END IF
IF credito1 < 0 THEN
LET credito1 = credito1 * -1
END IF
PRINTX x.cuenta_origen,
nombre_cta2,
credito1,
debito1,
x.cuenta_material,
x.cuenta_imp_material,
nombre_cta3,
x.entrada_d,
fecha_inicial,
x.departamento,
x.descripcion_depto
IF x.afecta = "SI" THEN
IF x.cuenta_origen IS NOT NULL THEN
INSERT INTO cgtb00004(
fecha,
tipo,
ref,
cuenta_no,
detalle_1,
debito,
credito,
us_crea,
fech_crea)
VALUES(fecha_final,
1,
x.entrada_d,
x.cuenta_origen,
x.detalle,
debito1,
credito1,
x.usuario,
GETDATE())
END IF
{ IF x.cuenta_imp_material IS NOT NULL THEN
INSERT INTO cgtb00004 (fecha,tipo,ref,cuenta_no,detalle_1,debito,credito,us_crea,fech_crea)
VALUES(fecha_final,1,x.entrada_d,x.cuenta_imp_material,
x.detalle,debito1,credito1,x.usuario,GETDATE())
DISPLAY " DATA 7 ",x.cuenta_imp_material," ",debito1," ",credito1
END IF}
END IF
ON LAST ROW
# IF x.afecta = 'SI' THEN
# COMMIT WORK
# END IF
{ IF x.afecta = "SI" THEN
UPDATE cgtb00011
SET referencia = referencia + 1,
us_mod = usuarios,
fech_mod = getdate()
WHERE entrada_no = 5
END IF}
LET t_credito =
SUM(x.valor_material + x.valor_labor + x.valor_gasto)
LET t_debito = SUM(x.valor_material + x.valor_labor + x.valor_gasto)
PRINTX t_debito, t_credito
END REPORT