- Mueve todo el contenido de PROYECTOS/indir y varias funciones compartidas de PROYECTOS/otrodir hacia PROYECTO, siguiendo instruccion de Johnny (PROYECTOS se va a eliminar). - inprmt002: agrega campo Desglose faltante, corrige typo "eLiminar". - inprmt005: agrega formulario y 3 campos faltantes (Consumo, Requiere Autorizacion, Requisiciones), corrige typo "eLiminar". - inprmt013: agrega formulario, titulo, corrige typo "eLiminar". - inprmt046: agrega formulario y varias funciones/dependencias faltantes (cincodmov, clasf_bloque, medidas, defecto, buscaEmp, consultaTransportista, busca_departamento); corrige nombres de campo desalineados con el codigo (depto_a, bodega) y los convierte a ComboBox donde el codigo lo requiere. - Corrige dependencia faltante de FORMULARIOS_IN a la libreria Database (bloqueaba todo el modulo de MATERIA PRIMA).
165 lines
6.5 KiB
Plaintext
165 lines
6.5 KiB
Plaintext
GLOBALS "inprgb000.4gl"
|
|
DEFINE xcodigo VARCHAR(50)
|
|
DEFINE despiece1 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
|
|
DEFINE vendedor VARCHAR(100)
|
|
|
|
FUNCTION impdocumentos_prima(numeroid,codmov)
|
|
DEFINE numeroid,codmov INT
|
|
|
|
CALL buscadoc(numeroid,codmov)
|
|
|
|
LET r_filename = "inprmt020.4rp"
|
|
iF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
|
|
|
LET r_output="PDF"
|
|
LET preview=1
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
ELSE
|
|
RETURN
|
|
END IF
|
|
|
|
START REPORT requiere TO XML HANDLER HANDLER
|
|
|
|
FOR idx = 1 TO arr_intb58.getLength()
|
|
IF arr_intb58[idx].cod_Sec IS NOT NULL THEN
|
|
LET xcodigo =arr_intb58[idx].cod_n USING '&&&&&','-',
|
|
arr_intb58[idx].cod_grupo USING '&&&&&','-',
|
|
arr_intb58[idx].cod_tipo USING '&&&&&&','-',
|
|
arr_intb58[idx].cod_sec USING '&&&&&&&'
|
|
|
|
DISPLAY arr_intb58[idx].*
|
|
DISPLAY xcodigo
|
|
|
|
OUTPUT TO REPORT requiere(arr_intb58[idx].*,despiece[idx].*, xcodigo)
|
|
|
|
END IF
|
|
|
|
END FOR
|
|
FINISH REPORT requiere
|
|
LET tienedespiece = FALSE
|
|
END FUNCTION
|
|
|
|
REPORT requiere(detalle,xdespiece,codigo)
|
|
DEFINE hora STRING,
|
|
detalle 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,
|
|
xdespiece 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,
|
|
codigo VARCHAR(50),
|
|
|
|
x INT,
|
|
etiqueta VARCHAR(100)
|
|
|
|
ORDER BY codigo
|
|
FORMAT
|
|
FIRST PAGE HEADER
|
|
SELECT a.nombre INTO p_companias.nombre FROM companias a
|
|
LET hora = CURRENT
|
|
PRINTX hora,p_companias.nombre
|
|
BEFORE GROUP OF codigo
|
|
PRINTX detalle.*,p_intb57.*,
|
|
nombreMov,nombreBodega,nombreBodegaDestino,nombreUsuario
|
|
|
|
ON EVERY ROW
|
|
SELECT a.descripcion INTO etiqueta FROM vetb00026 a
|
|
WHERE a.codid = xdespiece.id_etiqueta
|
|
|
|
|
|
LET total_cantidad = total_cantidad + xdespiece.cantidad
|
|
|
|
PRINTX codigo,xdespiece.*,tienedespiece,etiqueta,total_cantidad,total_medida
|
|
END REPORT
|
|
|
|
FUNCTION buscadoc(numid,codmov)
|
|
DEFINE numid,codmov INT
|
|
|
|
LET vendedor = null
|
|
SELECT a.numero_Doc,a.cod_mov,a.fecha,a.num_oc,a.tipo_cliente,a.sec_cliente,a.nombre,a.bodega,a.bodega_destino,
|
|
a.estado,a.url_destino,a.observacion,b.descrip_mov,c.descripcion,
|
|
'('||ISNULL(CAST(f.num_emp AS VARCHAR(10)),' ')||')'||ISNULL(rtrim(f.nom1_emp),' ')||' '||ISNULL(f.apell1_emp,' ')
|
|
|
|
INTO p_intb57.numero_doc,p_intb57.cod_mov,p_intb57.fecha,p_intb57.num_oc,p_intb57.tipo_cliente,p_intb57.sec_cliente,
|
|
p_intb57.cliente,p_intb57.bodega,p_intb57.bodega_destino,p_intb57.estado,
|
|
p_intb57.url_file,p_intb57.observacion,nombreMov,nombreBodega,vendedor
|
|
FROM intb00057 a INNER JOIN intb00005 b ON b.cod_mov = a.cod_mov
|
|
INNER JOIN intb00009 c ON c.cod_bodega = a.bodega
|
|
LEFT OUTER JOIN prtb00012 d ON d.num_oc = a.num_oc
|
|
LEFT OUTER JOIN adtb00003 f ON f.num_emp = d.sec_vend
|
|
WHERE a.numero_doc = numid AND a.cod_mov = codmov
|
|
#BODEGA DESTINO
|
|
IF p_intb57.bodega_destino IS NOT NULL THEN
|
|
SELECT a.descripcion INTO nombreBodegaDestino FROM intb00009 a WHERE a.cod_bodega = p_intb57.bodega_destino
|
|
END IF
|
|
DECLARE buscardetalle CURSOR FOR
|
|
SELECT a.area,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descripcion,a.unidad_med,
|
|
a.cantidad_1,a.cantidad_2,
|
|
c.id_etiqueta,
|
|
c.lado_1,c.lado_2,c.lado_3,c.cantidad,c.medida
|
|
FROM intb00058 a
|
|
LEFT OUTER JOIN intb00060 c ON c.cod_n =a.cod_n AND c.cod_grupo = a.cod_grupo AND
|
|
c.cod_tipo = a.cod_tipo AND c.cod_sec = a.cod_Sec AND
|
|
c.id_despiece = a.numero_Doc
|
|
WHERE a.numero_Doc = numid AND a.cod_mov = codmov
|
|
|
|
LET idx = 1
|
|
CALL arr_intb58.clear()
|
|
LET tienedespiece = FALSE
|
|
FOREACH buscardetalle INTO arr_intb58[idx].area,
|
|
arr_intb58[idx].cod_n,
|
|
arr_intb58[idx].cod_grupo,
|
|
arr_intb58[idx].cod_tipo,
|
|
arr_intb58[idx].cod_sec,
|
|
arr_intb58[idx].descripcion,
|
|
arr_intb58[idx].unidad_med,
|
|
arr_intb58[idx].cantidad_1,
|
|
arr_intb58[idx].cantidad,
|
|
#arr_intb58[idx].factor_conv,
|
|
despiece1[idx].id_etiqueta,
|
|
despiece1[idx].lado_1,
|
|
despiece1[idx].lado_2,
|
|
despiece1[idx].lado_3,
|
|
despiece1[idx].cantidad,
|
|
despiece1[idx].medida
|
|
IF despiece1[idx].cantidad > 0 THEN
|
|
LET tienedespiece = TRUE
|
|
ELSE
|
|
LET tienedespiece = FALSE
|
|
END IF
|
|
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
END FUNCTION |