Files
MBS/PROYECTO/ipdir/ipprgb000.4gl
T
jpeguero e414e52523 Registrar y corregir ipprmt021 (Autorizaciones Requisiciones Almacenes)
- Registrar estadosprocesos.4gl y formulario ipfmmt021.4fd en el proyecto
- Corregir columna estado_proceso inexistente por idestado (error SQL -6372)
- Corregir desfase de columnas en SELECT/INTO de buscadoc() que dejaba
  usuario, bodega origen y tipo de movimiento vacios en el reporte impreso,
  y filtraba la descripcion del estado hacia el campo de observacion
2026-09-10 13:03:01 -04:00

762 lines
26 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),
valorOrden DEC(12,2)
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 p_iptb57 RECORD
numero_doc INT,
cod_mov SMALLINT,
fecha DATE,
num_oc INT,
observacion VARCHAR(200),
tipo_cliente SMALLINT,
sec_cliente INT,
cliente VARCHAR(100),
bodega SMALLINT,
bodega_destino SMALLINT,
estado VARCHAR(50),
ruta_documento ,
url_file STRING,
idstado VARCHAR(60),
us_crea VARCHAR(50)
END RECORD,
arr_iptb58 DYNAMIC ARRAY OF RECORD
area INT,
cod_n,cod_grupo,cod_tipo,cod_sec INT,
descripcion VARCHAR(100),
unidad_med VARCHAR(4),
cantidad_1,cantidad,cantidad_o1,cantidad1,factor_conv DEC(12,5)
END RECORD,
arr_busqueda DYNAMIC ARRAY OF RECORD
estadp1 VARCHAR(50),
estado_proceso1 VARCHAR(100),
tipo_documento VARCHAR(100),
numeroid INT,
fechadoc DATE,
nombre VARCHAR(100),
observacion VARCHAR(200),
bodega_origen VARCHAR(100),
bodega_destino VARCHAR(100),
cod_mov INT,
bodega1 SMALLINT,
bodega2 SMALLINT
END RECORD,
secuencia INT,
nombreUsuario,email,nombreBodega,nombreBodegaDestino,nombreMov STRING,
cbmovimiento ui.ComboBox
DEFINE opcion VARCHAR(20),
tieneDetalle,requiere VARCHAR(2),
ordenPedidos,existe BOOLEAN,
xestado VARCHAR(50)
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 despiece DYNAMIC ARRAY OF RECORD
id_etiqueta SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
lado_1 DEC(12,5),
lado_2 DEC(12,5),
lado_3 DEC(12,5),
cantidad DEC(12,5),
medida DEC(12,5),
secuencia,id_despiece INT,
bodega SMALLINT
END RECORD,
tienedespiece BOOLEAN,
total_cantidad,total_medida DEC(12,5),
xtiene VARCHAR(3),
cuentaimp INT
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 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),
valorOrden DEC(16,2)
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,
descripcion_area VARCHAR(30),
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