1537 lines
59 KiB
Plaintext
1537 lines
59 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : COPRMT025
|
|
OBJETIVO : Capturar, Consultar y Eliminar registros de la
|
|
Tabla de Requisiciones.
|
|
PROGRAMADOR : Ing. Juan Soto
|
|
FECHA REALIZACION : Marzo 19, 1997
|
|
FECHA MODIFICACION: Febrero 23, 2016.
|
|
------------------------------------------------------------------
|
|
}
|
|
IMPORT os
|
|
GLOBALS "coprgb000.4gl"
|
|
DEFINE c_cuenta SMALLINT
|
|
DEFINE
|
|
cantidad_fur, multiplo DECIMAL(12,2),
|
|
p_res,pmultiplo,ult_orden INTEGER,
|
|
nocalcula CHAR(1),
|
|
actualiza CHAR(2),
|
|
proveedor_sugerido VARCHAR(100)
|
|
|
|
DEFINE adicional RECORD
|
|
detalle1, detalle2, detalle3 CHAR(70)
|
|
END RECORD,
|
|
ktipo_cliente,ksec_cliente INT,
|
|
cliente,knombre VARCHAR(100)
|
|
DEFINE d_tipos,mensaje,f_tipos,l_file,filepath,extension,extension_foto,tmp_dirfoto STRING,
|
|
tmpdir_file,tipos_foto,dir_file,dir_foto CHAR(60) ,
|
|
fdocumento,ffoto BYTE
|
|
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL STARTLOG("coprmt025.log")
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CONNECT TO "decomarmol" AS "MSSQL" USER usuarios USING clave
|
|
|
|
CALL coprmt025()
|
|
END MAIN
|
|
|
|
FUNCTION coprmt025()
|
|
|
|
CLEAR SCREEN
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21,
|
|
PROMPT LINE 25
|
|
|
|
#CALL defecto(impresor) RETURNING imprime,letras.*, archivo
|
|
|
|
|
|
OPEN FORM cofmmt025 FROM "cofmmt025"
|
|
DISPLAY FORM cofmmt025
|
|
|
|
MENU "OPCIONES"
|
|
ON ACTION Adicionar
|
|
CLEAR FORM
|
|
LET actualiza = "NO"
|
|
CALL copcad025()
|
|
ON ACTION Consultar
|
|
LET actualiza = "SI"
|
|
CLEAR FORM
|
|
CALL copcmf025()
|
|
ON ACTION Salir
|
|
DELETE FROM cotb00042
|
|
WHERE num_req = 0 AND us_crea = suser_sname() AND status_t IS NULL
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION copcad025()
|
|
DEFINE tiene_Dato CHAR(2)
|
|
# Captura los datos que va a contener el registro
|
|
|
|
DIALOG ATTRIBUTE(UNBUFFERED)
|
|
INPUT BY NAME requisi2.*,salida ATTRIBUTE(WITHOUT DEFAULTS)
|
|
BEFORE INPUT
|
|
LET d_tipos="PDF"
|
|
LET f_tipos="*.pdf *.jpg *.png *.doc *.xls"
|
|
LET tipos_foto ="*.jpg *.png"
|
|
LET mensaje=%"Elige Documento"
|
|
IF actualiza = "NO" THEN
|
|
LET dir_file = NULL
|
|
LOCATE fdocumento IN MEMORY
|
|
|
|
END IF
|
|
LOCATE ffoto IN MEMORY
|
|
|
|
|
|
IF actualiza = "NO" THEN
|
|
IF tiene_dato IS NULL THEN
|
|
LET tiene_dato = "NO"
|
|
END IF
|
|
LET requisi2.num_req = 0
|
|
LET requisi2.departamento = NULL
|
|
LET requisi2.cod_emp_sec = NULL
|
|
LET requisi2.fech_req = TODAY
|
|
|
|
LET requisi2.prioridad='NORMAL'
|
|
LET requisi2.num_oc=NULL
|
|
|
|
IF tiene_Dato = "NO" THEN
|
|
CALL arr_requisi2.clear()
|
|
END IF
|
|
|
|
SELECT a.departamento,a.num_emp,b.nom_dpto,RTRIM(c.nom1_emp)||' '||ISNULL(c.apell1_emp,' ')
|
|
INTO requisi2.departamento,requisi2.cod_emp_sec,descrip2
|
|
FROM seg0001 a,adtb00001 b,adtb00003 c
|
|
WHERE a.usuario = usuarios AND a.departamento = b.departamento AND a.num_emp = c.num_emp
|
|
|
|
DISPLAY BY NAME requisi2.departamento,requisi2.cod_emp_sec,descrip2
|
|
END IF
|
|
LET salida = "PDF"
|
|
|
|
ON ACTION bdocumento
|
|
LET dir_file = NULL
|
|
|
|
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
|
|
|
|
IF filepath IS NOT NULL THEN
|
|
LET dir_file = os.Path.basename(filepath)
|
|
CALL fgl_getfile(filepath,dir_file)
|
|
|
|
CALL fdocumento.readFile(dir_file)
|
|
|
|
DISPLAY BY NAME dir_file
|
|
LET extension = os.Path.extension(dir_file)
|
|
|
|
END IF
|
|
ON ACTION busca_depto
|
|
CALL busca_dpto() RETURNING requisi2.departamento,descrip1
|
|
DISPLAY BY NAME descrip1,requisi2.departamento
|
|
|
|
ON ACTION busca_emp
|
|
CALL busca_emp() RETURNING requisi2.cod_emp_sec,descrip2
|
|
LET identifica = null
|
|
IF existe = "S" THEN
|
|
IF not int_flag THEN
|
|
DISPLAY BY NAME descrip2,requisi2.cod_emp_sec
|
|
NEXT FIELD uso
|
|
END IF
|
|
LET int_flag = false
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET int_flag = FALSE
|
|
END IF
|
|
|
|
BEFORE FIELD fech_req
|
|
LET requisi2.fech_req = today
|
|
DISPLAY BY NAME requisi2.fech_req
|
|
|
|
AFTER FIELD fech_req
|
|
IF requisi2.fech_req < today THEN
|
|
LET numero_msg = 369
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fech_req
|
|
END IF
|
|
|
|
AFTER FIELD cod_emp_sec
|
|
IF requisi2.cod_emp_sec IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD departamento
|
|
ELSE
|
|
SELECT RTRIM(a.nom1_emp)||' '||ISNULL(a.apell1_emp,' ') INTO descrip2
|
|
FROM adtb00003 a,adtb00001 b
|
|
WHERE a.num_emp = requisi2.cod_emp_sec and
|
|
b.departamento = requisi2.departamento and
|
|
a.departamento = b.departamento
|
|
|
|
IF status >= 0 THEN
|
|
IF status = notfound THEN
|
|
LET numero_msg = 371
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_emp_sec
|
|
END IF
|
|
ELSE
|
|
CALL integridad()
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
|
|
DISPLAY BY NAME descrip2
|
|
END IF
|
|
|
|
AFTER FIELD prioridad
|
|
IF requisi2.prioridad IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD prioridad
|
|
|
|
END IF
|
|
AFTER FIELD num_oc
|
|
LET ktipo_cliente = NULL
|
|
LET ksec_cliente=NULL
|
|
LET knombre=NULL
|
|
IF requisi2.num_oc IS NOT NULL AND requisi2.num_oc <> 0 THEN
|
|
SELECT a.tipo_cliente,a.sec_cliente,b.nombre INTO ktipo_cliente,ksec_cliente,knombre
|
|
FROM prtb00012 a,vetb00004 b
|
|
WHERE a.num_oc = requisi2.num_oc AND a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente AND
|
|
a.status_t IS NULL
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL fgl_Winmessage("INFO","ORDEN NO EXISTE","INFO")
|
|
NEXT FIELD num_oc
|
|
END IF
|
|
LET cliente = ktipo_cliente USING "&&","-",ksec_cliente USING "&&&&&&&&"," ",knombre CLIPPED
|
|
DISPLAY BY NAME cliente
|
|
END IF
|
|
AFTER FIELD uso
|
|
IF requisi2.uso IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD uso
|
|
END IF
|
|
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
IF requisi2.departamento IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD departamento
|
|
END IF
|
|
|
|
IF requisi2.cod_emp_sec IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_emp_sec
|
|
END IF
|
|
|
|
SELECT RTRIM(a.nom1_emp)||' '||ISNULL(a.apell1_emp,' ') INTO descrip2
|
|
FROM adtb00003 a,adtb00001 b
|
|
WHERE a.num_emp = requisi2.cod_emp_sec and
|
|
b.departamento = requisi2.departamento and
|
|
a.departamento = b.departamento
|
|
|
|
IF status >= 0 THEN
|
|
IF status = notfound THEN
|
|
LET numero_msg = 371
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_emp_sec
|
|
END IF
|
|
ELSE
|
|
CALL integridad()
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
LET descrip2 = descrip2 clipped," ",descrip1 clipped
|
|
DISPLAY BY NAME descrip2
|
|
IF requisi2.num_oc IS NOT NULL AND requisi2.num_oc <> 0 THEN
|
|
IF actualiza = "SI" THEN
|
|
LET opt = fgl_winquestion("ORDEN","SE ACTUALIZARAN LOS ITEMS DE ESTA REQUISICION CON LOS QUE TIENE LA ORDEN DE PEDIDOS, DESEAS REALIZAR ESTA OPERACION?","NO","NO|YES","QUESTION",0)
|
|
IF opt = "YES" THEN
|
|
CALL busca_det_orden()
|
|
END IF
|
|
ELSE
|
|
CALL busca_det_orden()
|
|
END IF
|
|
|
|
ELSE
|
|
IF actualiza = "SI" THEN
|
|
CALL busca_det_req()
|
|
END IF
|
|
END IF
|
|
|
|
END INPUT
|
|
# Captura de los articulos requeridos
|
|
INPUT ARRAY arr_requisi2 FROM s_requisi2.* #ATTRIBUTE (WITHOUT DEFAULTS)
|
|
BEFORE INPUT
|
|
IF actualiza = "NO" AND tiene_dato = "NO" THEN
|
|
|
|
CALL arr_requisi2.clear()
|
|
END IF
|
|
LET tiene_dato = "SI"
|
|
ON ACTION bdownload
|
|
IF arr_requisi2[arr_curr()].foto IS NOT NULL THEN
|
|
# LET dir_foto = usuarios CLIPPED,dir_Foto CLIPPED
|
|
LET filepath = "foto.jpg"
|
|
CALL ui.Interface.frontCall("standard","savefile", [dir_foto,d_tipos,tipos_foto,mensaje], [filepath] )
|
|
CALL arr_requisi2[arr_curr()].foto.writeFile(dir_foto)
|
|
IF filepath IS NOT NULL THEN
|
|
CALL fgl_putfile(dir_foto,filepath)
|
|
CALL fgl_Winmessage("info","Download Terminado","info")
|
|
END IF
|
|
END IF
|
|
ON ACTION bfoto
|
|
LET curr = arr_curr()
|
|
LET dir_foto = NULL
|
|
LET ffoto = null
|
|
CALL ui.Interface.frontCall("standard","openfile", [dir_foto,d_tipos,tipos_foto,mensaje], [filepath] )
|
|
IF actualiza = "SI" THEN
|
|
IF filepath IS NOT NULL THEN
|
|
LET dir_foto = os.Path.basename(filepath)
|
|
LET extension_foto = os.Path.extension(filepath)
|
|
LET dir_foto = usuarios CLIPPED,dir_foto CLIPPED
|
|
LET tmp_dirfoto = "TMP\\",dir_foto CLIPPED
|
|
DISPLAY BY NAME filepath
|
|
CALL fgl_getfile(filepath,tmp_dirfoto)
|
|
# CALL FGL_WINMESSAGE("INFO",filepath,"info")
|
|
CALL ffoto.readfile(tmp_dirfoto)
|
|
|
|
DISPLAY tmp_dirfoto TO s_requisi2[scr_line()].ruta_file
|
|
LET arr_requisi2[curr].foto = ffoto
|
|
|
|
LET arr_requisi2[curr].ruta_file=dir_foto CLIPPED
|
|
END IF
|
|
ELSE
|
|
LOCATE arr_requisi2[curr].foto IN MEMORY
|
|
LET dir_foto = os.Path.basename(filepath)
|
|
LET extension_foto = os.Path.extension(filepath)
|
|
LET dir_foto = usuarios CLIPPED,dir_foto CLIPPED
|
|
LET tmp_dirfoto = "TMP\\",dir_foto CLIPPED
|
|
DISPLAY BY NAME filepath
|
|
CALL fgl_getfile(filepath,tmp_dirfoto)
|
|
# CALL FGL_WINMESSAGE("INFO",filepath,"info")
|
|
CALL arr_requisi2[curr].foto.readfile(tmp_dirfoto)
|
|
|
|
DISPLAY tmp_dirfoto TO s_requisi2[scr_line()].ruta_file
|
|
# LET arr_requisi2[curr].foto = ffoto
|
|
|
|
LET arr_requisi2[curr].ruta_file=dir_foto CLIPPED
|
|
|
|
END IF
|
|
ON ACTION producto
|
|
LET curr = arr_curr()
|
|
|
|
IF arr_requisi2[curr].tipo_inv IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD tipo_inv
|
|
END IF
|
|
CALL busca_mt(arr_requisi2[curr].tipo_inv)
|
|
RETURNING arr_requisi2[curr].cod_n,arr_requisi2[curr].cod_grupo,arr_requisi2[curr].cod_tipo,
|
|
arr_requisi2[curr].cod_sec,arr_requisi2[curr].descrip_esp,arr_requisi2[curr].unidad_med
|
|
IF arr_requisi2[curr].tipo_inv = 'MICELANEOS' AND arr_requisi2[curr].cod_n = 0 THEN
|
|
CALL fgl_winmessage("INFO","NO EXISTEN PRODUCTOS CON ESA CONDICION, VAS A CREARLO","INFO")
|
|
CALL crea_producto() RETURNING arr_requisi2[curr].cod_n,arr_requisi2[curr].cod_grupo,arr_requisi2[curr].cod_tipo,
|
|
arr_requisi2[curr].cod_sec,arr_requisi2[curr].descrip_esp,arr_requisi2[curr].unidad_med
|
|
|
|
END IF
|
|
|
|
DISPLAY arr_requisi2[curr].cod_n TO
|
|
s_requisi2[scr_l].cod_n
|
|
DISPLAY arr_requisi2[curr].cod_grupo TO
|
|
s_requisi2[scr_l].cod_grupo
|
|
DISPLAY arr_requisi2[curr].cod_tipo TO
|
|
s_requisi2[scr_l].cod_tipo
|
|
DISPLAY arr_requisi2[curr].cod_sec TO
|
|
s_requisi2[scr_l].cod_sec
|
|
DISPLAY arr_requisi2[curr].descrip_esp TO
|
|
s_requisi2[scr_l].descrip_esp
|
|
DISPLAY arr_requisi2[curr].unidad_med TO
|
|
s_requisi2[scr_l].unidad_med
|
|
|
|
|
|
LET c_cuenta = arr_requisi2.getLength()
|
|
CALL repite2()
|
|
IF verdad = "S" THEN
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
|
|
IF verdad = "N" OR verdad is null THEN
|
|
NEXT FIELD cantidad
|
|
END IF
|
|
LET proveedor_sugerido = NULL
|
|
IF arr_requisi2[curr].cod_sec IS NOT NULL THEN
|
|
CALL busca_proveedor()
|
|
END IF
|
|
AFTER ROW
|
|
IF actualiza ="NO" THEN
|
|
IF arr_requisi2[curr].ruta_file IS NOT NULL THEN
|
|
LET tmp_dirfoto = "tmp\\",arr_requisi2[arr_curr()].ruta_file CLIPPED
|
|
CALL arr_requisi2[arr_curr()].foto.writeFile(tmp_dirfoto)
|
|
DISPLAY tmp_dirfoto TO filepath
|
|
ELSE
|
|
IF arr_requisi2[arr_curr()].ruta_file IS NULL AND arr_requisi2[arr_curr()].cod_sec IS NOT NULL THEN
|
|
LOCATE arr_requisi2[arr_curr()].foto IN MEMORY
|
|
END IF
|
|
END IF
|
|
END IF
|
|
BEFORE ROW
|
|
LET nocalcula = "N"
|
|
LET curr = arr_curr()
|
|
LET scr_l = scr_line()
|
|
# LOCATE arr_requisi2[curr].foto IN MEMORY
|
|
IF actualiza = "SI" THEN
|
|
# LOCATE arr_requisi2[curr].foto IN MEMORY
|
|
IF arr_requisi2[curr].ruta_file IS NOT NULL THEN
|
|
|
|
CALL ui.Interface.frontCall("standard","getenv", ["HOMEPATH"], [l_file] )
|
|
LET dir_foto =arr_requisi2[curr].ruta_file
|
|
LET l_file = "c:",l_file CLIPPED,"\\",dir_foto CLIPPED
|
|
# CALL fgl_Winmessage("info",dir_foto,"info")
|
|
CALL arr_requisi2[curr].foto.writeFile(dir_foto)
|
|
|
|
DISPLAY dir_foto TO filepath
|
|
|
|
END IF
|
|
ELSE
|
|
IF arr_requisi2[curr].ruta_file IS NOT NULL THEN
|
|
|
|
LET tmp_dirfoto = "tmp\\",arr_requisi2[curr].ruta_file CLIPPED
|
|
CALL arr_requisi2[curr].foto.writeFile(tmp_dirfoto)
|
|
DISPLAY tmp_dirfoto TO filepath
|
|
ELSE
|
|
LOCATE arr_requisi2[curr].foto IN MEMORY
|
|
END IF
|
|
END IF
|
|
|
|
|
|
AFTER FIELD cod_sec
|
|
IF arr_requisi2[curr].cod_n is not null AND
|
|
arr_requisi2[curr].cod_grupo is not null AND
|
|
arr_requisi2[curr].cod_tipo is not null AND
|
|
arr_requisi2[curr].cod_sec is not null THEN
|
|
|
|
|
|
CALL producto(arr_requisi2[curr].tipo_inv,arr_requisi2[curr].cod_n,arr_requisi2[curr].cod_grupo,
|
|
arr_requisi2[curr].cod_tipo,arr_requisi2[curr].cod_sec)
|
|
RETURNING arr_requisi2[curr].descrip_esp,arr_requisi2[curr].unidad_med
|
|
|
|
DISPLAY arr_requisi2[curr].descrip_esp TO
|
|
s_requisi2[scr_l].descrip_esp
|
|
DISPLAY arr_requisi2[curr].unidad_med TO
|
|
s_requisi2[scr_l].unidad_med
|
|
|
|
DISPLAY BY NAME arr_requisi2[curr].unidad_med
|
|
DISPLAY BY NAME arr_requisi2[curr].descrip_esp
|
|
|
|
LET arr_requisi[curr].cod_n = arr_requisi2[curr].cod_n
|
|
LET arr_requisi[curr].cod_grupo = arr_requisi2[curr].cod_grupo
|
|
LET arr_requisi[curr].cod_tipo = arr_requisi2[curr].cod_tipo
|
|
LET arr_requisi[curr].cod_sec = arr_requisi2[curr].cod_sec
|
|
|
|
|
|
LET verdad = "N"
|
|
|
|
CALL repite2()
|
|
|
|
IF verdad = "S" THEN
|
|
LET verdad = "N"
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
END IF
|
|
|
|
AFTER FIELD cantidad
|
|
IF arr_requisi2[curr].cantidad IS NULL THEN
|
|
IF arr_requisi2[curr].cod_n IS NOT NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cantidad
|
|
END IF
|
|
END IF
|
|
IF nocalcula = "N" THEN
|
|
IF arr_requisi2[curr].cod_n = 1 THEN
|
|
SELECT UNIQUE a.cantidad INTO cantidad_fur
|
|
FROM cotb00004 a
|
|
WHERE a.cod_n = arr_requisi2[curr].cod_n AND
|
|
a.cod_grupo = arr_requisi2[curr].cod_grupo AND
|
|
a.cod_tipo = arr_requisi2[curr].cod_tipo AND
|
|
a.cod_sec = arr_requisi2[curr].cod_sec
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
IF arr_requisi2[curr].cantidad > cantidad_fur THEN
|
|
LET multiplo = arr_requisi2[curr].cantidad / cantidad_fur
|
|
LET pmultiplo = multiplo USING "#####"
|
|
LET arr_requisi2[curr].cantidad = cantidad_fur * pmultiplo
|
|
ELSE
|
|
LET arr_requisi2[curr].cantidad = cantidad_fur
|
|
END IF
|
|
END IF
|
|
DISPLAY arr_requisi2[curr].cantidad TO s_requisi2[scr_l].cantidad
|
|
END IF
|
|
|
|
END IF
|
|
LET proveedor_sugerido = NULL
|
|
IF arr_requisi2[curr].cod_sec IS NOT NULL THEN
|
|
CALL busca_proveedor()
|
|
END IF
|
|
AFTER FIELD tipo_inv
|
|
IF arr_requisi2[curr].tipo_inv IS NOT NULL THEN
|
|
IF requisi2.num_oc IS NOT NULL THEN
|
|
LET arr_requisi2[curr].tipo_inv = 'PRODUCTO TERMINADOS'
|
|
END IF
|
|
END IF
|
|
|
|
|
|
ON ACTION guardar
|
|
IF actualiza = "NO" THEN
|
|
LET opt = fgl_winquestion("ADICIONA","ESTA SEGURO DE ADICIONAR ESTA REQUISICION?","NO","YES|NO","QUESTION",0)
|
|
IF opt = "YES" THEN
|
|
LET proveedor_sugerido = NULL
|
|
FOR idx = 1 TO arr_requisi2.getLength()
|
|
IF arr_requisi2[idx].cod_sec IS NOT NULL THEN
|
|
CALL busca_proveedor()
|
|
END IF
|
|
|
|
END FOR
|
|
BEGIN WORK
|
|
INSERT INTO cotb00006 (fech_req,departamento,cod_emp_sec,uso,prioridad,us_crea,fech_crea,num_oc,tipo_cliente,sec_cliente,nombre_cliente,
|
|
observacion,nombre_file,documento,proveedor)
|
|
VALUES (
|
|
requisi2.fech_req,
|
|
requisi2.departamento,
|
|
requisi2.cod_emp_sec,
|
|
requisi2.uso,
|
|
requisi2.prioridad,
|
|
suser_sname(),getdate(),requisi2.num_oc,ktipo_cliente,ksec_cliente,knombre,
|
|
requisi2.observacion,dir_file,fdocumento,proveedor_sugerido)
|
|
|
|
# Asigna el numero serial de la requisicion cabecera para luego asignarsela
|
|
# a cada uno de los registros detalle de la requisicion.
|
|
|
|
LET requi = SQLCA.SQLERRD[2]
|
|
LET requisi2.num_req = SQLCA.SQLERRD[2]
|
|
DISPLAY BY NAME requisi2.num_req
|
|
IF dir_file IS NOT NULL THEN
|
|
LET dir_file = requisi2.num_req USING "&&&&&&&&",".",extension CLIPPED
|
|
UPDATE cotb00006 SET nombre_file = dir_file WHERE num_req = requisi2.num_req
|
|
END IF
|
|
FOR idx = 1 TO arr_requisi2.getLength()
|
|
IF arr_requisi2[idx].cod_n IS NOT NULL AND
|
|
arr_requisi2[idx].cod_grupo IS NOT NULL AND
|
|
arr_requisi2[idx].cod_tipo IS NOT NULL AND
|
|
arr_requisi2[idx].cod_sec IS NOT NULL THEN
|
|
|
|
|
|
INSERT INTO cotb00008
|
|
(num_req
|
|
,tipo_inv
|
|
,cod_n
|
|
,cod_grupo
|
|
,cod_tipo
|
|
,cod_sec
|
|
,cantidad
|
|
,us_crea
|
|
,fech_crea
|
|
,procesada
|
|
,documento
|
|
,ruta_file
|
|
)
|
|
VALUES (requi,arr_requisi2[idx].tipo_inv,
|
|
arr_requisi2[idx].cod_n,
|
|
arr_requisi2[idx].cod_grupo,
|
|
arr_requisi2[idx].cod_tipo,
|
|
arr_requisi2[idx].cod_sec,
|
|
arr_requisi2[idx].cantidad,
|
|
suser_sname(),getdate(),'N',arr_requisi2[idx].foto,
|
|
arr_requisi2[idx].ruta_file)
|
|
|
|
|
|
CALL integridad()
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
COMMIT WORK
|
|
CALL configureoutput(salida) RETURNING HANDLER
|
|
START REPORT print_req TO XML HANDLER handler
|
|
|
|
|
|
FOR idx = 1 TO arr_requisi2.getLength()
|
|
OUTPUT TO REPORT print_req(requisi2.*, descrip1, descrip2, descrip3,
|
|
arr_requisi2[idx].* )
|
|
END FOR
|
|
|
|
FINISH REPORT print_req
|
|
call arr_requisi2.clear()
|
|
# LET commandprompt = "del ",dir_file CLIPPED
|
|
# RUN commandprompt
|
|
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
LET procedimiento = "{ call sp_enviacorreo(?,?,?,?) }" CLIPPED
|
|
LET vendedoremail = 'gespinal@marmotech.com.do;jsoto@marmotech.com.do'
|
|
LET subject = "ADICION RQUISICION COMPRAS ",requisi2.num_req USING "&&&&&&&"
|
|
|
|
LET cuerpo_correo="<tr><th>","FUE ADICIONADA POR EL EMPLEADO ",descrip1 CLIPPED," ",descrip2 CLIPPED,"</tr>",
|
|
"<tr><td>",requisi2.uso CLIPPED,"</td></tr>",
|
|
"<tr><td>",requisi2.observacion CLIPPED,"</td></tr>"
|
|
IF dir_file IS NOT NULL THEN
|
|
LET cuerpo_correo = cuerpo_correo CLIPPED, "<tr><td>ESTA REQUISICION INCLUYE DOCUMENTO</td></tr>"
|
|
|
|
END IF
|
|
{ CALL envia_correo('gtiburcio@marmotech.com.do;yherasme@marmotech.com.do',vendedorEmail,cuerpo_correo,
|
|
subject, procedimiento )}
|
|
END IF
|
|
#-------------------------- ADICIONAR ------------------------------------
|
|
ELSE
|
|
LET opt = fgl_winquestion("MODIFICACION","ESTA SEGURO DE ACTUALIZAR ESTA REQUISICION?","NO","YES|NO","QUESTION",0)
|
|
IF opt = "YES" THEN
|
|
|
|
BEGIN WORK
|
|
UPDATE cotb00006 set (departamento,cod_emp_sec,uso,prioridad,us_mod,fech_mod,observacion,
|
|
nombre_file,documento,num_oc,tipo_cliente,sec_cliente,proveedor)=
|
|
(requisi2.departamento,requisi2.cod_emp_sec,requisi2.uso,requisi2.prioridad,usuarios,getdate(),
|
|
requisi2.observacion,dir_file,fdocumento,requisi2.num_oc,ktipo_cliente,
|
|
ksec_cliente,proveedor_sugerido )
|
|
WHERE num_req = requisi2.num_req
|
|
|
|
DELETE FROM cotb00008 WHERE num_req = requisi2.num_req
|
|
FOR idx = 1 TO arr_requisi2.getLength()
|
|
IF arr_requisi2[idx].cod_n IS NOT NULL AND
|
|
arr_requisi2[idx].cod_grupo IS NOT NULL AND
|
|
arr_requisi2[idx].cod_tipo IS NOT NULL AND
|
|
arr_requisi2[idx].cod_sec IS NOT NULL THEN
|
|
IF arr_requisi2[idx].ruta_file IS NULL THEN
|
|
LOCATE arr_requisi2[idx].foto IN MEMORY
|
|
END IF
|
|
INSERT INTO cotb00008
|
|
(num_req
|
|
,tipo_inv
|
|
,cod_n
|
|
,cod_grupo
|
|
,cod_tipo
|
|
,cod_sec
|
|
,cantidad
|
|
,us_crea
|
|
,fech_crea
|
|
,procesada
|
|
,documento
|
|
,ruta_file
|
|
)
|
|
VALUES (requisi2.num_req,arr_requisi2[idx].tipo_inv,
|
|
arr_requisi2[idx].cod_n,
|
|
arr_requisi2[idx].cod_grupo,
|
|
arr_requisi2[idx].cod_tipo,
|
|
arr_requisi2[idx].cod_sec,
|
|
arr_requisi2[idx].cantidad,
|
|
suser_sname(),getdate(),'N',arr_requisi2[idx].foto,
|
|
arr_requisi2[idx].ruta_file)
|
|
|
|
END IF
|
|
END FOR
|
|
COMMIT WORK
|
|
|
|
CALL configureoutput(salida) RETURNING HANDLER
|
|
START REPORT print_req TO XML HANDLER handler
|
|
|
|
|
|
FOR idx = 1 TO arr_requisi2.getLength()
|
|
OUTPUT TO REPORT print_req(requisi2.*, descrip1, descrip2, descrip3,
|
|
arr_requisi2[idx].* )
|
|
END FOR
|
|
|
|
FINISH REPORT print_req
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
LET procedimiento = "{ call sp_enviacorreo(?,?,?,?) }" CLIPPED
|
|
LET vendedoremail = 'gespinal@marmotech.com.do;jsoto@marmotech.com.do'
|
|
LET subject = "MODIFICACION RQUISICION COMPRAS ",requisi2.num_req USING "&&&&&&&"
|
|
LET cuerpo_correo="<tr><th>","FUE MODIFICADA POR EL EMPLEADO ",descrip1 CLIPPED," ",descrip2 CLIPPED,"</tr>",
|
|
"<tr><td>",requisi2.uso CLIPPED,"</td></tr>",
|
|
"<tr><td>",requisi2.observacion CLIPPED,"</td></tr>"
|
|
IF dir_file IS NOT NULL THEN
|
|
LET cuerpo_correo = cuerpo_correo CLIPPED, "<tr><td>ESTA REQUISICION INCLUYE DOCUMENTO</td></tr>"
|
|
|
|
END IF
|
|
|
|
{CALL envia_correo('gtiburcio@marmotech.com.do;yherasme@marmotech.com.do',vendedorEmail,cuerpo_correo,
|
|
subject, procedimiento )}
|
|
|
|
END IF
|
|
END IF
|
|
|
|
# LET commandprompt = "del ",dir_file CLIPPED
|
|
# RUN commandprompt
|
|
CALL arr_requisi2.clear()
|
|
|
|
RETURN
|
|
END INPUT
|
|
|
|
ON ACTION CANCEL
|
|
LET INT_FLAG = FALSE
|
|
EXIT PROGRAM
|
|
|
|
END DIALOG
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION copcmf025()
|
|
DEFINE usuario RECORD
|
|
usuario CHAR(50),
|
|
fecha LIKE cotb00008.fech_crea
|
|
END RECORD,
|
|
bempleados string
|
|
# Aqui se prepara para la captura del criterio de seleccion
|
|
|
|
CONSTRUCT criterio ON cotb00006.num_req,cotb00006.fech_req,
|
|
cotb00006.departamento,cotb00006.cod_emp_sec,
|
|
cotb00006.uso
|
|
FROM num_req,fech_req,departamento,cod_emp_sec,uso
|
|
|
|
AFTER CONSTRUCT
|
|
EXIT CONSTRUCT
|
|
END CONSTRUCT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
LET bempleados ="
|
|
SELECT RTRIM(a.nom1_emp)+' '+a.apell1_emp
|
|
FROM adtb00003 a,adtb00001 b
|
|
WHERE a.num_emp =? and
|
|
b.departamento =? and
|
|
a.departamento = b.departamento"
|
|
|
|
PREPARE buempleados FROM bempleados
|
|
|
|
LET SELEC = " SELECT num_req,fech_req,departamento,",
|
|
"cod_emp_sec,uso,prioridad,num_oc,observacion,tipo_cliente,sec_cliente,nombre_cliente, ",
|
|
" nombre_file,documento,proveedor ",
|
|
" FROM cotb00006 ",
|
|
" WHERE ",
|
|
criterio clipped,
|
|
# " AND us_crea = suser_sname() ",
|
|
" and status_t is null ",
|
|
" ORDER BY num_req"
|
|
|
|
PREPARE busca8 FROM selec
|
|
|
|
DECLARE datos SCROLL CURSOR FOR busca8
|
|
|
|
OPEN datos
|
|
|
|
LOCATE fdocumento IN MEMORY
|
|
|
|
FETCH FIRST datos INTO requisi2.*,ktipo_cliente,ksec_cliente,knombre,dir_file,fdocumento,proveedor_sugerido
|
|
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
|
|
SELECT a.nom_dpto INTO descrip1 FROM adtb00001 a
|
|
WHERE a.departamento = requisi2.departamento and
|
|
a.status_t is NULL
|
|
|
|
EXECUTE buempleados INTO descrip2 USING requisi2.cod_emp_sec,requisi2.departamento
|
|
|
|
CALL busca_orden()
|
|
|
|
DISPLAY BY NAME requisi2.*,descrip1,descrip2,dir_file,proveedor_sugerido
|
|
|
|
DIALOG ATTRIBUTE (UNBUFFERED)
|
|
DISPLAY ARRAY arr_requisi2 TO s_requisi2.*
|
|
BEFORE ROW
|
|
LET curr = arr_curr()
|
|
|
|
IF arr_requisi2[curr].ruta_file IS NOT NULL THEN
|
|
|
|
CALL ui.Interface.frontCall("standard","getenv", ["HOMEPATH"], [l_file] )
|
|
LET dir_foto =arr_requisi2[curr].ruta_file
|
|
LET l_file = "c:",l_file CLIPPED,"\\",dir_foto CLIPPED
|
|
CALL arr_requisi2[curr].foto.writeFile(dir_foto)
|
|
|
|
DISPLAY dir_foto TO filepath
|
|
|
|
END IF
|
|
|
|
BEFORE DISPLAY
|
|
CALL arr_requisi2.clear()
|
|
CALL busca_det_req()
|
|
|
|
# MENU "OPCIONES "
|
|
ON ACTION bdocumento
|
|
LET dir_file = NULL
|
|
|
|
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
|
|
|
|
IF filepath IS NOT NULL THEN
|
|
LET dir_file = os.Path.basename(filepath)
|
|
LET tmpdir_file = "tmp\\",dir_file CLIPPED
|
|
|
|
CALL fgl_getfile(filepath,tmpdir_file)
|
|
|
|
CALL fdocumento.readfile(tmpdir_file)
|
|
LET extension = os.Path.extension(dir_file)
|
|
LET dir_file = requisi2.num_req USING "&&&&&&&&",".",extension CLIPPED
|
|
DISPLAY BY NAME dir_file
|
|
|
|
|
|
END IF
|
|
|
|
ON ACTION bborrar
|
|
UPDATE cotb00006 SET nombre_file = NULL,documento = NULL WHERE num_req = requisi2.num_req
|
|
LET dir_file = NULL
|
|
DISPLAY BY NAME dir_file
|
|
ON ACTION bopen
|
|
IF dir_file IS NOT NULL THEN
|
|
LET tmpdir_file = "tmp\\",usuarios CLIPPED,dir_file CLIPPED
|
|
CALL fdocumento.writeFile(tmpdir_file)
|
|
|
|
#CALL ui.Interface.frontCall("standard","getenv", ["HOMEPATH"], [l_file] )
|
|
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [l_file] )
|
|
LET l_file = l_file CLIPPED,"\\",dir_file CLIPPED
|
|
|
|
CALL fgl_putfile(tmpdir_file,l_file)
|
|
CALL ui.Interface.frontCall("standard","shellexec", [l_file],[p_res])
|
|
|
|
END IF
|
|
ON ACTION Siguiente
|
|
FETCH NEXT datos INTO requisi2.*,ktipo_cliente,ksec_cliente,knombre,dir_file,fdocumento,proveedor_sugerido
|
|
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
SELECT a.nom_dpto INTO descrip1 FROM adtb00001 a
|
|
WHERE a.departamento = requisi2.departamento and
|
|
a.status_t is NULL
|
|
|
|
EXECUTE buempleados INTO descrip2 USING requisi2.cod_emp_sec,requisi2.departamento
|
|
CALL busca_orden()
|
|
|
|
DISPLAY BY NAME requisi2.*,descrip1,descrip2,dir_file,proveedor_sugerido
|
|
CALL arr_requisi2.clear()
|
|
CALL busca_det_req()
|
|
|
|
ON ACTION Anterior
|
|
FETCH PREVIOUS datos INTO requisi2.*,ktipo_cliente,ksec_cliente,knombre,dir_file,fdocumento,proveedor_sugerido
|
|
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
SELECT nom_dpto INTO descrip1 FROM adtb00001
|
|
WHERE @departamento = requisi2.departamento and
|
|
status_t is null
|
|
|
|
EXECUTE buempleados INTO descrip2 USING requisi2.cod_emp_sec,requisi2.departamento
|
|
CALL busca_orden()
|
|
|
|
DISPLAY BY NAME requisi2.*,descrip1,descrip2,dir_file,proveedor_sugerido
|
|
CALL arr_requisi2.clear()
|
|
CALL busca_det_req()
|
|
|
|
ON ACTION Primero
|
|
FETCH FIRST datos INTO requisi2.*,ktipo_cliente,ksec_cliente,knombre,dir_file,fdocumento,proveedor_sugerido
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
SELECT nom_dpto INTO descrip1 FROM adtb00001
|
|
WHERE @departamento = requisi2.departamento and
|
|
status_t is NULL
|
|
|
|
EXECUTE buempleados INTO descrip2 USING requisi2.cod_emp_sec,requisi2.departamento
|
|
CALL busca_orden()
|
|
|
|
DISPLAY BY NAME requisi2.*,descrip1,descrip2,dir_file,proveedor_sugerido
|
|
CALL arr_requisi2.clear()
|
|
CALL busca_det_req()
|
|
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
|
|
ON ACTION Ultimo
|
|
FETCH LAST datos INTO requisi2.*,ktipo_cliente,ksec_cliente,knombre,dir_file,fdocumento,proveedor_sugerido
|
|
|
|
SELECT a.nom_dpto INTO descrip1 FROM adtb00001 a
|
|
WHERE a.departamento = requisi2.departamento and
|
|
a.status_t is null
|
|
|
|
EXECUTE buempleados INTO descrip2 USING requisi2.cod_emp_sec,requisi2.departamento
|
|
|
|
CALL busca_orden()
|
|
DISPLAY BY NAME requisi2.*,descrip1,descrip2,dir_file,proveedor_sugerido
|
|
CALL arr_requisi2.clear()
|
|
CALL busca_det_req()
|
|
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
ON ACTION acTualizar
|
|
# Verifica si la requisicion tiene orden
|
|
SELECT UNIQUE a.num_req FROM cotb00015 a WHERE a.num_req = requisi2.num_req AND a.status_t IS NULL
|
|
IF STATUS <> NOTFOUND THEN
|
|
CALL fgl_winmessage("INFO","REQUISICION TIENE ORDEN, NO PUEDES MODIFICARLA","INFO")
|
|
CONTINUE DIALOG
|
|
END IF
|
|
|
|
CALL copcad025()
|
|
|
|
ON ACTION Imprimir
|
|
DISPLAY "aqui2",salida
|
|
# IF salida IS NULL THEN
|
|
|
|
INPUT BY NAME salida WITHOUT DEFAULTS
|
|
BEFORE INPUT
|
|
LET salida ='PDF'
|
|
ON ACTION impresor
|
|
IF salida IS NULL THEN
|
|
NEXT FIELD salida
|
|
END IF
|
|
DISPLAY "aquii"
|
|
CALL configureoutput(salida) RETURNING HANDLER
|
|
START REPORT print_req TO XML HANDLER HANDLER
|
|
FOR idx = 1 TO arr_requisi2.getLength()
|
|
OUTPUT TO REPORT print_req(requisi2.*, descrip1, descrip2, descrip3,
|
|
arr_requisi2[idx].* )
|
|
END FOR
|
|
|
|
FINISH REPORT print_req
|
|
END INPUT
|
|
|
|
|
|
# END IF
|
|
|
|
ON ACTION aNular
|
|
LET opt = fgl_winquestion("ANULAR","ESTA SEGURO DE ANULAR REQUISICION?","NO","YES|NO","QUESTION",0)
|
|
IF opt = "YES" THEN
|
|
UPDATE cotb00006 set status_t = "N",
|
|
us_mod = suser_sname(),
|
|
fech_mod = getdate()
|
|
WHERE num_req = requisi2.num_req
|
|
|
|
|
|
UPDATE cotb00008 set status_t = "E",
|
|
us_mod = suser_sname(),
|
|
fech_mod = getdate()
|
|
WHERE num_req = requisi2.num_req
|
|
|
|
|
|
LET numero_msg = 39
|
|
CALL msg(numero_msg)
|
|
LET procedimiento = "{ call cc_avisadespacho(?,?,?,?) }" CLIPPED
|
|
LET vendedoremail = 'gespinal@marmotech.com.do;jsoto@marmotech.com.do'
|
|
LET subject = "ANULACION RQUISICION COMPRAS ",requisi2.num_req USING "&&&&&&&"
|
|
|
|
LET cuerpo_correo="<tr><th>","FUE ANULADA POR EL EMPLEADO ",descrip1 CLIPPED," ",descrip2 CLIPPED,"</tr>",
|
|
"<tr><td>",requisi2.uso CLIPPED,"</td></tr>",
|
|
"<tr><td>",requisi2.observacion CLIPPED,"</td></tr>"
|
|
|
|
{ CALL envia_correo('gtiburcio@marmotech.com.do;yherasme@marmotech.com.do',vendedorEmail,cuerpo_correo,
|
|
subject, procedimiento )}
|
|
END IF
|
|
{ ON ACTION Retornar
|
|
|
|
LET commandprompt = "del c:",l_file CLIPPED
|
|
DISPLAY "commnad ",commandprompt
|
|
CALL ui.Interface.frontCall( "standard", "execute", [commandprompt,p_res], [p_res] )
|
|
# LET commandprompt = "del ", dir_file CLIPPED
|
|
# RUN commandprompt
|
|
CLEAR FORM}
|
|
ON ACTION CANCEL
|
|
RETURN
|
|
END DISPLAY
|
|
END DIALOG
|
|
END FUNCTION
|
|
|
|
FUNCTION repite2()
|
|
LET ant_art.cod_n = arr_requisi2[curr].cod_n
|
|
LET ant_art.cod_grupo = arr_requisi2[curr].cod_grupo
|
|
LET ant_art.cod_tipo = arr_requisi2[curr].cod_tipo
|
|
LET ant_art.cod_sec = arr_requisi2[curr].cod_sec
|
|
|
|
FOR idx = 1 TO c_cuenta
|
|
IF idx < 10 THEN
|
|
IF idx != curr THEN
|
|
IF arr_requisi2[idx].cod_n IS NOT NULL AND
|
|
arr_requisi2[idx].cod_grupo IS NOT NULL AND
|
|
arr_requisi2[idx].cod_tipo IS NOT NULL AND
|
|
arr_requisi2[idx].cod_sec IS NOT NULL THEN
|
|
|
|
IF arr_requisi2[idx].cod_n = ant_art.cod_n AND
|
|
arr_requisi2[idx].cod_grupo = ant_art.cod_grupo AND
|
|
arr_requisi2[idx].cod_tipo = ant_art.cod_tipo AND
|
|
arr_requisi2[idx].cod_sec = ant_art.cod_sec THEN
|
|
|
|
LET numero_msg = 21
|
|
CALL msg(numero_msg)
|
|
LET verdad = "S"
|
|
ELSE
|
|
IF verdad != "S" THEN
|
|
LET verdad = "N"
|
|
END IF
|
|
END IF
|
|
END IF
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
END FUNCTION
|
|
|
|
FUNCTION busca_det_req()
|
|
# Antes buscar el detalle de la requisicion limpia la pantalla
|
|
|
|
# Busca los registros detalle de la requisicion
|
|
DECLARE datos2 CURSOR FOR SELECT a.tipo_inv,a.cod_n,a.cod_grupo,a.cod_tipo,
|
|
a.cod_sec,
|
|
a.cantidad,a.ruta_file,a.documento
|
|
FROM cotb00008 a
|
|
WHERE a.num_req = requisi2.num_req and
|
|
a.status_t is null
|
|
|
|
|
|
LET idx = 1
|
|
LOCATE arr_requisi2[idx].foto IN MEMORY
|
|
FOREACH datos2 INTO arr_requisi2[idx].tipo_inv,arr_requisi2[idx].cod_n,
|
|
arr_requisi2[idx].cod_grupo,arr_requisi2[idx].cod_tipo,
|
|
arr_requisi2[idx].cod_sec, arr_requisi2[idx].cantidad,
|
|
arr_requisi2[idx].ruta_file,arr_requisi2[idx].foto
|
|
|
|
IF arr_requisi2[idx].tipo_inv="MATERIA PRIMA" THEN
|
|
SELECT a.descrip_esp,a.unidad_med INTO arr_requisi2[idx].descrip_esp,arr_requisi2[idx].unidad_med
|
|
FROM intb00001 a
|
|
WHERE a.cod_n = arr_requisi2[idx].cod_n AND
|
|
a.cod_grupo = arr_requisi2[idx].cod_grupo AND
|
|
a.cod_tipo = arr_requisi2[idx].cod_tipo AND
|
|
a.cod_sec = arr_requisi2[idx].cod_sec AND
|
|
a.status_t IS null
|
|
END IF
|
|
|
|
|
|
IF arr_requisi2[idx].tipo_inv="PRODUCTO TERMINADOS" THEN
|
|
SELECT a.descrip_esp,a.unidad_med INTO arr_requisi2[idx].descrip_esp,arr_requisi2[idx].unidad_med
|
|
FROM iptb00002 a
|
|
WHERE a.cod_n = arr_requisi2[idx].cod_n AND
|
|
a.cod_grupo = arr_requisi2[idx].cod_grupo AND
|
|
a.cod_tipo = arr_requisi2[idx].cod_tipo AND
|
|
a.cod_sec = arr_requisi2[idx].cod_sec AND
|
|
a.status_t IS null
|
|
END IF
|
|
|
|
IF arr_requisi2[idx].tipo_inv="REPUESTOS" THEN
|
|
SELECT a.descrip_esp,a.unidad_med INTO arr_requisi2[idx].descrip_esp,arr_requisi2[idx].unidad_med
|
|
FROM irtb00002 a
|
|
WHERE a.cod_n = arr_requisi2[idx].cod_n AND
|
|
a.cod_grupo = arr_requisi2[idx].cod_grupo AND
|
|
a.cod_tipo = arr_requisi2[idx].cod_tipo AND
|
|
a.cod_sec = arr_requisi2[idx].cod_sec AND
|
|
a.status_t IS null
|
|
END IF
|
|
|
|
IF arr_requisi2[idx].tipo_inv="MICELANEOS" THEN
|
|
SELECT a.descrip_esp,a.unidad_med INTO arr_requisi2[idx].descrip_esp,arr_requisi2[idx].unidad_med
|
|
FROM istb00002 a
|
|
WHERE a.cod_n = arr_requisi2[idx].cod_n AND
|
|
a.cod_grupo = arr_requisi2[idx].cod_grupo AND
|
|
a.cod_tipo = arr_requisi2[idx].cod_tipo AND
|
|
a.cod_sec = arr_requisi2[idx].cod_sec AND
|
|
a.status_t IS null
|
|
END IF
|
|
|
|
LET idx = idx + 1
|
|
LOCATE arr_requisi2[idx].foto IN MEMORY
|
|
|
|
END FOREACH
|
|
END FUNCTION
|
|
FUNCTION busca_det_orden()
|
|
DECLARE busca_orden CURSOR FOR
|
|
SELECT DISTINCT 'PRODUCTO TERMINADOS',a.cod_n,a.cod_grupo,a.cod_tipo,
|
|
a.cod_sec,a.cantidad,b.descrip_esp,b.unidad_med
|
|
FROM prtb00013 a,iptb00002 b
|
|
WHERE 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
|
|
a.num_oc = requisi2.num_oc
|
|
|
|
LET idx = 1
|
|
LOCATE arr_requisi2[idx].foto IN MEMORY
|
|
FOREACH busca_orden INTO arr_requisi2[idx].tipo_inv,arr_requisi2[idx].cod_n,
|
|
arr_requisi2[idx].cod_grupo,arr_requisi2[idx].cod_tipo,
|
|
arr_requisi2[idx].cod_sec,arr_requisi2[idx].cantidad,
|
|
arr_requisi2[idx].descrip_esp,arr_requisi2[idx].unidad_med
|
|
|
|
LET idx = idx + 1
|
|
LOCATE arr_requisi2[idx].foto IN MEMORY
|
|
END FOREACH
|
|
END FUNCTION
|
|
#-------------------------------------------------------------------------
|
|
# Impresion de la Requisicion.
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
{REPORT print_req(x,descrip11,descrip22,descrip33,z)
|
|
|
|
DEFINE x RECORD
|
|
num_req LIKE cotb00006.num_req,
|
|
fech_req LIKE cotb00006.fech_req,
|
|
departamento LIKE adtb00001.departamento,
|
|
cod_emp_sec LIKE cotb00006.cod_emp_sec,
|
|
uso LIKE cotb00006.uso,
|
|
prioridad LIKE cotb00006.prioridad,
|
|
num_oc INT,
|
|
observacion VARCHAR(100)
|
|
END RECORD
|
|
|
|
DEFINE descrip11, descrip22, descrip33 CHAR(30)
|
|
|
|
DEFINE z RECORD
|
|
tipo_inv VARCHAR(20),
|
|
cod_n LIKE cotb00008.cod_n,
|
|
cod_grupo LIKE cotb00008.cod_grupo,
|
|
cod_tipo LIKE cotb00008.cod_tipo,
|
|
cod_sec LIKE cotb00008.cod_sec,
|
|
descrip_esp VARCHAR(100),
|
|
unidad_med LIKE intb00001.unidad_med,
|
|
cantidad LIKE cotb00008.cantidad,
|
|
ruta_file VARCHAR(100),
|
|
foto BYTE
|
|
END RECORD,
|
|
existencia,consumo DECIMAL(12,2),
|
|
fecha1 DATE,
|
|
doce CHAR(2)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 10
|
|
PAGE LENGTH 100
|
|
|
|
ORDER BY x.num_req,z.cod_sec
|
|
FORMAT
|
|
BEFORE GROUP OF x.num_req
|
|
# LET negrillas_on = ASCII 27, ASCII 71
|
|
# LET negrillas_off = ASCII 27, ASCII 72
|
|
# LET doble_on = ASCII 14
|
|
# LET doble_off = ASCII 20
|
|
# LET comp_on = ASCII 15
|
|
# LET comp_off = ASCII 18
|
|
# LET comprimido_12_on = ASCII 27, ASCII 77
|
|
# LET comprimido_12_off = ASCII 27, ASCII 80
|
|
# LET doce = ASCII 27, ASCII 12
|
|
PRINT doce
|
|
PRINT COLUMN 1,"MARMOTECH, S.A",
|
|
COLUMN 49,"REQUISICION DE COMPRA No. ",x.num_req using "&&&&&&"
|
|
PRINT
|
|
PRINT COLUMN 1,"Solicitante :",
|
|
COLUMN 15,"(",x.cod_emp_sec using '<<<<<<',") ",
|
|
descrip22 clipped,
|
|
COLUMN 53,"Fecha Requisicion : ",x.fech_req using "dd/mm/yyyy"
|
|
PRINT COLUMN 1,"Departamento :",
|
|
COLUMN 15,"(",x.departamento using '<<<<<<',") ",
|
|
descrip11 clipped
|
|
PRINT COLUMN 1,"Prioridad :",x.prioridad CLIPPED
|
|
PRINT COLUMN 1, "Uso :",x.uso CLIPPED
|
|
PRINT COLUMN 1, "ORDEN PEDIDO :",x.num_oc USING "&&&&&&"," ",cliente CLIPPED
|
|
PRINT COLUMN 1, "OBSERVACIONES :", x.observacion WORDWRAP RIGHT MARGIN 70
|
|
PRINT COLUMN 1, "PROVEEDOR SUGERIDO:",proveedor_sugerido CLIPPED
|
|
|
|
PRINT COLUMN 1,"----------------------------------------",
|
|
"----------------------------------------",
|
|
"---------------------------"
|
|
PRINT COLUMN 1, "INVENTARIO",
|
|
COLUMN 21,"Codigo",
|
|
COLUMN 42,"Descripcion",
|
|
COLUMN 73, "Existencia",
|
|
COLUMN 86, "Consumo",
|
|
COLUMN 95,"Cantidad",
|
|
COLUMN 104,"Und"
|
|
PRINT COLUMN 1,"----------------------------------------",
|
|
"----------------------------------------",
|
|
"---------------------------"
|
|
LET fecha1 = x.fech_req - 90
|
|
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
|
|
|
|
# BUSCA EXISTENCIA
|
|
CASE
|
|
WHEN z.cod_n = 1
|
|
SELECT SUM(a.cantidad_2) INTO existencia
|
|
FROM intb00006 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.status_t IS NULL
|
|
EXIT CASE
|
|
WHEN z.cod_n = 3 OR z.cod_n = 6 OR
|
|
z.cod_n = 9
|
|
SELECT SUM(a.cantidad_2) INTO existencia
|
|
FROM iptb00006 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.status_t IS NULL
|
|
EXIT CASE
|
|
WHEN z.cod_n = 5
|
|
SELECT SUM(a.cantidad_2) INTO existencia
|
|
FROM irtb00006 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.status_t IS NULL
|
|
EXIT CASE
|
|
END CASE
|
|
#-----------------------------------------------------------------------
|
|
# BUSCA EL CONSUMO DEL ARTICULO
|
|
CASE
|
|
WHEN z.cod_n = 1
|
|
SELECT SUM(a.cantidad_2) INTO consumo
|
|
FROM intb00006 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.fecha BETWEEN fecha1 AND x.fech_req AND
|
|
a.cod_mov = 36 AND
|
|
a.status_t IS NULL
|
|
EXIT CASE
|
|
WHEN z.cod_n = 3 OR z.cod_n = 6 OR
|
|
z.cod_n = 9
|
|
SELECT SUM(a.cantidad_2) INTO consumo
|
|
FROM iptb00006 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.fecha BETWEEN fecha1 AND x.fech_req AND
|
|
a.cod_mov in (30,31) AND
|
|
a.status_t IS NULL
|
|
EXIT CASE
|
|
WHEN z.cod_n = 5
|
|
SELECT SUM(a.cantidad_2) INTO consumo
|
|
FROM irtb00006 a,irtb00030 b
|
|
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.fecha BETWEEN fecha1 AND x.fech_req AND
|
|
a.cod_mov = b.cod_grupo AND
|
|
a.status_t IS NULL
|
|
EXIT CASE
|
|
END CASE
|
|
#---------------------------------------------------------------------
|
|
PRINT COLUMN 1, z.tipo_inv,
|
|
COLUMN 20, z.cod_n using "&&&&","-",
|
|
z.cod_grupo using "&&&&","-",
|
|
z.cod_tipo using "&&&&","-",
|
|
z.cod_sec using "&&&&&&",
|
|
COLUMN 44, z.descrip_esp WORDWRAP RIGHT MARGIN 77,
|
|
|
|
COLUMN 74, existencia USING "<<<<,<<<.##",
|
|
COLUMN 86, consumo USING "<<<<<,<<<.##",
|
|
COLUMN 99, z.cantidad using "<<,<<<,<<<.##",
|
|
" ",z.unidad_med
|
|
|
|
INITIALIZE adicional.* TO NULL
|
|
|
|
SELECT a.detalle1,a.detalle2,a.detalle3
|
|
INTO adicional.detalle1, adicional.detalle2, adicional.detalle3
|
|
FROM cotb00042 a
|
|
WHERE a.status_t is null AND
|
|
a.num_req = x.num_req AND
|
|
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
|
|
|
|
IF adicional.detalle1 IS NOT NULL THEN
|
|
PRINT COLUMN 13, adicional.detalle1
|
|
END IF
|
|
|
|
IF adicional.detalle2 IS NOT NULL THEN
|
|
PRINT COLUMN 13, adicional.detalle2
|
|
END IF
|
|
|
|
IF adicional.detalle3 IS NOT NULL THEN
|
|
PRINT COLUMN 13, adicional.detalle3
|
|
END IF
|
|
END IF
|
|
|
|
PAGE TRAILER
|
|
PRINT COLUMN 1,"----------------------------------------",
|
|
"----------------------------------------"
|
|
PRINT COLUMN 1,"AUTORIZACION"
|
|
|
|
SKIP 5 LINES
|
|
PRINT COLUMN 3,"--------------------",
|
|
COLUMN 31,"--------------------",
|
|
COLUMN 58,"--------------------"
|
|
|
|
PRINT COLUMN 3,"Gerente Departamento",
|
|
COLUMN 31," Gerente General ",
|
|
COLUMN 58," Gerente Materiales "
|
|
|
|
|
|
END REPORT}
|
|
FUNCTION busca_orden()
|
|
# SELECT a.tipo_cliente,a.sec_cliente,b.nombre INTO ktipo_cliente,ksec_cliente,knombre
|
|
# FROM prtb00012 a,vetb00004 b
|
|
# WHERE a.num_oc = requisi2.num_oc AND a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente AND
|
|
# a.status_t IS NULL
|
|
LET cliente = ktipo_cliente USING "&&","-",ksec_cliente USING "&&&&&&&&"," ",knombre CLIPPED
|
|
DISPLAY BY NAME cliente
|
|
|
|
END FUNCTION
|
|
FUNCTION busca_proveedor()
|
|
SELECT MAX(a.num_oc) INTO ult_orden FROM cotb00014 a,cotb00015 b
|
|
WHERE (a.num_oc = b.num_oc) AND
|
|
b.cod_n = arr_requisi2[curr].cod_n AND
|
|
b.cod_grupo = arr_requisi2[curr].cod_grupo AND
|
|
b.cod_tipo = arr_requisi2[curr].cod_tipo AND
|
|
b.cod_sec = arr_requisi2[curr].cod_sec AND
|
|
a.status_t IS NULL
|
|
IF ult_orden IS NOT NULL THEN
|
|
SELECT CAST(a.cod_sp AS VARCHAR(4)) +'-'+CAST(a.cod_sp_sec AS VARCHAR(8))+' '+
|
|
a.nom_sp INTO proveedor_sugerido
|
|
FROM cotb00001 a,cotb00014 b
|
|
WHERE (a.cod_sp = b.cod_sp AND
|
|
a.cod_sp_sec = b.cod_sp_sec) AND
|
|
(b.num_oc = ult_orden) AND
|
|
b.status_t IS NULL
|
|
|
|
DISPLAY BY NAME proveedor_sugerido
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
REPORT print_req(x,descrip11,descrip22,descrip33,z)
|
|
|
|
DEFINE x RECORD
|
|
num_req LIKE cotb00006.num_req,
|
|
fech_req LIKE cotb00006.fech_req,
|
|
departamento LIKE adtb00001.departamento,
|
|
cod_emp_sec LIKE cotb00006.cod_emp_sec,
|
|
uso LIKE cotb00006.uso,
|
|
prioridad LIKE cotb00006.prioridad,
|
|
num_oc INT,
|
|
observacion VARCHAR(100)
|
|
END RECORD
|
|
|
|
DEFINE descrip11, descrip22, descrip33 CHAR(30)
|
|
|
|
DEFINE z RECORD
|
|
tipo_inv VARCHAR(20),
|
|
cod_n LIKE cotb00008.cod_n,
|
|
cod_grupo LIKE cotb00008.cod_grupo,
|
|
cod_tipo LIKE cotb00008.cod_tipo,
|
|
cod_sec LIKE cotb00008.cod_sec,
|
|
descrip_esp VARCHAR(100),
|
|
unidad_med LIKE intb00001.unidad_med,
|
|
cantidad LIKE cotb00008.cantidad,
|
|
ruta_file VARCHAR(100),
|
|
foto BYTE
|
|
END RECORD,
|
|
existencia,consumo DECIMAL(12,2),
|
|
fecha1 DATE,
|
|
doce CHAR(2)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 10
|
|
PAGE LENGTH 100
|
|
|
|
ORDER BY x.num_req,z.cod_sec
|
|
FORMAT
|
|
BEFORE GROUP OF x.num_req
|
|
# LET negrillas_on = ASCII 27, ASCII 71
|
|
# LET negrillas_off = ASCII 27, ASCII 72
|
|
# LET doble_on = ASCII 14
|
|
# LET doble_off = ASCII 20
|
|
# LET comp_on = ASCII 15
|
|
# LET comp_off = ASCII 18
|
|
# LET comprimido_12_on = ASCII 27, ASCII 77
|
|
# LET comprimido_12_off = ASCII 27, ASCII 80
|
|
# LET doce = ASCII 27, ASCII 12
|
|
PRINT doce
|
|
PRINT COLUMN 1,"MARMOTECH, S.A",
|
|
COLUMN 49,"REQUISICION DE COMPRA No. ",x.num_req using "&&&&&&"
|
|
PRINT
|
|
PRINT COLUMN 1,"Solicitante :",
|
|
COLUMN 15,"(",x.cod_emp_sec using '<<<<<<',") ",
|
|
descrip22 clipped,
|
|
COLUMN 53,"Fecha Requisicion : ",x.fech_req using "dd/mm/yyyy"
|
|
PRINT COLUMN 1,"Departamento :",
|
|
COLUMN 15,"(",x.departamento using '<<<<<<',") ",
|
|
descrip11 clipped
|
|
PRINT COLUMN 1,"Prioridad :",x.prioridad CLIPPED
|
|
PRINT COLUMN 1, "Uso :",x.uso CLIPPED
|
|
PRINT COLUMN 1, "ORDEN PEDIDO :",x.num_oc USING "&&&&&&"," ",cliente CLIPPED
|
|
PRINT COLUMN 1, "OBSERVACIONES :", x.observacion WORDWRAP RIGHT MARGIN 70
|
|
PRINT COLUMN 1, "PROVEEDOR SUGERIDO:",proveedor_sugerido CLIPPED
|
|
|
|
PRINT COLUMN 1,"----------------------------------------",
|
|
"----------------------------------------",
|
|
"---------------------------"
|
|
PRINT COLUMN 1, "INVENTARIO",
|
|
COLUMN 21,"Codigo",
|
|
COLUMN 42,"Descripcion",
|
|
COLUMN 73, "Existencia",
|
|
COLUMN 86, "Consumo",
|
|
COLUMN 95,"Cantidad",
|
|
COLUMN 104,"Und"
|
|
PRINT COLUMN 1,"----------------------------------------",
|
|
"----------------------------------------",
|
|
"---------------------------"
|
|
LET fecha1 = x.fech_req - 90
|
|
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
|
|
|
|
# BUSCA EXISTENCIA
|
|
CASE
|
|
WHEN z.cod_n = 1
|
|
SELECT SUM(a.cantidad_2) INTO existencia
|
|
FROM intb00006 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.status_t IS NULL
|
|
EXIT CASE
|
|
WHEN z.cod_n = 3 OR z.cod_n = 6 OR
|
|
z.cod_n = 9
|
|
SELECT SUM(a.cantidad_2) INTO existencia
|
|
FROM iptb00006 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.status_t IS NULL
|
|
EXIT CASE
|
|
WHEN z.cod_n = 5
|
|
SELECT SUM(a.cantidad_2) INTO existencia
|
|
FROM irtb00006 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.status_t IS NULL
|
|
EXIT CASE
|
|
END CASE
|
|
#-----------------------------------------------------------------------
|
|
# BUSCA EL CONSUMO DEL ARTICULO
|
|
CASE
|
|
WHEN z.cod_n = 1
|
|
SELECT SUM(a.cantidad_2) INTO consumo
|
|
FROM intb00006 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.fecha BETWEEN fecha1 AND x.fech_req AND
|
|
a.cod_mov = 36 AND
|
|
a.status_t IS NULL
|
|
EXIT CASE
|
|
WHEN z.cod_n = 3 OR z.cod_n = 6 OR
|
|
z.cod_n = 9
|
|
SELECT SUM(a.cantidad_2) INTO consumo
|
|
FROM iptb00006 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.fecha BETWEEN fecha1 AND x.fech_req AND
|
|
a.cod_mov in (30,31) AND
|
|
a.status_t IS NULL
|
|
EXIT CASE
|
|
WHEN z.cod_n = 5
|
|
SELECT SUM(a.cantidad_2) INTO consumo
|
|
FROM irtb00006 a,irtb00030 b
|
|
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.fecha BETWEEN fecha1 AND x.fech_req AND
|
|
a.cod_mov = b.cod_grupo AND
|
|
a.status_t IS NULL
|
|
EXIT CASE
|
|
END CASE
|
|
#---------------------------------------------------------------------
|
|
PRINT COLUMN 1, z.tipo_inv,
|
|
COLUMN 20, z.cod_n using "&&&&","-",
|
|
z.cod_grupo using "&&&&","-",
|
|
z.cod_tipo using "&&&&","-",
|
|
z.cod_sec using "&&&&&&",
|
|
COLUMN 44, z.descrip_esp WORDWRAP RIGHT MARGIN 77,
|
|
|
|
COLUMN 74, existencia USING "<<<<,<<<.##",
|
|
COLUMN 86, consumo USING "<<<<<,<<<.##",
|
|
COLUMN 99, z.cantidad using "<<,<<<,<<<.##",
|
|
" ",z.unidad_med
|
|
|
|
INITIALIZE adicional.* TO NULL
|
|
|
|
SELECT a.detalle1,a.detalle2,a.detalle3
|
|
INTO adicional.detalle1, adicional.detalle2, adicional.detalle3
|
|
FROM cotb00042 a
|
|
WHERE a.status_t is null AND
|
|
a.num_req = x.num_req AND
|
|
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
|
|
|
|
IF adicional.detalle1 IS NOT NULL THEN
|
|
PRINT COLUMN 13, adicional.detalle1
|
|
END IF
|
|
|
|
IF adicional.detalle2 IS NOT NULL THEN
|
|
PRINT COLUMN 13, adicional.detalle2
|
|
END IF
|
|
|
|
IF adicional.detalle3 IS NOT NULL THEN
|
|
PRINT COLUMN 13, adicional.detalle3
|
|
END IF
|
|
END IF
|
|
|
|
ON last ROW
|
|
PRINT COLUMN 1,"----------------------------------------",
|
|
"----------------------------------------"
|
|
PRINT COLUMN 1,"AUTORIZACION"
|
|
|
|
SKIP 5 LINES
|
|
PRINT COLUMN 3,"--------------------",
|
|
COLUMN 31,"--------------------",
|
|
COLUMN 58,"--------------------"
|
|
|
|
PRINT COLUMN 3,"Gerente Departamento",
|
|
COLUMN 31," Gerente General ",
|
|
COLUMN 58," Gerente Materiales "
|
|
|
|
|
|
END REPORT |