Files
MBS/PROYECTO/vedir/veprrp018.4gl
T

249 lines
7.9 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP018
OBJETIVO : Comisiones por Cobro
PROGRAMADOR : Juan Fco. Sotot
FECHA REALIZACION : Mayo 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "veprgb000.4gl"
DEFINE mes SMALLINT
DEFINE cod_cia SMALLINT
FUNCTION veprrp018()
DEFINE vendedor RECORD
recibo INTEGER,
sec_vend SMALLINT,
fecha_recibo DATE,
fecha_factura DATE,
factura INTEGER,
monto DECIMAL(12,2),
porc_venta DECIMAL(10,4),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vende CHAR(6)
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM vefmrp018 FROM "vefmrp018"
DISPLAY FORM vefmrp018
CALL pantalla()
DISPLAY "veprrp018" AT 4,3
DISPLAY "Comision por Cobros " AT 6,29
## Tipo de papel necesario para imprimir el reporte
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
## Criterio de busqueda para la impresion
INPUT BY NAME cod_cia,mes
CONSTRUCT criterio ON e.cod_emp_sec FROM sec_vend
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DISPLAY " " AT 19,14
DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
LET selec =
"SELECT e.num_doc,e.cod_emp_sec,e.fecha_orig,a.fecha_factura,",
"a.factura,e.valor ",
"FROM vetb00002 a, prdtable c,cctb00001 e ",
"WHERE e.fecha_orig between c.fecha_inicio and ",
"c.fecha_corte and ",
"a.factura = e.aplica_a and ",
"e.tipo_doc = 'PG' and ",
"c.mes = ? and ",
"a.cod_cia = ? and ",criterio clipped,
" and a.ventas = '1' ",
"and a.status_t is null "
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
START REPORT betania TO "C:\\archivo"
PREPARE b_vende FROM selec
DECLARE c_vende CURSOR FOR b_vende
OPEN c_vende USING mes,cod_cia
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere >>" AT 19,14
ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH c_vende INTO vendedor.*
IF status = notfound THEN
EXIT WHILE
END IF
IF cod_cia = 1 THEN
SELECT max(porc_cobros) INTO vendedor.porc_venta FROM vetb00011
WHERE cod_n = 3 and
sec_vend = vendedor.sec_vend and
status_t is null
ELSE
SELECT unique max(porc_cobros) INTO vendedor.porc_venta FROM vetb00011
WHERE cod_n = 6 and
sec_vend = vendedor.sec_vend and
status_t is null
LET vendedor.porc_venta = vendedor.porc_venta / 100
END IF
SELECT nom1_emp,apell1_emp INTO vendedor.nombre_vend,
vendedor.apellido_vend
FROM adtb00003 WHERE num_emp = vendedor.sec_vend
LET vendedor.vende = vendedor.sec_vend using "&&&&"
OUTPUT TO REPORT betania(vendedor.*)
END WHILE
FINISH REPORT betania
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT betania(x)
DEFINE x RECORD
recibo INTEGER,
sec_vend SMALLINT,
fecha_recibo DATE,
fecha_factura DATE,
factura INTEGER,
monto DECIMAL(12,2),
porc_venta DECIMAL(10,4),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vende CHAR(6)
END RECORD
DEFINE primera CHAR(1)
DEFINE nombre_mes CHAR(10)
DEFINE total_clientes INTEGER
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5)
DEFINE i SMALLINT
DEFINE t_monto,porc,total_gen,total_vend,valor_pagar DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 4
ORDER BY x.vende,x.recibo
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
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 doce = ASCII 27, ASCII 77
LET normal = ASCII 27, ASCII 80
LET hora = time
CALL meses()
LET nombre_mes = mes1[mes]
LET lj = (99 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, comp_on
PRINT COLUMN 1, "veprrp018",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 92, "Pag.",
COLUMN 97, pageno using "###"
PRINT COLUMN 41, "Sistema de Ventas ",
COLUMN 90, today using "dd/mm/yyyy"
PRINT COLUMN 34, "Relacion comision por Cobros ",
COLUMN 95, hora
PRINT COLUMN 40, doble_on,nombre_mes,doble_off
SKIP 1 LINES
IF cod_cia = 1 THEN
PRINT COLUMN 1, "Rayovac Domincana"
ELSE
PRINT COLUMN 1, "Distribuidora Dominicana de Pilas"
END IF
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------"
PRINT COLUMN 87, "COMISION"
PRINT COLUMN 2, "RECIBO",
COLUMN 10, "FECHA",
COLUMN 20, "APLICACION",
COLUMN 66, "MONTO",
COLUMN 75, "COMISION",
COLUMN 87, "A PAGAR"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"--------------------"
IF total_gen is null THEN
LET total_gen = 0
END IF
SKIP 1 LINE
BEFORE GROUP OF x.vende
LET total_vend = 0
LET t_monto = 0
PRINT COLUMN 1,doble_on,"VENDEDOR : ",
x.nombre_vend clipped," ",
x.apellido_vend clipped, doble_off
SKIP 1 LINE
ON EVERY ROW
LET valor_pagar = x.monto * x.porc_venta
LET porc = x.porc_venta
PRINT COLUMN 1, x.recibo using "&&&&&&",
COLUMN 9, x.fecha_factura using "dd/mm/yy",
COLUMN 20, x.factura using "&&&&&&",
COLUMN 62, x.monto using "##,###,###.##",
COLUMN 75, x.porc_venta using "###.####",
COLUMN 85, valor_pagar using "###,###.##"
LET t_monto = t_monto + x.monto
LET total_vend = valor_pagar + total_vend
AFTER GROUP OF x.vende
PRINT COLUMN 62, "-------------",
COLUMN 87, "----------"
PRINT COLUMN 50, "Total A Pagar: ",
COLUMN 62, t_monto using "##,###,###.##",
COLUMN 87, total_vend using "###,###.##"
LET total_gen = total_gen + total_vend
LET total_vend = 0
SKIP TO TOP OF PAGE
ON LAST ROW
PRINT comp_off
END REPORT