507 lines
19 KiB
Plaintext
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
|