{ ------------------------------------------------------------------------------- PROGRAMA : CCPRRP020 OBJETIVO : Comisiones por Cobros PROGRAMADOR : Juan Fco. Sotot FECHA REALIZACION : Mayo 28, 1993 ------------------------------------------------------------------------------- } GLOBALS "ccprgb000.4gl" DEFINE ano1 CHAR(4) DEFINE dias,mes SMALLINT, fecha_i,fecha_f DATE DEFINE cod_cia SMALLINT FUNCTION ccprrp020() DEFINE vendedor RECORD recibo INTEGER, sec_vend SMALLINT, fecha_recibo DATE, fecha_factura DATE, factura INTEGER, monto DECIMAL(12,2), sec_cliente LIKE cctb00001.sec_cliente, tipo_cliente LIKE cctb00001.tipo_cliente, 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 ccfmrp020 FROM "ccfmrp020" DISPLAY FORM ccfmrp020 CALL pantalla() DISPLAY "ccprrp020" 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,ano1,mes SELECT a.fecha_corte INTO fecha_i FROM prdtable a WHERE a.ano = ano1 AND a.mes = 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,a.sec_vend,e.fecha_orig,a.fecha_factura, ", " a.factura,e.valor,a.sec_cliente,a.tipo_cliente ", "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 IN ('PG','AV') and c.ano = ? and ", " c.mes = ? and a.cod_cia = ? and ",criterio clipped," and ", " a.ventas='1' and a.status_t is null and e.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 comision_r TO "C:\\archivo" PREPARE b_vende FROM selec DECLARE c_vende CURSOR FOR b_vende OPEN c_vende USING ano1,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 # Control facturas a pagar LET fecha_f = NULL SELECT MAX(a.fecha_factura) INTO fecha_f FROM vetb00002 a WHERE a.factura = vendedor.factura IF fecha_f IS NOT NULL THEN LET vendedor.fecha_factura = fecha_f LET dias = fecha_i - fecha_f ELSE LET vendedor.fecha_factura = fecha_i END IF IF dias < 90 THEN LET vendedor.porc_venta = 0.02 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 comision_r(vendedor.*) END IF END WHILE FINISH REPORT comision_r RUN "TYPE C:\\archivo > %USPRINT%" CLEAR SCREEN END FUNCTION REPORT comision_r(x) DEFINE x RECORD recibo INTEGER, sec_vend SMALLINT, fecha_recibo DATE, fecha_factura DATE, factura INTEGER, monto DECIMAL(12,2), sec_cliente LIKE cctb00001.sec_cliente, tipo_cliente LIKE cctb00001.tipo_cliente, 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, nombrec CHAR(30) 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 001 LET doble_off = ASCII 002 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 027, ASCII 098 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 030 LET hora = time SELECT a.descrip INTO nombre_mes FROM mestable a WHERE a.mes = mes LET lj = (99 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, comp_on PRINT COLUMN 1, "ccprrp020", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 92, "Pag. ",pageno using "###" PRINT COLUMN 35, "Sistema de Cuentas por Cobrar", COLUMN 90, today using "dd/mm/yyyy" PRINT COLUMN 35, "Relacion comision por Cobros", COLUMN 95, hora PRINT COLUMN 40, doble_on,nombre_mes,doble_off SKIP 1 LINES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------" PRINT COLUMN 100, "COMISION" PRINT COLUMN 2, "RECIBO", COLUMN 10, "FECHA", COLUMN 20, "APLICACION", COLUMN 32, "FECHA", COLUMN 45, "CLIENTE", COLUMN 79, "MONTO", COLUMN 88, "COMISION", COLUMN 100, "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.vende CLIPPED," ", x.nombre_vend clipped," ", x.apellido_vend clipped, doble_off SKIP 1 LINE ON EVERY ROW LET nombrec = NULL SELECT a.nombre INTO nombrec FROM vetb00004 a WHERE a.tipo_cliente = x.tipo_cliente and a.sec_cliente = x.sec_cliente 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 30, x.fecha_factura USING "dd/mm/yyyy", COLUMN 43, nombrec, COLUMN 75, x.monto using "##,###,###.##", COLUMN 88, x.porc_venta using "###.####", COLUMN 100, valor_pagar using "#,###,###.##" LET t_monto = t_monto + x.monto LET total_vend = valor_pagar + total_vend AFTER GROUP OF x.vende PRINT COLUMN 75, "-------------", COLUMN 100, "------------" PRINT COLUMN 45, "Total A Pagar: ", COLUMN 75, GROUP SUM(x.monto) using "##,###,###.##", COLUMN 100, 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