Files

741 lines
28 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : EDPRRP000
OBJETIVO : Listar las Entrada de Diario PRODUCTOS TERMINADOS
PROGRAMADOR : JUAN F. SOTO
FECHA REALIZACION : FEBRERO 20, 1998.
-------------------------------------------------------------------------------
}
DATABASE marmotech
GLOBALS
DEFINE salir CHAR(1)
DEFINE select_ac,select_ant,select_p CHAR(1000)
DEFINE l,idx_ac,ano,idx_a,idx_c SMALLINT
DEFINE ano_act,c_ano CHAR(4)
DEFINE fecha_2 CHAR(8)
DEFINE fecha_ini_per CHAR(8),
p_compania RECORD LIKE companias.*,
criterio CHAR(100)
###### Variables para busqueda de rango de fecha
DEFINE detalle CHAR(30)
DEFINE mes SMALLINT
DEFINE tasa DECIMAL(5,2)
DEFINE p_fecha,fecha1, fecha2 DATE
DEFINE nominas CHAR(1)
DEFINE entra CHAR(14)
DEFINE entra1 CHAR(9)
DEFINE tipo_papel SMALLINT
DEFINE afecta CHAR(1)
DEFINE mano_ob,material,material6,gastos DECIMAL(12,2)
###### Variables para almacenar los datos selecionados
DEFINE selec5, selec6 CHAR(1500)
###### Variables que la almacenan la informacion enviada al reporte
DEFINE acumulado RECORD
cod_mov LIKE iptb00006.cod_mov,
cod_cia LIKE iptb00006.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 LIKE iptb00002.descrip_esp,
unidad_med LIKE iptb00002.unidad_med,
descrip_mov LIKE intb00005.descrip_mov,
consumo LIKE iptb00006.cantidad_2,
material LIKE iptb00004.material,
labor LIKE iptb00004.labor,
gastos LIKE iptb00004.gastos,
cmaterial LIKE iptb00005.cuenta_1,
clabor LIKE iptb00005.cuenta_2,
cgastos LIKE iptb00005.cuenta_3,
cuenta_cia LIKE iptb00022.cuenta_no,
nombre_cia LIKE iptb00022.descripcion,
departamento LIKE iptb00022.departamento
END RECORD
DEFINE diario2 RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
costo DECIMAL(12,2)
END RECORD
DEFINE salir1 CHAR(1)
DEFINE idx INTEGER
END GLOBALS
MAIN
DEFER INTERRUPT
CALL edprrp506()
END MAIN
FUNCTION edprrp506()
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
##### Abriendo y desplegando el formulario de captura de datos
OPEN FORM edfmrp000 FROM "edfmrp000"
DISPLAY FORM edfmrp000
CALL pantalla()
DISPLAY "edprrp506" AT 4,3
DISPLAY "Entrada de Diario de Costos Prod " AT 6,22
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
###### Aceptando los valores para el rango de fecha
INPUT BY NAME entra,fecha1,fecha2,afecta,detalle
AFTER FIELD entra
SELECT unique ref FROM cgtb00004
WHERE ref = entra
IF STATUS != NOTFOUND THEN
ERROR "(12) REGISTRO EXISTE"
NEXT FIELD entra
END IF
LET entra1 = entra
BEFORE FIELD fecha1
SELECT MAX(fecha) INTO p_fecha FROM cgtb00004
WHERE ref = entra1
LET fecha1 = p_fecha + 1
DISPLAY BY NAME fecha1
AFTER FIELD fecha1
IF fecha1 IS NULL THEN
ERROR "(16) CAMPO EN BLANCO"
NEXT FIELD fecha1
END IF
IF fecha1 <= p_fecha THEN
ERROR "(179) EXISTE ENTRADA DE DIARIO CON ESA FECHA"
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 is null THEN
ERROR "(16) CAMPO EN BLANCO"
NEXT FIELD fecha2
END IF
IF fecha1 > fecha2 THEN
ERROR "(149) FECHA NO PUEDE SER MAYOR QUE LA ANTERIOR"
NEXT FIELD fecha1
END IF
###### Selecionando en rango de fecha de la tabla de periodo para el fecha2
SELECT UNIQUE ref FROM cgtb00004 where ref = entra
IF STATUS != NOTFOUND THEN
ERROR "(12) REGISTRO EXISTE"
NEXT FIELD fecha2
END IF
END INPUT
##### Creando la facilidad para cancelar proceso con DELETE O SUPR
IF int_flag THEN
ERROR "(2) OPERACION CANCELADA"
LET int_flag = false
RETURN
END IF
CONSTRUCT BY NAME criterio ON a.cod_mov
IF int_flag THEN
ERROR "(2) OPERACION CANCELADA"
LET int_flag = false
RETURN
END IF
# Busca la informacion requerida
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
LET select_ac =
"SELECT a.cod_mov,c.cod_cia,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec, ",
" c.descrip_esp,c.unidad_med,d.descrip_mov,SUM(a.cantidad_2), ",
" MAX(b.material),MAX(b.labor),Max(b.gastos),d.cuenta_1, ",
" d.cuenta_2,d.cuenta_3,e.cuenta_no,e.descripcion,e.departamento ",
"FROM iptb00006 a,iptb00002 c,iptb00005 d, iptb00022 e,OUTER iptb00004 b ",
"WHERE a.fecha between ? and ? and a.status_t is NULL AND ",
" b.ano = YEAR(?) AND ",
" b.mes_fin = 12 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.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND ",
" a.cod_tipo=c.cod_tipo AND a.cod_sec = c.cod_sec AND ",
" a.cod_mov = d.cod_mov AND b.ventas = 1 ",
" AND c.cod_cia = e.cod_cia AND ",criterio CLIPPED,
"GROUP BY a.cod_mov,c.cod_cia,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec, ",
" c.descrip_esp,c.unidad_med,d.descrip_mov, .cuenta_1, ",
" d.cuenta_2,d.cuenta_3,e.cuenta_no,e.descripcion,e.departamento "
PREPARE busca_ant FROM select_ac
DECLARE actual SCROLL CURSOR FOR busca_ant
OPEN actual USING fecha1,fecha2,fecha2
DISPLAY " "
AT 19,14
##### Envia la Informacion al printer de contabilidad
##### Loop para enviar informacion al reporte
START REPORT opera TO "C:\\archivo"
START REPORT xentrada TO "C:\\archivo1"
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE status != notfound
FETCH actual INTO acumulado.*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
IF int_flag THEN
LET int_flag = false
RETURN
END IF
OUTPUT TO REPORT opera(acumulado.*,fecha1,fecha2,entra,detalle)
OUTPUT TO REPORT xentrada(acumulado.*,fecha1,fecha2,entra,detalle)
END WHILE
FINISH REPORT opera
FINISH REPORT xentrada
RUN "type C:\\archivo1 > %USPRINT%"
RUN "type C:\\archivo > %USPRINT%"
END FUNCTION
#### Funcion para dar salida ordenada a la informacion requerida de
#### una entrada de diario de nominas local
{
Esta funcion se utiliza para desplegar mensajes de los reportes de
los sistemas de Ray-O-Vac Dominicana.
Realizada por Lic. Abner Montalvo y Johnny Soto Agosto 21, 1992
}
FUNCTION msgrp000(tipo_papel)
DEFINE tipo_papel SMALLINT,
longitud CHAR(11),
linea_papel CHAR(50)
CASE
WHEN tipo_papel = 1
LET longitud = " 9 1/2 x 11"
WHEN tipo_papel = 2
LET longitud = "14 7/8 x 11"
END CASE
LET linea_papel = "Coloque papel ",longitud," en la impresora."
DISPLAY linea_papel
AT 15,14
DISPLAY "Asegurese de que la impresora este encendida."
AT 16,14
DISPLAY "<Esc> Ejecuta impresion <Supr> Cancela impresion"
AT 18,14
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
SELECT * INTO p_compania.*
FROM companias
LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY p_compania.nombre CLIPPED AT 4,l
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,70 ATTRIBUTE (BLUE)
DISPLAY "Sistema de Contabilidad General" AT 5,24
DISPLAY hora AT 6,73 ATTRIBUTE(BLUE)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
REPORT opera(x,fecha1,fecha2,entrada,detalle1)
DEFINE x RECORD
cod_mov LIKE iptb00006.cod_mov,
cod_cia LIKE iptb00006.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 LIKE iptb00002.descrip_esp,
unidad_med LIKE iptb00002.unidad_med,
descrip_mov LIKE intb00005.descrip_mov,
consumo LIKE iptb00006.cantidad_2,
material LIKE iptb00004.material,
labor LIKE iptb00004.labor,
gastos LIKE iptb00004.gastos,
cmaterial LIKE iptb00005.cuenta_1,
clabor LIKE iptb00005.cuenta_2,
cgastos LIKE iptb00005.cuenta_3,
cuenta_cia LIKE iptb00022.cuenta_no,
nombre_cia LIKE iptb00022.descripcion,
departamento LIKE iptb00022.departamento
END RECORD
DEFINE fecha1,fecha2 DATE
DEFINE l SMALLINT
DEFINE c_ano1 char(4)
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(3)
DEFINE comp_off CHAR(3)
DEFINE doce CHAR(3)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5)
DEFINE total_p DECIMAL(12,3)
DEFINE total_material,total_labor,total_gastos,t_t_total,t_t_t_total,
t_total_material,t_total_labor,t_total_gastos,t_cantidad
DECIMAL (12,2)
DEFINE ttotal_material,ttotal_labor,ttotal_gastos,tt_t_total,tt_t_t_total,
tt_total_material,tt_total_labor,tt_total_gastos,tt_cantidad
DECIMAL (12,2)
DEFINE total1,material2,material1,mano_ob1,gasto1,mano_ob2,gasto2
DECIMAL(12,2)
DEFINE entrada CHAR(14)
DEFINE detalle1 CHAR(30)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.cod_cia,x.cod_mov,x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET hora = time
LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2
PRINT COLUMN 1, comp_off,"edprrp506",
COLUMN l, p_compania.nombre CLIPPED,
COLUMN 75, "Pag. ",pageno using "###"
LET l = (80 - LENGTH("Sistema de Entradas Al Diario")) / 2
PRINT COLUMN l, "Sistema de Entradas Al Diario",
COLUMN 75, today using "dd/mm/yy"
{
LET l = (80 - LENGTH(x.descrip_mov CLIPPED)) / 2
PRINT COLUMN l, x.descrip_mov CLIPPED,}
PRINT COLUMN 78, hora
PRINT COLUMN 28, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2
USING "dd/mm/yy"
PRINT comp_on
SKIP 1 LINES
BEFORE GROUP OF x.cod_cia
PRINT COLUMN 1,x.nombre_cia
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"----------------------------------------"
PRINT COLUMN 109, "Gasto",
COLUMN 136, "Costo"
PRINT COLUMN 4, "Movimiento",
COLUMN 49, "Cantidad",
3 spaces, "Material",
4 spaces, "Total",
9 spaces, "Labor",
4 spaces, "Total",
6 spaces, "Indirecto",
4 spaces, "Total",
9 spaces, "Total"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"----------------------------------------"
BEFORE GROUP OF x.cod_mov
LET t_cantidad = 0
LET t_t_t_total = 0
LET total_material = 0
LET total_labor = 0
LET total_gastos = 0
LET t_total_material = 0
LET t_total_labor = 0
LET t_total_gastos = 0
LET t_t_total = 0
PRINT COLUMN 1, x.cod_mov using "&&",
COLUMN 7, x.descrip_mov
SKIP 1 LINE
PRINT COLUMN 4, "Productos "
BEFORE GROUP OF x.cod_n
SKIP 1 LINE
LET tt_cantidad = 0
LET tt_t_t_total = 0
LET ttotal_material = 0
LET ttotal_labor = 0
LET ttotal_gastos = 0
LET tt_total_material = 0
LET tt_total_labor = 0
LET tt_total_gastos = 0
LET tt_t_total = 0
ON EVERY ROW
IF x.consumo IS NOT NULL THEN
LET t_cantidad = t_cantidad + x.consumo
LET total_material = x.material * x.consumo
LET total_labor = x.labor * x.consumo
LET total_gastos = x.gastos * x.consumo
LET t_t_total = total_material + total_labor + total_gastos
LET t_t_t_total = t_t_total + t_t_t_total
LET tt_cantidad = tt_cantidad + x.consumo
LET ttotal_material = x.material * x.consumo
LET ttotal_labor = x.labor * x.consumo
LET ttotal_gastos = x.gastos * x.consumo
LET tt_t_total = ttotal_material + total_labor + total_gastos
LET tt_t_t_total = tt_t_total + tt_t_t_total
LET t_total_material = t_total_material + total_material
LET t_total_labor = t_total_labor + total_labor
LET t_total_gastos = t_total_gastos + total_gastos
LET tt_total_material = tt_total_material + ttotal_material
LET tt_total_labor = tt_total_labor + ttotal_labor
LET tt_total_gastos = tt_total_gastos + ttotal_gastos
PRINT COLUMN 1, x.cod_n USING "&","-",
COLUMN 3, x.cod_grupo USING "&","-",
COLUMN 5, x.cod_tipo USING "&&","-",
COLUMN 8, x.cod_sec USING "&&&",
COLUMN 13, x.descrip_esp," ", 2 spaces,
COLUMN 42, x.consumo USING "###,###.###",
COLUMN 53, x.material USING "#,###.#####",
COLUMN 69, total_material using "##,###,###.##",
COLUMN 86, x.labor using "###.#####",
COLUMN 96, total_labor using "#,###,###.##",
COLUMN 109, x.gastos using "###.#####",
COLUMN 116, total_gastos using "#,###,###.##",
COLUMN 121, t_t_total using "##,###,###.##"
END IF
AFTER GROUP OF x.cod_n
LET ttotal_material = GROUP SUM(x.material*x.consumo)
LET ttotal_labor = GROUP SUM(x.labor*x.consumo)
LET ttotal_gastos = GROUP SUM(x.gastos*x.consumo)
PRINT COLUMN 42, "--------------",
COLUMN 69, "--------------",
COLUMN 96, "----------",
COLUMN 116, "-------------",
COLUMN 121, "-------------"
PRINT negrillas_on
PRINT COLUMN 3, "Total ---->",
COLUMN 42, GROUP SUM(x.consumo) using "###,###,###.###",
COLUMN 69, ttotal_material USING "###,###,###.###",
COLUMN 96, ttotal_labor USING "###,###.###",
COLUMN 116, ttotal_gastos USING "##,###,###.###",
COLUMN 121, ttotal_material+ttotal_labor+
ttotal_gastos using "##,###,###.###"
PRINT negrillas_off
AFTER GROUP OF x.cod_cia
LET ttotal_material = GROUP SUM(x.material*x.consumo)
LET ttotal_labor = GROUP SUM(x.labor*x.consumo)
LET ttotal_gastos = GROUP SUM(x.gastos*x.consumo)
PRINT COLUMN 42, "--------------",
COLUMN 69, "--------------",
COLUMN 96, "----------",
COLUMN 116, "-------------",
COLUMN 121, "-------------"
PRINT negrillas_on
PRINT COLUMN 3, "Total ",x.nombre_cia CLIPPED,"---->",
COLUMN 42, GROUP SUM(x.consumo) using "###,###,###.###",
COLUMN 69, ttotal_material USING "###,###,###.###",
COLUMN 96, ttotal_labor USING "###,###.###",
COLUMN 116, ttotal_gastos USING "##,###,###.###",
COLUMN 121, ttotal_material+ttotal_labor+
ttotal_gastos using "##,###,###.###"
PRINT negrillas_off
SKIP TO TOP OF PAGE
END REPORT
REPORT xentrada(x,fecha1,fecha2,entrada,detalle1)
DEFINE x RECORD
cod_mov LIKE iptb00006.cod_mov,
cod_cia LIKE iptb00006.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 LIKE iptb00002.descrip_esp,
unidad_med LIKE iptb00002.unidad_med,
descrip_mov LIKE intb00005.descrip_mov,
consumo LIKE iptb00006.cantidad_2,
material LIKE iptb00004.material,
labor LIKE iptb00004.labor,
gastos LIKE iptb00004.gastos,
cmaterial LIKE iptb00005.cuenta_1,
clabor LIKE iptb00005.cuenta_2,
cgastos LIKE iptb00005.cuenta_3,
cuenta_cia LIKE iptb00022.cuenta_no,
nombre_cia LIKE iptb00022.descripcion,
departamento LIKE iptb00022.departamento
END RECORD,
fecha1,fecha2 DATE,
nombre_cta CHAR(30)
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(3)
DEFINE comp_off CHAR(3)
DEFINE doce CHAR(3),
total_m,total_l,total_g,credito,debito,total_cia DECIMAL(12,4),
p_cuenta CHAR(8),
hora CHAR(5),
entrada CHAR(14),
detalle1 CHAR(50)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.cod_cia,x.cod_mov
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET hora = time
LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2
PRINT COLUMN 1, comp_off,"edprrp000",
COLUMN l, p_compania.nombre CLIPPED,
COLUMN 75, "Pag. ",pageno using "###"
LET l = (80 - LENGTH("Sistema de Entradas Al Diario")) / 2
PRINT COLUMN l, "Sistema de Entradas Al Diario",
COLUMN 75, today using "dd/mm/yy"
LET l = (80 - LENGTH(x.descrip_mov CLIPPED)) / 2
PRINT COLUMN l, x.descrip_mov CLIPPED,
COLUMN 78, hora
PRINT COLUMN 28, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2
PRINT comp_off
PRINT COLUMN 01,"Entrada de Diario No.",
doble_on,entrada,doble_off
PRINT COLUMN 1,"Observaciones: _____________________________________"
PRINT COLUMN 1," _____________________________________"
PRINT COLUMN 1,
"--------------------------------------------------",
"----------------------------------------",
negrillas_on
PRINT COLUMN 2, "Cuenta ",
COLUMN 11, "Dpto",
COLUMN 18, "Concepto",
COLUMN 50, "Debe",
COLUMN 71, "Haber",negrillas_off
PRINT COLUMN 1,
"--------------------------------------------------",
"----------------------------------------"
AFTER GROUP OF x.cod_cia
IF credito IS NULL THEN
LET credito = 0
END IF
IF debito IS NULL THEN
LET debito = 0
END IF
LET total_cia = GROUP SUM (x.material*x.consumo)
LET total_cia = total_cia + GROUP SUM (x.labor*x.consumo)
LET total_cia = total_cia + GROUP SUM (x.gastos*x.consumo)
LET debito = debito + total_cia
SELECT a.descripcion INTO nombre_cta
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_cia
LET p_cuenta = x.cuenta_cia
PRINT COLUMN 2, p_cuenta,
COLUMN 10, x.departamento USING "<<<<",
COLUMN 18, nombre_cta CLIPPED;
IF total_cia < 0 THEN
PRINT COLUMN 65, total_cia using "###,###,##&.&&"
ELSE
PRINT COLUMN 50, total_cia using "###,###,##&.&&"
END IF
IF afecta = "S" THEN
IF total_cia < 0 THEN
LET total_cia = total_cia * - 1
INSERT INTO cgtb00004 VALUES
(fecha2,1,entrada,p_cuenta,x.departamento,null,null,
null,null,detalle1,null,0,total_cia,null,user,
current,null,null)
ELSE
INSERT INTO cgtb00004 VALUES
(fecha2,1,entrada,p_cuenta,x.departamento,null,null,
null,null,detalle1,null,total_cia,0,null,user,
current,null,null)
END IF
END IF
#------------------------------------------------------------------------
# MOVIMIENTOS CON CUENTAS QUE SU VALOR VAN DEL LADO DEBITO
#------------------------------------------------------------------------
LET total_m = GROUP SUM (x.material*x.consumo)
LET credito = total_m + credito
IF total_m != 0 THEN
SELECT a.descripcion INTO nombre_cta
FROM cgtb00001 a
WHERE a.cuenta_no = x.cmaterial
LET p_cuenta = x.cmaterial
PRINT COLUMN 2, p_cuenta,
COLUMN 10, x.departamento USING "<<<<",
COLUMN 18, nombre_cta CLIPPED;
IF total_m < 0 THEN
PRINT COLUMN 50, total_m using "###,###,##&.&&"
ELSE
PRINT COLUMN 65, total_m using "###,###,##&.&&"
END IF
IF afecta = "S" THEN
IF total_m < 0 THEN
LET total_m = total_m * -1
INSERT INTO cgtb00004 VALUES
(fecha2,1,entrada,p_cuenta,x.departamento,
null,null,null,null,detalle1,null,total_m,0,
null,user,current,null,null)
ELSE
INSERT INTO cgtb00004 VALUES
(fecha2,1,entrada,p_cuenta,x.departamento,
null,null,null,null,detalle1,null,0,total_m,
null,user,current,null,null)
END IF
END IF
END IF
LET total_l = GROUP SUM (x.labor*x.consumo)
IF total_l != 0 THEN
SELECT a.descripcion INTO nombre_cta
FROM cgtb00001 a
WHERE a.cuenta_no = x.clabor
LET credito = credito + total_l
LET p_cuenta = x.clabor
PRINT COLUMN 2, p_cuenta,
COLUMN 10, x.departamento USING "<<<<",
COLUMN 18, nombre_cta CLIPPED;
IF total_l < 0 THEN
PRINT COLUMN 50, total_l USING "###,###,##&.&&"
ELSE
PRINT COLUMN 65, total_l USING "###,###,##&.&&"
END IF
IF afecta = "S" THEN
IF total_l < 0 THEN
LET total_l = total_l * -1
INSERT INTO cgtb00004 VALUES
(fecha2,1,entrada,p_cuenta,x.departamento,null,
null,
null,null,detalle1,null,total_l,0,null,user,
current,null,null)
ELSE
INSERT INTO cgtb00004 VALUES
(fecha2,1,entrada,p_cuenta,x.departamento,null,
null,
null,null,detalle1,null,0,total_l,null,user,
current,null,null)
END IF
END IF
END IF
LET total_g = GROUP SUM (x.gastos*x.consumo)
IF total_g != 0 THEN
SELECT a.descripcion INTO nombre_cta
FROM cgtb00001 a
WHERE a.cuenta_no = x.cgastos
LET credito = credito + total_g
LET p_cuenta = x.cgastos
PRINT COLUMN 2, p_cuenta,
COLUMN 10, x.departamento USING "<<<<",
COLUMN 18, nombre_cta CLIPPED;
IF total_g < 0 THEN
PRINT COLUMN 50, total_g USING "###,###,##&.&&"
ELSE
PRINT COLUMN 65, total_g USING "###,###,##&.&&"
END IF
IF afecta = "S" THEN
IF total_g < 0 THEN
LET total_g = total_g * -1
INSERT INTO cgtb00004 VALUES
(fecha2,1,entrada,p_cuenta,x.departamento,null,
null,
null,null,detalle1,null,total_g,0,null,user,
current,null,null)
ELSE
INSERT INTO cgtb00004 VALUES
(fecha2,1,entrada,p_cuenta,x.departamento,null,
null,
null,null,detalle1,null,0,total_g,null,user,
current,null,null)
END IF
END IF
END IF
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 50,"--------------",
COLUMN 65,"--------------"
PRINT COLUMN 35,"Totales-->",
COLUMN 50,debito USING "###,###,##&.&&",
COLUMN 65,credito USING "###,###,##&.&&",negrillas_off
SKIP 2 LINE
PRINT COLUMN 1, detalle1
SKIP 8 LINE
PRINT COLUMN 10,"--------------",
COLUMN 35,"--------------",
COLUMN 60,"--------------"
PRINT COLUMN 10,"PREPARADO POR ",
COLUMN 35," REVISADO POR ",
COLUMN 60,"AUTORIZADO POR"
PRINT COLUMN 1,comp_off,negrillas_off
END REPORT