JSOTO Alta y compilacion G6 de programas CG, Cheques, Activos, Tesoreria, Repuestos e Informatica

Merge de main (ipprrp013/014/046/053) con conflictos resueltos:
- mbsERP.4pw: ipprrp014 conserva ambos 4rp y su 4fd.
- bin/ipprrp014.4rp: columnas MARGEN/CLASIF. + titulo IPPRRP014.

Programas agregados a mbsERP.4pw (53 compilan y enlazan con fgl602):
- CONTABILIDAD GENERAL, ACTIVOS FIJOS, REPUESTOS; grupos nuevos TESORERIA,
  CHEQUES e INFORMATICA (segprmt001 = seguridad2.0/segprmt0001.4gl).
- irdir copiado de 3.20 PROYECTOS/irdir a PROYECTO/irdir; helpers de
  PROYECTOS/otrodir en FUNCIONES_IR (departamento -> irdepartamento.4gl).
- Fuentes mas nuevos de 3.20: edprrp118, edprrp080, acprrp010, cgprmt022.
- FUNCIONES: GeneraEntradaDiario.4gl a la version 3.20 + costoLiquidacion.4gl.
- Ajustes G6: existe duplicado en irprgb000, fakeData de 22 campos y
  answer2 en irprmt036/020 (ApiMaintainC), selectOutputSimple en irprcs008,
  schemas de forms a smarmotech, referencia declarada en cgprmt005.
- cgprmt005 sigue sin enlazar: requiere funciones de EXTERIOR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-15 16:22:14 -04:00
co-authored by Claude Opus 5.5
90 changed files with 16840 additions and 143 deletions
+9 -4
View File
@@ -210,7 +210,9 @@ FUNCTION ipprrp004()
" AND c.cod_n = e.cod_n and c.cod_grupo =e.cod_grupo AND c.cod_tipo = e.cod_tipo AND ",
" c.cod_sec = e.cod_sec ",
" AND e.cod_cia = f.cod_cia and c.cod_mov = k.cod_mov ",
" AND c.status_t is NULL and c.cod_mov = ",
#-> Excluye los movimientos que YA generaron su asiento en linea
# (ipprmt044 sella iptb00006.referenciaentrada). Evita doble contabilizacion.
" AND c.status_t is NULL AND c.referenciaentrada IS NULL and c.cod_mov = ",
cod_mov, #" c.cod_mov = 44 ",
# " AND c.departamento = 2407 ",
"GROUP BY c.cod_mov,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,e.descrip_esp,e.cod_cia,f.descripcion,c.departamento,x.nom_dpto, ",
@@ -306,7 +308,8 @@ FUNCTION ipprrp004()
LET acumulado.cuenta_gasto = acumulado_ac.cuenta_3
# LET acumulado.cuenta_imp_material = acumulado_ac.cuenta_imp_material
LET acumulado.entrada_d = entrada_d
IF acumulado.cod_cia = 3 OR acumulado.cod_cia = 2 THEN
IF (acumulado.cod_cia = 3 OR acumulado.cod_cia = 2)
AND acumulado_ac.cuenta_imp_material IS NOT NULL THEN
LET acumulado.cuenta_material = acumulado_ac.cuenta_imp_material
LET acumulado.cuenta_imp_material = NULL
END IF
@@ -399,9 +402,11 @@ FUNCTION ipprrp004()
LET acumulado.cuenta_imp_material = acumulado_ac.cuenta_imp_material
LET acumulado.entrada_d = entrada_d
IF acumulado.cod_cia = 3 THEN
#-> Solo sustituye si el movimiento tiene cuenta_imp_material; si viene
# NULL (p.ej. mov 46 solo tiene cuenta_1) se perdia la partida de material
IF acumulado.cod_cia = 3
AND acumulado.cuenta_imp_material IS NOT NULL THEN
LET acumulado.cuenta_material = acumulado.cuenta_imp_material
END IF
LET acumulado.cod_n = acumulado_ac.cod_n
LET acumulado.cod_grupo = acumulado_ac.cod_grupo