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:
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<ManagedForm databaseName="sistemas" fileVersion="31400" gstVersion="31405" name="managedform" uid="{29ca7c1b-b292-45a4-9e5b-d22ba8587f8d}">
|
||||
<ManagedForm databaseName="smarmotech" fileVersion="31400" gstVersion="31405" name="managedform" uid="{29ca7c1b-b292-45a4-9e5b-d22ba8587f8d}">
|
||||
<AGSettings>
|
||||
<DynamicProperties version="2"/>
|
||||
</AGSettings>
|
||||
|
||||
@@ -7,7 +7,7 @@ FECHA REALIZADO : Septiembre 28, 1993.
|
||||
MODULO UTILIZA : cgprmt001
|
||||
--------------------------------------------------------------------------
|
||||
}
|
||||
database marmotech
|
||||
database smarmotech
|
||||
screen
|
||||
{
|
||||
Consulta departamentos
|
||||
|
||||
@@ -52,6 +52,7 @@ FUNCTION cgprmt005()
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION cgprad005()
|
||||
DEFINE referencia LIKE cgtb00004.ref -- G6: no estaba declarada (-8446)
|
||||
LET hoy = TODAY
|
||||
LABEL volver1:
|
||||
INITIALIZE recibo.* TO NULL
|
||||
|
||||
+136
-38
@@ -8,14 +8,18 @@
|
||||
}
|
||||
GLOBALS
|
||||
"cgprgb000.4gl"
|
||||
|
||||
DEFINE pano,pmes,pventas INT,
|
||||
ptasa DEC(8,2),
|
||||
preplica VARCHAR(2)
|
||||
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL STARTLOG("CGPRMT021.TXT")
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
|
||||
CONNECT to "marmotech" AS "MSSQL" USER usuarios USING clave
|
||||
CALL cgprmt022()
|
||||
END MAIN
|
||||
FUNCTION cgprmt022()
|
||||
@@ -24,50 +28,110 @@ FUNCTION cgprmt022()
|
||||
ano SMALLINT,
|
||||
mes SMALLINT,
|
||||
ventas SMALLINT,
|
||||
tipo_cliente SMALLINT,
|
||||
|
||||
tasa DEC(8,2)
|
||||
END RECORD
|
||||
|
||||
END RECORD,
|
||||
actualiza,selec,inserta STRING,
|
||||
i INT,
|
||||
clientes DYNAMIC ARRAY OF RECORD
|
||||
tipo_cliente1 INT,
|
||||
tasa1 DEC(12,2)
|
||||
END RECORD,
|
||||
replica VARCHAR(2)
|
||||
OPEN WINDOW w1 WITH FORM "cgfmmt022"
|
||||
|
||||
INPUT BY NAME mtasa.*
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
INPUT BY NAME mtasa.*,replica
|
||||
BEFORE INPUT
|
||||
CALL cventas()
|
||||
LET mtasa.ano = YEAR(TODAY)
|
||||
LET mtasa.mes = MONTH(TODAY)-1
|
||||
DISPLAY BY NAME mtasa.ano,mtasa.mes
|
||||
LET selec = "SELECT DISTINCT a.ano FROM marmotech.dbo.cgtb00084 a WHERE a.ano = ? AND a.mes = ? AND a.ventas = ? AND a.tipo_cliente = ?"
|
||||
PREPARE selecciona FROM selec
|
||||
|
||||
AFTER INPUT
|
||||
IF INT_FLAG THEN
|
||||
CALL msg(16)
|
||||
LET INT_FLAG = FALSE
|
||||
EXIT INPUT
|
||||
END IF
|
||||
SELECT DISTINCT a.tipo_cliente FROM vetb00061 a WHERE a.tipo_cliente = mtasa.tipo_cliente AND
|
||||
a.ventas = mtasa.ventas
|
||||
IF STATUS = NOTFOUND THEN
|
||||
CALL fgl_winmessage("INFO","COMBINACION TIPO CLIENTE Y MONEDA ESTAN ERRADOS","INFO")
|
||||
NEXT FIELD ventas
|
||||
END IF
|
||||
SELECT DISTINCT a.ano,a.mes,a.ventas,a.tipo_cliente,a.tasa
|
||||
INTO mtasa.ano,mtasa.mes,mtasa.ventas,mtasa.tipo_cliente
|
||||
FROM cgtb00084 a WHERE a.ano = mtasa.ano AND a.mes = mtasa.mes AND
|
||||
a.ventas = mtasa.ventas AND a.tipo_cliente = mtasa.tipo_cliente
|
||||
IF STATUS <> NOTFOUND THEN
|
||||
DISPLAY BY NAME mtasa.*
|
||||
UPDATE cgtb00084 SET cgtb00084.tasa = mtasa.tasa,
|
||||
us_mod = usuarios,
|
||||
fech_mod = getdate()
|
||||
WHERE cgtb00084.ano = mtasa.ano AND cgtb00084.mes = mtasa.mes AND
|
||||
cgtb00084.ventas = mtasa.ventas AND
|
||||
cgtb00084.tipo_cliente = mtasa.tipo_cliente
|
||||
ELSE
|
||||
INSERT INTO cgtb00084 (ano,mes,ventas,tipo_cliente,tasa,us_crea,fech_crea) VALUES
|
||||
(mtasa.ano,mtasa.mes,mtasa.ventas,mtasa.tipo_cliente,mtasa.tasa,usuarios,getdate())
|
||||
END IF
|
||||
CALL msg(13)
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
LET actualiza = "UPDATE marmotech.dbo.cgtb00084 set tasa = ? WHERE ano = ? and mes = ? and ventas =? and tipo_cliente = ?"
|
||||
PREPARE actual FROM actualiza
|
||||
|
||||
LET inserta = "INSERT INTO marmotech.dbo.cgtb00084 (ano,mes,tipo_cliente,ventas,tasa) values ",
|
||||
" (?,?,?,?,?)"
|
||||
PREPARE adicionar FROM inserta
|
||||
|
||||
ON CHANGE tasa
|
||||
DECLARE busca_tipos CURSOR for
|
||||
SELECT DISTINCT a.tipo_cliente FROM vetb00061 a WHERE a.ventas = mtasa.ventas AND a.tipo_cliente > 14
|
||||
|
||||
LET i =1
|
||||
FOREACH busca_tipos INTO clientes[i].*
|
||||
LET clientes[i].tasa1=mtasa.tasa
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
|
||||
IF i=1 THEN
|
||||
CALL fgl_winmessage("INFO","COMBINACION TIPO CLIENTE Y MONEDA ESTAN ERRADOS","INFO")
|
||||
NEXT FIELD ventas
|
||||
END IF
|
||||
END INPUT
|
||||
DISPLAY ARRAY clientes TO sclientes.*
|
||||
ON ACTION actualizar ATTRIBUTE(TEXT="Actualiza")
|
||||
IF fgl_winquestion("Actualiza","Estas seguro de Actualizar la tasa?","No","Yes|No","question",0) = "Yes" THEN
|
||||
FOR i = 1 TO clientes.getLength()
|
||||
IF clientes[i].tipo_cliente1 IS NOT NULL THEN
|
||||
IF clientes[i].tasa1 IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD tasa
|
||||
END IF
|
||||
SELECT DISTINCT a.ano,a.mes,a.ventas,a.tipo_cliente,a.tasa
|
||||
INTO mtasa.ano,mtasa.mes,mtasa.ventas,clientes[i].tipo_cliente1
|
||||
FROM cgtb00084 a WHERE a.ano = mtasa.ano AND a.mes = mtasa.mes AND
|
||||
a.ventas = mtasa.ventas AND a.tipo_cliente = clientes[i].tipo_cliente1
|
||||
|
||||
IF STATUS <> NOTFOUND THEN
|
||||
DISPLAY BY NAME mtasa.*
|
||||
UPDATE cgtb00084 SET cgtb00084.tasa = mtasa.tasa,
|
||||
us_mod = usuarios,
|
||||
fech_mod = getdate()
|
||||
WHERE cgtb00084.ano = mtasa.ano AND cgtb00084.mes = mtasa.mes AND
|
||||
cgtb00084.ventas = mtasa.ventas AND
|
||||
cgtb00084.tipo_cliente = clientes[i].tipo_cliente1
|
||||
ELSE
|
||||
INSERT INTO cgtb00084 (ano,mes,ventas,tipo_cliente,tasa,us_crea,fech_crea) VALUES
|
||||
(mtasa.ano,mtasa.mes,mtasa.ventas,clientes[i].tipo_cliente1,mtasa.tasa,usuarios,getdate())
|
||||
END IF
|
||||
|
||||
|
||||
# PARA LA BASE DE DATOS MARMOTECH
|
||||
EXECUTE selecciona USING mtasa.ano,mtasa.mes,mtasa.ventas,clientes[i].tipo_cliente1
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
IF clientes[i].tipo_cliente1 IS NOT NULL THEN
|
||||
EXECUTE adicionar USING mtasa.ano,mtasa.mes,clientes[i].tipo_cliente1,mtasa.ventas,mtasa.tasa
|
||||
END IF
|
||||
ELSE
|
||||
EXECUTE actual USING mtasa.tasa,mtasa.ano,mtasa.mes,mtasa.ventas,clientes[i].tipo_cliente1
|
||||
END IF
|
||||
|
||||
END IF
|
||||
END FOR
|
||||
LET pano = mtasa.ano
|
||||
LET pmes = mtasa.mes
|
||||
LET pventas = mtasa.ventas
|
||||
LET ptasa = mtasa.tasa
|
||||
LET preplica = replica
|
||||
IF replica = "SI" THEN
|
||||
CALL replicar()
|
||||
END IF
|
||||
CALL insertalog()
|
||||
CALL fgl_winmessage("INFO","ACTUALIZACION EXITOSA","INFO")
|
||||
END IF
|
||||
END DISPLAY
|
||||
|
||||
|
||||
ON ACTION CANCEL
|
||||
CALL fgl_winmessage("INFO","OPERACION CANCELADA","INFO")
|
||||
RETURN
|
||||
|
||||
END DIALOG
|
||||
CLOSE WINDOW w1
|
||||
END FUNCTION
|
||||
|
||||
@@ -79,7 +143,7 @@ FUNCTION cventas()
|
||||
LET pventas = ui.combobox.forname("formonly.ventas")
|
||||
|
||||
DECLARE bventas CURSOR FOR
|
||||
SELECT a.ventas,a.descripcion FROM vetb00061 a
|
||||
SELECT a.ventas,a.descripcion FROM vetb00060 a
|
||||
CALL pventas.clear()
|
||||
|
||||
FOREACH bventas INTO kventas,dventas
|
||||
@@ -87,3 +151,37 @@ FUNCTION cventas()
|
||||
END FOREACH
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION replicar()
|
||||
DEFINE replica,selecta,actualizacion STRING,
|
||||
mes_falta,k,mesinsert INT
|
||||
|
||||
|
||||
LET actualizacion = "UPDATE marmotech.dbo.cgtb00084 set tasa = ? WHERE ano = ? AND mes = ? AND ventas = ?"
|
||||
PREPARE actualizacionxe FROM actualizacion
|
||||
|
||||
LET selecta = "SELECT DISTINCT a.ano FROM marmotech.dbo.cgtb00084 a WHERE a.ano = ? AND a.mes = ? AND a.ventas = ?"
|
||||
PREPARE selecciona FROM selecta
|
||||
|
||||
LET replica = "INSERT INTO marmotech.dbo.cgtb00084 (ano,mes,ventas,tipo_cliente,tasa)
|
||||
SELECT a.ano,?,a.ventas,a.tipo_cliente,a.tasa FROM cgtb00084 a WHERE a.ano = ? AND a.mes = ? AND a.ventas = ? "
|
||||
PREPARE duplica FROM replica
|
||||
|
||||
LET mes_falta = 12 - pmes
|
||||
LET mesinsert = pmes + 1
|
||||
FOR k = 1 TO mes_falta
|
||||
EXECUTE selecciona USING pano,mesinsert,pventas
|
||||
IF STATUS = NOTFOUND THEN
|
||||
EXECUTE duplica USING mesinsert,pano,pmes,pventas
|
||||
ELSE
|
||||
EXECUTE actualizacionxe USING ptasa,pano,mesinsert,pventas
|
||||
END IF
|
||||
LET mesinsert = mesinsert + 1
|
||||
END FOR
|
||||
|
||||
|
||||
END FUNCTION
|
||||
FUNCTION insertaLog()
|
||||
|
||||
INSERT INTO cgtb00084_log VALUES (getdate(),usuarios,preplica)
|
||||
END FUNCTION
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<ManagedForm databaseName="smarmotech" fileVersion="31400" gstVersion="31408" name="ManagedForm" uid="{49cf58f8-0836-404a-8a30-ef813c88a4b4}">
|
||||
<ManagedForm databaseName="smarmotech" fileVersion="31400" gstVersion="3140a" name="ManagedForm" uid="{49cf58f8-0836-404a-8a30-ef813c88a4b4}">
|
||||
<AGSettings>
|
||||
<DynamicProperties version="2"/>
|
||||
</AGSettings>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -33,8 +33,8 @@ FUNCTION irprrp009()
|
||||
|
||||
DEFINE select_ac CHAR(1000)
|
||||
DEFINE c_ano CHAR(4)
|
||||
DEFINE entra, nombre_mes CHAR(25)
|
||||
DEFINE entra1 CHAR(5)
|
||||
DEFINE nombre_mes CHAR(25)
|
||||
|
||||
DEFINE detalle CHAR(100)
|
||||
DEFINE numero_ent CHAR(2)
|
||||
DEFINE ano_act CHAR(4)
|
||||
@@ -159,8 +159,8 @@ FUNCTION irprrp009()
|
||||
CALL controlNumericoED(
|
||||
numero_ent, datos_cons.fech_fi, NULL)
|
||||
RETURNING entrada
|
||||
|
||||
DISPLAY BY NAME entrada
|
||||
LET entra = entrada
|
||||
DISPLAY BY NAME entra
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
@@ -204,7 +204,9 @@ FUNCTION irprrp009()
|
||||
"irtb00005 AS c ON b.cod_mov = c.cod_mov LEFT OUTER JOIN ",
|
||||
"adtb00001 AS d ON b.sec_a = d.departamento ",
|
||||
"WHERE ",
|
||||
" b.fecha BETWEEN ? AND ? AND b.status_t IS NULL ",
|
||||
#-> Excluye los movimientos que YA generaron su asiento en linea
|
||||
# (irprmt036 sella irtb00006.referenciaentrada). Evita doble contabilizacion.
|
||||
" b.fecha BETWEEN ? AND ? AND b.status_t IS NULL AND b.referenciaentrada IS NULL ",
|
||||
" GROUP BY b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,a.descrip_esp,a.unidad_med,b.cod_mov,c.descrip_mov,b.sec_a,d.nom_dpto, a.cuenta,e.cuenta_no ",
|
||||
" ORDER BY b.cod_mov,b.sec_a,b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user