256 lines
9.3 KiB
Plaintext
256 lines
9.3 KiB
Plaintext
{ ------------------------------------------------------------------------------
|
|
PROGRAMA : COPRRP029
|
|
OBJETIVO : REPORTE DE COMPRAS POR SUPLIDOR
|
|
PROGRAMADOR : JUAN SOTO
|
|
FECHA REALIZACION : AGOSTO 1997
|
|
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
|
|
GLOBALS
|
|
"coprgb000.4gl"
|
|
|
|
DEFINE rango_prt RECORD
|
|
fecha_ini like cotb00014.fech_oc,
|
|
fecha_fin like cotb00014.fech_oc
|
|
END RECORD
|
|
|
|
#----------------------------------------------------------------------------
|
|
#################
|
|
# co_suplidor()#
|
|
#################
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
CONNECT TO "smarmotech" AS "MSSQL" USER usuarios USING clave
|
|
|
|
CALL coprrp029()
|
|
END MAIN
|
|
|
|
FUNCTION coprrp029()
|
|
DEFINE co_sp RECORD
|
|
cod_sp LIKE cotb00001.cod_sp,
|
|
cod_sp_sec like cotb00001.cod_sp_sec,
|
|
nom_sp like cotb00001.nom_sp,
|
|
tipo like cotb00014.tipo,
|
|
num_oc like cotb00014.num_oc,
|
|
fech_oc like cotb00014.fech_oc,
|
|
cantidad like cotb00015.cantidad,
|
|
precio like cotb00015.precio,
|
|
cod_n like cotb00015.cod_n,
|
|
cod_grupo like cotb00015.cod_grupo,
|
|
cod_tipo like cotb00015.cod_tipo,
|
|
cod_sec like cotb00015.cod_sec,
|
|
tasa_cambio like cotb00031.tasa_cambio
|
|
END RECORD,
|
|
p_cod_sp,p_cod_sp_sec INTEGER
|
|
|
|
DEFINE P_DESCRIP CHAR(30)
|
|
DEFINE total1 DECIMAL(14,2)
|
|
DEFINE criterio CHAR(50)
|
|
DEFINE selec1,selec2 CHAR(600)
|
|
|
|
DEFINE tipo_papel, numero_msg SMALLINT
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
OPEN FORM cofmrp029 from "cofmrp029"
|
|
DISPLAY FORM cofmrp029
|
|
|
|
# INDICA EL TIPO DE PAPEL PARA LA IMPRESION
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME rango_prt.fecha_ini,rango_prt.fecha_fin,
|
|
p_cod_sp,p_cod_sp_sec
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
LET handler = configureOutput("SVG")
|
|
START REPORT compras_s TO XML HANDLER handler
|
|
|
|
|
|
DECLARE curs_1 CURSOR FOR
|
|
SELECT a.cod_sp,a.cod_sp_sec,a.nom_sp,b.tipo,b.num_oc,b.fech_oc,c.cantidad,
|
|
c.precio,c.cod_n, c.cod_grupo, c.cod_tipo, c.cod_sec, d.tasa_cambio
|
|
FROM cotb00001 a, cotb00014 b, cotb00015 c, OUTER cotb00031 d
|
|
WHERE a.cod_sp_sec = b.cod_sp_sec and a.cod_sp = b.cod_sp and
|
|
a.cod_sp = p_cod_sp and a.cod_sp_sec = p_cod_sp_sec and
|
|
b.num_oc = c.num_oc and b.tipo IS NOT NULL AND
|
|
c.cod_mon = d.cod_mon and c.status_t is null and
|
|
b.fech_oc between rango_prt.fecha_ini and rango_prt.fecha_fin
|
|
ORDER BY b.num_oc,b.tipo,c.precio,c.cod_n,c.cod_grupo,c.cod_tipo
|
|
|
|
DISPLAY " " AT 2,1
|
|
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
|
AT 19,14 ATTRIBUTE (REVERSE)
|
|
|
|
FOREACH curs_1 INTO co_sp.*
|
|
OUTPUT TO REPORT compras_s(co_sp.*)
|
|
END FOREACH
|
|
|
|
DECLARE curs_2 CURSOR FOR
|
|
SELECT a.cod_sp,a.cod_sp_sec,a.nom_sp,b.tipo,b.num_oc,b.fech_oc,c.cantidad,
|
|
c.precio,c.cod_n, c.cod_grupo, c.cod_tipo, c.cod_sec, d.tasa_cambio
|
|
FROM cotb00001 a, cotb00033 b, cotb00034 c, OUTER cotb00031 d
|
|
WHERE a.cod_sp_sec = b.cod_sp_sec and a.cod_sp = b.cod_sp and
|
|
a.cod_sp = p_cod_sp and a.cod_sp_sec = p_cod_sp_sec and
|
|
b.num_oc = c.num_oc and b.tipo IS NULL AND
|
|
c.cod_mon = d.cod_mon and c.status_t is null and
|
|
b.fech_oc between rango_prt.fecha_ini and rango_prt.fecha_fin
|
|
ORDER BY b.num_oc,b.tipo,c.precio,c.cod_n,c.cod_grupo,c.cod_tipo
|
|
|
|
DISPLAY " " AT 2,1
|
|
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
|
AT 2,1 ATTRIBUTE (REVERSE)
|
|
|
|
FOREACH curs_2 INTO co_sp.*
|
|
OUTPUT TO REPORT compras_s(co_sp.*)
|
|
END FOREACH
|
|
|
|
FINISH REPORT compras_s
|
|
CLEAR FORM
|
|
|
|
# CLEAR SCREEN
|
|
END FUNCTION
|
|
#-------------------------------------------------------------------------------
|
|
|
|
## DEFINICION DEL REGISTRO DE SALIDA
|
|
REPORT compras_s(x)
|
|
|
|
DEFINE x RECORD
|
|
cod_sp LIKE cotb00001.cod_sp,
|
|
cod_sp_sec like cotb00001.cod_sp_sec,
|
|
nom_sp like cotb00001.nom_sp,
|
|
tipo like cotb00014.tipo,
|
|
num_oc like cotb00014.num_oc,
|
|
fech_oc like cotb00014.fech_oc,
|
|
cantidad like cotb00015.cantidad,
|
|
precio like cotb00015.precio,
|
|
cod_n like cotb00015.cod_n,
|
|
cod_grupo like cotb00015.cod_grupo,
|
|
cod_tipo like cotb00015.cod_tipo,
|
|
cod_sec like cotb00015.cod_sec,
|
|
tasa_cambio like cotb00031.tasa_cambio
|
|
END RECORD
|
|
|
|
## DEFINICION DE LAS VARIABLES DE IMPRESION
|
|
DEFINE doble_on,doble_off,negrillas_on,negrillas_off,comp_on,comp_off,
|
|
doce,normal CHAR(2)
|
|
DEFINE p_descrip1,p_descrip CHAR(30) ,
|
|
nombre_m CHAR(20)
|
|
DEFINE base2 INTEGER
|
|
DEFINE valor,valor2 DECIMAL(14,2)
|
|
DEFINE hora CHAR(5)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 2
|
|
PAGE LENGTH 150
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET hora = time
|
|
|
|
LET l = (123 - LENGTH(p_companias.nombre CLIPPED))/2
|
|
PRINT COLUMN 1,comp_on
|
|
PRINT COLUMN 1, "coprrp029",
|
|
COLUMN l, p_companias.nombre CLIPPED,
|
|
COLUMN 116, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 43, " SISTEMA DE COMPRAS ",
|
|
COLUMN 116, today using "dd/mm/yyyy"
|
|
PRINT COLUMN 42, " REPORTE DE COMPRA POR SUPLIDOR ",
|
|
COLUMN 116, hora
|
|
PRINT COLUMN 45, "DEL ", rango_prt.fecha_ini USING "dd/mm/yyyy",
|
|
" AL ", rango_prt.fecha_fin USING "dd/mm/yyyy"
|
|
|
|
## IMPRESION DE ENCABEZADOS
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "FECHA: ",today using "dd/mm/yyyy"
|
|
|
|
PRINT COLUMN 1, "SUPLIDOR: ", x.cod_sp using "##","-",
|
|
x.cod_sp_sec using "####"," ",x.nom_sp
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, negrillas_on
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------",
|
|
"-----------------------------------"
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 1, "NUMERO/ORDEN",
|
|
COLUMN 17, "FECHA",
|
|
COLUMN 24, "CODIGO/PROD.",
|
|
COLUMN 48, " DESCRIPCION",
|
|
COLUMN 84, "CANTIDAD",
|
|
COLUMN 100, "PRECIO/UN.",
|
|
COLUMN 114, "TASA",
|
|
COLUMN 125, "TOTAL "
|
|
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------",
|
|
"-----------------------------------"
|
|
PRINT COLUMN 1, negrillas_off
|
|
## IMPRESION DEL DETALLE
|
|
|
|
ON EVERY ROW
|
|
|
|
IF x.tipo = "01" THEN
|
|
SELECT z.descrip_esp INTO p_descrip from intb00001 z
|
|
where z.cod_n = x.cod_n and z.cod_grupo = x.cod_grupo and
|
|
z.cod_tipo = x.cod_tipo and z.cod_sec = x.cod_sec
|
|
END IF
|
|
IF x.tipo = "02" THEN
|
|
SELECT z.descrip_esp INTO p_descrip from iptb00002 z
|
|
where z.cod_n = x.cod_n and z.cod_grupo = x.cod_grupo and
|
|
z.cod_tipo = x.cod_tipo and z.cod_sec = x.cod_sec
|
|
END IF
|
|
IF x.tipo = "03" THEN
|
|
SELECT z.descrip_esp INTO p_descrip from irtb00001 z
|
|
where z.cod_n = x.cod_n and z.cod_grupo = x.cod_grupo and
|
|
z.cod_tipo = x.cod_tipo and z.cod_sec = x.cod_sec
|
|
END IF
|
|
|
|
LET base2 = 1
|
|
|
|
IF base2 IS NULL OR base2 = 0 THEN
|
|
LET base2 = 1
|
|
END IF
|
|
|
|
LET valor = (x.cantidad / base2) * x.precio
|
|
LET valor2 = valor * x.tasa_cambio
|
|
|
|
PRINT COLUMN 1, x.num_oc USING "&&&&&&",
|
|
COLUMN 14, x.fech_oc USING "DD/MM/YYYY",
|
|
COLUMN 26, x.cod_n USING "&&&&","-",x.cod_grupo USING "&&&&", "-",
|
|
x.cod_tipo USING "&&&&","-", x.cod_sec USING "&&&&",
|
|
COLUMN 37, p_descrip CLIPPED, " ",nombre_m CLIPPED," ",
|
|
p_descrip1 CLIPPED,
|
|
COLUMN 78, x.cantidad USING "###,###,###.##",
|
|
COLUMN 95, x.precio USING "###,###,###.##",
|
|
COLUMN 113, x.tasa_cambio USING "##.##",
|
|
COLUMN 118, valor2 USING "###,###,###.##"
|
|
|
|
AFTER GROUP OF x.num_oc
|
|
SKIP 1 LINE
|
|
|
|
ON LAST ROW
|
|
|
|
PRINT COLUMN 1, negrillas_on
|
|
PRINT COLUMN 1, "--------------------------------------------------",
|
|
"--------------------------------------------------",
|
|
"-----------------------------------"
|
|
|
|
PRINT COLUMN 7, " TOTAL GENERAL : ",
|
|
COLUMN 118, SUM(valor2) USING "###,###,###.##"
|
|
PRINT COLUMN 1, negrillas_off
|
|
# PRINT COLUMN 1,comp_off
|
|
END REPORT
|
|
|