{ ------------------------------------------------------------------------------- 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