primer commit subida
This commit is contained in:
@@ -0,0 +1,351 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : VEPRRP011
|
||||
OBJETIVO : Clientes por Vendedor
|
||||
PROGRAMADOR : Lic. Abner Montalvo Z.
|
||||
FECHA REALIZACION : Enero 11, 1993
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "cgprgb000.4gl"
|
||||
DEFINE fecha1,fecha2 DATE,
|
||||
tipo_venta,chtipo CHAR(30),
|
||||
fecha_c1,fecha_c2 DATETIME YEAR TO MINUTE,
|
||||
estado VARCHAR(20)
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CALL ARG_VAL(3) RETURNING impresor
|
||||
|
||||
#let usuarios = 'lsoto'
|
||||
#let clave = 'lmmjvsd2010'
|
||||
|
||||
CONNECT TO "decomarmol" USER usuarios USING clave
|
||||
SELECT * INTO p_compania.* FROM companias
|
||||
CALL edprrp004()
|
||||
|
||||
END MAIN
|
||||
|
||||
FUNCTION edprrp004()
|
||||
|
||||
DEFINE vendedor RECORD
|
||||
sec_vend SMALLINT,
|
||||
nombre_vend CHAR(30),
|
||||
apellido_vend CHAR(30),
|
||||
cod_cliente SMALLINT,
|
||||
sec_cliente SMALLINT,
|
||||
nombre_cliente CHAR(30),
|
||||
telefono CHAR(15),
|
||||
limite_credito DECIMAL(10,2),
|
||||
zona SMALLINT,
|
||||
calle CHAR(30),
|
||||
casa_num CHAR(10),
|
||||
barrio CHAR(20),
|
||||
urbanizacion CHAR(20),
|
||||
localizacion VARCHAR(150),
|
||||
tipoNegocio VARCHAR(30),
|
||||
contacto VARCHAR(60),
|
||||
puesto VARCHAR(60),
|
||||
titulo VARCHAR(60),
|
||||
email VARCHAR(60),
|
||||
celular VARCHAR(20),
|
||||
telefono_casa VARCHAR(20),
|
||||
telefono_of VARCHAR(20),
|
||||
email2 VARCHAR(60),
|
||||
rnc VARCHAR(11),
|
||||
vendedor CHAR(30),
|
||||
fecha_ultima LIKE vetb00002.fecha_factura,
|
||||
cotizacion_no INT,
|
||||
codCliente CHAR(12)
|
||||
|
||||
|
||||
END RECORD
|
||||
|
||||
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
||||
r_filename STRING, -- filename of Report Design Document including .4rp extension
|
||||
r_output STRING, -- output format option
|
||||
preview INTEGER -- TRUE/FALSE, to set preview option
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21,
|
||||
PROMPT LINE 14
|
||||
|
||||
OPEN FORM vefmrp011 FROM "vefmrp011"
|
||||
DISPLAY FORM vefmrp011
|
||||
|
||||
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
|
||||
|
||||
CONSTRUCT criterio ON b.tipo_cliente,b.sec_cliente,d.sec_vend,b.nombre,f.ventas,
|
||||
x3.tipo_negocio,b.cod_zona
|
||||
FROM tipo_cliente,sec_cliente,kvendedor,nombre,tipo_venta,tipo_negocio,cod_zona
|
||||
ON ACTION busca_zona
|
||||
CASE
|
||||
WHEN INFIELD(cod_zona)
|
||||
CALL consulta_zonas()
|
||||
DISPLAY BY NAME zona.cod_zona,descrip1
|
||||
END CASE
|
||||
|
||||
BEFORE CONSTRUCT
|
||||
|
||||
LET pventas = ui.ComboBox.forName("formonly.tipo_venta")
|
||||
CALL cventas()
|
||||
CALL cvendedor()
|
||||
CALL ctipoNegocio("formonly.tipo_negocio")
|
||||
|
||||
END CONSTRUCT
|
||||
INPUT BY NAME estado,fecha1,fecha2,fecha_c1,fecha_c2
|
||||
AFTER INPUT
|
||||
IF fecha_c1 IS NULL THEN
|
||||
LET fecha_c2 = NULL
|
||||
END IF
|
||||
IF fecha_c2 IS NULL THEN
|
||||
LET fecha_c1 = NULL
|
||||
END IF
|
||||
END INPUT
|
||||
ON ACTION CANCEL
|
||||
EXIT PROGRAM
|
||||
ON ACTION genera
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF fecha_c1 IS NULL THEN
|
||||
IF estado = "ACTIVOS" THEN
|
||||
LET selec3 =
|
||||
"SELECT DISTINCT a.num_emp, a.nom1_emp, a.apell1_emp, b.tipo_cliente, b.sec_cliente, b.nombre, b.telefono, ",
|
||||
"b.limite_credito, b.cod_zona, c.calle, c.casa_num, c.barrio, c.urbanizacion, ",
|
||||
" RTRIM(ISNULL(x1.descrip,' '))+' '+RTRIM(ISNULL(x2.nombre_provincia,' ')),x3.descripcion,x4.contacto,x4.puesto1,x4.puesto,x4.email,x4.celular,x4.telefono_casa, ",
|
||||
" x4.telefono_of,b.patente,b.num_rnc ",
|
||||
"FROM adtb00003 AS a INNER JOIN ",
|
||||
"vetb00028 AS d ON a.num_emp = d.sec_vend LEFT OUTER JOIN ",
|
||||
"vetb00087 x4 ON d.tipo_cliente = x4.tipo_cliente and d.sec_cliente = x4.sec_cliente RIGHT OUTER JOIN ",
|
||||
"vetb00004 AS b INNER JOIN ",
|
||||
|
||||
" vetb00008 x1 ON b.cod_zona = x1.cod_zona INNER JOIN ",
|
||||
" vetb00020 x2 ON b.cod_provincia = x2.cod_provincia INNER JOIN ",
|
||||
"vetb00060 AS f ON b.tipo_cliente = f.tipo_cliente ON d.tipo_cliente = b.tipo_cliente AND ",
|
||||
"d.sec_cliente = b.sec_cliente LEFT OUTER JOIN ",
|
||||
"vetb00005 AS c ON b.tipo_cliente = c.tipo_cliente AND b.sec_cliente = c.sec_cliente ",
|
||||
" LEFT OUTER JOIN cctb00013 x3 ON b.tipo_negocio = x3.tipo_negocio ",
|
||||
"WHERE (d.status_t IS NULL) AND (b.status_t IS NULL) AND ",criterio CLIPPED,
|
||||
"ORDER BY a.num_emp,b.tipo_cliente, b.sec_cliente "
|
||||
|
||||
ELSE
|
||||
LET selec3 =
|
||||
|
||||
"SELECT DISTINCT a.num_emp, a.nom1_emp, a.apell1_emp, b.tipo_cliente, b.sec_cliente, b.nombre, b.telefono, ",
|
||||
"b.limite_credito, b.cod_zona, c.calle, c.casa_num, c.barrio, c.urbanizacion, ",
|
||||
" RTRIM(ISNULL(x1.descrip,' '))+' '+RTRIM(ISNULL(x2.nombre_provincia,' ')),x3.descripcion,x4.contacto,x4.puesto1,x4.puesto,x4.email,x4.celular,x4.telefono_casa, ",
|
||||
" x4.telefono_of,b.patente,b.num_rnc ",
|
||||
"FROM adtb00003 AS a INNER JOIN ",
|
||||
"vetb00028 AS d ON a.num_emp = d.sec_vend LEFT OUTER JOIN ",
|
||||
"vetb00087 x4 ON d.tipo_cliente = x4.tipo_cliente and d.sec_cliente = x4.sec_cliente RIGHT OUTER JOIN ",
|
||||
"vetb00004 AS b INNER JOIN ",
|
||||
" vetb00008 x1 ON b.cod_zona = x1.cod_zona INNER JOIN ",
|
||||
" vetb00020 x2 ON b.cod_provincia = x2.cod_provincia INNER JOIN ",
|
||||
"vetb00060 AS f ON b.tipo_cliente = f.tipo_cliente ON d.tipo_cliente = b.tipo_cliente AND ",
|
||||
"d.sec_cliente = b.sec_cliente LEFT OUTER JOIN ",
|
||||
"vetb00005 AS c ON b.tipo_cliente = c.tipo_cliente AND b.sec_cliente = c.sec_cliente ",
|
||||
" LEFT OUTER JOIN cctb00013 x3 ON b.tipo_negocio = x3.tipo_negocio ",
|
||||
"WHERE (d.status_t IS NOT NULL) AND (b.status_t IS NULL) AND ",criterio CLIPPED,
|
||||
"ORDER BY a.num_emp,b.tipo_cliente, b.sec_cliente "
|
||||
|
||||
END IF
|
||||
ELSE
|
||||
IF estado = "ACTIVOS" THEN
|
||||
LET selec3 =
|
||||
|
||||
"SELECT DISTINCT a.num_emp, a.nom1_emp, a.apell1_emp, b.tipo_cliente, b.sec_cliente, b.nombre, b.telefono, ",
|
||||
"b.limite_credito, b.cod_zona, c.calle, c.casa_num, c.barrio, c.urbanizacion, ",
|
||||
" RTRIM(ISNULL(x1.descrip,' '))+' '+RTRIM(ISNULL(x2.nombre_provincia,' ')),x3.descripcion,x4.contacto,x4.puesto1,x4.puesto,x4.email,x4.celular,x4.telefono_casa, ",
|
||||
" x4.telefono_of,b.patente,b.num_rnc ",
|
||||
"FROM adtb00003 AS a INNER JOIN ",
|
||||
"vetb00028 AS d ON a.num_emp = d.sec_vend LEFT OUTER JOIN ",
|
||||
"vetb00087 x4 ON d.tipo_cliente = x4.tipo_cliente and d.sec_cliente = x4.sec_cliente RIGHT OUTER JOIN ",
|
||||
"vetb00004 AS b INNER JOIN ",
|
||||
|
||||
" vetb00008 x1 ON b.cod_zona = x1.cod_zona INNER JOIN ",
|
||||
" vetb00020 x2 ON b.cod_provincia = x2.cod_provincia INNER JOIN ",
|
||||
"vetb00060 AS f ON b.tipo_cliente = f.tipo_cliente ON d.tipo_cliente = b.tipo_cliente AND ",
|
||||
"d.sec_cliente = b.sec_cliente LEFT OUTER JOIN ",
|
||||
"vetb00005 AS c ON b.tipo_cliente = c.tipo_cliente AND b.sec_cliente = c.sec_cliente ",
|
||||
" LEFT OUTER JOIN cctb00013 x3 ON b.tipo_negocio = x3.tipo_negocio ",
|
||||
"WHERE (d.status_t IS NULL) AND (b.status_t IS NULL) AND ",criterio CLIPPED,
|
||||
" AND b.fech_crea between '",fecha_c1,"' AND '",fecha_c2,"' ",
|
||||
"ORDER BY a.num_emp,b.tipo_cliente, b.sec_cliente "
|
||||
ELSE
|
||||
LET selec3 =
|
||||
|
||||
"SELECT DISTINCT a.num_emp, a.nom1_emp, a.apell1_emp, b.tipo_cliente, b.sec_cliente, b.nombre, b.telefono, ",
|
||||
"b.limite_credito, b.cod_zona, c.calle, c.casa_num, c.barrio, c.urbanizacion, ",
|
||||
" RTRIM(ISNULL(x1.descrip,' '))+' '+RTRIM(ISNULL(x2.nombre_provincia,' ')),x3.descripcion,x4.contacto,x4.puesto1,x4.puesto,x4.email,x4.celular,x4.telefono_casa, ",
|
||||
" x4.telefono_of,b.patente,b.num_rnc ",
|
||||
"FROM adtb00003 AS a INNER JOIN ",
|
||||
"vetb00028 AS d ON a.num_emp = d.sec_vend LEFT OUTER JOIN ",
|
||||
"vetb00087 x4 ON d.tipo_cliente = x4.tipo_cliente and d.sec_cliente = x4.sec_cliente RIGHT OUTER JOIN ",
|
||||
"vetb00004 AS b INNER JOIN ",
|
||||
|
||||
" vetb00008 x1 ON b.cod_zona = x1.cod_zona INNER JOIN ",
|
||||
" vetb00020 x2 ON b.cod_provincia = x2.cod_provincia INNER JOIN ",
|
||||
"vetb00060 AS f ON b.tipo_cliente = f.tipo_cliente ON d.tipo_cliente = b.tipo_cliente AND ",
|
||||
"d.sec_cliente = b.sec_cliente LEFT OUTER JOIN ",
|
||||
"vetb00005 AS c ON b.tipo_cliente = c.tipo_cliente AND b.sec_cliente = c.sec_cliente ",
|
||||
" LEFT OUTER JOIN cctb00013 x3 ON b.tipo_negocio = x3.tipo_negocio ",
|
||||
"WHERE (d.status_t IS NOT NULL) AND (b.status_t IS NULL) AND ",criterio CLIPPED,
|
||||
" AND b.fech_crea between '",fecha_c1,"' AND '",fecha_c2,"' ",
|
||||
"ORDER BY a.num_emp,b.tipo_cliente, b.sec_cliente "
|
||||
END IF
|
||||
END IF
|
||||
PREPARE busca_datos FROM selec3
|
||||
DECLARE datos SCROLL CURSOR FOR busca_datos
|
||||
|
||||
|
||||
OPEN datos USING tipo_venta
|
||||
|
||||
|
||||
LET idx =1
|
||||
FOREACH datos INTO vendedor.*
|
||||
|
||||
IF idx =1 THEN
|
||||
|
||||
CALL seleccionarSalida() RETURNING r_output
|
||||
LET r_filename = "veprrp011.4rp"
|
||||
LET preview = 1
|
||||
iF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
||||
CALL fgl_report_selectDevice(r_output) -- changing default
|
||||
CALL fgl_report_selectPreview(preview) -- changing default
|
||||
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
||||
|
||||
START REPORT clivend TO XML HANDLER HANDLER
|
||||
|
||||
END IF
|
||||
LET idx = idx + 1
|
||||
END IF
|
||||
LET vendedor.vendedor = vendedor.sec_vend using "&&&&"
|
||||
# FECHA ULTIMA COMPRA
|
||||
LET vendedor.fecha_ultima = NULL
|
||||
SELECT CONVERT(VARCHAR(10),max(a.fecha_factura),101 ) INTO ch_fecha #vendedor.fecha_ultima
|
||||
FROM vetb00002 a
|
||||
WHERE a.tipo_cliente = vendedor.cod_cliente AND
|
||||
a.sec_cliente = vendedor.sec_cliente AND
|
||||
a.status_t IS NULL
|
||||
|
||||
|
||||
LET vendedor.fecha_ultima = ch_fecha
|
||||
LET vendedor.codCliente=vendedor.cod_cliente USING "&&","-",
|
||||
vendedor.sec_cliente USING "&&&&&&"
|
||||
|
||||
LET vendedor.cotizacion_no = NULL
|
||||
SELECT MAX(a.orden) INTO vendedor.cotizacion_no
|
||||
FROM vetb00002 a
|
||||
WHERE a.tipo_cliente = vendedor.cod_cliente AND
|
||||
a.sec_cliente = vendedor.sec_cliente AND
|
||||
a.fecha_factura = vendedor.fecha_ultima AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF fecha1 IS NULL THEN
|
||||
DISPLAY "aqui es ",vendedor.cod_cliente," ",vendedor.sec_cliente
|
||||
OUTPUT TO REPORT clivend(vendedor.*)
|
||||
END IF
|
||||
IF fecha1 IS NOT NULL THEN
|
||||
|
||||
IF vendedor.fecha_ultima >= fecha1 AND
|
||||
vendedor.fecha_ultima <= fecha2 THEN
|
||||
|
||||
|
||||
OUTPUT TO REPORT clivend(vendedor.*)
|
||||
END IF
|
||||
END IF
|
||||
END FOREACH
|
||||
IF idx = 1 THEN
|
||||
CALL fgl_winmessage("INFO","NO EXISTEN DATOS CON ESTA CONDICION","INFO")
|
||||
ELSE
|
||||
FINISH REPORT clivend
|
||||
END IF
|
||||
CLEAR SCREEN
|
||||
|
||||
END DIALOG
|
||||
END FUNCTION
|
||||
|
||||
REPORT clivend(x)
|
||||
DEFINE x RECORD
|
||||
sec_vend SMALLINT,
|
||||
nombre_vend CHAR(30),
|
||||
apellido_vend CHAR(30),
|
||||
cod_cliente SMALLINT,
|
||||
sec_cliente SMALLINT,
|
||||
nombre_cliente CHAR(30),
|
||||
telefono CHAR(15),
|
||||
limite_credito DECIMAL(10,2),
|
||||
zona SMALLINT,
|
||||
calle CHAR(30),
|
||||
casa_num CHAR(10),
|
||||
barrio CHAR(20),
|
||||
urbanizacion CHAR(20),
|
||||
localizacion VARCHAR(150),
|
||||
tipoNegocio VARCHAR(30),
|
||||
contacto VARCHAR(60),
|
||||
puesto VARCHAR(60),
|
||||
titulo VARCHAR(60),
|
||||
email VARCHAR(60),
|
||||
celular VARCHAR(20),
|
||||
telefono_casa VARCHAR(20),
|
||||
telefono_of VARCHAR(20),
|
||||
email2 VARCHAR(60),
|
||||
rnc VARCHAR(11),
|
||||
vendedor CHAR(30),
|
||||
fecha_ultima LIKE vetb00002.fecha_factura,
|
||||
cotizacion_no INT,
|
||||
codCliente CHAR(12)
|
||||
|
||||
END RECORD
|
||||
|
||||
DEFINE total_clientes,ttotal_clientes smallint
|
||||
DEFINE hora CHAR(5),
|
||||
repfechas VARCHAR(30),
|
||||
visualizar_contactos BOOLEAN
|
||||
|
||||
DEFINE fecha date
|
||||
|
||||
ORDER BY x.vendedor,x.codcliente
|
||||
|
||||
FORMAT
|
||||
FIRST PAGE HEADER
|
||||
LET hora = TIME
|
||||
LET fecha = TODAY
|
||||
LET ttotal_clientes = 0
|
||||
|
||||
IF fecha1 IS NOT NULL THEN
|
||||
LET repfechas = 'DESDE ',fecha1 USING "dd/mm/yyyy"," HASTA ",fecha2 USING 'dd/mm/yyyy'
|
||||
ELSE
|
||||
LET repfechas = NULL
|
||||
END IF
|
||||
|
||||
|
||||
BEFORE GROUP OF x.vendedor
|
||||
LET total_clientes = 0
|
||||
|
||||
|
||||
ON EVERY ROW
|
||||
|
||||
LET visualizar_contactos = TRUE
|
||||
PRINTX p_companias.*,hora,fecha,
|
||||
repfechas,estado
|
||||
|
||||
printx x.*,fecha1,fecha2,visualizar_contactos
|
||||
AFTER GROUP OF x.vendedor
|
||||
PRINTX total_clientes
|
||||
AFTER GROUP OF x.codCliente
|
||||
|
||||
LET total_clientes = total_clientes + 1
|
||||
LET ttotal_clientes = ttotal_clientes + 1
|
||||
|
||||
ON LAST ROW
|
||||
PRINTX ttotal_clientes
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user