{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP003 OBJETIVO : Comisiones por Ventas PROGRAMADOR : Juan Fco. Soto FECHA REALIZACION : Mayo 27, 1993 ------------------------------------------------------------------------------- } GLOBALS "teprgb000.4gl" DEFINE mes SMALLINT, ano CHAR(4) DEFINE cod_cia SMALLINT FUNCTION teprrp003() DEFINE vendedor RECORD cod_vend SMALLINT, sec_vend SMALLINT, fecha_factura DATE, factura INTEGER, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, cantidad INTEGER , precio DECIMAL(10,2), porc_venta DECIMAL(10,4), descrip_esp CHAR(30), 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 tefmrp003 FROM "tefmrp003" DISPLAY FORM tefmrp003 CALL pantalla() DISPLAY "teprrp003" AT 4,3 ATTRIBUTE(RED) DISPLAY " Comision por Ventas " AT 6,29 ATTRIBUTE(BLACK) LET tipo_papel = 1 CALL msgrp000(tipo_papel) CALL defecto(impresor) RETURNING imprime,letras.*,archivo INPUT BY NAME cod_cia,mes,ano ON KEY(CONTROL-P) CALL defecto(impresor) RETURNING imprime,letras.*,archivo AFTER INPUT EXIT INPUT END INPUT CONSTRUCT criterio ON a.cod_vend, a.sec_vend,a.ventas,b.cod_n,b.cod_grupo, b.cod_tipo,b.cod_sec FROM cod_vend,sec_vend,ventas,cod_n,cod_grupo,cod_tipo, cod_sec ON KEY(CONTROL-P) CALL defecto(impresor) RETURNING imprime,letras.*,archivo AFTER CONSTRUCT EXIT CONSTRUCT END CONSTRUCT LET parametro = "D" CALL elijeimpresion(parametro) RETURNING orden,destino,letras.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF START REPORT comision TO archivo DISPLAY " " AT 19,14 DISPLAY "<< Buscando Las Informaciones... Espere Por Favor >>" AT 19,14 LET selec = "SELECT a.cod_vend,a.sec_vend,a.fecha_factura,a.factura,b.cod_n, ", " b.cod_grupo,b.cod_tipo,b.cod_sec,b.cantidad,", " b.precio ", "FROM vetb00002 a,vetb00003 b,prdtable c ", "WHERE a.fecha_factura between c.fecha_inicio AND c.fecha_corte AND ", " a.factura=b.factura AND c.mes=? AND a.cod_cia = ? AND ",criterio clipped, " AND a.status_t is null AND c.ano = ? ORDER BY 1,2,4" PREPARE b_vende FROM selec DECLARE c_vende CURSOR FOR b_vende OPEN c_vende USING mes,cod_cia,ano DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose... Espere Por Favor >>" AT 19,14 WHILE STATUS != NOTFOUND FETCH c_vende INTO vendedor.* IF status = notfound THEN EXIT WHILE END IF SELECT a.porc_ventas INTO vendedor.porc_venta FROM vetb00011 a WHERE a.sec_vend = vendedor.sec_vend AND a.cod_n = vendedor.cod_n AND a.cod_grupo = vendedor.cod_grupo AND a.cod_sec = vendedor.cod_sec AND a.status_t IS NULL SELECT a.descrip_esp INTO vendedor.descrip_esp FROM intb00001 a WHERE a.cod_n = vendedor.cod_n and a.cod_grupo = vendedor.cod_grupo and a.cod_tipo = vendedor.cod_tipo and a.cod_sec = vendedor.cod_sec SELECT a.nom1_emp,a.apell1_emp INTO vendedor.nombre_vend,vendedor.apellido_vend FROM adtb00003 a WHERE a.num_emp = vendedor.sec_vend LET vendedor.vende = vendedor.cod_vend using "&&", vendedor.sec_vend using "&&&&" OUTPUT TO REPORT comision (vendedor.*) END WHILE FINISH REPORT comision #RUN imprime CALL fdestino(destino,archivo,imprime) CLEAR SCREEN END FUNCTION REPORT comision(x) DEFINE x RECORD cod_vend SMALLINT, sec_vend SMALLINT, fecha_factura DATE, factura INTEGER, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, cantidad INTEGER , precio DECIMAL(10,2), porc_venta DECIMAL(10,4), descrip_esp CHAR(30), nombre_vend CHAR(30), apellido_vend CHAR(30) , vendedor CHAR(6) END RECORD DEFINE nombre_mes CHAR(10) DEFINE total_clientes INTEGER DEFINE hora CHAR(5) DEFINE i SMALLINT DEFINE porc DECIMAL(10,4) DEFINE total_gen,total_vend,valor_pagar DECIMAL(12,2) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 4 ORDER BY x.vendedor,x.factura FORMAT PAGE HEADER LET hora = time CALL meses() LET nombre_mes = mes1[mes] PRINT COLUMN 1, letras.doce, letras.negrillas_on PRINT COLUMN 1, "teprrp003", COLUMN 27, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 92, "Pag. ",pageno using "###" PRINT COLUMN 41, "Sistema de Ventas ", COLUMN 90, today using "dd/mm/yyyy" PRINT COLUMN 34, "Relacion comision por Vendedor", COLUMN 95, hora, letras.negrillas_off PRINT COLUMN 40, letras.doble_on,nombre_mes,letras.doble_off IF cod_cia = 1 THEN PRINT COLUMN 1, "Rayovac Dominicana" ELSE PRINT COLUMN 1, "Productos Importados" #"Distribuidora Dominicana de Pilas" END IF SKIP 1 LINES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------" PRINT COLUMN 93, "COMISION" PRINT COLUMN 2, "FACTURA", COLUMN 10, "FECHA", COLUMN 20, "PRODUCTO", COLUMN 66, "PRECIO", COLUMN 75, "UNIDADES", COLUMN 84, "COMISION", COLUMN 93, "A PAGAR" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------" IF total_gen is null THEN LET total_gen = 0 END IF SKIP 1 LINE BEFORE GROUP OF x.vendedor LET total_vend = 0 PRINT COLUMN 1,letras.doble_on,"VENDEDOR : ", x.nombre_vend clipped," ", x.apellido_vend clipped, letras.doble_off SKIP 1 LINE ON EVERY ROW # display "porciento ",x.porc_venta IF cod_cia = 1 THEN LET valor_pagar = x.cantidad * x.porc_venta LET porc = x.porc_venta ELSE LET valor_pagar = (x.cantidad * x.precio) * (x.porc_venta / 100) LET porc = x.porc_venta / 100 END IF { display "valor_pagar ",valor_pagar display "porc ",porc } PRINT COLUMN 1, x.factura using "&&&&&&", COLUMN 9, x.fecha_factura using "dd/mm/yyyy", COLUMN 20, x.cod_n using "&","-",x.cod_grupo using "&","-", x.cod_tipo using "&&","-",x.cod_sec using "&&&", " ",x.descrip_esp," "; IF cod_cia = 2 THEN PRINT COLUMN 63, x.cantidad * x.precio using "##,###,###"; END IF PRINT COLUMN 74, x.cantidad using "###,###", COLUMN 84, porc using "###.####", COLUMN 91, valor_pagar using "###,###.##" LET total_vend = valor_pagar + total_vend AFTER GROUP OF x.vendedor PRINT COLUMN 91, "----------" PRINT COLUMN 50, "Total A Pagar: ", COLUMN 91, total_vend using "###,###.##" SKIP 1 LINE LET total_gen = total_gen + total_vend LET total_vend = 0 AFTER GROUP OF x.factura SKIP 1 LINE END REPORT FUNCTION meses() LET mes1[1] = "Enero" LET mes1[2] = "Febrero" LET mes1[3] = "Marzo" LET mes1[4] = "Abril" LET mes1[5] = "Mayo" LET mes1[6] = "Junio" LET mes1[7] = "Julio" LET mes1[8] = "Agosto" LET mes1[9] = "Septiembre" LET mes1[10] = "Octubre" LET mes1[11] = "Noviembre" LET mes1[12] = "Diciembre" END FUNCTION