JSOTO QA G6 (.250): arreglos en reportes de Repuestos y Contabilidad

Repuestos (irdir):
- irprrp002: cod_sec USING '&&&&' (con '&&&' salia *** en sec >= 1000); encabezado
  con companias.nombre (estaba fijo "EUROSTONE").
- irprrp003: filtro de fecha real con parametros (antes CONVERT(...,103) BETWEEN texto:
  traia movimientos de cualquier ano); codigo CHAR(8)/'&&&&' (los sec >= 1000 se
  mezclaban en un mismo grupo y saldo); RIGHT MARGIN 170 (saldo y balance cortados).
- irprrp004: CONSTRUCT sobre irtb00005.cod_mov (antes intb00005: fallaba con filtro).
- irprrp006: JOIN b.cod_n = c.cod_n (antes c.cod_n = c.cod_n).
- irprrp009: CONSTRUCT calificado con b. (columnas ambiguas en el JOIN).
- irprrp045: sin departamento solo muestra los departamentos del usuario (adtb00056).

Contabilidad (cgdir):
- cgprrp014: saldo de apertura acreedor va positivo a la columna CR (restaba en totales).
- cgprrp009: ya no modifica cgtb00004 (UPDATE departamento=0 y reversion); el NULL se
  trata como 0 en las consultas; corrige idx1 (START REPORT se repetia por fila).
- cgprcs024: el acumulado anterior termina el dia antes de "desde" (se contaba doble).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-16 16:50:08 -04:00
co-authored by Claude Opus 5.5
parent 705fadfdb4
commit 0991743a80
9 changed files with 44 additions and 36 deletions
+1 -1
View File
@@ -126,7 +126,7 @@ FUNCTION cgprcs024()
FROM cgtb00004 a
WHERE (a.ref =a.ref AND a.tipo<>3) AND
(a.cuenta_no = gastos[idx].cuenta_no) AND
(a.fecha BETWEEN fecha_ini_act AND fecha.desde ) AND
(a.fecha >= fecha_ini_act AND a.fecha < fecha.desde) AND -- antes BETWEEN ... AND desde: el dia 'desde' se sumaba tambien en el rango (doble)
(a.departamento = cdepartamentos) AND
a.status_t is NULL
--227-1322-2108
+11 -12
View File
@@ -127,20 +127,21 @@ END MAIN
# (7) y tienen el departamento nulo.
# Este UPDATE se reversa al momento de acabar el reporte
UPDATE cgtb00004 set departamento = 0
WHERE departamento is null and cuenta_no[1] = "7"
-- G6: antes UPDATE cgtb00004 SET departamento = 0 (y al final lo revertia a NULL): modificaba
-- el mayor real, no se revertia si no habia datos y convertia en NULL los 0 legitimos.
-- Ahora el departamento nulo se trata como 0 en las consultas (ISNULL/NVL).
DELETE FROM cgtb00016 WHERE ano =p_ano AND mes = p_mes AND programa='cgprrp013.4rp' AND
estado_a <> '275'
LET selec =
"SELECT distinct a.cuenta_no,b.descripcion,d.dpto,a.departamento,c.nom_dpto ",
"SELECT distinct a.cuenta_no,b.descripcion,d.dpto,ISNULL(a.departamento,0),c.nom_dpto ",
"FROM cgtb00001 b, cgtb00004 a, chequeo d,adtb00001 c ",
"WHERE (a.cuenta_no = b.cuenta_no) AND (SUBSTRING(b.cuenta_no,1,1) = '7') AND ",
" (a.departamento = d.departamento) AND a.status_t IS NULL AND ",
" (a.departamento = c.departamento) AND ",
" (ISNULL(a.departamento,0) = d.departamento) AND a.status_t IS NULL AND ",
" (ISNULL(a.departamento,0) = c.departamento) AND ",
" (a.fecha <= ?) AND b.status_t is null AND ",criterio CLIPPED,
"ORDER BY d.dpto,a.departamento,a.cuenta_no"
"ORDER BY d.dpto,ISNULL(a.departamento,0),a.cuenta_no"
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
ATTRIBUTE(blue)
@@ -189,12 +190,10 @@ END MAIN
END IF
OUTPUT TO REPORT gastos_gral(gastos.*,fecha_inicial,fecha_final,p_ano,
ano_ant)
LET idx1 = idx+1
LET idx1 = idx1+1 -- antes idx+1: idx1 no avanzaba y START REPORT se repetia por fila
END FOREACH
IF idx1 > 1 THEN
FINISH REPORT gastos_gral
UPDATE cgtb00004 set departamento = NULL
WHERE departamento = 0 and cuenta_no[1] = "7"
ELSE
CALL fgl_winmessage("INFO","NO EXISTEN REGISTROS","INFO")
END IF
@@ -314,18 +313,18 @@ REPORT gastos_gral(x,fecha1,fecha2,p_ano1,ano_ant1)
FROM cgtb00004 a
WHERE (a.ref NOT MATCHES "ED.99-999/12*") and
(a.cuenta_no = x.cuenta_no) and (a.fecha BETWEEN fecha4 AND fecha5) and
(a.departamento = x.departamento) and a.status_t is null
(a.departamento = x.departamento OR (a.departamento IS NULL AND x.departamento = 0)) and a.status_t is null
SELECT SUM(a.debito-a.credito) INTO x.valor
FROM cgtb00004 a
WHERE (a.cuenta_no = x.cuenta_no) and
(a.fecha BETWEEN fecha_inicial AND fecha_final) and
(a.departamento = x.departamento) and a.status_t is null
(a.departamento = x.departamento OR (a.departamento IS NULL AND x.departamento = 0)) and a.status_t is null
SELECT SUM(a.debito-a.credito) INTO x.valor_ant FROM cgtb00004 a
WHERE (a.ref != ent_diario) and
(a.cuenta_no = x.cuenta_no) and (a.fecha < fecha_inicial) and
(a.departamento = x.departamento) and a.status_t is null
(a.departamento = x.departamento OR (a.departamento IS NULL AND x.departamento = 0)) and a.status_t is null
IF x.ano_ante is null THEN
LET x.ano_ante = 0
+1 -1
View File
@@ -302,7 +302,7 @@ REPORT mayor_ref(x,fecha1,fecha2)
LET total1 = balance
LET total2 = 0
ELSE
LET total2 = balance
LET total2 = balance * -1 -- saldo acreedor va POSITIVO a la columna CR (antes negativo: restaba en los totales)
LET total1 = 0
END IF
IF balance != 0 OR balance_final != 0 THEN