lsoto
This commit is contained in:
@@ -0,0 +1,299 @@
|
||||
GLOBALS "cgprgb000.4gl"
|
||||
|
||||
FUNCTION edprrp118(
|
||||
fecha1, fecha2, detalle, entra, afecta, p_companias, acumulado_arr, usuario)
|
||||
DEFINE
|
||||
handler
|
||||
om
|
||||
.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
||||
r_filename
|
||||
STRING, -- filename of Report Design Document including .4rp extension
|
||||
r_output STRING, -- output format option
|
||||
preview INTEGER
|
||||
|
||||
DEFINE
|
||||
acumulado_arr DYNAMIC ARRAY OF RECORD
|
||||
cod_mov LIKE irtb00006.cod_mov,
|
||||
descrip_mov LIKE intb00005.descrip_mov,
|
||||
departamento SMALLINT,
|
||||
nombre CHAR(30),
|
||||
consumo DECIMAL(12, 2),
|
||||
cuenta CHAR(10),
|
||||
gasto_ind LIKE irtb00013.costo_st,
|
||||
descripcion CHAR(50),
|
||||
consumo_cuenta DECIMAL(12, 2),
|
||||
cuenta_inv CHAR(10)
|
||||
END RECORD,
|
||||
ordenar CHAR(30)
|
||||
|
||||
DEFINE
|
||||
afecta CHAR(3),
|
||||
fecha1, fecha2 DATE,
|
||||
p_cctb01 RECORD LIKE cctb00001.*,
|
||||
entra CHAR(14),
|
||||
detalle CHAR(100),
|
||||
p_companias CHAR(30),
|
||||
idz INT,
|
||||
###### Variables para almacenar los datos selecionados
|
||||
usuario, clave CHAR(80),
|
||||
impresor SMALLINT
|
||||
|
||||
LET r_filename = "edprrp118b.4rp"
|
||||
LET idz = 1
|
||||
|
||||
FOR idx = 1 TO acumulado_arr.getLength()
|
||||
IF idx = 1 THEN
|
||||
IF fgl_report_loadCurrentSettings(r_filename) THEN
|
||||
|
||||
LET preview = 1
|
||||
CALL seleccionarsalida()
|
||||
RETURNING r_output -- load the .4rp file
|
||||
CALL fgl_report_selectDevice(r_output) -- changing default
|
||||
CALL fgl_report_selectPreview(preview) -- changing default
|
||||
LET handler =
|
||||
fgl_report_commitCurrentSettings() -- commit changes
|
||||
|
||||
END IF
|
||||
|
||||
START REPORT entrada14 TO XML HANDLER HANDLER
|
||||
|
||||
END IF
|
||||
|
||||
LET ordenar =
|
||||
acumulado_arr[idz].cuenta CLIPPED,
|
||||
"-",
|
||||
acumulado_arr[idz].departamento USING "&&&&&"
|
||||
OUTPUT TO REPORT entrada14(
|
||||
p_cctb01.*,
|
||||
fecha1,
|
||||
fecha2,
|
||||
detalle,
|
||||
entra,
|
||||
afecta,
|
||||
p_companias,
|
||||
acumulado_arr[idz].*,
|
||||
ordenar, usuario)
|
||||
LET idz = idz + 1
|
||||
END FOR
|
||||
|
||||
IF idx > 1 THEN
|
||||
FINISH REPORT entrada14
|
||||
ELSE
|
||||
CALL fgl_winmessage(
|
||||
"INFO",
|
||||
"NO HAY REGISTROS EN ESTE RANGO DE FECHA Y CON LOS PARAMETROS INDICADOS",
|
||||
"INFO")
|
||||
END IF
|
||||
--RUN imprime
|
||||
END FUNCTION
|
||||
|
||||
REPORT entrada14(
|
||||
x, fecha1, fecha2, detalle1, entrada, afecta, p_companias, y, xordenar, usuario)
|
||||
|
||||
DEFINE x RECORD LIKE cctb00001.*
|
||||
DEFINE usuario VARCHAR(50)
|
||||
DEFINE
|
||||
y RECORD
|
||||
cod_mov LIKE irtb00006.cod_mov,
|
||||
descrip_mov LIKE intb00005.descrip_mov,
|
||||
departamento SMALLINT,
|
||||
nombre CHAR(30),
|
||||
consumo DECIMAL(12, 2),
|
||||
cuenta CHAR(10),
|
||||
gasto_ind LIKE irtb00013.costo_st,
|
||||
descripcion CHAR(30),
|
||||
consumo_cuenta DECIMAL(12, 2),
|
||||
cuenta_inv CHAR(10)
|
||||
END RECORD,
|
||||
xordenar VARCHAR(30)
|
||||
|
||||
### Acumula los valores de las diferentes cuentas para entrada diario de nomina
|
||||
DEFINE
|
||||
invdebito,
|
||||
invcredito,
|
||||
debito,
|
||||
credito,
|
||||
total_departamento,
|
||||
total_haber,
|
||||
total_deber
|
||||
DECIMAL(12, 2),
|
||||
detalle1, nombre_cta, rango_fecha CHAR(100),
|
||||
|
||||
fecha1, fecha2 DATE, #### Almacena las fecha del rango de busqueda
|
||||
hora CHAR(5),
|
||||
entrada CHAR(14),
|
||||
actual VARCHAR(20),
|
||||
afecta CHAR(3),
|
||||
p_companias, desc_cuenta CHAR(30)
|
||||
ORDER BY xordenar
|
||||
FORMAT
|
||||
FIRST PAGE HEADER
|
||||
LET hora = TIME
|
||||
LET actual = TODAY USING "dd/mm/yyyy"
|
||||
LET rango_fecha =
|
||||
"Del ",
|
||||
fecha1 USING "dd/mm/yyyy",
|
||||
" Al ",
|
||||
fecha2 USING "dd/mm/yyyy"
|
||||
LET total_deber = 0
|
||||
LET total_haber = 0
|
||||
BEFORE GROUP OF y.departamento
|
||||
LET total_departamento = 0
|
||||
|
||||
AFTER GROUP OF xordenar
|
||||
|
||||
IF y.consumo < 0 THEN
|
||||
LET debito = GROUP SUM(y.consumo_cuenta) * -1
|
||||
LET credito = 0
|
||||
ELSE
|
||||
LET debito = 0
|
||||
LET credito = GROUP SUM(y.consumo_cuenta)
|
||||
END IF
|
||||
PRINTX entrada,
|
||||
hora,
|
||||
actual,
|
||||
rango_fecha,
|
||||
p_companias,
|
||||
y.cod_mov,
|
||||
y.consumo,
|
||||
y.cuenta,
|
||||
y.departamento,
|
||||
y.descrip_mov,
|
||||
y.gasto_ind,
|
||||
y.nombre,
|
||||
y.consumo_cuenta,
|
||||
y.descripcion,
|
||||
debito,
|
||||
credito,
|
||||
detalle1
|
||||
|
||||
IF afecta = "S" THEN
|
||||
BEGIN WORK
|
||||
IF y.consumo < 0 THEN
|
||||
INSERT INTO cgtb00004(
|
||||
fecha,
|
||||
tipo,
|
||||
ref,
|
||||
cuenta_no,
|
||||
departamento,
|
||||
detalle_1,
|
||||
debito,
|
||||
credito,
|
||||
us_crea,
|
||||
fech_crea)
|
||||
VALUES(fecha2,
|
||||
1,
|
||||
entrada,
|
||||
y.cuenta,
|
||||
y.departamento,
|
||||
detalle1,
|
||||
debito,
|
||||
0,
|
||||
usuarios,
|
||||
GETDATE())
|
||||
ELSE
|
||||
INSERT INTO cgtb00004(
|
||||
fecha,
|
||||
tipo,
|
||||
ref,
|
||||
cuenta_no,
|
||||
departamento,
|
||||
detalle_1,
|
||||
debito,
|
||||
credito,
|
||||
us_crea,
|
||||
fech_crea)
|
||||
VALUES(fecha2,
|
||||
1,
|
||||
entrada,
|
||||
y.cuenta,
|
||||
y.departamento,
|
||||
detalle1,
|
||||
0,
|
||||
credito,
|
||||
usuarios,
|
||||
GETDATE())
|
||||
END IF
|
||||
COMMIT WORK
|
||||
END IF
|
||||
LET total_deber = debito + total_deber
|
||||
LET total_haber = credito + total_haber
|
||||
ON LAST ROW
|
||||
SELECT a.descripcion
|
||||
INTO nombre_cta
|
||||
FROM cgtb00001 a
|
||||
WHERE a.cuenta_no = y.cuenta_inv
|
||||
|
||||
IF nombre_cta IS NULL THEN
|
||||
LET nombre_cta = "CUENTA SIN DESCRIPCION"
|
||||
END IF
|
||||
IF y.consumo < 0 THEN
|
||||
LET invcredito = SUM(y.consumo_cuenta * -1)
|
||||
LET invdebito = 0
|
||||
LET total_haber = invcredito + total_haber
|
||||
ELSE
|
||||
LET invdebito = SUM(y.consumo_cuenta)
|
||||
LET invcredito = 0
|
||||
LET total_deber = invdebito + total_deber
|
||||
END IF
|
||||
IF afecta = "S" THEN
|
||||
BEGIN WORK
|
||||
IF y.consumo < 0 THEN
|
||||
INSERT INTO cgtb00004(
|
||||
fecha,
|
||||
tipo,
|
||||
ref,
|
||||
cuenta_no,
|
||||
detalle_1,
|
||||
debito,
|
||||
credito,
|
||||
us_crea,
|
||||
fech_crea)
|
||||
VALUES(fecha2,
|
||||
1,
|
||||
entrada,
|
||||
y.cuenta_inv,
|
||||
detalle1,
|
||||
0,
|
||||
invcredito,
|
||||
usuarios,
|
||||
GETDATE())
|
||||
ELSE
|
||||
INSERT INTO cgtb00004(
|
||||
fecha,
|
||||
tipo,
|
||||
ref,
|
||||
cuenta_no,
|
||||
detalle_1,
|
||||
debito,
|
||||
credito,
|
||||
us_crea,
|
||||
fech_crea)
|
||||
VALUES(fecha2,
|
||||
1,
|
||||
entrada,
|
||||
y.cuenta_inv,
|
||||
detalle1,
|
||||
invcredito,
|
||||
0,
|
||||
usuarios,
|
||||
GETDATE())
|
||||
END IF
|
||||
|
||||
{UPDATE cgtb00011
|
||||
SET referencia = referencia + 1,
|
||||
us_mod = usuario,
|
||||
fech_mod = getdate()
|
||||
WHERE entrada_no = 5}
|
||||
COMMIT WORK
|
||||
|
||||
END IF
|
||||
|
||||
PRINTX y.cuenta_inv,
|
||||
total_haber,
|
||||
nombre_cta,
|
||||
desc_cuenta,
|
||||
total_deber,
|
||||
invdebito,
|
||||
invcredito
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user