200 lines
6.1 KiB
Plaintext
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
|