692 lines
23 KiB
Plaintext
692 lines
23 KiB
Plaintext
SCHEMA smarmotech
|
|
|
|
GLOBALS
|
|
|
|
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
|
r_filename,inventario STRING, -- filename of Report Design Document including .4rp extension
|
|
r_output STRING, -- output format option
|
|
preview INTEGER, -- TRUE/FALSE, to set preview option
|
|
salida CHAR(40),
|
|
historico,servicios CHAR(1),
|
|
petiquetas ui.ComboBox,
|
|
k1 CHAR(2),
|
|
tipo_reporte CHAR(10),
|
|
grupo1 VARCHAR(100)
|
|
|
|
DEFINE nombre_m CHAR(20),
|
|
USUARIOS, CLAVE CHAR(50),
|
|
progreso SMALLINT,
|
|
descripcion CHAR(70),
|
|
p_iptb01 RECORD LIKE iptb00001.*,
|
|
p_iptb02 RECORD LIKE iptb00002.*,
|
|
p_iptb06 RECORD LIKE iptb00006.*,
|
|
p_iptb14 RECORD LIKE iptb00014.*,
|
|
p_iptb19 RECORD LIKE iptb00019.*,
|
|
p_iptb20 RECORD LIKE iptb00020.*,
|
|
p_iptb21 RECORD LIKE iptb00021.*,
|
|
p_vetb25 RECORD LIKE vetb00025.*,
|
|
p_iptb22 RECORD LIKE iptb00022.*,
|
|
preciosm INTEGER, #RECORD LIKE iptb00014.*,
|
|
marcas RECORD LIKE iptb00019.*,
|
|
lj,tipo_inventario SMALLINT,
|
|
pflag CHAR(1),
|
|
fecha1 DATE,
|
|
selec_pt CHAR(1000),control_existencia,control_itbis,
|
|
normal,negrilla_on,negrillas_of,comp_on,comp_off,doce,doble_on,doble_off,respuesta
|
|
CHAR(3)
|
|
|
|
DEFINE dcmd,cmd,imprime,copia CHAR(150),archivo CHAR(80),impresor,impresor1 SMALLINT
|
|
|
|
DEFINE busca_p RECORD
|
|
cod_n INTEGER,
|
|
cod_grupo INTEGER,
|
|
cod_tipo INTEGER,
|
|
cod_sec INTEGER,
|
|
descrip_esp CHAR(30),
|
|
unidad_med CHAR(5)
|
|
END RECORD
|
|
|
|
DEFINE clientes ARRAY[50] OF RECORD
|
|
tipo_cliente LIKE vetb00004.tipo_cliente,
|
|
sec_cliente LIKE vetb00004.sec_cliente,
|
|
nombre LIKE vetb00004.nombre
|
|
END RECORD
|
|
DEFINE codigos RECORD
|
|
fecha DATE,
|
|
cod_n_a SMALLINT,
|
|
cod_grupo_a SMALLINT,
|
|
cod_tipo_a SMALLINT,
|
|
cod_sec_a SMALLINT,
|
|
cantidad INTEGER,
|
|
cod_n_h SMALLINT,
|
|
cod_grupo_h SMALLINT,
|
|
cod_tipo_h SMALLINT,
|
|
cod_sec_h SMALLINT
|
|
END RECORD
|
|
|
|
DEFINE movimientos RECORD
|
|
cod_mov LIKE iptb00006.cod_mov,
|
|
num_doc LIKE iptb00006.num_doc,
|
|
fecha LIKE iptb00006.fecha,
|
|
tipo LIKE iptb00006.tipo,
|
|
orden_compra LIKE iptb00006.orden_compra,
|
|
fact_no LIKE iptb00006.fact_no,
|
|
conduce_no LIKE iptb00006.conduce_no,
|
|
cod_sp LIKE iptb00006.cod_sp,
|
|
cod_sp_sec LIKE iptb00006.cod_sp_sec,
|
|
nom_sp CHAR(41),
|
|
cod_transp LIKE iptb00006.cod_transp,
|
|
sec_transp LIKE iptb00006.sec_transp,
|
|
placa LIKE iptb00006.placa,
|
|
cod_tarifa LIKE iptb00006.cod_tarifa,
|
|
bodega LIKE iptb00006.bodega,
|
|
departamento SMALLINT,
|
|
detalle LIKE iptb00006.detalle
|
|
END RECORD
|
|
|
|
DEFINE ultimo RECORD
|
|
cond_recep LIKE iptb00006.cond_recep,
|
|
uso_tiempo LIKE iptb00006.uso_tiempo
|
|
END RECORD
|
|
|
|
DEFINE datos1 RECORD
|
|
num_doc LIKE iptb00006.num_doc,
|
|
fecha LIKE iptb00006.fecha,
|
|
cod_seccion SMALLINT,
|
|
nom_seccion CHAR(20),
|
|
bodega LIKE iptb00006.bodega
|
|
END RECORD
|
|
|
|
DEFINE p_conteo RECORD
|
|
fecha LIKE iptb00006.fecha,
|
|
bodega LIKE iptb00006.bodega,
|
|
cod_n LIKE iptb00006.cod_n,
|
|
cod_grupo LIKE iptb00006.cod_grupo,
|
|
cod_tipo LIKE iptb00006.cod_tipo,
|
|
cod_sec LIKE iptb00006.cod_sec,
|
|
cantidad LIKE iptb00006.cantidad_2
|
|
END RECORD
|
|
|
|
DEFINE costos RECORD LIKE iptb00004.*
|
|
|
|
DEFINE datos RECORD
|
|
num_doc LIKE iptb00006.num_doc,
|
|
fecha LIKE iptb00006.fecha,
|
|
nom_dpto CHAR(30),
|
|
nom_dpto1 CHAR(30),
|
|
bodega LIKE iptb00006.bodega
|
|
END RECORD
|
|
|
|
DEFINE datos_gen RECORD
|
|
cod_mov LIKE iptb00006.cod_mov,
|
|
num_doc LIKE iptb00006.num_doc,
|
|
cod_sp LIKE iptb00006.cod_sp,
|
|
cod_sp_sec LIKE iptb00006.cod_sp_sec,
|
|
tipo LIKE iptb00006.tipo,
|
|
orden_compra LIKE iptb00006.orden_compra,
|
|
conduce_no LIKE iptb00006.conduce_no,
|
|
fact_no LIKE iptb00006.fact_no,
|
|
fecha LIKE iptb00006.fecha,
|
|
bodega LIKE iptb00006.bodega,
|
|
nom_sp CHAR(40), #LIKE cotb00001.nom_sp,
|
|
descrip_mov LIKE iptb00005.descrip_mov
|
|
END RECORD
|
|
|
|
DEFINE otros_mov RECORD
|
|
num_doc LIKE iptb00006.num_doc,
|
|
cod_cia LIKE iptb00006.cod_cia,
|
|
cod_mov LIKE iptb00006.cod_mov,
|
|
fact_no LIKE iptb00006.fact_no,
|
|
cod_transp LIKE iptb00006.cod_transp,
|
|
sec_transp LIKE iptb00006.sec_transp,
|
|
cod_tarifa LIKE iptb00006.cod_tarifa,
|
|
placa LIKE iptb00006.placa,
|
|
fecha LIKE iptb00006.fecha,
|
|
conduce_no LIKE iptb00006.conduce_no,
|
|
descrip_mov CHAR(80), #LIKE intb00005.descrip_mov,
|
|
bodega LIKE iptb00006.bodega,
|
|
bodega_destino SMALLINT,
|
|
detalle LIKE iptb00006.detalle,
|
|
cod_sp LIKE iptb00006.cod_sp,
|
|
cod_sp_sec LIKE iptb00006.cod_sp_sec,
|
|
departamento SMALLINT,
|
|
nombre_depto CHAR(30),
|
|
cod_mov1 SMALLINT,
|
|
entrada INT,
|
|
descrip_mov1 CHAR(40),
|
|
descrip4 CHAR(30),
|
|
factura INT
|
|
|
|
END RECORD
|
|
|
|
DEFINE chequea RECORD
|
|
minima LIKE iptb00002.exist_min,
|
|
maxima LIKE iptb00002.exist_max
|
|
END RECORD
|
|
|
|
DEFINE p_unidad ARRAY [100] OF INTEGER
|
|
DEFINE selec2 CHAR(1000)
|
|
DEFINE p_cantidad,bandera SMALLINT
|
|
DEFINE p_fechas DATE
|
|
DEFINE nombre_dia ARRAY[7] OF char(10)
|
|
DEFINE nombre_mes ARRAY[12] OF char(10)
|
|
DEFINE nombre_ant CHAR(11)
|
|
DEFINE general decimal(12,2)
|
|
DEFINE numero_msg,curr1,p_cod_cia,p_bodega,longitud SMALLINT
|
|
#DEFINE arancel RECORD LIKE cotb00005.*
|
|
DEFINE status_m char(1)
|
|
DEFINE decide,p_param char(1)
|
|
DEFINE cant DECIMAL(12,5)
|
|
DEFINE tipo_papel smallint
|
|
DEFINE balance DECIMAL(12,5)
|
|
DEFINE cod_mov_ant LIKE iptb00006.cod_mov
|
|
DEFINE existe_comp,suplidor1,doc_existe,actual,mat_prima CHAR (1000)
|
|
DEFINE opt1,opt4,opt,existe,ya ,opera1,cambio CHAR(3)
|
|
DEFINE medida CHAR (3)
|
|
DEFINE fila smallint
|
|
DEFINE m_articulos RECORD LIKE iptb00002.*
|
|
DEFINE presentacion RECORD LIKE iptb00003.*
|
|
DEFINE p_companias RECORD LIKE companias.*
|
|
# DEFINE numero_msg LIKE msgtable.cod_msg
|
|
DEFINE articulos RECORD LIKE iptb00002.*
|
|
# DEFINE suplidor RECORD LIKE intb00008.*
|
|
DEFINE meses RECORD LIKE mestable.*,
|
|
regi INTEGER
|
|
|
|
DEFINE mensajes RECORD {LIKE msgtable.* }
|
|
cod_msg smallint,
|
|
desc_msg char(60),
|
|
us_crea char(9),
|
|
fech_crea char(16),
|
|
us_mod char(9),
|
|
fech_mod char(16)
|
|
END RECORD
|
|
|
|
DEFINE transacc RECORD LIKE iptb00005.*
|
|
|
|
DEFINE medidas RECORD LIKE intb00007.*
|
|
DEFINE nombre_cia,descrip1,descrip2,descrip3,descrip4 CHAR(30)
|
|
DEFINE c_sustituto RECORD LIKE intb00003.*
|
|
DEFINE c_equivalente RECORD LIKE intb00004.*
|
|
DEFINE criterio CHAR(1000)
|
|
DEFINE opc,selec,opt2 string
|
|
DEFINE cod_n_a,cod_grupo_a,cod_tipo_a,cod_sec_a SMALLINT
|
|
DEFINE p_act,idx,scr_l SMALLINT
|
|
DEFINE opcion,tipo_p CHAR(1)
|
|
|
|
DEFINE pilas ARRAY[100] OF RECORD
|
|
cod_n LIKE intb00003.cod_n,
|
|
cod_grupo LIKE intb00003.cod_grupo,
|
|
cod_tipo LIKE intb00003.cod_tipo,
|
|
cod_sec LIKE intb00003.cod_sec,
|
|
descrip_esp LIKE iptb00002.descrip_esp
|
|
END RECORD
|
|
|
|
DEFINE prod1 DYNAMIC ARRAY OF RECORD
|
|
estado VARCHAR(20),
|
|
cod_n1 SMALLINT,
|
|
cod_grupo1 SMALLINT,
|
|
cod_tipo1 SMALLINT,
|
|
cod_sec1 SMALLINT,
|
|
descrip_esp1 CHAR(180),
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
bodega1 CHAR(50),
|
|
existencia DECIMAL(12,5),
|
|
cantidad_ordenes DEC(12,5),
|
|
disponible DEC(12,5),
|
|
reservado DEC(12,5),
|
|
transito DEC(12,5)
|
|
END RECORD
|
|
|
|
|
|
|
|
DEFINE prod11 DYNAMIC ARRAY OF RECORD
|
|
estado VARCHAR(20),
|
|
cod_n1 SMALLINT,
|
|
cod_grupo1 SMALLINT,
|
|
cod_tipo1 SMALLINT,
|
|
cod_sec1 SMALLINT,
|
|
descrip_esp1 CHAR(70),
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
existencia DECIMAL(12,5),
|
|
cantidad_ordenes DEC(12,5),
|
|
pventas DEC(12,5),
|
|
ventas VARCHAR(30),
|
|
precio DEC(12,2),
|
|
reservado DEC(12,5),
|
|
transito DEC(12,5),
|
|
fecha_llegada DATE,
|
|
fecha_ordenada DATE
|
|
END RECORD
|
|
|
|
DEFINE prod ARRAY[200] OF RECORD
|
|
cod_n1 SMALLINT,
|
|
cod_grupo1 SMALLINT,
|
|
cod_tipo1 SMALLINT,
|
|
cod_sec1 SMALLINT,
|
|
descrip_esp1 CHAR(70),
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
bodega LIKE iptb00002.bodega,
|
|
marca CHAR(10), #002.marca,
|
|
cod_cia LIKE iptb00002.cod_cia,
|
|
existencia DECIMAL(12,5),
|
|
exist_min DECIMAL(12,5),
|
|
dia_llegada LIKE iptb00002.dia_llegada
|
|
END RECORD
|
|
|
|
DEFINE movi2 DYNAMIC ARRAY OF RECORD
|
|
area SMALLINT,
|
|
cod_n LIKE intb00003.cod_n,
|
|
cod_grupo LIKE intb00003.cod_grupo,
|
|
cod_tipo LIKE intb00003.cod_tipo,
|
|
cod_sec LIKE intb00003.cod_sec,
|
|
cantidad_1 DEC(12,5),
|
|
cantidad_2 DEC(12,5),
|
|
cantidad_p DEC(12,5),
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
descrip_esp CHAR(80),
|
|
existencia DEC(12,5),
|
|
disponible DEC(12,5),
|
|
codigo_bloque CHAR(15),
|
|
id_kit INT
|
|
END RECORD
|
|
|
|
DEFINE art DYNAMIC ARRAY OF RECORD
|
|
cod_n1 SMALLINT,
|
|
cod_grupo1 SMALLINT,
|
|
cod_tipo1 SMALLINT,
|
|
cod_sec1 SMALLINT,
|
|
descrip_esp1 CHAR(30),
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
bodega LIKE intb00002.bodega,
|
|
existencia like intb00002.existencia,
|
|
pto_reorden LIKE intb00002.pto_reorden,
|
|
dia_llegada LIKE intb00002.dia_llegada,
|
|
valor decimal(10,2)
|
|
END RECORD
|
|
|
|
DEFINE csmov RECORD
|
|
num_doc LIKE iptb00006.num_doc,
|
|
fecha_1 LIKE iptb00006.fecha,
|
|
num_oc INT,
|
|
num_compra INT,
|
|
cantidad_2 LIKE iptb00006.cantidad_2,
|
|
cod_mov LIKE iptb00006.cod_mov,
|
|
bodega CHAR(50)
|
|
END RECORD
|
|
|
|
DEFINE datos_cons RECORD
|
|
cod_n LIKE iptb00002.cod_n,
|
|
cod_grupo LIKE iptb00002.cod_grupo,
|
|
cod_tipo LIKE iptb00002.cod_tipo,
|
|
cod_sec LIKE iptb00002.cod_sec,
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
bodega LIKE iptb00006.bodega,
|
|
fech_in DATE,
|
|
fech_fi DATE
|
|
END RECORD
|
|
|
|
DEFINE movi3 ARRAY[1000] OF RECORD
|
|
codigo CHAR(10),
|
|
cantidad_1 DECIMAL(12,5),
|
|
cantidad_2 DECIMAL(12,5),
|
|
diferencia DECIMAL(12,5),
|
|
descrip_esp LIKE iptb00002.descrip_esp,
|
|
unidad_med LIKE iptb00002.unidad_med
|
|
END RECORD
|
|
|
|
DEFINE movi_ant ARRAY[1000] OF RECORD
|
|
cod_n LIKE iptb00006.cod_n,
|
|
cod_grupo LIKE iptb00006.cod_grupo,
|
|
cod_tipo LIKE iptb00006.cod_tipo,
|
|
cod_sec LIKE iptb00006.cod_sec,
|
|
cant_ant LIKE iptb00006.cantidad_2
|
|
END RECORD
|
|
|
|
DEFINE movi ARRAY[500] OF RECORD
|
|
cod_n LIKE iptb00006.cod_n,
|
|
cod_grupo LIKE iptb00006.cod_grupo,
|
|
cod_tipo LIKE iptb00006.cod_tipo,
|
|
cod_sec LIKE iptb00006.cod_sec,
|
|
cantidad_1 LIKE iptb00006.cantidad_1,
|
|
cantidad_2 LIKE iptb00006.cantidad_2,
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
descrip_esp CHAR(40)
|
|
END RECORD
|
|
|
|
DEFINE ant_art RECORD
|
|
area SMALLINT,
|
|
cod_n LIKE cotb00002.cod_n,
|
|
cod_grupo LIKE cotb00002.cod_grupo,
|
|
cod_tipo LIKE cotb00002.cod_tipo,
|
|
cod_sec LIKE cotb00002.cod_sec
|
|
END RECORD
|
|
|
|
DEFINE c_articulos ARRAY[100] OF RECORD
|
|
cod_n LIKE cotb00002.cod_n,
|
|
cod_grupo LIKE cotb00002.cod_grupo,
|
|
cod_tipo LIKE cotb00002.cod_tipo,
|
|
cod_sec LIKE cotb00002.cod_sec,
|
|
descripcion CHAR(30)
|
|
# costo_mp LIKE cotb00002.costo_mp,
|
|
# fecha_act LIKE cotb00002.fecha_act
|
|
END RECORD
|
|
|
|
DEFINE consulta_mv ARRAY[200] OF RECORD
|
|
num_doc LIKE iptb00006.num_doc,
|
|
fecha LIKE iptb00006.fecha,
|
|
nombre char(7),
|
|
cantidad_1 LIKE iptb00006.cantidad_1,
|
|
cantidad_2 LIKE iptb00006.cantidad_1,
|
|
balance decimal(12,2)
|
|
END RECORD
|
|
|
|
DEFINE c_det_inv ARRAY[200] OF RECORD
|
|
cod_n LIKE iptb00002.cod_n,
|
|
cod_grupo LIKE iptb00002.cod_grupo,
|
|
cod_tipo LIKE iptb00002.cod_tipo,
|
|
cod_sec LIKE iptb00002.cod_sec,
|
|
descrip_esp LIKE iptb00002.descrip_esp,
|
|
existencia LIKE intb00002.existencia,
|
|
#costo_mp LIKE cotb00002.costo_mp,
|
|
valor DECIMAL(12,5)
|
|
END RECORD
|
|
|
|
DEFINE datos_cs RECORD
|
|
cod_n LIKE iptb00006.cod_n,
|
|
cod_grupo LIKE iptb00006.cod_grupo,
|
|
cod_tipo LIKE iptb00006.cod_tipo,
|
|
cod_sec LIKE iptb00006.cod_sec,
|
|
descrip_esp LIKE iptb00002.descrip_esp,
|
|
fecha_in LIKE iptb00006.fecha,
|
|
fecha_fi LIKE iptb00006.fecha
|
|
END RECORD
|
|
#DEFINE medidas1 RECORD LIKE vetb00014.*
|
|
DEFINE otrab SMALLINT
|
|
DEFINE comp_fech,comp_fech1 DATE
|
|
DEFINE mes_control CHAR(2)
|
|
DEFINE mes_calc,dia SMALLINT
|
|
DEFINE fecha_c DATE
|
|
DEFINE c_ano,a_ano CHAR(4)
|
|
END GLOBALS
|
|
FUNCTION busca_prod1()
|
|
|
|
DEFINE arr_prod ARRAY[500] OF RECORD
|
|
cod_n INTEGER,
|
|
cod_grupo INTEGER,
|
|
cod_tipo INTEGER,
|
|
cod_sec INTEGER,
|
|
descrip_esp CHAR(30),
|
|
unidad_med CHAR(5)
|
|
END RECORD
|
|
|
|
OPEN WINDOW busca_2 AT 8,4 WITH FORM "ipfmwd001" ATTRIBUTE (BORDER,FORM LINE
|
|
FIRST + 1,PROMPT LINE LAST)
|
|
|
|
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp
|
|
FROM cod_n,cod_grupo,cod_tipo,cod_sec,descrip_esp
|
|
|
|
LET selec_pt =
|
|
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ",
|
|
" a.unidad_med FROM iptb00002 a ",
|
|
"WHERE a.status_t IS NULL AND ",criterio CLIPPED," ORDER BY 5 "
|
|
|
|
PREPARE comando_p FROM selec_pt
|
|
DECLARE busca_2 CURSOR FOR comando_p
|
|
|
|
LET idx = 1
|
|
FOREACH busca_2 INTO arr_prod[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
CALL SET_COUNT(idx - 1)
|
|
|
|
DISPLAY ARRAY arr_prod TO s_prod.*
|
|
LET idx = ARR_CURR()
|
|
|
|
LET busca_p.cod_n = arr_prod[idx].cod_n
|
|
LET busca_p.cod_grupo = arr_prod[idx].cod_grupo
|
|
LET busca_p.cod_tipo = arr_prod[idx].cod_tipo
|
|
LET busca_p.cod_sec = arr_prod[idx].cod_sec
|
|
LET busca_p.descrip_esp = arr_prod[idx].descrip_esp
|
|
LET busca_p.unidad_med = arr_prod[idx].unidad_med
|
|
# para el precio
|
|
LET p_vetb25.cod_n = arr_prod[idx].cod_n
|
|
LET p_vetb25.cod_grupo = arr_prod[idx].cod_grupo
|
|
LET p_vetb25.cod_tipo = arr_prod[idx].cod_tipo
|
|
LET p_vetb25.cod_sec = arr_prod[idx].cod_sec
|
|
|
|
LET descrip1 = arr_prod[idx].descrip_esp
|
|
LET medida = arr_prod[idx].unidad_med
|
|
|
|
CLOSE WINDOW busca_2
|
|
END FUNCTION
|
|
|
|
REPORT formu4(x,z)
|
|
|
|
DEFINE x RECORD
|
|
num_doc LIKE iptb00006.num_doc,
|
|
cod_cia LIKE iptb00006.cod_cia,
|
|
cod_mov LIKE iptb00006.cod_mov,
|
|
fact_no LIKE iptb00006.fact_no,
|
|
cod_transp LIKE iptb00006.cod_transp,
|
|
sec_transp LIKE iptb00006.sec_transp,
|
|
cod_tarifa LIKE iptb00006.cod_tarifa,
|
|
placa LIKE iptb00006.placa,
|
|
fecha LIKE iptb00006.fecha,
|
|
conduce_no LIKE iptb00006.conduce_no,
|
|
descrip_mov CHAR(40), #LIKE intb00005.descrip_mov,
|
|
bodega LIKE iptb00006.bodega,
|
|
detalle LIKE iptb00006.detalle,
|
|
cod_sp LIKE iptb00006.cod_sp,
|
|
cod_sp_sec LIKE iptb00006.cod_sp_sec,
|
|
departamento SMALLINT,
|
|
nombre_depto CHAR(30),
|
|
cod_mov1 SMALLINT,
|
|
entrada INT,
|
|
descrip_mov1 CHAR(40),
|
|
descrip4 CHAR(30)
|
|
END RECORD
|
|
|
|
DEFINE z RECORD
|
|
cod_n LIKE intb00003.cod_n,
|
|
cod_grupo LIKE intb00003.cod_grupo,
|
|
cod_tipo LIKE intb00003.cod_tipo,
|
|
cod_sec LIKE intb00003.cod_sec,
|
|
cantidad_1 LIKE iptb00006.cantidad_1,
|
|
cantidad_2 LIKE iptb00006.cantidad_2,
|
|
cantidad_p DEC(12,5),
|
|
unidad_med LIKE iptb00002.unidad_med,
|
|
descrip_esp CHAR(70)
|
|
END RECORD,
|
|
etiqueta,pcalle,purbanizacion,pcasa_num,ptelefono,pcelular,nombre,apellido CHAR(30),
|
|
plado1,plado2,plado3,pcantidad,pmedida DEC(12,5),
|
|
pprovincia SMALLINT,
|
|
nombre_provincia CHAR(30),
|
|
nombre_p,direccion_p CHAR(40),
|
|
total_unidades INT,
|
|
hora CHAR(5),
|
|
pobserva,pubica CHAR(60)
|
|
|
|
|
|
DEFINE usuario_c CHAR(9)
|
|
DEFINE signo CHAR(1)
|
|
DEFINE doce,normal,doble,doble_of,negras,negras_off CHAR(2)
|
|
DEFINE l,cuenta SMALLINT
|
|
|
|
OUTPUT
|
|
LEFT MARGIN 0
|
|
|
|
ORDER BY x.num_doc,z.cod_sec
|
|
FORMAT
|
|
|
|
BEFORE GROUP OF x.num_doc
|
|
LET doble = ASCII 14
|
|
LET doble_of = ASCII 20
|
|
LET negras = ASCII 27, ASCII 69
|
|
LET negras_off = ASCII 27, ASCII 70
|
|
|
|
SELECT unique us_crea INTO usuario_c
|
|
FROM iptb00006 WHERE num_doc = x.num_doc and
|
|
cod_mov = x.cod_mov and
|
|
us_crea = user
|
|
|
|
LET doce = ASCII 27, ASCII 77
|
|
LET normal = ASCII 27, ASCII 80
|
|
LET hora = time
|
|
PRINT doce
|
|
#PRINT COLUMN 1, negras,doble,p_companias.nombre CLIPPED
|
|
PRINT COLUMN 1,doble, "M A R M O T E C H, S. A.",doble_of
|
|
PRINT COLUMN 71,"No. ",doble,x.num_doc using "<<<<<<"
|
|
#LET l = (80 - LENGTH ("OTROS MOVIMIENTOS")) / 2
|
|
PRINT #COLUMN l, "OTROS MOVIMIENTOS",
|
|
COLUMN 71, x.fecha using "dd/mm/yyyy"
|
|
PRINT COLUMN 71, hora
|
|
|
|
|
|
LET l = (70 - LENGTH (x.descrip_mov)) / 2
|
|
|
|
PRINT COLUMN l-2, doble,negras,"(",x.cod_mov using "&&",") ",x.descrip_mov,doble_of
|
|
PRINT negras_off
|
|
IF x.cod_mov = 12 THEN
|
|
PRINT COLUMN 1, "Factura No: ",x.fact_no using "&&&&&&"
|
|
END IF
|
|
|
|
IF x.detalle is null THEN
|
|
LET x.detalle = "**************************************"
|
|
END IF
|
|
|
|
SELECT a.calle,a.casa_num,a.urbanizacion,b.telefono,b.telex,c.nom1_emp,c.apell1_emp,b.cod_provincia
|
|
INTO pcalle,pcasa_num,purbanizacion,ptelefono,pcelular,nombre,apellido,pprovincia
|
|
FROM vetb00005 a,vetb00004 b,vetb00028 d,adtb00003 c
|
|
WHERE a.tipo_cliente = x.cod_sp AND
|
|
a.sec_cliente = x.cod_sp_sec AND
|
|
a.tipo_cliente = d.tipo_cliente AND
|
|
a.sec_cliente = d.sec_cliente AND
|
|
a.tipo_cliente = b.tipo_cliente AND
|
|
a.sec_cliente = b.sec_cliente AND
|
|
d.sec_vend = c.num_emp
|
|
|
|
LET nombre_provincia = NULL
|
|
IF x.cod_mov = 30 OR x.cod_mov = 31 THEN
|
|
SELECT a.nombre_provincia INTO nombre_provincia
|
|
FROM vetb00020 a
|
|
WHERE a.cod_provincia = pprovincia
|
|
END IF
|
|
IF x.cod_mov = 55 THEN
|
|
SELECT unique a.nom_pais INTO nombre_provincia FROM cotb00018 a
|
|
WHERE a.cod_pais = pprovincia
|
|
END IF
|
|
LET nombre_p = null
|
|
LET direccion_p = null
|
|
SELECT a.nombre_proyecto,a.direccion_proyecto INTO nombre_p,direccion_p
|
|
FROM vetb00049 a
|
|
WHERE a.tipo_cliente = x.cod_sp AND
|
|
a.sec_cliente = x.cod_sp_Sec
|
|
|
|
SELECT a.direccion INTO pubica FROM prtb00012 a
|
|
WHERE a.num_oc = x.conduce_no AND a.fech_crea > datetime (2007-01-01 08:00) year to minute
|
|
|
|
# SELECT a.observacion INTO pobserva FROM prtb00014 a
|
|
# WHERE a.num_oc = x.conduce_no AND a.fech_crea > datetime (2007-01-01 08:00) year to minute
|
|
|
|
|
|
PRINT COLUMN 1, "CLIENTE : ",negras, x.descrip4," (",
|
|
x.cod_sp using "&&","-",
|
|
x.cod_sp_sec using "&&&&",")",negras_off
|
|
PRINT COLUMN 1, "DIRECCION: ",pcalle CLIPPED," ",pcasa_num CLIPPED," ",purbanizacion CLIPPED,
|
|
" TELEFONO: ",ptelefono CLIPPED," CELULAR: ",pcelular
|
|
PRINT COLUMN 1, "Proyecto : ",nombre_p CLIPPED, " DIRECCION: ",direccion_p CLIPPED
|
|
PRINT COLUMN 1, "Vendedor : ",nombre clipped," ",apellido
|
|
PRINT COLUMN 1, "Entrada : ",x.entrada USING "<<<<<<"," (",x.cod_mov1 USING "<<<",") ",x.descrip_mov1 CLIPPED
|
|
PRINT COLUMN 1, "Orden : ",x.conduce_no, COLUMN 20 #,"Observacion Orden: ",pobserva CLIPPED
|
|
PRINT COLUMN 1, "Ubicacion: ",pubica CLIPPED
|
|
|
|
IF x.cod_mov = 70 OR x.cod_mov = 71 OR x.cod_mov = 72 THEN
|
|
PRINT COLUMN 1, "DEPARTAMENTO: ",x.departamento USING "<<<<"," ",x.nombre_depto
|
|
END IF
|
|
|
|
|
|
PRINT doce
|
|
PRINT COLUMN 1,
|
|
"-----------------------------------------------------------------------------",
|
|
"-----------------"
|
|
|
|
PRINT COLUMN 2,doble, "PRODUCTO(S)",doble_of clipped
|
|
PRINT COLUMN 74, "CANTIDAD"
|
|
PRINT COLUMN 62, "CANTIDAD",
|
|
COLUMN 74, "PENDIENTE"
|
|
PRINT COLUMN 50, "UNIDADES",
|
|
COLUMN 62, "A DESPACHAR",
|
|
COLUMN 74, "CON ESTA TRANSACCION"
|
|
|
|
PRINT COLUMN 1,
|
|
"-----------------------------------------------------------------------------",
|
|
"-----------------"
|
|
SKIP 1 LINES
|
|
|
|
ON EVERY ROW
|
|
IF z.cod_n is not null and z.cod_grupo is not null and
|
|
z.cod_tipo is not null and z.cod_sec is not null THEN
|
|
PRINT COLUMN 2, z.cod_n using "&&","-",
|
|
COLUMN 4, z.cod_grupo using "&&","-",
|
|
COLUMN 6, z.cod_tipo using "&&&","-",
|
|
COLUMN 9, z.cod_sec using "&&&",
|
|
COLUMN 17, z.descrip_esp clipped," ";
|
|
|
|
IF cuenta = 1 THEN
|
|
LET signo = "+"
|
|
ELSE
|
|
LET signo = "-"
|
|
LET z.cantidad_2 = z.cantidad_2 * -1
|
|
END IF
|
|
IF z.cantidad_2 < 0 THEN
|
|
LET z.cantidad_2 = z.cantidad_2 * -1
|
|
END IF
|
|
PRINT COLUMN 48, z.cantidad_1 USING "###,###.#####",
|
|
COLUMN 56, z.cantidad_2 using "###,###.#####"," ",z.unidad_med,
|
|
COLUMN 75, z.cantidad_p using "###,###.#####"
|
|
DECLARE busca_d1 CURSOR FOR
|
|
SELECT a.etiqueta,a.lado_1,a.lado_2,a.lado_3,a.cantidad,a.medida
|
|
FROM iptb00025 a
|
|
WHERE a.cod_n = z.cod_n AND
|
|
a.cod_grupo = z.cod_grupo AND
|
|
a.cod_tipo = z.cod_tipo AND
|
|
a.cod_sec = z.cod_sec AND
|
|
a.cod_mov = X.cod_mov AND
|
|
a.num_Doc = x.num_doc
|
|
LET total_unidades = 0
|
|
FOREACH busca_d1 INTO etiqueta,plado1,plado2,plado3,pcantidad,pmedida
|
|
PRINT COLUMN 19,pcantidad USING "<,<<<"," ",etiqueta clipped," DE ",plado1 USING "<<.#####"," X ",
|
|
plado2 USING "<<.#####"," X ",plado3 USING "<<.#####"," = ",pmedida USING "<<<.#####"
|
|
LET total_unidades = total_unidades + pcantidad
|
|
END FOREACH
|
|
IF total_unidades > 0 THEN
|
|
|
|
PRINT COLUMN 19, "TOTAL UNIDADES ",total_unidades USING "<,<<<"
|
|
END IF
|
|
END IF
|
|
|
|
PAGE TRAILER
|
|
PRINT COLUMN 1, "OBSERVACIONES: ", UPSHIFT(x.detalle)
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 1, "TRANSPORTISTA: ",descrip2
|
|
PRINT COLUMN 1, "PLACA : ",x.placa
|
|
SKIP 4 LINES
|
|
PRINT COLUMN 1, "------------------",
|
|
COLUMN 32, "------------------",
|
|
COLUMN 55, "------------------"
|
|
|
|
|
|
PRINT COLUMN 5, "Entregado Por",
|
|
COLUMN 34, "Recibido Por",
|
|
COLUMN 58, "Aprobado Por"
|
|
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 2,
|
|
"Original: Contabilidad Copia: Vendedor Copia: Ventas Copia: Almacen"
|
|
|
|
PRINT normal
|
|
END REPORT
|
|
|