{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP045 OBJETIVO : Reporte Para Entrada de Diario Devoluciones PROGRAMADOR : Tadeo A. Ferreras F. FECHA REALIZACION : Enero 20, 1993 ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" DEFINE selec_v CHAR(1000) DEFINE p_vetb02 RECORD LIKE vetb00002.*, p_vetb03 RECORD LIKE vetb00003.*, p_iptb02 RECORD LIKE iptb00002.*, p_iptb06 RECORD LIKE iptb00006.* DEFINE cond_venta INTEGER DEFINE fecha1,fecha2 DATE DEFINE ventas CHAR(1) FUNCTION veprrp045() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21, PROMPT LINE 14 OPEN FORM vefmrp045 FROM "vefmrp045" DISPLAY FORM vefmrp045 CALL pantalla() DISPLAY "veprrp045" AT 4,3 DISPLAY "Entrada de Diario Devluciones" AT 6,26 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha1,fecha2 #,ventas,cond_venta {AFTER FIELD ventas IF ventas IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD ventas END IF } AFTER FIELD fecha1 IF fecha1 IS NULL OR fecha1 > TODAY THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF AFTER FIELD fecha2 IF fecha2 IS NULL OR fecha2 < fecha1 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF {AFTER FIELD cond_venta IF cond_venta IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cond_venta END IF IF cond_venta = 1 THEN ERROR "Venta al Contado" ATTRIBUTE(REVERSE) ELSE ERROR "Venta a Credito" ATTRIBUTE(REVERSE) END IF} AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF {IF ventas IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD ventas END IF} IF fecha1 IS NULL OR fecha1 > TODAY THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF IF fecha2 IS NULL OR fecha2 < fecha1 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF {IF cond_venta IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cond_venta END IF} EXIT INPUT END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca los codigos de los productos terminados # Busca las ventas reales del ano actual hasta el mes indicado anteriormente LET selec_v = "SELECT a.*,b.*,d.*,c.* ", "FROM vetb00002 a,vetb00003 b,iptb00006 d,iptb00002 c ", "WHERE a.factura = b.factura AND b.factura = d.fact_no AND ", " b.cod_n = c.cod_n AND b.cod_grupo = c.cod_grupo AND ", " b.cod_tipo = c.cod_tipo AND b.cod_sec = c.cod_sec AND ", " d.fecha BETWEEN '",fecha1," '"," AND '",fecha2," '"," AND ", " a.ventas = '1' AND b.cod_n = d.cod_n AND ", " b.cod_grupo = d.cod_grupo AND b.cod_tipo = d.cod_tipo AND ", " b.cod_sec = d.cod_sec AND a.status_t IS NULL AND ", " d.status_t IS NULL AND d.cod_mov in (12,13) " DISPLAY " " AT 19,14 DISPLAY "<>" AT 19,14 ATTRIBUTE (REVERSE) FOREACH movi_vr INTO p_vetb02.*,p_vetb03.*,p_iptb06.*,p_iptb02.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF IF p_vetb02.sec_vend != 144 THEN LET p_vetb02.sec_vend = 145 END IF IF p_vetb02.porc_desc IS NULL THEN LET p_vetb02.porc_desc = 0 END IF IF p_vetb02.porc_itbi IS NULL THEN LET p_vetb02.porc_itbi = 0 END IF LET p_vetb03.cantidad = 0 LET p_vetb03.cantidad = p_iptb06.cantidad_2 OUTPUT TO REPORT reporte45(p_vetb02.*,p_vetb03.*,p_iptb02.*) END FOREACH FINISH REPORT reporte45 RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT reporte45(x,v,b) DEFINE x RECORD LIKE vetb00002.*, v RECORD LIKE vetb00003.*, m RECORD LIKE iptb00006.*, b RECORD LIKE iptb00002.* DEFINE vendedor,imp,imp1 CHAR (1) DEFINE descrip_venta CHAR(22) DEFINE descrip1 CHAR(30) DEFINE doble_on,doble_off,negrillas_on,negrillas_off,comp_on,comp_off, doce,normal CHAR(2) DEFINE hora CHAR(5) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 ORDER BY x.sec_vend,b.cod_cia,v.cod_n 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 LET lj = (130 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1,ASCII 27, ASCII 80 PRINT COLUMN 1,comp_on PRINT COLUMN 1,"veprrp045", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 123, "Pag. ", pageno using "###" PRINT COLUMN 56, "Sistema de Ventas", COLUMN 123, today using "dd/mm/yy" PRINT COLUMN 56, " Devoluciones" PRINT COLUMN 53, "Del ",fecha1 USING "dd/mm/yy", " Al ",fecha2 USING "dd/mm/yy" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "------------------------------" PRINT COLUMN 49, "MONTO", COLUMN 64, "MONTO", COLUMN 79, "MONTO", COLUMN 94, "MONTO", COLUMN 121, "CANTIDADES" PRINT COLUMN 1, "PRODUCTO", COLUMN 49, "BRUTO", COLUMN 60, "DESCUENTO", COLUMN 79, "ITBI", COLUMN 94, "NETO", COLUMN 122, "DEVUELTAS" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "------------------------------" BEFORE GROUP OF x.sec_vend SKIP 2 LINE IF x.sec_vend = 144 THEN PRINT "**** SAN CRISTOBAL ****" ELSE PRINT "**** SANTO DOMINGO ****" END IF BEFORE GROUP OF b.cod_cia SKIP 1 LINE IF b.cod_cia = 1 THEN PRINT "PRODUCTO LOCAL" ELSE PRINT "PRODUCTO IMPORTADO" END IF BEFORE GROUP OF v.cod_n SELECT a.producto INTO p_iptb20.producto FROM iptb00020 a WHERE a.cod_n = v.cod_n AFTER GROUP OF v.cod_n PRINT COLUMN 1, v.cod_n USING "&"," ",p_iptb20.producto CLIPPED, COLUMN 40, GROUP SUM(v.cantidad * v.precio) USING "###,###,###.##", COLUMN 55, GROUP SUM((v.cantidad*v.precio)*(x.porc_desc/100)) USING "###,###,###.##", COLUMN 70, GROUP SUM(((v.cantidad * v.precio) - ((v.cantidad * v.precio) * (x.porc_desc/100))) * (x.porc_itbi/100)) USING "###,###,###.##", COLUMN 85, GROUP SUM(((v.cantidad * v.precio) - ((v.cantidad*v.precio)*(x.porc_desc/100)))+ (((v.cantidad * v.precio) - ((v.cantidad * v.precio) * (x.porc_desc/100))) * (x.porc_itbi/100))) USING "###,###,###.##", COLUMN 115, GROUP SUM(v.cantidad) USING "###,###,###.###" AFTER GROUP OF b.cod_cia PRINT COLUMN 40, "--------------", COLUMN 55, "--------------", COLUMN 70, "--------------", COLUMN 85, "--------------", COLUMN 115, "---------------" PRINT COLUMN 1, "Total Por Origen Producto ---> ", COLUMN 40, GROUP SUM(v.cantidad * v.precio) USING "###,###,###.##", COLUMN 55, GROUP SUM((v.cantidad*v.precio)*(x.porc_desc/100)) USING "###,###,###.##", COLUMN 70, GROUP SUM(((v.cantidad * v.precio) - ((v.cantidad * v.precio) * (x.porc_desc/100))) * (x.porc_itbi/100)) USING "###,###,###.##", COLUMN 85, GROUP SUM(v.cantidad * v.precio) - GROUP SUM((v.cantidad*v.precio)*(x.porc_desc/100))+ GROUP SUM(((v.cantidad * v.precio) - ((v.cantidad * v.precio) * (x.porc_desc/100))) * (x.porc_itbi/100)) USING "###,###,###.##", COLUMN 115, GROUP SUM(v.cantidad) USING "###,###,###.###" AFTER GROUP OF x.sec_vend PRINT COLUMN 40, "--------------", COLUMN 55, "--------------", COLUMN 70, "--------------", COLUMN 85, "--------------", COLUMN 115, "---------------" PRINT COLUMN 1, "Total Por Localidad ---> ", COLUMN 40, GROUP SUM(v.cantidad * v.precio) USING "###,###,###.##", COLUMN 55, GROUP SUM((v.cantidad*v.precio)*(x.porc_desc/100)) USING "###,###,###.##", COLUMN 70, GROUP SUM(((v.cantidad * v.precio) - ((v.cantidad * v.precio) * (x.porc_desc/100))) * (x.porc_itbi/100)) USING "###,###,###.##", COLUMN 85, GROUP SUM(v.cantidad * v.precio) - GROUP SUM((v.cantidad*v.precio)*(x.porc_desc/100))+ GROUP SUM(((v.cantidad * v.precio) - ((v.cantidad * v.precio) * (x.porc_desc/100))) * (x.porc_itbi/100)) USING "###,###,###.##", COLUMN 115, GROUP SUM(v.cantidad) USING "###,###,###.###" ON LAST ROW PRINT COLUMN 40, "--------------", COLUMN 55, "--------------", COLUMN 70, "--------------", COLUMN 85, "--------------", COLUMN 115, "---------------" PRINT COLUMN 1, "Total Ventas ---> ", COLUMN 40, SUM(v.cantidad*v.precio) USING "###,###,###.##", COLUMN 55, SUM((v.cantidad * v.precio) * (x.porc_desc/100)) USING "###,###,###.##", COLUMN 70, SUM(((v.cantidad * v.precio) - ((v.cantidad * v.precio) * (x.porc_desc/100))) * (x.porc_itbi/100)) USING "###,###,###.##", COLUMN 85, SUM(v.cantidad * v.precio) - SUM((v.cantidad*v.precio) * (x.porc_desc/100)) + SUM(((v.cantidad * v.precio) - ((v.cantidad * v.precio) * (x.porc_desc/100))) * (x.porc_itbi/100)) USING "###,###,###.##", COLUMN 115, SUM(v.cantidad) USING "###,###,###.###" PRINT COLUMN 40, "==============", COLUMN 55, "==============", COLUMN 70, "==============", COLUMN 85, "==============", COLUMN 115, "===============" PRINT ASCII 27, ASCII 80 END REPORT