{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP418 OBJETIVO : Listar las Entrada de Diario de Ventas A Credito LOCAL USD PROGRAMADOR : JUAN F. SOTO FECHA REALIZACION : Julio 19, 1999 ------------------------------------------------------------------------------- } DATABASE marmotech GLOBALS DEFINE criterio,selec_v CHAR(1000) DEFINE p_vetb02 RECORD LIKE vetb00002.* DEFINE p_vetb03 RECORD LIKE vetb00003.* DEFINE p_iptb02 RECORD LIKE iptb00002.* DEFINE p_vetb04 RECORD LIKE vetb00004.* DEFINE p_iptb20 RECORD LIKE iptb00020.* DEFINE p_compania RECORD LIKE companias.* DEFINE salir CHAR(1) DEFINE debito,debito1,credito,credito1 DECIMAL(12,2) DEFINE select_ac CHAR(1000) DEFINE lj,idx_ac,ano,idx_a,idx_c,l SMALLINT DEFINE ano_act,c_ano CHAR(4) DEFINE fecha_2 CHAR(8) DEFINE nombre_cta CHAR(30) DEFINE fecha_ini_per CHAR(8), pmes SMALLINT,ptasa DEC(12,3), iptb05 RECORD LIKE iptb00005.* DEFINE detalle CHAR(30) DEFINE mes SMALLINT DEFINE tasa DECIMAL(5,2) DEFINE p_fecha,fecha1, fecha2 DATE DEFINE nominas CHAR(1) DEFINE entra CHAR(14) DEFINE entra1 CHAR(5) DEFINE tipo_papel SMALLINT DEFINE afecta CHAR(1) DEFINE mano_ob,material,material9,material6,gastos DECIMAL(12,2) ###### Variables para almacenar los datos selecionados ###### Variables que la almacenan la informacion enviada al reporte DEFINE salir1 CHAR(1) DEFINE idx INTEGER END GLOBALS MAIN DEFER INTERRUPT SELECT * INTO p_compania.* FROM companias CALL veprrp416() END MAIN FUNCTION veprrp416() OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 ##### Abriendo y desplegando el formulario de captura de datos OPEN FORM vefmrp416 FROM "vefmrp416" DISPLAY FORM vefmrp416 CALL pantalla() DISPLAY "veprrp418" AT 4,3 DISPLAY "Ventas A Credito LOCAL USD" AT 6,28 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ###### Aceptando los valores para el rango de fecha INPUT BY NAME fecha1,fecha2 AFTER FIELD fecha1 IF fecha1 IS NULL THEN ERROR "(16) CAMPO EN BLANCO" NEXT FIELD fecha1 END IF AFTER FIELD fecha2 IF fecha2 is null THEN ERROR "(16) CAMPO EN BLANCO" NEXT FIELD fecha2 END IF ###### Selecionando en rango de fecha de la tabla de periodo para el fecha2 END INPUT ##### Creando la facilidad para cancelar proceso con DELETE O SUPR IF int_flag THEN ERROR "(2) OPERACION CANCELADA" LET int_flag = false RETURN END IF CONSTRUCT BY NAME criterio ON a.ventas IF int_flag THEN ERROR "(2) OPERACION CANCELADA" LET int_flag = false RETURN END IF LET debito1 = 0 LET debito = 0 LET credito1 = 0 LET credito = 0 # Busca la informacion requerida DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14 ATTRIBUTE (REVERSE,BOLD) # Busca los codigos de los productos terminados # Busca las ventas reales del ano actual hasta el mes indicado anteriormente LET selec_v = "SELECT UNIQUE a.*,b.*,c.* FROM vetb00002 a,vetb00003 b, iptb00002 c ", "WHERE a.factura = b.factura AND b.cod_n = c.cod_n AND ", " b.cod_grupo = c.cod_grupo AND b.cod_tipo = c.cod_tipo AND ", # " a.tipo_cliente in(14,16) AND ", " b.cod_sec = c.cod_sec AND a.fecha_factura BETWEEN '",fecha1," '", " AND '",fecha2," '"," AND a.cond_pago != 1 AND ", criterio CLIPPED," AND a.cod_cia = b.cod_cia ", " AND a.status_t IS NULL AND b.status_t IS NULL " DISPLAY " " AT 19,14 DISPLAY "<>" AT 19,14 ATTRIBUTE (REVERSE) LET pmes = MONTH(fecha2) FOREACH movi_vr INTO p_vetb02.*,p_vetb03.*,p_iptb02.* IF int_flag THEN ERROR "(2) OPERACION CANCELADA" LET int_flag = false RETURN END IF # SELECT a.tasa INTO ptasa FROM cgtb00084 a WHERE a.mes = pmes AND a.ventas = p_vetb02.ventas 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_vetb02.porc_desc = p_vetb03.cantidad_2 LET p_vetb02.sub_total = p_vetb03.cantidad * p_vetb03.precio LET p_vetb02.monto_desc = (p_vetb03.cantidad * p_vetb03.precio) * (p_vetb02.porc_desc/100) LET p_vetb02.monto_itbi = (p_vetb02.sub_total - p_vetb02.monto_desc)* (p_vetb02.porc_itbi/100) LET p_vetb02.neto = p_vetb02.sub_total - p_vetb02.monto_desc + p_vetb02.monto_itbi OUTPUT TO REPORT reporte4(p_vetb02.*,p_vetb03.*,p_iptb02.*) END FOREACH FINISH REPORT reporte4 RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT reporte4(x,v,b) DEFINE x RECORD LIKE vetb00002.* DEFINE v RECORD LIKE vetb00003.* DEFINE 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 = (80 - LENGTH(p_compania.nombre CLIPPED))/2 PRINT comp_off PRINT COLUMN 1, "veprrp418", COLUMN lj, p_compania.nombre CLIPPED, COLUMN 75, "Pag. ",pageno using "###" LET l = (80 - LENGTH("Sistema de Ventas")) / 2 PRINT COLUMN l, "Sistema de Ventas ", COLUMN 75, today using "dd/mm/yyyy" LET l = (80 - LENGTH("Ventas a Credito")) / 2 PRINT COLUMN l, "Ventas a credito LOCAL USD", COLUMN 78, hora IF x.ventas = "1" THEN LET l = (80 - LENGTH("Ventas Locales")) / 2 PRINT COLUMN l, "Ventas Locales" ELSE LET l = (80 - LENGTH("Ventas Exportacion")) / 2 PRINT COLUMN l, "Ventas Exportacion" END IF PRINT COLUMN 34, "Al ",fecha2 USING "dd/mm/yyyy" PRINT COLUMN 1,ASCII 27, ASCII 80 PRINT COLUMN 1,comp_on PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "------------------------------" PRINT COLUMN 49, "MONTO", COLUMN 64, "MONTO", COLUMN 79, "MONTO", COLUMN 94, "MONTO", COLUMN 105, "VALOR RD$", COLUMN 121, "CANTIDADES" PRINT COLUMN 1, "PRODUCTO", COLUMN 49, "BRUTO", COLUMN 60, "DESCUENTO", COLUMN 79, "ITBI", COLUMN 94, "NETO", COLUMN 105, ptasa USING "###.###", COLUMN 123, "VENDIDAS" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "------------------------------" SKIP 1 LINE 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(x.sub_total) USING "###,###,###.##", COLUMN 55, GROUP SUM(x.monto_desc) USING "###,###,###.##", COLUMN 70, GROUP SUM(x.monto_itbi) USING "###,###,###.##", COLUMN 85, GROUP SUM(x.neto) USING "###,###,###.##", COLUMN 105, GROUP SUM(x.neto*ptasa) USING "###,###,###.##", COLUMN 115, GROUP SUM(v.cantidad) USING "###,###,###.###" AFTER GROUP OF b.cod_cia PRINT COLUMN 40, "--------------", COLUMN 55, "--------------", COLUMN 70, "--------------", COLUMN 85, "--------------", COLUMN 105, "--------------", COLUMN 115, "---------------" PRINT COLUMN 1, "Total Por Origen Producto ---> ", COLUMN 40, GROUP SUM(x.sub_total) USING "###,###,###.##", COLUMN 55, GROUP SUM(x.monto_desc) USING "###,###,###.##", COLUMN 70, GROUP SUM(x.monto_itbi) USING "###,###,###.##", COLUMN 85, GROUP SUM(x.neto) USING "###,###,###.##", COLUMN 105, GROUP SUM(x.neto*ptasa) 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(x.sub_total) USING "###,###,###.##", COLUMN 55, GROUP SUM(x.monto_desc) USING "###,###,###.##", COLUMN 70, GROUP SUM(x.monto_itbi) USING "###,###,###.##", COLUMN 85, GROUP SUM(x.neto) USING "###,###,###.##", COLUMN 105, GROUP SUM(x.neto*ptasa) USING "###,###,###.##", COLUMN 115, GROUP SUM(v.cantidad) USING "###,###,###.###" ON LAST ROW PRINT COLUMN 40, "--------------", COLUMN 55, "--------------", COLUMN 70, "--------------", COLUMN 85, "--------------", COLUMN 105, "--------------", COLUMN 115, "---------------" PRINT COLUMN 1, "Total Ventas ---> ", COLUMN 40, SUM(x.sub_total) USING "###,###,###.##", COLUMN 55, SUM(x.monto_desc) USING "###,###,###.##", COLUMN 70, SUM(x.monto_itbi) USING "###,###,###.##", COLUMN 85, SUM(x.neto) USING "###,###,###.##", COLUMN 105,SUM(x.neto*ptasa) USING "###,###,###.##", COLUMN 115, SUM(v.cantidad) USING "###,###,###.###" PRINT COLUMN 40, "==============", COLUMN 55, "==============", COLUMN 70, "==============", COLUMN 85, "==============", COLUMN 105,"==============", COLUMN 115, "===============" PRINT ASCII 27, ASCII 80 SKIP TO TOP OF PAGE END REPORT FUNCTION msgrp000(tipo_papel) DEFINE tipo_papel SMALLINT, longitud CHAR(11), linea_papel CHAR(50) CASE WHEN tipo_papel = 1 LET longitud = " 9 1/2 x 11" WHEN tipo_papel = 2 LET longitud = "14 7/8 x 11" END CASE LET linea_papel = "Coloque papel ",longitud," en la impresora." DISPLAY linea_papel AT 15,14 DISPLAY "Asegurese de que la impresora este encendida." AT 16,14 DISPLAY " Ejecuta impresion Cancela impresion" AT 18,14 END FUNCTION FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) SELECT * INTO p_compania.* FROM companias LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2 LET fecha = today USING "dd/mm/yy" LET hora = time DISPLAY p_compania.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,YELLOW) DISPLAY fecha AT 4,70 ATTRIBUTE (YELLOW) DISPLAY "Sistema de Contabilidad General" AT 5,24 DISPLAY hora AT 6,73 ATTRIBUTE(YELLOW) CALL fgl_drawbox(5,79,3,1) CALL fgl_drawbox(1,79,22,1) END FUNCTION