448 lines
15 KiB
Plaintext
448 lines
15 KiB
Plaintext
{
|
|
--------------------------------------------------------------------------
|
|
PROGRAMA : VEPRCS001
|
|
OBJETIVO : Este programa consulta la factura comercial
|
|
REALIZADO POR : Tadeo A. Ferreras.
|
|
FECHA : Mayo 27,1993.
|
|
--------------------------------------------------------------------------
|
|
MODIFICACION : INDICAR CUANDO LA FACTURA ES DE PLAN RANCHERO O NO
|
|
REALIZADO POR : ING. JOSE ALFREDO PAULINO ALEJO
|
|
FECHA : ENERO 20,1997.
|
|
--------------------------------------------------------------------------
|
|
}
|
|
GLOBALS
|
|
"veprgb000.4gl"
|
|
|
|
DEFINE estatus,p_impresion CHAR(1)
|
|
DEFINE estado RECORD
|
|
nula CHAR(6),
|
|
impresa CHAR(6)
|
|
END RECORD,
|
|
doc_Referencia CHAR(15)
|
|
|
|
DEFINE cons_fact RECORD
|
|
cod_cia LIKE vetb00002.cod_cia,
|
|
ventas LIKE vetb00002.ventas ,
|
|
zona LIKE vetb00002.zona ,
|
|
factura LIKE vetb00002.factura,
|
|
fecha_factura CHAR(10),
|
|
tipo_cliente LIKE vetb00002.tipo_cliente,
|
|
sec_cliente LIKE vetb00002.sec_cliente,
|
|
cond_pago LIKE vetb00002.cond_pago,
|
|
porc_desc LIKE vetb00002.porc_desc,
|
|
prima_us LIKE vetb00002.prima_us,
|
|
orden int,
|
|
fecha_orden CHAR(10),
|
|
conduce int,
|
|
fecha_conduce CHAR(10),
|
|
porc_itbi LIKE vetb00002.porc_itbi,
|
|
sec_vend LIKE vetb00002.sec_vend,
|
|
fecha_embarque CHAR(10),
|
|
sub_total LIKE vetb00002.sub_total,
|
|
desc_valor LIKE vetb00002.monto_desc,
|
|
itbi LIKE vetb00002.monto_itbi,
|
|
total_fact LIKE vetb00002.neto,
|
|
codigo_dgii CHAR(20),
|
|
kncf INT,
|
|
descripcion_ncf VARCHAR(40),
|
|
bodega SMALLINT,
|
|
|
|
nombre CHAR(30),
|
|
direccion CHAR(50),
|
|
ciudad CHAR(15),
|
|
nombre_desc CHAR(25),
|
|
descrip CHAR(25),
|
|
nombre_vend CHAR(29),
|
|
cod_transp LIKE iptb00006.cod_transp,
|
|
sec_transp LIKE iptb00006.sec_transp,
|
|
nombre_tran LIKE vetb00015.nombre,
|
|
placa_transp LIKE iptb00006.placa,
|
|
cod_tarifa LIKE iptb00006.cod_tarifa,
|
|
descrip5 CHAR(15),
|
|
descrip6 CHAR(15),
|
|
descrip1 CHAR(30),
|
|
nombre_tipo CHAR(15),
|
|
compania CHAR(50),
|
|
telefono CHAR(20),
|
|
rnc CHAR(11)
|
|
END RECORD,
|
|
otradb CHAR(1),
|
|
codigo_ncf CHAR(19)
|
|
|
|
DEFINE arr_disp DYNAMIC ARRAY OF RECORD
|
|
cod_n LIKE vetb00003.cod_n,
|
|
cod_grupo LIKE vetb00003.cod_grupo,
|
|
cod_tipo LIKE vetb00003.cod_tipo,
|
|
cod_sec LIKE vetb00003.cod_sec,
|
|
descrip_esp CHAR(40),
|
|
unidad_med CHAR(3),
|
|
cantidad LIKE vetb00003.cantidad,
|
|
precio LIKE vetb00003.precio,
|
|
monto_fact DECIMAl(10,2)
|
|
END RECORD
|
|
DEFINE t_valor,valor_p,balance DECIMAL(12,2)
|
|
DEFINE p_provincia SMALLINT
|
|
DEFINE p_descr1,p_descr2 CHAR(14)
|
|
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
|
|
|
|
LET otradb = 'N'
|
|
IF strconect = 'marmotech' THEN
|
|
CONNECT to strconect USER 'conecta' USING 'conecta'
|
|
|
|
ELSE
|
|
CONNECT to strconect USER usuarios USING clave
|
|
|
|
END IF
|
|
|
|
CALL veprcs001()
|
|
|
|
END MAIN
|
|
|
|
FUNCTION veprcs001()
|
|
|
|
DEFINE hoy DATE
|
|
OPTIONS
|
|
FORM LINE 3,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 23,
|
|
PROMPT LINE 22
|
|
|
|
CLEAR SCREEN
|
|
OPEN FORM vefmcs001 FROM "vefmcs001"
|
|
DISPLAY FORM vefmcs001
|
|
DISPLAY "veprcs001" AT 1,1 ATTRIBUTE (blue)
|
|
LET hoy = today
|
|
|
|
DISPLAY hoy using "dd/mm/yy" AT 1,70 ATTRIBUTE (blue)
|
|
DISPLAY "Factura de Ventas" AT 3,30 ATTRIBUTE (blue)
|
|
DISPLAY "<Esc> Busqueda de Registro" AT 3,1 ATTRIBUTE (BOLD)
|
|
DISPLAY "<Delete> Cancela Operacion" AT 3,54 ATTRIBUTE (BOLD)
|
|
|
|
# WHENEVER ERROR CONTINUE
|
|
|
|
|
|
# DIALOG ATTRIBUTES(UNBUFFERED, FIELD ORDER FORM)
|
|
IF strconect = 'marmotech' THEN
|
|
CONSTRUCT criterio ON a.cod_cia,a.ventas,a.zona,a.factura,a.bodega,
|
|
a.tipo_cliente,a.sec_cliente,a.cond_pago,a.prima_us,
|
|
a.orden,a.fecha_orden,a.conduce,
|
|
a.porc_itbi,a.sec_vend,a.cod_vend
|
|
FROM cod_cia,ventas,zona,factura,bodega,
|
|
tipo_cliente,sec_cliente,cond_pago,prima_us,orden,
|
|
fecha_orden,conduce,porc_itbi,sec_vend,
|
|
factura_e
|
|
|
|
BEFORE CONSTRUCT
|
|
|
|
INITIALIZE cons_fact.* TO NULL
|
|
CALL bodegas('1')
|
|
LET otradb = "N"
|
|
|
|
AFTER CONSTRUCT
|
|
IF INT_FLAG THEN
|
|
LET INT_FLAG = FALSE
|
|
CALL msg(2)
|
|
RETURN
|
|
END IF
|
|
EXIT CONSTRUCT
|
|
END CONSTRUCT
|
|
|
|
LET selec= "SELECT ' ',a.cod_vend,a.sucid,a.ventas,a.zona,a.factura,CONVERT(CHAR(10),a.fecha_factura,103), ",
|
|
" a.tipo_cliente,a.sec_cliente,a.cond_pago,a.porc_desc,a.prima_us, ",
|
|
" a.orden,CONVERT(CHAR(10),a.fecha_orden,103),a.conduce,CONVERT(CHAR(10),a.fecha_conduce,103),a.porc_itbi, ",
|
|
" a.sec_vend,CONVERT(ChAR(10),a.fecha_embarque,103),a.sub_total,a.monto_desc, ",
|
|
" a.monto_itbi,a.neto,b.codigo_dgii,b.ncf,c.tipo_ncf,a.bodega ",
|
|
"FROM vetb00002 a,vetb00072 b,vetb00071 c WHERE ",criterio clipped,
|
|
" AND a.sucid = b.sucid and b.sucid = c.sucid AND a.factura = b.documento AND b.tipo_doc IN ('FT','FE') ",
|
|
" and b.codigo_dgii = c.codigo_dgii and c.disponible = 'S' ",
|
|
" ORDER BY a.factura,a.fecha_factura "
|
|
|
|
ELSE
|
|
CONSTRUCT criterio ON a.cod_cia,a.ventas,a.zona,a.factura,a.bodega,
|
|
a.tipo_cliente,a.sec_cliente,a.cond_pago,a.prima_us,
|
|
a.orden,a.fecha_orden,a.conduce,
|
|
a.porc_itbi,a.sec_vend,a.cod_vend,a.documento_ref
|
|
FROM cod_cia,ventas,zona,factura,bodega,
|
|
tipo_cliente,sec_cliente,cond_pago,prima_us,orden,
|
|
fecha_orden,conduce,porc_itbi,sec_vend,
|
|
factura_e,doc_referencia
|
|
|
|
BEFORE CONSTRUCT
|
|
|
|
INITIALIZE cons_fact.* TO NULL
|
|
CALL bodegas('1')
|
|
LET otradb = "N"
|
|
|
|
AFTER CONSTRUCT
|
|
IF INT_FLAG THEN
|
|
LET INT_FLAG = FALSE
|
|
CALL msg(2)
|
|
RETURN
|
|
END IF
|
|
EXIT CONSTRUCT
|
|
END CONSTRUCT
|
|
|
|
LET selec =
|
|
"SELECT a.documento_ref, a.cod_vend,a.bodega,a.ventas,a.zona,a.factura,CONVERT(CHAR(10),a.fecha_factura,103), ",
|
|
" a.tipo_cliente,a.sec_cliente,a.cond_pago,a.porc_desc,a.prima_us, ",
|
|
" a.orden,CONVERT(CHAR(10),a.fecha_orden,103),a.conduce,CONVERT(CHAR(10),a.fecha_conduce,103),a.porc_itbi, ",
|
|
" a.sec_vend,CONVERT(CHAR(10),a.fecha_embarque,103),a.sub_total,a.monto_desc, ",
|
|
" a.monto_itbi,a.neto,a.cod_vend,a.bodega ",
|
|
"FROM vetb00002 a WHERE ",criterio clipped,
|
|
" ORDER BY a.factura,a.fecha_factura "
|
|
|
|
END IF
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE buscar SCROLL CURSOR FOR comando
|
|
OPEN buscar
|
|
|
|
|
|
FETCH FIRST buscar INTO doc_referencia,factura_e,cons_fact.*,estado.*
|
|
IF status = notfound THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
|
|
END IF
|
|
|
|
IF STATUS < 0 THEN
|
|
CALL integridad()
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
CALL informacion()
|
|
MENU "Opciones"
|
|
COMMAND "Siguiente" "Ver proximo registro"
|
|
FETCH NEXT buscar INTO doc_referencia,factura_e,cons_fact.*,estado.*
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
CALL informacion()
|
|
COMMAND "Anterior" "Ver registro anterior"
|
|
FETCH PREVIOUS buscar INTO doc_referencia,factura_e,cons_fact.*,estado.*
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
CALL informacion()
|
|
COMMAND "Primero" "Ver primer registro"
|
|
FETCH FIRST buscar INTO doc_referencia,factura_e,cons_fact.*,estado.*
|
|
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
CALL informacion()
|
|
|
|
COMMAND "Ultimo" "Ver ultimo registro"
|
|
FETCH LAST buscar INTO doc_referencia,factura_e,cons_fact.*,estado.*
|
|
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
|
|
CALL informacion()
|
|
COMMAND "Ver" "Ver Productos"
|
|
CALL visualizar()
|
|
|
|
COMMAND "Retornar"
|
|
EXIT MENU
|
|
END MENU
|
|
# END DIALOG
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION visualizar()
|
|
LET int_flag = FALSE
|
|
CALL arr_disp.clear()
|
|
IF strconect = 'decomarmol' THEN
|
|
LET selec =
|
|
" SELECT m.cod_n,m.cod_grupo,m.cod_tipo,m.cod_sec,a.descrip_esp, ",
|
|
" a.unidad_med,m.cantidad,m.precio,m.cantidad*m.precio ",
|
|
" FROM vetb00003 m, iptb00002 a ",
|
|
" WHERE m.cod_n = a.cod_n AND m.cod_grupo = a.cod_grupo AND ",
|
|
" m.cod_tipo = a.cod_tipo AND m.cod_sec = a.cod_sec AND ",
|
|
" m.factura = ? ",
|
|
" UNION ",
|
|
" SELECT m.cod_n,m.cod_grupo,m.cod_tipo,m.cod_sec,a.descrip_esp, ",
|
|
" a.unidad_med,m.cantidad,m.precio,m.cantidad*m.precio ",
|
|
" FROM historicomtech.dbo.vetb00003 m, historicomtech.dbo.iptb00002 a ",
|
|
" WHERE m.cod_n = a.cod_n AND m.cod_grupo = a.cod_grupo AND ",
|
|
" m.cod_tipo = a.cod_tipo AND m.cod_sec = a.cod_sec AND ",
|
|
" m.factura =? "
|
|
|
|
|
|
ELSE
|
|
LET selec =
|
|
" SELECT m.cod_n,m.cod_grupo,m.cod_tipo,m.cod_sec,a.descrip_esp, ",
|
|
" a.unidad_med,m.cantidad,m.precio,m.cantidad*m.precio ",
|
|
" FROM vetb00003 m, iptb00002 a ",
|
|
" WHERE m.cod_n = a.cod_n AND m.cod_grupo = a.cod_grupo AND ",
|
|
" m.cod_tipo = a.cod_tipo AND m.cod_sec = a.cod_sec AND ",
|
|
" m.factura = ? and m.sucid= ?"
|
|
|
|
END IF
|
|
PREPARE cmdfact FROM selec
|
|
DECLARE buscar1 CURSOR FOR cmdfact
|
|
|
|
IF strconect = 'decomarmol' THEN
|
|
OPEN buscar1 USING cons_fact.factura, cons_fact.factura
|
|
ELSE
|
|
|
|
OPEN buscar1 USING cons_fact.factura,cons_fact.cod_cia
|
|
END IF
|
|
LET curr = 1
|
|
FOREACH buscar1 INTO arr_disp[curr].*
|
|
LET curr = curr + 1
|
|
END FOREACH
|
|
|
|
CALL SET_COUNT(curr - 1)
|
|
|
|
DISPLAY ARRAY arr_disp TO s_fact.*
|
|
ON ACTION imprimir
|
|
CALL impresion_fact(cons_fact.*,arr_disp)
|
|
AFTER DISPLAY
|
|
IF int_flag THEN
|
|
LET numero_msg = 12
|
|
CALL msg(numero_msg)
|
|
EXIT DISPLAY
|
|
|
|
END IF
|
|
END DISPLAY
|
|
IF INT_FLAG THEN
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
END FUNCTION
|
|
FUNCTION informacion()
|
|
|
|
IF cons_fact.cod_cia = 1 THEN
|
|
LET cons_fact.compania = p_companias.nombre CLIPPED
|
|
END IF
|
|
|
|
DISPLAY BY NAME cons_fact.compania,factura_e
|
|
|
|
SELECT a.nombre,a.cod_provincia,a.telefono,a.num_rnc
|
|
INTO cons_fact.nombre,p_provincia,cons_fact.telefono,cons_fact.rnc
|
|
FROM vetb00004 a
|
|
WHERE a.tipo_cliente = cons_fact.tipo_cliente and
|
|
a.sec_cliente = cons_fact.sec_cliente
|
|
DISPLAY BY NAME cons_fact.nombre,cons_fact.telefono,cons_fact.rnc
|
|
|
|
SELECT b.calle,b.casa_num,b.barrio INTO descrip1,descrip2,descrip3
|
|
FROM vetb00005 b
|
|
WHERE b.tipo_cliente = cons_fact.tipo_cliente and
|
|
b.sec_cliente = cons_fact.sec_cliente and
|
|
b.status_t IS NULL
|
|
|
|
SELECT q.nombre_provincia INTO cons_fact.ciudad
|
|
FROM vetb00020 q
|
|
WHERE q.cod_provincia = p_provincia
|
|
AND q.status_t IS NULL
|
|
|
|
LET cons_fact.direccion = descrip1 clipped," ",descrip2 clipped,
|
|
", ",descrip3 clipped
|
|
|
|
DISPLAY BY NAME cons_fact.direccion,cons_fact.ciudad
|
|
|
|
LET estatus = NULL
|
|
SELECT UNIQUE status_t,status_impresion INTO estatus,p_impresion
|
|
FROM vetb00002 WHERE factura = cons_fact.factura
|
|
|
|
IF estatus = "E" THEN
|
|
LET estado.nula = "NULA"
|
|
ELSE
|
|
LET estado.nula = "ACTIVA"
|
|
END IF
|
|
|
|
IF p_impresion = "S" THEN
|
|
LET estado.impresa = "Impresa"
|
|
ELSE
|
|
LET estado.impresa = "N Impre"
|
|
END IF
|
|
|
|
IF cons_fact.cod_cia = 1 THEN
|
|
LET cons_fact.compania = p_companias.nombre CLIPPED
|
|
END IF
|
|
|
|
IF cons_fact.ventas = 1 THEN
|
|
LET cons_fact.nombre_tipo = "L O C A L"
|
|
END IF
|
|
|
|
IF cons_fact.ventas = 2 THEN
|
|
LET cons_fact.nombre_tipo = "EXPORTACION"
|
|
END IF
|
|
DISPLAY BY NAME estado.* ATTRIBUTE(REVERSE,blue)
|
|
|
|
SELECT a.nombre,a.cod_provincia INTO cons_fact.nombre,p_provincia
|
|
FROM vetb00004 a
|
|
WHERE a.tipo_cliente = cons_fact.tipo_cliente and
|
|
a.sec_cliente = cons_fact.sec_cliente
|
|
|
|
SELECT b.calle,b.casa_num,b.barrio INTO p_descr1,p_descr2,descrip3
|
|
FROM vetb00005 b
|
|
WHERE b.tipo_cliente = cons_fact.tipo_cliente and
|
|
b.sec_cliente = cons_fact.sec_cliente and b.status_t IS NULL
|
|
|
|
SELECT q.nombre_provincia INTO cons_fact.ciudad
|
|
FROM vetb00020 q
|
|
WHERE q.cod_provincia = p_provincia AND q.status_t IS NULL
|
|
|
|
LET cons_fact.direccion =p_descr1 clipped," ",p_descr2 clipped,
|
|
", ",descrip3 clipped
|
|
|
|
IF cons_fact.ventas = "1" THEN
|
|
SELECT descrip INTO cons_fact.descrip1 FROM vetb00008
|
|
WHERE cod_zona = cons_fact.zona
|
|
END IF
|
|
|
|
IF cons_fact.ventas = "2" THEN
|
|
SELECT unique nom_pais INTO cons_fact.descrip1 FROM cotb00018
|
|
WHERE cod_pais = cons_fact.zona
|
|
END IF
|
|
|
|
SELECT a.descrip,a.dias INTO cons_fact.descrip,dias_v
|
|
FROM vetb00012 a WHERE a.cond_pago = cons_fact.cond_pago
|
|
|
|
SELECT UNIQUE nom1_emp,apell1_emp INTO p_descr1,p_descr2
|
|
FROM adtb00003 WHERE num_emp = cons_fact.sec_vend
|
|
|
|
LET cons_fact.nombre_vend = p_descr1 clipped," ",p_descr2 clipped
|
|
DISPLAY BY NAME cons_fact.nombre_vend
|
|
|
|
SELECT UNIQUE a.cod_transp,a.sec_transp,a.placa,a.cod_tarifa
|
|
INTO cons_fact.cod_transp,cons_fact.sec_transp,cons_fact.placa_transp,
|
|
cons_fact.cod_tarifa
|
|
FROM iptb00006 a
|
|
WHERE (a.status_t IS NULL) AND (a.num_doc=cons_fact.factura) AND
|
|
(a.cod_mov IN (30,31)) AND a.fecha > "01/01/2007" AND
|
|
a.cod_cia = cons_fact.cod_cia AND a.bodega = cons_fact.bodega
|
|
|
|
SELECT a.nombre INTO cons_fact.nombre_tran FROM vetb00015 a
|
|
WHERE a.cod_transp = cons_fact.cod_transp and
|
|
a.sec_transp = cons_fact.sec_transp and a.status_t is null
|
|
|
|
SELECT a.descrip INTO descrip6 FROM vetb00023 a
|
|
WHERE a.cod_tarifa = cons_fact.cod_tarifa and a.status_t is null
|
|
|
|
LET cons_fact.descrip5 = descrip6[1,15] clipped
|
|
LET cons_fact.descrip6 = descrip6[16,30] CLIPPED
|
|
LET cons_fact.codigo_dgii = cons_fact.codigo_dgii CLIPPED,cons_fact.kncf USING "&&&&&&&&"
|
|
|
|
DISPLAY BY NAME cons_fact.*,factura_e,doc_referencia
|
|
|
|
END FUNCTION |