Files
MBS/PROYECTO/tedir/teregistraentrada.4gl
T

200 lines
6.1 KiB
Plaintext

FUNCTION registraEntrada(dnum_doc, xcuenta_no, xfecha, xventas, xvalor, usuario)
DEFINE
xidEntrada VARCHAR(2),
responde VARCHAR(3),
idx, i INT,
usuario VARCHAR(50),
entradaDiario VARCHAR(25)
DEFINE
registroEntrada DYNAMIC ARRAY OF RECORD
referenciaEntrada VARCHAR(25),
fecha DATE,
tipo CHAR(1),
cuenta_no VARCHAR(8),
departamento INT,
detalle VARCHAR(100),
debito, credito DEC(12, 2)
END RECORD,
generaE BOOLEAN,
xvalor, comision DECIMAL(12, 2),
dnum_Doc INT,
xcuenta_no VARCHAR(10),
xfecha DATE,
xventas VARCHAR(2)
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 -- TRUE/FALSE, to set preview option
LET responde =
fgl_winquestion(
"INFO",
"DESEA AFECTAR CONTABILIDAD?",
"NO",
"YES|NO",
"QUESTION",
0)
# LET responde = fgl_winquestion("INFO","DESEA VER EL REPORTE DE LA ENTRADA?","NO","YES|NO","QUESTION",0)
LET responde = UPSHIFT(responde)
LET xidentrada = '02'
LET generaE = FALSE
SELECT ISNULL(a.v_comision,0)
INTO comision
FROM tetb00001 a
WHERE a.num_doc = dnum_doc
CALL GeneraEntradaDiario(
usuario,
'DEPOSITOS',
XidEntrada,
xcuenta_no,
xfecha,
xvalor,
0,
0,
'0',
'0',
xventas,
0,
dnum_doc,
comision)
RETURNING generaE, registroEntrada
IF responde = "YES" THEN
BEGIN WORK
FOR idx = 1 TO registroEntrada.getLength()
IF registroEntrada[idx].cuenta_no IS NOT NULL THEN
INSERT INTO cgtb00004(
fecha,
tipo,
ref,
cuenta_no,
detalle_1,
departamento,
debito,
credito,
us_crea,
fech_crea,
tipo_doc_cxc,
num_doc_cxc,
sucid,
valor_original)
VALUES(registroEntrada[idx].fecha,
registroEntrada[idx].tipo,
entradaDiario,
registroEntrada[idx].cuenta_no,
registroEntrada[idx].detalle,
registroEntrada[idx].departamento,
registroEntrada[idx].debito,
registroEntrada[idx].credito,
usuario,
GETDATE(),
'DE',
dnum_doc,
deposito.sucursal,
xvalor)
UPDATE tetb00001
SET entrada_no = entradaDiario
WHERE num_doc = deposito.num_doc
IF STATUS < 0 THEN
ROLLBACK WORK
CALL msg(1663)
RETURN
END IF
END IF
END FOR
COMMIT WORK
END IF
#ACTUALIZA CONTABILIDAD GENERAL
LET r_filename = "teprmt001ent.4rp"
# LET r_filename = "teentrada.4rp"
LET r_output = "SVG"
LET preview = 1
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview)
LET handler = fgl_report_commitCurrentSettings() -- commit changes
ELSE
EXIT PROGRAM
END IF
--run the report
IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT rp_ent TO XML HANDLER HANDLER
FOR i = 1 TO registroEntrada.getLength()
IF registroEntrada[i].referenciaEntrada IS NOT NULL THEN
DISPLAY "datos: debito: ",registroEntrada[i].debito,
" credito: ",registroEntrada[i].credito
OUTPUT TO REPORT rp_ent(registroEntrada[i].*)
END IF
END FOR
FINISH REPORT rp_ent
END IF
# DISPLAY ARRAY documentos TO record4.*
END FUNCTION
REPORT rp_ent(x)
DEFINE
x RECORD
referenciaEntrada VARCHAR(20),
fecha DATE,
tipo CHAR(1),
cuenta_no VARCHAR(8),
departamento INT,
detalle VARCHAR(100),
debito, credito DEC(12, 2)
END RECORD,
fecha CHAR(40),
descripcion CHAR(100),
total_registro SMALLINT,
t_debito, t_credito DECIMAL(12, 2),
descrip_s VARCHAR(100)
ORDER BY x.referenciaEntrada, x.cuenta_no
FORMAT
PAGE HEADER
LET fecha = TODAY USING "dd/mm/yyyy", ":", TIME
LET total_registro = 0
SELECT a.nombre INTO descrip_s FROM companias a
AFTER GROUP OF x.cuenta_no
SELECT a.descripcion
INTO descripcion
FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_no AND a.status_t IS NULL
LET total_registro = total_registro + 1
PRINTX x.cuenta_no,
x.departamento,
x.debito,
x.credito,
descripcion,
descrip_s,
x.fecha,
X.referenciaEntrada,
fecha,
x.detalle
ON LAST ROW
LET t_credito = SUM(x.credito)
LET t_debito = SUM(x.debito)
PRINTX t_debito, t_credito, total_registro
END REPORT