Files

458 lines
16 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : EDPRRP023
OBJETIVO : Listar las Entrada de Diario Ventas al Contado
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Julio 28, 1993
-------------------------------------------------------------------------------
}
DATABASE rayovac
GLOBALS
###### Variables para busqueda de rango de fecha
DEFINE detalle CHAR(30),
mes SMALLINT ,
ano CHAR(4) ,
tasa DECIMAL(5,2) ,
p_fecha,fecha1, fecha2 DATE ,
afecta, ventas CHAR(1),
entra CHAR(14),
entra1 CHAR(5),
tipo_papel SMALLINT
###### Variables que la almacenan la informacion enviada al reporte
DEFINE diario1 RECORD
cuenta CHAR(8),
descripcion CHAR(30),
monto DECIMAL(10,2)
END RECORD
###### Variables que la almacenan la informacion enviada al reporte
DEFINE diario2 RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
factura INTEGER,
valor DECIMAL(12,2),
sub_total DECIMAL(10,2)
END RECORD
END GLOBALS
MAIN
DEFER INTERRUPT
CALL edprrp023()
END MAIN
FUNCTION edprrp023()
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
##### Abriendo y desplegando el formulario de captura de datos
OPEN FORM edfmrp023 FROM "edfmrp023"
DISPLAY FORM edfmrp023
CALL pantalla()
DISPLAY "edprrp023" AT 4,3
DISPLAY "Entrada de Diario Ventas Al Contado" AT 6,21
LET tipo_papel = 3
CALL msgrp000(tipo_papel)
###### Aceptando los valores para el rango de fecha
INPUT BY NAME entra,fecha1,fecha2,detalle,afecta
AFTER FIELD entra
SELECT unique ref FROM cgtb00004
WHERE ref = entra
IF STATUS != NOTFOUND THEN
ERROR "(12) REGISTRO EXISTE"
NEXT FIELD entra
END IF
LET entra1 = entra
BEFORE FIELD fecha1
SELECT MAX(fecha) INTO p_fecha FROM cgtb00004
WHERE ref[1,5] = entra1
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
###### Selecionando en rango de fecha de la tabla de periodo para el fecha2
SELECT UNIQUE ref FROM cgtb00004 where ref = entra
IF STATUS != NOTFOUND THEN
ERROR "(12) REGISTRO EXISTE"
NEXT FIELD fecha2
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
# Busca la informacion requerida
DECLARE busca CURSOR FOR
SELECT b.cuenta_no,a.descripcion,SUM(b.monto)
FROM cgtb00001 a,tetb00001 b
WHERE a.cuenta_no = b.cuenta_no AND
b.procedencia = 7 AND b.status_t IS NULL
AND a.status_t IS NULL AND
b.fecha BETWEEN fecha1 AND fecha2
GROUP BY 1,2 HAVING SUM(b.monto) <> 0 ORDER BY 1
##### Envia la Informacion al printer de contabilidad
START REPORT entrada23 TO PIPE "lp -dcentral"
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 17,14 ATTRIBUTE (REVERSE)
##### Loop para enviar informacion al reporte
FOREACH busca INTO diario1.*
IF int_flag THEN
ERROR "(2) OPERACION CANCELADA"
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT entrada23(diario1.*,fecha1,fecha2,detalle,entra)
END FOREACH
FINISH REPORT entrada23
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
#### Funcion para dar salida ordenada a la informacion requerida de
#### una entrada de diario de ventas local
REPORT entrada23(x,fecha1,fecha2,detalle1,entrada)
DEFINE x RECORD
cuenta_no CHAR(8),
descripcion CHAR(30),
monto DECIMAL(10,2)
END RECORD
#### Acumula los valores de las diferentes cuentas para entrada diario de venta
DEFINE detalle1 CHAR(30),
total1,total2,total3,total4,total5,total6 DECIMAL(12,2),
bruto1,bruto2,desc1,desc2,itbi1,itbi2,total7,total8 DECIMAL(12,2) ,
tasa1 DECIMAL(5,2),## Almacena la tasa de la tasa de cambio
fecha1,fecha2 DATE,#### Almacena las fecha del rango de busqueda
venta CHAR(1),
doble_on CHAR(2),
doble_off CHAR(2),
negrillas_on CHAR(6),
negrillas_off CHAR(6),
comp_on CHAR(2),
comp_off CHAR(2) ,
doce CHAR(2),
normal CHAR(2) ,
normall CHAR(3) ,
comprimido CHAR(3),
hora CHAR(5),
dpto INTEGER ,
venta1 CHAR(24),
entrada CHAR(14)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
FORMAT
PAGE HEADER
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 027, ASCII 098
LET negrillas_off = ASCII 027, ASCII 099
LET comp_on = ASCII 31
LET comp_off = ASCII 029
LET comprimido = ASCII 031
LET doce = ASCII 030
LET normal = ASCII 27, ASCII 80
LET normall = ASCII 029
LET hora = time
##### Selecionado la descripcion del fecha2
PRINT comp_off
PRINT COLUMN 1, "edprrp023",
COLUMN 23, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 75, "Pag. ",pageno using "###"
PRINT COLUMN 23, " Sistema de Contabilidad",
COLUMN 75, today using "dd/mm/yy"
PRINT COLUMN 23, " Entrada de Diario Ventas al Contado",
COLUMN 78, hora
PRINT COLUMN 34, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2
USING "dd/mm/yy"
# , negrillas_off
SKIP 1 LINE
PRINT COLUMN 1,"Entrada de Diario No.",
doble_on,entrada,doble_off
PRINT COLUMN 01,
"Observaciones: _____________________________________"
PRINT COLUMN 01,
" _____________________________________"
PRINT COLUMN 1,
"--------------------------------------------------",
"----------------------------------------",
negrillas_on
PRINT COLUMN 2, "Cuenta ",
COLUMN 11, "Dpto",
COLUMN 18, "Concepto",
COLUMN 56, "Debe",
COLUMN 71, "Haber",negrillas_off
PRINT COLUMN 1,
"--------------------------------------------------",
"----------------------------------------"
LET total1 = 0
LET total2 = 0
ON EVERY ROW
IF total4 IS NULL THEN
LET total4 = 0
END IF
LET total4 = total4 + x.monto
PRINT COLUMN 2, x.cuenta_no CLIPPED,
COLUMN 18, x.descripcion CLIPPED,
COLUMN 50, x.monto using "###,###,##&.&&"
IF afecta = "S" THEN
INSERT INTO cgtb00004
VALUES(fecha2,1,entrada,x.cuenta_no,null,null,null,null,
null,detalle1,null,x.monto,0,null,user,current,
null,null)
END IF
ON LAST ROW
###### Acumulando totales por columna
SELECT SUM(a.sub_total),SUM(a.monto_desc),SUM(a.monto_itbi)
INTO bruto1,desc1,itbi1
FROM vetb00002 a
WHERE a.fecha_factura BETWEEN
fecha1 AND fecha2 AND a.cond_pago = 1 AND
a.status_t IS NULL AND a.cod_cia = 1 AND
a.ventas = "1"
SELECT SUM(a.sub_total),SUM(a.monto_desc),SUM(a.monto_itbi)
INTO bruto2,desc2,itbi2
FROM vetb00002 a
WHERE a.fecha_factura BETWEEN
fecha1 AND fecha2 AND a.cond_pago = 1 AND
a.status_t IS NULL AND a.cod_cia = 2 AND
a.ventas = "1"
IF bruto1 IS NULL THEN LET bruto1 = 0 END IF
IF bruto2 IS NULL THEN LET bruto2 = 0 END IF
IF desc1 IS NULL THEN LET desc1 = 0 END IF
IF desc2 IS NULL THEN LET desc2 = 0 END IF
IF itbi1 IS NULL THEN LET itbi1 = 0 END IF
IF itbi2 IS NULL THEN LET itbi2 = 0 END IF
LET total1 = (bruto1+itbi1-desc1) + (bruto2+itbi2-desc2)
LET total2 = total4 - total1
LET total3 = itbi1 + itbi2
##### Imprimendo monto descuento para RAY.O.VAC
IF desc1 > 0 THEN
PRINT COLUMN 2, "4110",
COLUMN 11, "4101",
COLUMN 18, "DEDUCCIONES S/VENTAS",
COLUMN 50, desc1 using "###,###,##&.&&"
IF afecta = "S" THEN
INSERT INTO cgtb00004
VALUES(fecha2,1,entrada,"4110",4101,null,null,null,null,
detalle1,null,desc1,0,null,user,current,
null,null)
END IF
END IF
IF desc2 > 0 THEN
PRINT COLUMN 2, "4110",
COLUMN 11, "4103",
COLUMN 18, "DEDUCCIONES S/VENTAS",
COLUMN 50, desc2 using "###,###,##&.&&"
IF afecta = "S" THEN
INSERT INTO cgtb00004
VALUES(fecha2,1,entrada,"4110",4103,null,null,null,null,
detalle1,null,desc2,0,null,user,current,
null,null)
END IF
END IF
IF bruto1 > 0 THEN
PRINT COLUMN 2, "4100",
COLUMN 11, "4101",
COLUMN 18, "VENTAS BRUTAS",
COLUMN 65, bruto1 using "###,###,##&.&&"
IF afecta = "S" THEN
INSERT INTO cgtb00004
VALUES(fecha2,1,entrada,"4100",4101,null,null,null,null,
detalle1,null,0,bruto1,null,user,current,null,
null)
END IF
END IF
IF bruto2 > 0 THEN
PRINT COLUMN 2, "4100",
COLUMN 11, "4103",
COLUMN 18, "VENTAS BRUTAS",
COLUMN 65, bruto2 using "###,###,##&.&&"
IF afecta = "S" THEN
INSERT INTO cgtb00004
VALUES(fecha2,1,entrada,"4100",4103,null,null,null,null,
detalle1,null,0,bruto2,null,user,current,null,null)
END IF
END IF
IF total2 > 0 THEN
PRINT COLUMN 2, "8620",
COLUMN 18, "OTROS ",
COLUMN 65, total2 using "###,###,##&.&&"
IF afecta = "S" THEN
INSERT INTO cgtb00004
VALUES(fecha2,1,entrada,"8620",null,null,null,null,null,
detalle1,null,0,total2,null,user,current,null,null)
END IF
END IF
IF total2 < 0 THEN
PRINT COLUMN 2, "8620",
COLUMN 18, "OTROS ",
COLUMN 50, total2 using "###,###,##&.&&"
IF afecta = "S" THEN
LET total2 = total2 * -1
INSERT INTO cgtb00004
VALUES(fecha2,1,entrada,"8620",null,null,null,null,null,
detalle1,null,total2,0,null,user,current,null,null)
LET total2 = total2 * -1
END IF
END IF
LET total7 = total4 + desc1 + desc2
LET total8 = bruto2 + bruto1 + itbi1 + itbi2
IF total2 < 0 THEN
LET total2 = total2 * -1
LET total7 = total7 + total2
ELSE
LET total8 = total8 + total2
END IF
LET itbi1 = itbi1 + itbi2
IF itbi1 > 0 THEN
PRINT COLUMN 2, "2172",
COLUMN 18, "ITBI",
COLUMN 65, itbi1 using "###,###,##&.&&"
IF afecta = "S" THEN
INSERT INTO cgtb00004
VALUES(fecha2,1,entrada,"2172",null,null,null,null,null,
detalle1,null,0,itbi1,null,user,current,null,null)
END IF
END IF
###### Imprime total DEBITO y total CREDITO
PRINT COLUMN 1,negrillas_on
PRINT COLUMN 35,"Totales-->",
COLUMN 50,"--------------",
COLUMN 65,"--------------"
PRINT COLUMN 50,total7 USING "###,###,##&.&&",
COLUMN 65,total8 USING "###,###,##&.&&"
SKIP 2 LINE
PRINT COLUMN 1, detalle1
PRINT COLUMN 1,comp_off,negrillas_off
END REPORT
{
Esta funcion se utiliza para desplegar mensajes de los reportes de
los sistemas de Ray-O-Vac Dominicana.
Realizada por Lic. Abner Montalvo y Johnny Soto Agosto 21, 1992
}
FUNCTION msgrp000(tipo_papel)
DEFINE tipo_papel SMALLINT,
longitud CHAR(11),
linea_papel CHAR(50)
CASE
WHEN tipo_papel = 1
LET longitud = " 9 1/2 x 11"
WHEN tipo_papel = 2
LET longitud = "14 7/8 x 11"
END CASE
LET linea_papel = "Coloque papel ",longitud," en la impresora."
DISPLAY linea_papel
AT 15,14
DISPLAY "Asegurese de que la impresora este encendida."
AT 16,14
DISPLAY "<Esc> Ejecuta impresion <Supr> Cancela impresion"
AT 18,14
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY "R A Y . O . V A C D O M I N I C A N A, S. A." AT 4,17
ATTRIBUTE (REVERSE,YELLOW)
DISPLAY fecha AT 4,70 ATTRIBUTE (YELLOW)
DISPLAY "Sistema de Contabilidad General" AT 5,24
DISPLAY hora AT 6,73 ATTRIBUTE(YELLOW)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
RUN "type C:\\archivo > %USPRINT%" END FUNCTION