Files
MBS/PROYECTO/indir/inprrp005.4gl
T
jpeguero efdf8953dd Reorganiza MATERIA PRIMA a PROYECTO y avanza inprmt002/005/013/046
- 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).
2026-08-26 13:31:09 -04:00

298 lines
10 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : INPRRP005
OBJETIVO : REPORTE DE MOVIMIENTOS POR DOCUMENTOS
PROGRAMADOR : Ing. Juan Fco. Soto
FECHA REALIZACION : Septiembre 7, 1992
-------------------------------------------------------------------------------
}
GLOBALS "inprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "smarmotech" USER usuarios USING clave
SELECT * INTO p_companias.* FROM companias
CALL inprrp005()
END MAIN
FUNCTION inprrp005()
DEFINE transacc RECORD
cod_n LIKE intb00004.cod_n,
cod_grupo LIKE intb00004.cod_grupo,
cod_tipo LIKE intb00004.cod_tipo,
cod_sec LIKE intb00004.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
unidad_med LIKE intb00001.unidad_med,
num_doc LIKE intb00006.num_doc,
fecha LIKE intb00006.fecha,
cantidad_1 LIKE intb00006.cantidad_1,
cantidad_2 LIKE intb00006.cantidad_2,
cod_mov LIKE intb00006.cod_mov,
descrip_mov LIKE intb00005.descrip_mov,
conduce_no LIKE intb00006.conduce_no,
fact_no LIKE intb00006.fact_no,
orden_compra LIKE intb00006.orden_compra,
cod_sp LIKE intb00006.cod_sp,
cod_sp_sec LIKE intb00006.cod_sp_sec,
depto_de LIKE intb00006.depto_de,
depto_a LIKE intb00006.depto_a,
cod_seccion LIKE intb00006.cod_seccion,
estado CHAR(1),
fecha_a LIKE intb00006.fech_crea,
us_anula CHAR(9)
END RECORD
DEFINE nombre_suplidor CHAR(30)
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM infmrp005 FROM "infmrp005"
DISPLAY FORM infmrp005
CALL pantalla()
DISPLAY "inprrp005" AT 4,3
DISPLAY " Documentos " AT 6,33
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CONSTRUCT criterio ON a.fecha,a.cod_mov,a.num_doc
FROM fecha,cod_mov,num_doc
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
START REPORT reporte8 TO archivo
let selec =
"SELECT a.cod_n, a.cod_grupo, a.cod_tipo, a.cod_sec,b.descrip_esp, ",
" b.unidad_med,a.num_doc,CONVERT(char(10),a.fecha,104),a.cantidad_1,a.cantidad_2, ",
" c.cod_mov,c.descrip_mov,a.conduce_no,a.fact_no,a.orden_compra, ",
" a.cod_sp,a.cod_sp_sec,a.depto_de,a.depto_a,a.cod_seccion, ",
" a.status_t,CONVERT(CHAR(16),a.fech_mod),a.us_mod ",
"FROM intb00006 a, intb00001 b, intb00005 c ",
"WHERE ",criterio clipped," AND a.cod_n = b.cod_n AND " ,
" a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND " ,
" a.cod_sec = b.cod_sec AND c.cod_mov = a.cod_mov AND ",
" b.status_t is NULL AND c.status_t is NULL ",
"ORDER BY c.cod_mov,a.num_doc "
PREPARE busca FROM selec
DECLARE accion CURSOR FOR busca
OPEN accion
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH accion INTO transacc.*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
SELECT nom_sp INTO nombre_suplidor FROM cotb00001
WHERE cod_sp = transacc.cod_sp and cod_sp_sec = transacc.cod_sp_sec
IF status = notfound THEN
LET status =0
END IF
OUTPUT TO REPORT reporte8(transacc.*,nombre_suplidor)
END WHILE
FINISH REPORT reporte8
RUN imprime
END FUNCTION
REPORT reporte8(x,nombre_suplidor)
DEFINE x RECORD
cod_n LIKE intb00004.cod_n,
cod_grupo LIKE intb00004.cod_grupo,
cod_tipo LIKE intb00004.cod_tipo,
cod_sec LIKE intb00004.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
unidad_med LIKE intb00001.unidad_med,
num_doc LIKE intb00006.num_doc,
fecha LIKE intb00006.fecha,
cantidad_1 LIKE intb00006.cantidad_1,
cantidad_2 LIKE intb00006.cantidad_2,
cod_mov LIKE intb00006.cod_mov,
descrip_mov LIKE intb00005.descrip_mov,
conduce_no LIKE intb00006.conduce_no,
fact_no LIKE intb00006.fact_no,
orden_compra LIKE intb00006.orden_compra,
cod_sp LIKE intb00006.cod_sp,
cod_sp_sec LIKE intb00006.cod_sp_sec,
depto_de LIKE intb00006.depto_de,
depto_a LIKE intb00006.depto_a,
cod_seccion LIKE intb00006.cod_seccion,
estado CHAR(1),
fecha_a LIKE intb00006.fech_crea,
us_anula CHAR(9)
END RECORD
DEFINE nombre_suplidor CHAR(30)
DEFINE nombre CHAR(8),
und CHAR(3) ,
doble_on CHAR(2),
comp_off,doble_off CHAR(2),
negrillas_on CHAR(2),
negrillas_off CHAR(2),
comprimido_on CHAR(3),
comprimido_off CHAR(2),
primera CHAR(1),
hora CHAR(5),
dia,mes smallint,
nom_dia,nom_mes CHAR(10)
OUTPUT
LEFT MARGIN 0
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comprimido_on = ASCII 15
LET comprimido_off = ASCII 18
LET hora = time
LET dia = WEEKDAY(TODAY)
LET dia = dia + 1
LET mes = MONTH(TODAY)
LET primera = "S"
CALL busca_mes()
LET nom_mes = nombre_mes[mes]
CALL busca_dia()
LET nom_dia = nombre_dia[dia]
LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, comp_off,negrillas_on
PRINT COLUMN 1, "inprrp005",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 73, "Pag. ",pageno using "###"
PRINT COLUMN 17, " Sistema de Inventario de Materia Prima",
COLUMN 73, today using "dd/mm/yyyy"
PRINT COLUMN 17, " Documentos ",
COLUMN 76, hora
PRINT COLUMN 1,negrillas_off
PRINT COLUMN 1, nom_dia clipped," ",day(TODAY) using "&&",
" ",nom_mes clipped," ",year(TODAY)
BEFORE GROUP OF x.cod_mov
IF x.cod_mov != 99 THEN
PRINT COLUMN 1, negrillas_on,
COLUMN 11, x.descrip_mov,
COLUMN 42,negrillas_off
PRINT COLUMN 16, "Orden",
COLUMN 44, "Codigo"
PRINT COLUMN 1, "Docto.",
COLUMN 8, "Fecha",
COLUMN 16, "Compra",
COLUMN 23, "Conduce",
COLUMN 33, "Factura",
COLUMN 44, "Suplidor",
COLUMN 53, "Nombre Suplidor"
END IF
BEFORE GROUP OF X.num_doc
IF x.estado = "E" THEN
PRINT negrillas_on,
"ESTE DOCUMENTO FUE ANULADO ",x.fecha_a
PRINT "USUARIO: ",x.us_anula,negrillas_off
END IF
IF x.cod_mov != 99 THEN
IF x.cod_sp is null THEN
LET nombre_suplidor = null
END IF
SKIP 1 LINE
PRINT COLUMN 1, x.num_doc using "&&&&&&",
COLUMN 8, x.fecha using "dd/mm/yyyy",
COLUMN 17, x.orden_compra using "<<<<",
COLUMN 23, x.conduce_no,
COLUMN 34, x.fact_no,
COLUMN 44, x.cod_sp using "&&","-",x.cod_sp_sec using "&&&&",
COLUMN 52, nombre_suplidor CLIPPED
SKIP 1 LINE
PRINT COLUMN 59, "C a n t i d a d"
PRINT COLUMN 54, "Ordenada/",
COLUMN 71, "Entregada/"
PRINT COLUMN 1 , "Codigo",
COLUMN 15, "Descripcion",
COLUMN 45, "Unidad",
COLUMN 54, "Devuelta",
COLUMN 71, "Recibida"
SKIP 1 LINE
END IF
ON EVERY ROW
IF x.cod_mov != 99 THEN
PRINT COLUMN 1, x.cod_n USING "&","-",
COLUMN 3, x.cod_grupo USING "&","-",
COLUMN 5, x.cod_tipo USING "&&","-",
COLUMN 8, x.cod_sec USING "&&&",
COLUMN 15, x.descrip_esp,
COLUMN 45, x.unidad_med,
COLUMN 50, x.cantidad_1 USING "##,###,###.##",
COLUMN 67, x.cantidad_2 USING "##,###,###.##"
END IF
AFTER GROUP OF x.num_doc
PRINT COLUMN 1, "----------------------------------------",
"----------------------------------------"
PRINT COLUMN 67, GROUP SUM(x.cantidad_2) USING "##,###,###.##"
ON LAST ROW
PRINT COLUMN 3, ASCII 27,ASCII 80
END REPORT
FUNCTION busca_dia()
LET nombre_dia[1] = "Domingo"
LET nombre_dia[2] = "Lunes"
LET nombre_dia[3] = "Martes"
LET nombre_dia[4] = "Miercoles"
LET nombre_dia[5] = "Jueves"
LET nombre_dia[6] = "Viernes"
LET nombre_dia[7] = "Sabado"
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
FUNCTION busca_mes()
LET nombre_mes[1] = "Enero"
LET nombre_mes[2] = "Febrero"
LET nombre_mes[3] = "Marzo"
LET nombre_mes[4] = "Abril"
LET nombre_mes[5] = "Mayo"
LET nombre_mes[6] = "Junio"
LET nombre_mes[7] = "Julio"
LET nombre_mes[8] = "Agosto"
LET nombre_mes[9] = "Septiembre"
LET nombre_mes[10] = "Octubre"
LET nombre_mes[11] = "Noviembre"
LET nombre_mes[12] = "Diciembre"
RUN "type C:\\archivo > %USPRINT%" END FUNCTION