Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,304 @@
|
||||
{
|
||||
=======================================================================
|
||||
Programa : COPRRP032
|
||||
Sistema : Sistema de Compras
|
||||
|
||||
Proceso : RESUMEN COMPRAS CATEGORIZADAS POR NATURALEZA DEL PRODUCTO
|
||||
Autor : Juan F. Soto
|
||||
Fecha : Febrero 4, 1997
|
||||
=======================================================================
|
||||
}
|
||||
GLOBALS
|
||||
"coprgb000.4gl"
|
||||
|
||||
|
||||
DEFINE fecha_in,fecha_fi DATE,
|
||||
cod_sup SMALLINT,
|
||||
total2,cantidad1 DECIMAL(12,2)
|
||||
|
||||
FUNCTION coprrp032()
|
||||
DEFINE c_datos RECORD
|
||||
cod_sp SMALLINT,
|
||||
cod_sp_Sec SMALLINT,
|
||||
categoria CHAR(1),
|
||||
moneda LIKE cotb00015.cod_mon,
|
||||
cantidad LIKE cotb00015.cantidad,
|
||||
precio LIKE cotb00015.precio,
|
||||
cod_n LIKE cotb00015.cod_n,
|
||||
cod_grupo LIKE cotb00015.cod_n,
|
||||
cod_tipo LIKE cotb00015.cod_n,
|
||||
cod_sec LIKE cotb00015.cod_n,
|
||||
base LIKE intb00002.base,
|
||||
bruto DECIMAL(14,2),
|
||||
gastos DECIMAL(14,2),
|
||||
porc DECIMAL(10,4),
|
||||
codigo CHAR(8),
|
||||
cod_cat CHAR(3),
|
||||
gasto1 DECIMAL(12,2)
|
||||
END RECORD
|
||||
LET int_flag = FALSE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8
|
||||
CALL pantalla()
|
||||
|
||||
OPEN FORM cofmrp032 FROM "cofmrp032"
|
||||
DISPLAY FORM cofmrp032
|
||||
DISPLAY "coprrp032" AT 4,3 ATTRIBUTE(YELLOW)
|
||||
DISPLAY "Resumen Compras Categorizadas Por Naturaleza Del Producto"
|
||||
AT 6,10
|
||||
ATTRIBUTE(YELLOW)
|
||||
|
||||
LET tipo_papel = 1
|
||||
CALL msgrp000(tipo_papel)
|
||||
|
||||
INPUT BY NAME fecha_in,fecha_fi
|
||||
|
||||
AFTER FIELD fecha_in
|
||||
IF fecha_in IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_in
|
||||
END IF
|
||||
|
||||
BEFORE FIELD fecha_fi
|
||||
LET fecha_fi = today
|
||||
|
||||
AFTER FIELD fecha_fi
|
||||
IF fecha_fi IS NULL THEN
|
||||
LET fecha_fi = today
|
||||
END IF
|
||||
|
||||
IF fecha_fi < fecha_in THEN
|
||||
LET numero_msg = 51
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha_fi
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME fecha_fi
|
||||
|
||||
END INPUT
|
||||
|
||||
IF int_flag tHEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CONSTRUCT BY NAME criterio ON a.cod_sp,a.cod_sp_sec
|
||||
IF int_flag tHEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
LET selec =
|
||||
"SELECT a.cod_sp,a.cod_sp_sec,c.categoria,b.cod_mon,",
|
||||
"b.cantidad,b.precio,b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_Sec ",
|
||||
" FROM cotb00014 a,cotb00015 b,cotb00021 c ",
|
||||
" WHERE a.num_oc = b.num_oc AND ",
|
||||
"a.tipo = b.tipo AND ",
|
||||
"a.fech_oc BETWEEN ? AND ? AND ",
|
||||
"b.cod_n=c.cod_n AND ",
|
||||
"b.cod_grupo = c.cod_grupo AND ",
|
||||
"b.cod_tipo = c.cod_tipo AND ",
|
||||
"b.cod_sec = c.cod_sec AND ",
|
||||
"a.status_t IS NULL AND ",criterio CLIPPED,
|
||||
#" GROUP BY 1,2,3,4",
|
||||
" ORDER BY 1,2,3,4"
|
||||
|
||||
DISPLAY "Buscando Informacion..... Espere por Favor" AT 17,14
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE busca CURSOR FOR comando
|
||||
OPEN busca USING fecha_in,fecha_fi
|
||||
|
||||
#CREACION DE VIEW PARA CLASIFICAR LAS ORDENES PERTENECIENTES A UNA MONEDA
|
||||
#ESPECIFICA.
|
||||
|
||||
CREATE VIEW ordenes (num_oc,tipo,cod_mon) AS
|
||||
SELECT UNIQUE a.num_oc,a.tipo,b.cod_mon
|
||||
FROM cotb00014 a,cotb00015 b
|
||||
WHERE a.num_oc = b.num_oc AND
|
||||
a.tipo = b.tipo AND
|
||||
#a.fecha_oc BETWEEN fecha_in AND fecha_fi AND
|
||||
a.status_t IS NULL
|
||||
|
||||
START REPORT corp032 TO "jh"
|
||||
|
||||
DISPLAY "Impresion en Proceso..... Espere por Favor" AT 17,14
|
||||
|
||||
LET idx = 1
|
||||
WHILE STATUS != NOTFOUND
|
||||
FETCH busca INTO c_datos.*
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
LET c_datos.codigo = c_datos.cod_sp USING "##",
|
||||
c_datos.cod_sp_sec USING "####",
|
||||
c_datos.moneda USING "##"
|
||||
LET c_datos.cod_cat = c_datos.categoria CLIPPED,
|
||||
c_datos.moneda USING "##"
|
||||
|
||||
LET c_datos.base = 1
|
||||
IF c_Datos.cod_n = 1 THEN
|
||||
SELECT a.base INTO c_Datos.base
|
||||
FROM intb00002 a
|
||||
WHERE a.cod_n = c_Datos.cod_n AND
|
||||
a.cod_grupo = c_datos.cod_grupo AND
|
||||
a.cod_tipo = c_datos.cod_tipo AND
|
||||
a.cod_sec = c_datos.cod_sec
|
||||
END IF
|
||||
LET c_datos.bruto = c_datos.cantidad * c_datos.precio
|
||||
LET c_datos.bruto = c_datos.bruto / c_datos.base
|
||||
IF c_datos.codigo[1,2] != "**" THEN
|
||||
OUTPUT TO REPORT corp032(c_datos.*,fecha_in,fecha_fi)
|
||||
END IF
|
||||
LET idx = idx + 1
|
||||
END WHILE
|
||||
FINISH REPORT corp032
|
||||
DROP VIEW ordenes
|
||||
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
||||
|
||||
REPORT corp032(x,fecha1,fecha2)
|
||||
|
||||
DEFINE x RECORD
|
||||
cod_sp SMALLINT,
|
||||
cod_sp_Sec SMALLINT,
|
||||
categoria CHAR(1),
|
||||
moneda LIKE cotb00015.cod_mon,
|
||||
cantidad LIKE cotb00015.cantidad,
|
||||
precio LIKE cotb00015.precio,
|
||||
cod_n LIKE cotb00015.cod_n,
|
||||
cod_grupo LIKE cotb00015.cod_n,
|
||||
cod_tipo LIKE cotb00015.cod_n,
|
||||
cod_sec LIKE cotb00015.cod_n,
|
||||
base LIKE intb00002.base,
|
||||
bruto DECIMAL(14,2),
|
||||
gastos DECIMAL(14,2),
|
||||
porc DECIMAL(10,4),
|
||||
codigo CHAR(8),
|
||||
cod_cat CHAR(3),
|
||||
gasto1 DECIMAL(12,2)
|
||||
END RECORD,
|
||||
d_moneda LIKE cotb00031.descrip_mon,
|
||||
t_sup SMALLINT
|
||||
|
||||
|
||||
DEFINE p_descrip,nom_sup CHAR(30)
|
||||
DEFINE fecha1,fecha2 DATE
|
||||
DEFINE descrip,descrip1 CHAR(30)
|
||||
DEFINE hora CHAR(5),
|
||||
negrillas_on,negrillas_off CHAR(2),
|
||||
tt_valor,gasto_tot,t_bruto,t_bruto1 DECIMAL(12,2)
|
||||
|
||||
OUTPUT
|
||||
LEFT MARGIN 2
|
||||
TOP MARGIN 1
|
||||
|
||||
ORDER BY x.codigo,x.moneda,x.cod_cat
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET hora = time
|
||||
LET negrillas_on = ASCII 27, ASCII 69
|
||||
LET negrillas_off = ASCII 27, ASCII 70
|
||||
|
||||
LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2
|
||||
PRINT COLUMN 1,negrillas_on
|
||||
PRINT COLUMN 1, "coprrp032",
|
||||
COLUMN l, p_companias.nombre CLIPPED,
|
||||
COLUMN 73, "Pag. ", pageno using "###"
|
||||
PRINT COLUMN 31, "Sistema de Compras",
|
||||
COLUMN 73, today using "dd/mm/yy"
|
||||
PRINT COLUMN 11,"RESUMEN COMPRAS CATEGORIZADAS POR NATURALEZA DE PRODUCTO"
|
||||
|
||||
PRINT negrillas_off
|
||||
PRINT COLUMN 1, "FECHA: DEL ", fecha1 USING "dd/mm/yy",
|
||||
" AL ", fecha2 USING "dd/mm/yy"
|
||||
PRINT negrillas_on
|
||||
PRINT COLUMN 1, "----------------------------------------",
|
||||
"----------------------------------------"
|
||||
|
||||
PRINT COLUMN 1, "Secuencia",
|
||||
COLUMN 15, "Suplidor",
|
||||
COLUMN 62, "Valor Compras"
|
||||
|
||||
PRINT COLUMN 1, "----------------------------------------",
|
||||
"----------------------------------------"
|
||||
|
||||
PRINT negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.codigo
|
||||
LET gasto_tot = 0
|
||||
LET t_bruto = 0
|
||||
LET tt_valor = 0
|
||||
|
||||
SELECT SUM(a.c_flete+a.otros_g) INTO gasto_tot
|
||||
FROM cotb00014 a,ordenes b
|
||||
WHERE a.cod_sp = x.cod_sp AND
|
||||
a.cod_sp_Sec = x.cod_sp_sec AND
|
||||
a.fech_oc BETWEEN fecha_in AND fecha_fi AND
|
||||
a.num_oc = b.num_oc AND
|
||||
a.tipo = b.tipo AND
|
||||
b.cod_mon = x.moneda AND
|
||||
a.status_t IS NULL
|
||||
|
||||
SELECT a.nom_sp INTO nom_sup
|
||||
FROM cotb00001 a
|
||||
WHERE a.cod_sp = x.cod_sp AND
|
||||
a.cod_sp_sec = x.cod_sp_Sec
|
||||
|
||||
PRINT COLUMN 1,negrillas_on,x.cod_sp USING "##","-",
|
||||
x.cod_sp_sec USING "####"," ",
|
||||
nom_sup,negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.moneda
|
||||
LET d_moneda = "MONEDA NO EXISTE"
|
||||
SELECT a.descrip_mon INTO d_moneda
|
||||
FROM cotb00031 a
|
||||
WHERE a.cod_mon = x.moneda
|
||||
|
||||
PRINT COLUMN 3, negrillas_on,"MONEDA: ",
|
||||
d_moneda CLIPPED, negrillas_off
|
||||
|
||||
BEFORE GROUP OF x.cod_cat
|
||||
LET t_bruto1 = 0
|
||||
|
||||
ON EVERY ROW
|
||||
LET t_bruto = t_bruto + x.bruto
|
||||
LET t_bruto1 = t_bruto1 + x.bruto
|
||||
AFTER GROUP OF x.cod_cat
|
||||
LET p_descrip = "CATEGORIA SIN DESCRIPCION"
|
||||
SELECT a.descripcion INTO p_descrip
|
||||
FROM cotb00023 a
|
||||
WHERE a.categoria = x.categoria
|
||||
|
||||
LET x.porc = 1
|
||||
IF t_bruto != 0 THEN
|
||||
LET x.porc = GROUP SUM(x.bruto) / t_bruto
|
||||
END IF
|
||||
LET x.gasto1 = x.porc * gasto_tot
|
||||
LET tt_valor = t_bruto1 + x.gasto1 + tt_valor
|
||||
|
||||
PRINT COLUMN 10, x.categoria," ",p_descrip,
|
||||
#COLUMN 57, x.base ," ",t_bruto," ",x.gasto1
|
||||
COLUMN 57, t_bruto1+x.gasto1 USING "###,###,###.##"
|
||||
|
||||
AFTER GROUP OF x.codigo
|
||||
IF t_sup IS NULL THEN
|
||||
LET t_sup = 0
|
||||
END IF
|
||||
|
||||
LET t_sup = t_sup + 1
|
||||
|
||||
PRINT COLUMN 57, "--------------"
|
||||
PRINT COLUMN 10, "Total Suplidor---> ",
|
||||
COLUMN 57, tt_valor USING "##,###,###.##"
|
||||
SKIP 1 LINE
|
||||
ON LAST ROW
|
||||
PRINT COLUMN 1, "Total Registros==> ", t_sup USING "###"
|
||||
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user