{ ------------------------------------------------------------------------------- PROGRAMA : CCPRRP034 OBJETIVO : Documentos Por Vendedor PROGRAMADOR : Tadeo A. Ferreras F. FECHA REALIZACION : Oct. 04, 1994 ------------------------------------------------------------------------------- } GLOBALS "ccprgb000.4gl" DEFINE fecha_inicial,fecha_final DATE DEFINE puede CHAR(1) DEFINE valor_total,total_vend,t_monto,t_monto1 DECIMAL(12,2) DEFINE ano1 CHAR(4) DEFINE mes SMALLINT DEFINE cod_cia SMALLINT MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CALL ARG_VAL(7) RETURNING strconect IF strconect = 'marmotech' THEN CONNECT to strconect USER 'conecta' USING 'conecta' ELSE CONNECT to strconect USER usuarios USING clave END IF SELECT a.* INTO p_companias.* FROM companias a CALL ccprrp034() END MAIN FUNCTION ccprrp034() DEFINE doc_vend RECORD sec_vend SMALLINT, tipo CHAR(2), tipo_cliente SMALLINT, sec_cliente INTEGER, num_doc INTEGER, nombre CHAR(30), aplica_a INTEGER, fecha DATE, valor DECIMAL(12,2), monto_desc DECIMAL(12,2), neto DECIMAL(12,2) END RECORD #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM ccfmrp034 FROM "ccfmrp034" DISPLAY FORM ccfmrp034 ## 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 fecha_inicial,fecha_final AFTER FIELD fecha_inicial IF fecha_inicial IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF LET fecha_final = today DISPLAY BY NAME fecha_final AFTER FIELD fecha_final IF fecha_final IS NULL THEN LET fecha_final = today DISPLAY BY NAME fecha_final END IF IF fecha_final < fecha_inicial THEN LET numero_msg = 51 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF IF fecha_inicial IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF IF fecha_final IS NULL THEN LET fecha_final = today DISPLAY BY NAME fecha_final END IF IF fecha_final < fecha_inicial THEN LET numero_msg = 51 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF EXIT INPUT END INPUT CONSTRUCT criterio ON e.tipo_cliente,e.sec_cliente,e.cod_emp_sec,e.tipo_doc FROM tipo_cliente,sec_cliente,sec_vend,tipo_doc LET selec = "SELECT e.cod_emp_sec,e.tipo_doc,e.tipo_cliente,e.sec_cliente,e.num_doc,a.nombre,e.aplica_a,e.fecha_orig, ", " e.valor+e.monto_desc,e.monto_desc,e.valor ", "FROM cctb00001 e,vetb00004 a ", "WHERE e.fecha_orig between ? AND ? AND e.tipo_cliente IS NOT NULL AND ", " e.sec_cliente IS NOT NULL AND ",criterio CLIPPED," and e.tipo_cliente = a.tipo_cliente and ", " e.sec_cliente = a.sec_cliente ", " AND e.status_t IS NULL AND e.tipo_doc NOT IN ('FT','PC') " DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) { CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, doble_on,doble_off,comp_on,comp_off, doce,normal,archivo,copia } CALL seleccionarsalida() RETURNING r_output CALL configureoutput(r_output) RETURNING handler START REPORT reporte34 TO XML HANDLER handler DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere >>" AT 19,14 ATTRIBUTE (REVERSE) PREPARE comando FROM selec DECLARE c_vende CURSOR FOR comando OPEN c_vende USING fecha_inicial,fecha_final LET valor_total = 0 WHILE STATUS != NOTFOUND FETCH c_vende INTO doc_vend.* IF status = notfound THEN EXIT WHILE END IF LET puede = "S" IF doc_vend.tipo = "AV" THEN IF doc_vend.num_doc = doc_vend.aplica_a THEN LET doc_vend.valor = doc_vend.valor * -1 LET puede = "S" ELSE LET puede = "N" END IF END IF IF puede = "S" THEN IF doc_vend.valor IS NULL THEN LET doc_vend.valor = 0 END IF LET valor_total = valor_total + doc_vend.valor # DISPLAY BY NAME valor_total OUTPUT TO REPORT reporte34(doc_vend.*) END IF END WHILE FINISH REPORT reporte34 LET puede = NULL DISPLAY BY NAME valor_total { LET opt = fgl_winquestion("Atencion","Desea Imprimir Reporte?", "yes","yes|no","question",0) LET opt = UPSHIFT(opt) IF opt = "YES" THEN RUN imprime END IF} CLEAR SCREEN END FUNCTION REPORT reporte34(x) DEFINE x RECORD sec_vend SMALLINT, tipo CHAR(2), tipo_cliente SMALLINT, sec_cliente INTEGER, num_doc INTEGER, nombre CHAR(30), aplica_a INTEGER, fecha DATE, valor DECIMAL(12,2), monto_desc DECIMAL(12,2), neto DECIMAL(12,2) END RECORD DEFINE nombre,apellido CHAR(15) 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 PAGE LENGTH 100 ORDER BY x.sec_vend,x.tipo,x.num_doc 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, doce,comp_on PRINT COLUMN 1, "ccprrp034", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 92, "Pag. ",pageno using "###" PRINT COLUMN 31, "Sistema de Cuentas por Cobrar", COLUMN 90, today using "dd/mm/yyyy" PRINT COLUMN 31, " DOCUMENTOS POR VENDEDOR ", COLUMN 95, hora SKIP 1 LINES PRINT COLUMN 1, "FECHA: DEL ",fecha_inicial USING "dd/mm/yy", " AL ",fecha_final USING "dd/mm/yy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 1, "VENDEDOR", COLUMN 40, "TIPO", COLUMN 45, "DOCTO.", COLUMN 94, "FECHA", COLUMN 112, "BRUTO", COLUMN 134, "DESCUENTO" , COLUMN 145, "NETO" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------------------------" BEFORE GROUP OF x.sec_vend SKIP 1 LINE SELECT a.nom1_emp,a.apell1_emp INTO nombre,apellido FROM adtb00003 a WHERE a.num_emp = x.sec_vend IF STATUS = NOTFOUND THEN LET nombre = "VENDEDOR" LET apellido = "NO EXISTE" END IF LET total_vend = 0 PRINT COLUMN 1,x.sec_vend USING "&&&&"," ", nombre clipped," ", apellido clipped; BEFORE GROUP OF x.num_doc LET t_monto1 = 0 ON EVERY ROW IF x.valor IS NULL THEN LET x.valor = 0 END IF AFTER GROUP OF x.num_doc PRINT COLUMN 41, x.tipo, COLUMN 45, x.num_doc USING "&&&&&&"," ",x.tipo_cliente USING "<<"," ", x.sec_cliente USING "<<<<<<"," ",x.nombre, COLUMN 92, x.fecha USING "dd/mm/yy", COLUMN 104, GROUP SUM(x.valor) USING "(((,(((,(((.##)", COLUMN 126, GROUP SUM(x.monto_desc) USING "(((,(((,(((.##)", COLUMN 136, GROUP SUM(x.neto) USING "(((,(((,(((.##)" AFTER GROUP OF x.sec_vend PRINT COLUMN 104, "---------------", COLUMN 126, "---------------", COLUMN 136, "---------------" PRINT COLUMN 40, "Total Vendedor", COLUMN 104, GROUP SUM(x.valor) USING "((,(((,(((,(((.##)", COLUMN 126, GROUP SUM(x.monto_desc) USING "(((,(((,(((.##)", COLUMN 136, GROUP SUM(x.neto) USING "((,(((,(((,(((.##)" ON LAST ROW PRINT COLUMN 104, "---------------", COLUMN 126, "---------------", COLUMN 136, "---------------" PRINT COLUMN 40, "Total Gral. ", COLUMN 104, SUM(x.valor) USING "((,(((,(((,(((.##)", COLUMN 126, SUM(x.monto_desc) USING "(((,(((,(((.##)", COLUMN 136, SUM(x.neto) USING "((,(((,(((,(((.##)" PRINT COLUMN 104, "===============", COLUMN 126, "===============", COLUMN 136, "===============" PRINT comp_off END REPORT