562 lines
17 KiB
Plaintext
562 lines
17 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : EDPRRP117
|
|
OBJETIVO : Listar las Entrada de Diario Cobros Clientes LOCALES US$
|
|
Ingresos
|
|
PROGRAMADOR : JUAN SOTO
|
|
FECHA REALIZACION : Septiembre 11, 2004
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
SCHEMA smarmotech
|
|
GLOBALS
|
|
|
|
###### Variables para busqueda de rango de fecha
|
|
DEFINE
|
|
afecta_act CHAR(2),
|
|
nombre_cta, detalle CHAR(30),
|
|
lj, mes, ultimo, ventas SMALLINT,
|
|
ano CHAR(4),
|
|
tasa DECIMAL(5, 2),
|
|
p_fecha, fecha1, fecha2 DATE,
|
|
nominas CHAR(1),
|
|
entra CHAR(25),
|
|
entra1 CHAR(5),
|
|
tipo_papel SMALLINT,
|
|
p_cctb01 RECORD LIKE cctb00001.*,
|
|
p_companias RECORD LIKE companias.*,
|
|
mano_obra, sueldo_ind, monto_banco, interes DECIMAL(12, 2),
|
|
###### Variables para almacenar los datos selecionados
|
|
selec5, selec6 CHAR(1500),
|
|
HANDLER om.SaxDocumentHandler,
|
|
r_output, afecta, detalle_ent STRING
|
|
|
|
###### Variables que la almacenan la informacion enviada al reporte
|
|
DEFINE
|
|
diario1 RECORD
|
|
cuenta_no SMALLINT,
|
|
descripcion CHAR(30),
|
|
valor DECIMAL(10, 2),
|
|
monto_desc DECIMAL(10, 2)
|
|
END RECORD,
|
|
usuarios, clave CHAR(80),
|
|
impresor SMALLINT
|
|
DEFINE
|
|
normal,
|
|
negrilla_on,
|
|
negrillas_of,
|
|
comp_on,
|
|
comp_off,
|
|
doce,
|
|
doble_on,
|
|
doble_off
|
|
CHAR(3),
|
|
cmd, imprime, copia CHAR(150),
|
|
archivo CHAR(80),
|
|
pventas ui.combobox
|
|
|
|
END GLOBALS
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
CALL edprrp117()
|
|
END MAIN
|
|
|
|
FUNCTION edprrp117()
|
|
DEFINE diario1 RECORD
|
|
valor DECIMAL(10, 2),
|
|
monto_desc DECIMAL(10, 2),
|
|
cuenta_no_ingresos VARCHAR(10),
|
|
cuenta_no_prima_ingresos VARCHAR(10),
|
|
tasa DEC(10, 2)
|
|
END RECORD
|
|
OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21
|
|
|
|
##### Abriendo y desplegando el formulario de captura de datos
|
|
|
|
OPEN FORM edfmrp115 FROM "edfmrp116"
|
|
DISPLAY FORM edfmrp115
|
|
|
|
###### Aceptando los valores para el rango de fecha
|
|
|
|
INPUT BY NAME ventas, fecha1, fecha2, entra, afecta_act, tasa, detalle_ent
|
|
BEFORE INPUT
|
|
LET ventas = 3
|
|
LET pventas = ui.combobox.forname("formonly.ventas")
|
|
CALL cventas()
|
|
|
|
BEFORE FIELD entra
|
|
LET ano = YEAR(fecha1)
|
|
|
|
CALL controlNumericoED(15, fecha1, NULL) RETURNING entra
|
|
DISPLAY "entrada: ", entra
|
|
DISPLAY BY NAME entra
|
|
|
|
{ SELECT MAX(a.ref[7,9]) INTO ultimo FROM cgtb00004 a
|
|
WHERE a.ref[4,5] = entra and a.ref[11,14] = ano
|
|
|
|
IF ultimo is null THEN
|
|
LET ultimo = 0
|
|
END IF
|
|
LET ultimo = ultimo + 1
|
|
|
|
LET entra = "ED.15-",ultimo USING "&&&","/",MONTH(fecha1) USING "&&",ano[3,4]
|
|
DISPLAY BY NAME entra}
|
|
|
|
BEFORE FIELD fecha1
|
|
SELECT MAX(a.fecha)
|
|
INTO p_fecha
|
|
FROM cgtb00004 a
|
|
WHERE a.ref[1, 9] = entra
|
|
LET fecha1 = p_fecha + 1
|
|
|
|
DISPLAY BY NAME fecha1
|
|
|
|
AFTER FIELD fecha1
|
|
IF fecha1 IS NULL THEN
|
|
ERROR "(16) CAMPO EN BLANCO"
|
|
NEXT FIELD fecha1
|
|
END IF
|
|
|
|
IF fecha1 <= p_fecha THEN
|
|
ERROR "(179) EXISTE ENTRADA DE DIARIO CON ESA FECHA"
|
|
NEXT FIELD fecha1
|
|
END IF
|
|
|
|
AFTER FIELD fecha2
|
|
IF fecha2 IS NULL THEN
|
|
ERROR "(16) CAMPO EN BLANCO"
|
|
NEXT FIELD fecha2
|
|
END IF
|
|
|
|
IF fecha1 > fecha2 THEN
|
|
ERROR "(149) FECHA NO PUEDE SER MAYOR QUE LA ANTERIOR"
|
|
NEXT FIELD fecha1
|
|
END IF
|
|
SELECT DISTINCT a.tasa
|
|
INTO tasa
|
|
FROM cgtb00084 a
|
|
WHERE a.ano = YEAR(fecha1)
|
|
AND a.mes = MONTH(fecha1)
|
|
AND a.ventas = ventas
|
|
DISPLAY BY NAME tasa
|
|
###### Selecionando en rango de fecha de la tabla de periodo para el fecha2
|
|
AFTER INPUT
|
|
IF INT_FLAG THEN
|
|
ERROR "OPERACION CANCELADA"
|
|
LET INT_FLAG = FALSE
|
|
RETURN
|
|
END IF
|
|
IF afecta_act = 'S' THEN
|
|
SELECT UNIQUE a.ref FROM cgtb00004 a WHERE a.ref = entra
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
ERROR "(12) REGISTRO EXISTE"
|
|
NEXT FIELD fecha2
|
|
END IF
|
|
END IF
|
|
|
|
END INPUT
|
|
##### Creando la facilidad para cancelar proceso con DELETE O SUPR
|
|
|
|
IF int_flag THEN
|
|
ERROR "(2) OPERACION CANCELADA"
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
CALL seleccionarsalida() RETURNING r_output
|
|
CALL configureoutput(r_output) RETURNING HANDLER
|
|
|
|
START REPORT entrada14 TO XML HANDLER handler
|
|
|
|
# Busca la informacion requerida
|
|
|
|
DECLARE buscar CURSOR FOR
|
|
SELECT a.*, b.cuenta_no_ingresos, b.cuenta_no_prima_ingresos, c.tasa
|
|
FROM cctb00001 a, vetb00060 b, cgtb00084 c
|
|
WHERE a.status_t IS NULL
|
|
AND (a.tipo_doc IN ("PG", "AV"))
|
|
AND a.tipo_cliente = b.tipo_cliente
|
|
AND b.ventas = ventas
|
|
AND b.tipo_cliente = c.tipo_cliente
|
|
AND c.ano = YEAR(fecha1)
|
|
AND c.mes = MONTH(fecha2)
|
|
AND a.fecha_orig BETWEEN fecha1 AND fecha2
|
|
|
|
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>"
|
|
AT 19, 14
|
|
ATTRIBUTE(REVERSE, BOLD)
|
|
|
|
OPEN buscar
|
|
|
|
##### Envia la Informacion al printer de contabilidad
|
|
|
|
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
|
AT 19, 14
|
|
ATTRIBUTE(REVERSE)
|
|
|
|
##### Loop para enviar informacion al reporte
|
|
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH buscar
|
|
INTO p_cctb01.*,
|
|
diario1.cuenta_no_ingresos,
|
|
diario1.cuenta_no_prima_ingresos
|
|
|
|
IF status = NOTFOUND THEN
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
IF p_cctb01.monto_desc IS NULL THEN
|
|
LET p_cctb01.monto_desc = 0
|
|
END IF
|
|
|
|
IF p_cctb01.valor IS NULL THEN
|
|
LET p_cctb01.valor = 0
|
|
END IF
|
|
|
|
IF p_cctb01.tipo_doc = "AV"
|
|
AND p_cctb01.num_doc != p_cctb01.aplica_a THEN
|
|
LET p_cctb01.valor = 0
|
|
LET p_cctb01.monto_desc = 0
|
|
END IF
|
|
|
|
IF p_cctb01.tipo_doc = "AV" THEN
|
|
LET p_cctb01.valor = p_cctb01.valor * -1
|
|
LET p_cctb01.monto_desc = p_cctb01.monto_desc * -1
|
|
END IF
|
|
|
|
#LET diario1.monto_desc = diario1.monto_desc * -1
|
|
|
|
IF int_flag THEN
|
|
ERROR "(2) OPERACION CANCELADA"
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
OUTPUT TO REPORT entrada14(p_cctb01.*, fecha1, fecha2, entra)
|
|
END WHILE
|
|
FINISH REPORT entrada14
|
|
END FUNCTION
|
|
|
|
#### Funcion para dar salida ordenada a la informacion requerida de
|
|
#### una entrada de diario de nominas local
|
|
|
|
REPORT entrada14(x, fecha1, fecha2, entrada)
|
|
|
|
DEFINE x RECORD LIKE cctb00001.*
|
|
|
|
### Acumula los valores de las diferentes cuentas para entrada diario de nomina
|
|
DEFINE
|
|
debito, credito DECIMAL(12, 2),
|
|
|
|
total1, total2, total4 DECIMAL(12, 2),
|
|
fecha1, fecha2 DATE, #### Almacena las fecha del rango de busqueda
|
|
doble_on CHAR(2),
|
|
doble_off CHAR(2),
|
|
negrillas_on CHAR(6),
|
|
negrillas_off CHAR(6),
|
|
hora CHAR(5),
|
|
dpto INTEGER,
|
|
entrada CHAR(25),
|
|
tcredito, tdebito DEC(12, 2)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 2
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
{ LET negrillas_on = ASCII 27, ASCII 69
|
|
LET negrillas_off = ASCII 27, ASCII 70
|
|
LET comp_on = ASCII 15
|
|
LET comp_off = ASCII 18
|
|
LET normal = ASCII 27, ASCII 80
|
|
}
|
|
LET hora = TIME
|
|
|
|
##### Selecionado la descripcion del fecha2
|
|
|
|
LET lj = (80 - LENGTH(p_companias.nombre CLIPPED)) / 2
|
|
PRINT COLUMN 1, comp_off
|
|
PRINT COLUMN 1,
|
|
"edprrp117",
|
|
COLUMN lj,
|
|
p_companias.nombre CLIPPED,
|
|
COLUMN 73,
|
|
" Pag. ",
|
|
PAGENO USING "###"
|
|
PRINT COLUMN 28,
|
|
"Sistema de Contabilidad",
|
|
COLUMN 73,
|
|
TODAY USING "dd/mm/yy"
|
|
|
|
PRINT COLUMN 15,
|
|
"Entrada de Diario Cobros Clientes LOCALES USD$",
|
|
COLUMN 76,
|
|
hora
|
|
|
|
PRINT COLUMN 28,
|
|
"Del ",
|
|
fecha1 USING "dd/mm/yy",
|
|
" Al ",
|
|
fecha2 USING "dd/mm/yy"
|
|
# , negrillas_off
|
|
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 01,
|
|
"Entrada de Diario No.",
|
|
doble_on,
|
|
entrada,
|
|
doble_off
|
|
|
|
PRINT COLUMN 1, "Observaciones: COBROS VENTAS USD$ LOCAL(16,18,22)"
|
|
PRINT COLUMN 1,
|
|
" _____________________________________"
|
|
|
|
PRINT COLUMN 1,
|
|
"----------------------------------------",
|
|
"----------------------------------------"
|
|
|
|
PRINT COLUMN 2,
|
|
"Cuenta ",
|
|
COLUMN 11,
|
|
"Dpto",
|
|
COLUMN 18,
|
|
"Concepto",
|
|
COLUMN 56,
|
|
"Debe",
|
|
COLUMN 71,
|
|
"Haber",
|
|
negrillas_off
|
|
|
|
PRINT COLUMN 1,
|
|
"----------------------------------------",
|
|
"----------------------------------------"
|
|
SKIP 1 LINE
|
|
ON EVERY ROW
|
|
|
|
IF debito IS NULL THEN
|
|
LET debito = 0
|
|
END IF
|
|
|
|
IF credito IS NULL THEN
|
|
LET credito = 0
|
|
END IF
|
|
|
|
IF total1 IS NULL THEN
|
|
LET total1 = 0
|
|
END IF
|
|
IF total2 IS NULL THEN
|
|
LET total2 = 0
|
|
END IF
|
|
IF total4 IS NULL THEN
|
|
LET total4 = 0
|
|
END IF
|
|
LET total1 = total1 + x.valor
|
|
LET total2 = total2 + x.monto_desc
|
|
LET debito = debito + x.valor
|
|
LET tdebito = 0
|
|
LET tcredito = 0
|
|
ON LAST ROW
|
|
LET nombre_cta = NULL
|
|
SELECT descripcion
|
|
INTO nombre_cta
|
|
FROM cgtb00001
|
|
WHERE cuenta_no = "1100-01"
|
|
|
|
IF nombre_cta IS NULL THEN
|
|
LET nombre_cta = "CUENTA SIN DESCRIPCION"
|
|
END IF
|
|
LET debito = 0
|
|
LET debito = SUM(x.valor + x.monto_desc)
|
|
IF debito IS NULL THEN
|
|
LET debito = 0
|
|
END IF
|
|
LET debito = debito * -1
|
|
PRINT COLUMN 2,
|
|
"1100-01",
|
|
COLUMN 18,
|
|
nombre_cta CLIPPED,
|
|
COLUMN 50,
|
|
debito USING "###,###,##&.&&"
|
|
BEGIN WORK
|
|
IF afecta_act = "S" THEN
|
|
|
|
CALL controlNumericoED(15, fecha1, usuarios) RETURNING entra
|
|
DISPLAY "entrada real: ", entra
|
|
LET entrada = entra
|
|
DISPLAY BY NAME entra
|
|
|
|
INSERT INTO cgtb00004
|
|
VALUES(fecha2,
|
|
1,
|
|
entrada,
|
|
"1100-01",
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
detalle1,
|
|
NULL,
|
|
debito,
|
|
0,
|
|
NULL,
|
|
SUER_SNAME(),
|
|
GETDATE(),
|
|
NULL,
|
|
NULL)
|
|
END IF
|
|
LET tdebito = tdebito + debito
|
|
SELECT descripcion
|
|
INTO nombre_cta
|
|
FROM cgtb00001
|
|
WHERE cuenta_no = "1100-02"
|
|
|
|
PRINT COLUMN 2,
|
|
"1100-02",
|
|
COLUMN 18,
|
|
nombre_cta CLIPPED,
|
|
COLUMN 50,
|
|
debito * tasa USING "###,###,##&.&&"
|
|
IF afecta_act = "S" THEN
|
|
INSERT INTO cgtb00004
|
|
VALUES(fecha2,
|
|
1,
|
|
entrada,
|
|
"1100-02",
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
detalle1,
|
|
NULL,
|
|
debito * tasa,
|
|
0,
|
|
NULL,
|
|
SUER_SNAME(),
|
|
GETDATE(),
|
|
NULL,
|
|
NULL)
|
|
END IF
|
|
LET tdebito = tdebito + debito * tasa
|
|
|
|
LET nombre_cta = NULL
|
|
SELECT descripcion
|
|
INTO nombre_cta
|
|
FROM cgtb00001
|
|
WHERE cuenta_no = "1120-01"
|
|
|
|
IF nombre_cta IS NULL THEN
|
|
LET nombre_cta = "CUENTA SIN DESCRIPCION"
|
|
END IF
|
|
|
|
PRINT COLUMN 2,
|
|
"1120-01",
|
|
COLUMN 18,
|
|
nombre_cta CLIPPED,
|
|
COLUMN 65,
|
|
debito USING "###,###,##&.&&"
|
|
IF afecta_act = "S" THEN
|
|
INSERT INTO cgtb00004
|
|
VALUES(fecha2,
|
|
1,
|
|
entrada,
|
|
"1120-01",
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
detalle1,
|
|
NULL,
|
|
0,
|
|
debito * tasa,
|
|
NULL,
|
|
SUER_SNAME(),
|
|
GETDATE(),
|
|
NULL,
|
|
NULL)
|
|
END IF
|
|
LET tcredito = tcredito + debito
|
|
LET nombre_cta = NULL
|
|
SELECT descripcion
|
|
INTO nombre_cta
|
|
FROM cgtb00001
|
|
WHERE cuenta_no = "1120-02"
|
|
|
|
IF nombre_cta IS NULL THEN
|
|
LET nombre_cta = "CUENTA SIN DESCRIPCION"
|
|
END IF
|
|
PRINT COLUMN 2,
|
|
"1120-02",
|
|
COLUMN 18,
|
|
nombre_cta CLIPPED,
|
|
COLUMN 65,
|
|
debito * tasa USING "###,###,##&.&&"
|
|
IF afecta_act = "S" THEN
|
|
INSERT INTO cgtb00004
|
|
VALUES(fecha2,
|
|
1,
|
|
entrada,
|
|
"1120-02",
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
detalle1,
|
|
NULL,
|
|
0,
|
|
debito * tasa,
|
|
NULL,
|
|
SUER_SNAME(),
|
|
GETDATE(),
|
|
NULL,
|
|
NULL)
|
|
END IF
|
|
|
|
LET tcredito = tcredito + debito * tasa
|
|
|
|
COMMIT WORK
|
|
|
|
###### Imprime total DEBITO y total CREDITO
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, negrillas_on
|
|
PRINT COLUMN 50, "--------------", COLUMN 65, "--------------"
|
|
PRINT COLUMN 35,
|
|
"Totales-->",
|
|
COLUMN 50,
|
|
tdebito USING "###,###,##&.&&",
|
|
COLUMN 65,
|
|
tcredito USING "###,###,##&.&&",
|
|
negrillas_off
|
|
SKIP 2 LINE
|
|
PRINT COLUMN 1, detalle_ent
|
|
SKIP 30 LINE
|
|
PRINT COLUMN 10,
|
|
"--------------",
|
|
COLUMN 35,
|
|
"--------------",
|
|
COLUMN 60,
|
|
"--------------"
|
|
PRINT COLUMN 10,
|
|
"PREPARADO POR",
|
|
COLUMN 35,
|
|
" REVISADO POR ",
|
|
COLUMN 60,
|
|
"AUTORIZADO POR"
|
|
PRINT COLUMN 1, comp_off, negrillas_off
|
|
SKIP 4 LINE
|
|
END REPORT
|