Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md

This commit is contained in:
2026-08-18 20:59:52 -04:00
commit 454973e269
5978 changed files with 2664094 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
fgl2p temnrp000.4gl
fgl2p teprrp001.4gl
fgl2p teprrp002.4gl
fgl2p teprrp003.4gl
fgl2p teprrp004.4gl
fgl2p teprrp005.4gl
fgl2p teprrp006.4gl
fgl2p teprrp007.4gl
fgl2p teprrp008.4gl
fgl2p teprrp009.4gl
fgl2p teprrp010.4gl
fgl2p teprrp011.4gl
fgl2p teprrp012.4gl
fgl2p teprrp013.4gl
fgl2p teprrp014.4gl
fgl2p -o temnrp000.42r temnrp000.42m seg000.42m msg.42m msgrp000.42m teprrp001.42m teprrp002.42m teprrp003.42m teprrp004.42m teprrp005.42m teprrp006.42m teprrp007.42m teprrp008.42m teprrp009.42m teprrp010.42m teprrp011.42m teprrp012.42m teprrp013.42m teprrp014.42m
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+59
View File
@@ -0,0 +1,59 @@
database rayovac@demo_se
screen size 24 by 80
{
cuenta_no [f000 ]
cod_cia [f001 ]
tipo_doc [a0]
num_doc [f002 ]
tipo_cliente [f003 ]
sec_cliente [f004 ]
cod_emp [f005 ]
cod_emp_sec [f006 ]
fecha_orig [f007 ]
fecha_ven [f008 ]
aplica_a [f009 ]
banco [f010 ]
num_cheque [f011 ]
valor [f012 ]
valor_efectivo [f013 ]
valor_cheque [f014 ]
costo [f015 ]
monto_desc [f016 ]
status_t [a]
us_crea [f017 ]
}
screen
{
fech_crea [f018 ]
us_mod [f019 ]
fech_mod [f020 ]
}
end
tables
cctb00001
attributes
f000 = cctb00001.cuenta_no;
f001 = cctb00001.cod_cia;
a0 = cctb00001.tipo_doc;
f002 = cctb00001.num_doc;
f003 = cctb00001.tipo_cliente;
f004 = cctb00001.sec_cliente;
f005 = cctb00001.cod_emp;
f006 = cctb00001.cod_emp_sec;
f007 = cctb00001.fecha_orig;
f008 = cctb00001.fecha_ven;
f009 = cctb00001.aplica_a;
f010 = cctb00001.banco;
f011 = cctb00001.num_cheque;
f012 = cctb00001.valor;
f013 = cctb00001.valor_efectivo;
f014 = cctb00001.valor_cheque;
f015 = cctb00001.costo;
f016 = cctb00001.monto_desc;
a = cctb00001.status_t;
f017 = cctb00001.us_crea;
f018 = cctb00001.fech_crea;
f019 = cctb00001.us_mod;
f020 = cctb00001.fech_mod;
end
+4
View File
@@ -0,0 +1,4 @@
select count(*), cheque_no, banco, codigo
from tetb00006
group by 2,3,4
order by 1 desc
+60
View File
@@ -0,0 +1,60 @@
database rayovac@demo_se end
DEFINE VARIABLE negrillas_on CHAR(2)
VARIABLE negrillas_off CHAR(2)
END
OUTPUT REPORT TO "jh" END
SELECT
a.sec_vend,
a.cod_n,
a.cod_grupo,
a.cod_tipo,
a.cod_sec,
a.porc_ventas,
a.porc_cobros,
b.nom1_emp,
b.apell1_emp,
c.descrip_esp
FROM cctb00008 a,adtb00003 b,intb00001 c
WHERE a.sec_vend = b.num_emp AND (b.status_t IS NULL OR b.status_t = "I") AND
a.cod_n = c.cod_n AND
a.cod_grupo = c.cod_grupo AND
a.cod_tipo = c.cod_tipo AND
a.cod_sec = c.cod_sec
ORDER BY 1,2,3,4,5
END
FORMAT
PAGE HEADER
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
PRINT COLUMN 1, "comision.ace",
COLUMN 19, "R A Y .O. V A C D O M I N I C A N A, S. A.",
COLUMN 70, "Pag. ",pageno USING "<<<"
PRINT COLUMN 19, " VALIDACION COMISIONES",
COLUMN 70, TODAY USING "DD/MM/YY"
PRINT COLUMN 70, TIME
SKIP 1 LINE
PRINT "----------------------------------------------------------------",
"------------------------------"
PRINT COLUMN 40, "PORCENTAJE",
COLUMN 60, "PORCENTAJE"
PRINT COLUMN 1, "ARTICULOS",
COLUMN 40, "VENTAS",
COLUMN 60, "COBROS"
PRINT "----------------------------------------------------------------",
"------------------------------"
BEFORE GROUP OF 1
PRINT negrillas_on
PRINT "VENDEDOR:",sec_vend using "<<<"," ",nom1_emp CLIPPED," ",apell1_emp
PRINT negrillas_off
ON EVERY ROW
PRINT COLUMN 1,cod_n USING "&","-",cod_grupo USING "&","-",cod_tipo USING "&&",
"-",cod_sec USING "&&&"," ",descrip_esp,
COLUMN 40,porc_ventas USING "###.####",
COLUMN 60,porc_cobros USING "###.####"
AFTER GROUP OF 2
PRINT "----------------------------------------------------------------",
"------------------------------"
END
+7
View File
@@ -0,0 +1,7 @@
cat /dev/null > tablaste
for i in `cat listatb`
do
echo $i
dbschema -d rayovac -t $i >> tablaste
done
+8
View File
@@ -0,0 +1,8 @@
tetb00001
tetb00002
tetb00003
tetb00004
tetb00005
tetb00006
tetb00007
tetb00008
+66
View File
@@ -0,0 +1,66 @@
b 
teprrp011 R A Y . O . V A C D O M I N I C A N A, S. A. Pag. 1
Sistema de Tesoreria 21/05/2001
Panoramico de Cash Flow Real 11:43
Expresados Em Miles (1000)
FECHA : Desde OCTUBRE Del 2000 Hasta MAYO Del 2001
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Partida OCTUBRE NOVIEMBRE DICIEMBRE ENERO FEBRERO MARZO ABRIL MAYO JUNIO JULIO AGOSTO SEPTIEMBRE TOTALES
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
c
b INGRESOSc
b ========c
1 COBROS LOCALES 17,566| 16,389| 18,522| 14,510| 18,892| 19,762| 8,055| 9,912| | | | | 123,606|
2 COBROS EXPORTACION 2,079| 1,007| 2,530| 3,550| 3,557| 2,561| 3,020| 3| | | | | 18,308|
3 PRESTAMOS BANCARIOS | | | | | | | | | | | | |
4 OTROS INGRESOS 441| 192| 240| 29| 166| 1,350| 113| 120| | | | | 2,650|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL INGRESOS 20,086| 17,588| 21,291| 18,089| 22,615| 23,674| 11,187| 10,035| | | | | 144,565|
b DESEMBOLSOSc
b ===========c
b DESEMBOLSOS INTERNACIONALES (TASA UTILIZADA RD$16.50)c
5 RAYOVAC CORPORATION | | | | | | | | | | | | |
6 PALMERA CORP. | | | | | | | | | | | | |
7 MARBLE CO. OF JAPAN | | | | | | | | | | | | |
8 MITSUI & CO. LTD. | | | | | | | | | | | | |
9 RAYOVAC DE MEXICO,S. A.DE C.V. | | 72| | 761| | | | | | | | 833|
10 RAYOVAC DE GUATEMALA, S. A. | | | | 261| | | | | | | | 261|
11 CIA. MINERA AUTLAN, S. A. | | | | | | | | | | | | |
13 OTROS PROVEED. INTERNACIONALES 328| 563| 886| 817| 596| 79| | | | | | | 3,269|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS INTERN. 328| 563| 958| 817| 1,618| 79| | | | | | | 4,363|
b DESEMBOLSOS LOCALESc
14 ENVASES ANTILLANOS | 147| | | 456| | | | | | | | 603|
15 ENVASES TROPICALES | | 2,668| 198| | | | | | | | | 2,867|
16 PROVEEDORES LOCALES 1,233| 546| 1,683| 525| 860| 360| | | | | | | 5,206|
17 IMPUESTOS ADUANA 2,894| 2,491| 1,854| 3,143| 1,673| 61| | | | | | | 12,116|
18 ITBIS 1,200| 260| 1,453| 1,633| | | | | | | | | 4,545|
19 COOPERATIVA Y CASA CLUB 309| 341| 145| 261| 139| 2| | | | | | | 1,197|
20 DESEMBOL.GENERALES OPERATIVOS 1,018| 1,231| 3,519| 890| 932| 321| | | | | | | 7,910|
21 FLETES 154| 127| 237| 134| 122| 45| | | | | | | 818|
22 INTERES. BCOS. Y COMIS.IMPORT. | | | | | | | | | | | | |
23 PUBLICIDAD Y PROMOCION 637| 740| 1,663| 1,134| 928| 501| | | | | | | 5,604|
24 OTROS LOCALES, INCL.ANTIC.ISR 1,347| | | 8,492| 1,639| | | | | | | | 11,478|
25 NOMINAS 1,228| 4,403| 2,982| 1,206| 974| 662| | | | | | | 11,454|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS LOCALES 10,018| 10,286| 16,203| 17,617| 7,724| 1,950| | | | | | | 63,798|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS 10,346| 10,849| 17,161| 18,434| 9,341| 2,030| | | | | | | 68,161|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
FLUJO OPERATIVO 9,740| 6,739| 4,130| -345| 13,274| 21,644| 11,187| 10,035| | | | | 76,404|
BALANCE INICIAL | 9,740| 16,479| 20,609| 20,265| 33,538| 55,182| 66,369| 76,404| 76,404| 76,404| 76,404| |
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
BALANCE FINAL 9,740| 16,479| 20,609| 20,265| 33,538| 55,182| 66,369| 76,404| 76,404| 76,404| 76,404| 76,404| 76,404|
c
 c
+66
View File
@@ -0,0 +1,66 @@
b 
teprrp011 R A Y . O . V A C D O M I N I C A N A, S. A. Pag. 1
Sistema de Tesoreria 16/05/2001
Panoramico de Cash Flow Real 08:28
Expresados Em Miles (1000)
FECHA: De OCTUBRE A SEPTIEMBRE Del 2001
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Partida OCTUBRE NOVIEMBRE DICIEMBRE ENERO FEBRERO MARZO ABRIL MAYO JUNIO JULIO AGOSTO SEPTIEMBRE TOTALES
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
c
b INGRESOSc
b ========c
1 COBROS LOCALES 17,566| 16,389| 18,522| 14,510| 18,892| 19,762| 8,055| 9,792| | | | | 123,486|
2 COBROS EXPORTACION 2,079| 1,007| 2,530| 3,550| 3,557| 2,561| 3,020| 3| | | | | 18,308|
3 PRESTAMOS BANCARIOS | | | | | | | | | | | | |
4 OTROS INGRESOS 441| 192| 240| 29| 166| 1,350| 113| 106| | | | | 2,636|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL INGRESOS 20,086| 17,588| 21,291| 18,089| 22,615| 23,674| 11,187| 9,900| | | | | 144,431|
b DESEMBOLSOSc
b ===========c
b DESEMBOLSOS INTERNACIONALES (TASA UTILIZADA RD$11.00)c
5 RAYOVAC CORPORATION | | | | | | | | | | | | |
6 PALMERA CORP. | | | | | | | | | | | | |
7 MARBLE CO. OF JAPAN | | | | | | | | | | | | |
8 MITSUI & CO. LTD. | | | | | | | | | | | | |
9 RAYOVAC DE MEXICO,S. A.DE C.V. | | 48| | 507| | | | | | | | 555|
10 RAYOVAC DE GUATEMALA, S. A. | | | | 174| | | | | | | | 174|
11 CIA. MINERA AUTLAN, S. A. | | | | | | | | | | | | |
13 OTROS PROVEED. INTERNACIONALES 218| 375| 591| 544| 397| 53| | | | | | | 2,179|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS INTERN. 218| 375| 639| 544| 1,079| 53| | | | | | | 2,908|
b DESEMBOLSOS LOCALESc
14 ENVASES ANTILLANOS | 147| | | 456| | | | | | | | 603|
15 ENVASES TROPICALES | | 2,668| 198| | | | | | | | | 2,867|
16 PROVEEDORES LOCALES 1,233| 546| 1,683| 525| 860| 360| | | | | | | 5,206|
17 IMPUESTOS ADUANA 2,894| 2,491| 1,854| 3,143| 1,673| 61| | | | | | | 12,116|
18 ITBIS 1,200| 260| 1,453| 1,633| | | | | | | | | 4,545|
19 COOPERATIVA Y CASA CLUB 309| 341| 145| 261| 139| 2| | | | | | | 1,197|
20 DESEMBOL.GENERALES OPERATIVOS 1,018| 1,231| 3,519| 890| 932| 321| | | | | | | 7,910|
21 FLETES 154| 127| 237| 134| 122| 45| | | | | | | 818|
22 INTERES. BCOS. Y COMIS.IMPORT. | | | | | | | | | | | | |
23 PUBLICIDAD Y PROMOCION 637| 740| 1,663| 1,134| 928| 501| | | | | | | 5,604|
24 OTROS LOCALES, INCL.ANTIC.ISR 1,347| | | 8,492| 1,639| | | | | | | | 11,478|
25 NOMINAS 1,228| 4,403| 2,982| 1,206| 974| 662| | | | | | | 11,454|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS LOCALES 10,018| 10,286| 16,203| 17,617| 7,724| 1,950| | | | | | | 63,798|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS 10,237| 10,661| 16,842| 18,161| 8,802| 2,003| | | | | | | 66,707|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
FLUJO OPERATIVO 9,849| 6,927| 4,450| -73| 13,813| 21,671| 11,187| 9,900| | | | | 77,724|
BALANCE INICIAL | 9,849| 16,776| 21,226| 21,153| 34,966| 56,636| 67,824| 77,724| 77,724| 77,724| 77,724| |
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
BALANCE FINAL 9,849| 16,776| 21,226| 21,153| 34,966| 56,636| 67,824| 77,724| 77,724| 77,724| 77,724| 77,724| 21,226|
c
 c
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
View File
+138
View File
@@ -0,0 +1,138 @@
DBSCHEMA Schema Utility INFORMIX-SQL Version 7.11.UC1
Copyright (C) Informix Software, Inc., 1984-1995
Software Serial Number AAB#J427560
{ TABLE "sysinfo".tetb00001 row size = 71 number of columns = 11 index size = 12
}
create table "sysinfo".tetb00001
(
num_doc serial not null constraint "usainf01".n351_88,
cuenta_no char(8),
cta_banco char(13),
procedencia smallint,
fecha date,
monto decimal(12,2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00001 from "public";
create unique index "sysinfo".ix1278_1 on "sysinfo".tetb00001 (num_doc);
{ TABLE "sysinfo".tetb00002 row size = 65 number of columns = 7 index size = 9 }
create table "sysinfo".tetb00002
(
procedencia smallint not null constraint "usainf01".n352_89,
descripcion char(30),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00002 from "public";
create unique index "sysinfo".ix367_1 on "sysinfo".tetb00002 (procedencia);
{ TABLE "sysinfo".tetb00003 row size = 67 number of columns = 8 index size = 0 }
create table "sysinfo".tetb00003
(
codigo smallint,
descripcion char(30),
tipo char(2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00003 from "public";
{ TABLE "sysinfo".tetb00004 row size = 51 number of columns = 9 index size = 0 }
create table "sysinfo".tetb00004
(
codigo integer,
ano integer,
mes smallint,
valor decimal(14,2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00004 from "public";
{ TABLE "sysinfo".tetb00005 row size = 51 number of columns = 9 index size = 0 }
create table "sysinfo".tetb00005
(
codigo integer,
ano integer,
mes smallint,
valor_real decimal(14,2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00005 from "public";
{ TABLE "sysinfo".tetb00006 row size = 49 number of columns = 8 index size = 12 }
create table "sysinfo".tetb00006
(
cheque_no integer,
banco char(8),
codigo integer,
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00006 from "public";
create index "sysinfo".ix495_1 on "sysinfo".tetb00006 (cheque_no);
{ TABLE "sysinfo".tetb00007 row size = 51 number of columns = 8 index size = 0 }
create table "sysinfo".tetb00007
(
ano integer,
valor decimal(12,2),
valor1 decimal(12,2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00007 from "public";
{ TABLE "sysinfo".tetb00008 row size = 50 number of columns = 9 index size = 0 }
create table "sysinfo".tetb00008
(
sec_vend smallint,
fecha date,
cod_n smallint,
porc_cobros1 decimal(8,2),
porc_cobros2 decimal(8,2),
us_crea char(9),
fecha_crea datetime year to minute,
us_mod char(9),
fecha_mod datetime year to minute
);
revoke all on "sysinfo".tetb00008 from "public";
+5
View File
@@ -0,0 +1,5 @@
fgl2p temncs000.4gl
fgl2p teprcs001.4gl
fgl2p teprcs002.4gl
fgl2p -o temncs000.42r temncs000.42m teprcs001.42m teprcs002.42m seg000.42m msg.42m msgrp000.42m
+17
View File
@@ -0,0 +1,17 @@
fgl2p temnrp000.4gl
fgl2p teprrp001.4gl
fgl2p teprrp002.4gl
fgl2p teprrp003.4gl
fgl2p teprrp004.4gl
fgl2p teprrp005.4gl
fgl2p teprrp006.4gl
fgl2p teprrp007.4gl
fgl2p teprrp008.4gl
fgl2p teprrp009.4gl
fgl2p teprrp010.4gl
fgl2p teprrp011.4gl
fgl2p teprrp012.4gl
fgl2p teprrp013.4gl
fgl2p teprrp014.4gl
fgl2p -o temnrp000.42r temnrp000.42m seg000.42m msg.42m msgrp000.42m teprrp001.42m teprrp002.42m teprrp003.42m teprrp004.42m teprrp005.42m teprrp006.42m teprrp007.42m teprrp008.42m teprrp009.42m teprrp010.42m teprrp011.42m teprrp012.42m teprrp013.42m teprrp014.42m
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+59
View File
@@ -0,0 +1,59 @@
database rayovac@demo_se
screen size 24 by 80
{
cuenta_no [f000 ]
cod_cia [f001 ]
tipo_doc [a0]
num_doc [f002 ]
tipo_cliente [f003 ]
sec_cliente [f004 ]
cod_emp [f005 ]
cod_emp_sec [f006 ]
fecha_orig [f007 ]
fecha_ven [f008 ]
aplica_a [f009 ]
banco [f010 ]
num_cheque [f011 ]
valor [f012 ]
valor_efectivo [f013 ]
valor_cheque [f014 ]
costo [f015 ]
monto_desc [f016 ]
status_t [a]
us_crea [f017 ]
}
screen
{
fech_crea [f018 ]
us_mod [f019 ]
fech_mod [f020 ]
}
end
tables
cctb00001
attributes
f000 = cctb00001.cuenta_no;
f001 = cctb00001.cod_cia;
a0 = cctb00001.tipo_doc;
f002 = cctb00001.num_doc;
f003 = cctb00001.tipo_cliente;
f004 = cctb00001.sec_cliente;
f005 = cctb00001.cod_emp;
f006 = cctb00001.cod_emp_sec;
f007 = cctb00001.fecha_orig;
f008 = cctb00001.fecha_ven;
f009 = cctb00001.aplica_a;
f010 = cctb00001.banco;
f011 = cctb00001.num_cheque;
f012 = cctb00001.valor;
f013 = cctb00001.valor_efectivo;
f014 = cctb00001.valor_cheque;
f015 = cctb00001.costo;
f016 = cctb00001.monto_desc;
a = cctb00001.status_t;
f017 = cctb00001.us_crea;
f018 = cctb00001.fech_crea;
f019 = cctb00001.us_mod;
f020 = cctb00001.fech_mod;
end
+4
View File
@@ -0,0 +1,4 @@
select count(*), cheque_no, banco, codigo
from tetb00006
group by 2,3,4
order by 1 desc
+60
View File
@@ -0,0 +1,60 @@
database rayovac@demo_se end
DEFINE VARIABLE negrillas_on CHAR(2)
VARIABLE negrillas_off CHAR(2)
END
OUTPUT REPORT TO "jh" END
SELECT
a.sec_vend,
a.cod_n,
a.cod_grupo,
a.cod_tipo,
a.cod_sec,
a.porc_ventas,
a.porc_cobros,
b.nom1_emp,
b.apell1_emp,
c.descrip_esp
FROM cctb00008 a,adtb00003 b,intb00001 c
WHERE a.sec_vend = b.num_emp AND (b.status_t IS NULL OR b.status_t = "I") AND
a.cod_n = c.cod_n AND
a.cod_grupo = c.cod_grupo AND
a.cod_tipo = c.cod_tipo AND
a.cod_sec = c.cod_sec
ORDER BY 1,2,3,4,5
END
FORMAT
PAGE HEADER
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
PRINT COLUMN 1, "comision.ace",
COLUMN 19, "R A Y .O. V A C D O M I N I C A N A, S. A.",
COLUMN 70, "Pag. ",pageno USING "<<<"
PRINT COLUMN 19, " VALIDACION COMISIONES",
COLUMN 70, TODAY USING "DD/MM/YY"
PRINT COLUMN 70, TIME
SKIP 1 LINE
PRINT "----------------------------------------------------------------",
"------------------------------"
PRINT COLUMN 40, "PORCENTAJE",
COLUMN 60, "PORCENTAJE"
PRINT COLUMN 1, "ARTICULOS",
COLUMN 40, "VENTAS",
COLUMN 60, "COBROS"
PRINT "----------------------------------------------------------------",
"------------------------------"
BEFORE GROUP OF 1
PRINT negrillas_on
PRINT "VENDEDOR:",sec_vend using "<<<"," ",nom1_emp CLIPPED," ",apell1_emp
PRINT negrillas_off
ON EVERY ROW
PRINT COLUMN 1,cod_n USING "&","-",cod_grupo USING "&","-",cod_tipo USING "&&",
"-",cod_sec USING "&&&"," ",descrip_esp,
COLUMN 40,porc_ventas USING "###.####",
COLUMN 60,porc_cobros USING "###.####"
AFTER GROUP OF 2
PRINT "----------------------------------------------------------------",
"------------------------------"
END
+7
View File
@@ -0,0 +1,7 @@
cat /dev/null > tablaste
for i in `cat listatb`
do
echo $i
dbschema -d rayovac -t $i >> tablaste
done
+8
View File
@@ -0,0 +1,8 @@
tetb00001
tetb00002
tetb00003
tetb00004
tetb00005
tetb00006
tetb00007
tetb00008
+66
View File
@@ -0,0 +1,66 @@
b 
teprrp011 R A Y . O . V A C D O M I N I C A N A, S. A. Pag. 1
Sistema de Tesoreria 21/05/2001
Panoramico de Cash Flow Real 11:43
Expresados Em Miles (1000)
FECHA : Desde OCTUBRE Del 2000 Hasta MAYO Del 2001
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Partida OCTUBRE NOVIEMBRE DICIEMBRE ENERO FEBRERO MARZO ABRIL MAYO JUNIO JULIO AGOSTO SEPTIEMBRE TOTALES
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
c
b INGRESOSc
b ========c
1 COBROS LOCALES 17,566| 16,389| 18,522| 14,510| 18,892| 19,762| 8,055| 9,912| | | | | 123,606|
2 COBROS EXPORTACION 2,079| 1,007| 2,530| 3,550| 3,557| 2,561| 3,020| 3| | | | | 18,308|
3 PRESTAMOS BANCARIOS | | | | | | | | | | | | |
4 OTROS INGRESOS 441| 192| 240| 29| 166| 1,350| 113| 120| | | | | 2,650|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL INGRESOS 20,086| 17,588| 21,291| 18,089| 22,615| 23,674| 11,187| 10,035| | | | | 144,565|
b DESEMBOLSOSc
b ===========c
b DESEMBOLSOS INTERNACIONALES (TASA UTILIZADA RD$16.50)c
5 RAYOVAC CORPORATION | | | | | | | | | | | | |
6 PALMERA CORP. | | | | | | | | | | | | |
7 MARBLE CO. OF JAPAN | | | | | | | | | | | | |
8 MITSUI & CO. LTD. | | | | | | | | | | | | |
9 RAYOVAC DE MEXICO,S. A.DE C.V. | | 72| | 761| | | | | | | | 833|
10 RAYOVAC DE GUATEMALA, S. A. | | | | 261| | | | | | | | 261|
11 CIA. MINERA AUTLAN, S. A. | | | | | | | | | | | | |
13 OTROS PROVEED. INTERNACIONALES 328| 563| 886| 817| 596| 79| | | | | | | 3,269|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS INTERN. 328| 563| 958| 817| 1,618| 79| | | | | | | 4,363|
b DESEMBOLSOS LOCALESc
14 ENVASES ANTILLANOS | 147| | | 456| | | | | | | | 603|
15 ENVASES TROPICALES | | 2,668| 198| | | | | | | | | 2,867|
16 PROVEEDORES LOCALES 1,233| 546| 1,683| 525| 860| 360| | | | | | | 5,206|
17 IMPUESTOS ADUANA 2,894| 2,491| 1,854| 3,143| 1,673| 61| | | | | | | 12,116|
18 ITBIS 1,200| 260| 1,453| 1,633| | | | | | | | | 4,545|
19 COOPERATIVA Y CASA CLUB 309| 341| 145| 261| 139| 2| | | | | | | 1,197|
20 DESEMBOL.GENERALES OPERATIVOS 1,018| 1,231| 3,519| 890| 932| 321| | | | | | | 7,910|
21 FLETES 154| 127| 237| 134| 122| 45| | | | | | | 818|
22 INTERES. BCOS. Y COMIS.IMPORT. | | | | | | | | | | | | |
23 PUBLICIDAD Y PROMOCION 637| 740| 1,663| 1,134| 928| 501| | | | | | | 5,604|
24 OTROS LOCALES, INCL.ANTIC.ISR 1,347| | | 8,492| 1,639| | | | | | | | 11,478|
25 NOMINAS 1,228| 4,403| 2,982| 1,206| 974| 662| | | | | | | 11,454|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS LOCALES 10,018| 10,286| 16,203| 17,617| 7,724| 1,950| | | | | | | 63,798|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS 10,346| 10,849| 17,161| 18,434| 9,341| 2,030| | | | | | | 68,161|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
FLUJO OPERATIVO 9,740| 6,739| 4,130| -345| 13,274| 21,644| 11,187| 10,035| | | | | 76,404|
BALANCE INICIAL | 9,740| 16,479| 20,609| 20,265| 33,538| 55,182| 66,369| 76,404| 76,404| 76,404| 76,404| |
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
BALANCE FINAL 9,740| 16,479| 20,609| 20,265| 33,538| 55,182| 66,369| 76,404| 76,404| 76,404| 76,404| 76,404| 76,404|
c
 c
+66
View File
@@ -0,0 +1,66 @@
b 
teprrp011 R A Y . O . V A C D O M I N I C A N A, S. A. Pag. 1
Sistema de Tesoreria 16/05/2001
Panoramico de Cash Flow Real 08:28
Expresados Em Miles (1000)
FECHA: De OCTUBRE A SEPTIEMBRE Del 2001
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Partida OCTUBRE NOVIEMBRE DICIEMBRE ENERO FEBRERO MARZO ABRIL MAYO JUNIO JULIO AGOSTO SEPTIEMBRE TOTALES
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
c
b INGRESOSc
b ========c
1 COBROS LOCALES 17,566| 16,389| 18,522| 14,510| 18,892| 19,762| 8,055| 9,792| | | | | 123,486|
2 COBROS EXPORTACION 2,079| 1,007| 2,530| 3,550| 3,557| 2,561| 3,020| 3| | | | | 18,308|
3 PRESTAMOS BANCARIOS | | | | | | | | | | | | |
4 OTROS INGRESOS 441| 192| 240| 29| 166| 1,350| 113| 106| | | | | 2,636|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL INGRESOS 20,086| 17,588| 21,291| 18,089| 22,615| 23,674| 11,187| 9,900| | | | | 144,431|
b DESEMBOLSOSc
b ===========c
b DESEMBOLSOS INTERNACIONALES (TASA UTILIZADA RD$11.00)c
5 RAYOVAC CORPORATION | | | | | | | | | | | | |
6 PALMERA CORP. | | | | | | | | | | | | |
7 MARBLE CO. OF JAPAN | | | | | | | | | | | | |
8 MITSUI & CO. LTD. | | | | | | | | | | | | |
9 RAYOVAC DE MEXICO,S. A.DE C.V. | | 48| | 507| | | | | | | | 555|
10 RAYOVAC DE GUATEMALA, S. A. | | | | 174| | | | | | | | 174|
11 CIA. MINERA AUTLAN, S. A. | | | | | | | | | | | | |
13 OTROS PROVEED. INTERNACIONALES 218| 375| 591| 544| 397| 53| | | | | | | 2,179|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS INTERN. 218| 375| 639| 544| 1,079| 53| | | | | | | 2,908|
b DESEMBOLSOS LOCALESc
14 ENVASES ANTILLANOS | 147| | | 456| | | | | | | | 603|
15 ENVASES TROPICALES | | 2,668| 198| | | | | | | | | 2,867|
16 PROVEEDORES LOCALES 1,233| 546| 1,683| 525| 860| 360| | | | | | | 5,206|
17 IMPUESTOS ADUANA 2,894| 2,491| 1,854| 3,143| 1,673| 61| | | | | | | 12,116|
18 ITBIS 1,200| 260| 1,453| 1,633| | | | | | | | | 4,545|
19 COOPERATIVA Y CASA CLUB 309| 341| 145| 261| 139| 2| | | | | | | 1,197|
20 DESEMBOL.GENERALES OPERATIVOS 1,018| 1,231| 3,519| 890| 932| 321| | | | | | | 7,910|
21 FLETES 154| 127| 237| 134| 122| 45| | | | | | | 818|
22 INTERES. BCOS. Y COMIS.IMPORT. | | | | | | | | | | | | |
23 PUBLICIDAD Y PROMOCION 637| 740| 1,663| 1,134| 928| 501| | | | | | | 5,604|
24 OTROS LOCALES, INCL.ANTIC.ISR 1,347| | | 8,492| 1,639| | | | | | | | 11,478|
25 NOMINAS 1,228| 4,403| 2,982| 1,206| 974| 662| | | | | | | 11,454|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS LOCALES 10,018| 10,286| 16,203| 17,617| 7,724| 1,950| | | | | | | 63,798|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
TOTAL DESEMBOLSOS 10,237| 10,661| 16,842| 18,161| 8,802| 2,003| | | | | | | 66,707|
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
FLUJO OPERATIVO 9,849| 6,927| 4,450| -73| 13,813| 21,671| 11,187| 9,900| | | | | 77,724|
BALANCE INICIAL | 9,849| 16,776| 21,226| 21,153| 34,966| 56,636| 67,824| 77,724| 77,724| 77,724| 77,724| |
---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|
BALANCE FINAL 9,849| 16,776| 21,226| 21,153| 34,966| 56,636| 67,824| 77,724| 77,724| 77,724| 77,724| 77,724| 21,226|
c
 c
+138
View File
@@ -0,0 +1,138 @@
DBSCHEMA Schema Utility INFORMIX-SQL Version 7.11.UC1
Copyright (C) Informix Software, Inc., 1984-1995
Software Serial Number AAB#J427560
{ TABLE "sysinfo".tetb00001 row size = 71 number of columns = 11 index size = 12
}
create table "sysinfo".tetb00001
(
num_doc serial not null constraint "usainf01".n351_88,
cuenta_no char(8),
cta_banco char(13),
procedencia smallint,
fecha date,
monto decimal(12,2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00001 from "public";
create unique index "sysinfo".ix1278_1 on "sysinfo".tetb00001 (num_doc);
{ TABLE "sysinfo".tetb00002 row size = 65 number of columns = 7 index size = 9 }
create table "sysinfo".tetb00002
(
procedencia smallint not null constraint "usainf01".n352_89,
descripcion char(30),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00002 from "public";
create unique index "sysinfo".ix367_1 on "sysinfo".tetb00002 (procedencia);
{ TABLE "sysinfo".tetb00003 row size = 67 number of columns = 8 index size = 0 }
create table "sysinfo".tetb00003
(
codigo smallint,
descripcion char(30),
tipo char(2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00003 from "public";
{ TABLE "sysinfo".tetb00004 row size = 51 number of columns = 9 index size = 0 }
create table "sysinfo".tetb00004
(
codigo integer,
ano integer,
mes smallint,
valor decimal(14,2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00004 from "public";
{ TABLE "sysinfo".tetb00005 row size = 51 number of columns = 9 index size = 0 }
create table "sysinfo".tetb00005
(
codigo integer,
ano integer,
mes smallint,
valor_real decimal(14,2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00005 from "public";
{ TABLE "sysinfo".tetb00006 row size = 49 number of columns = 8 index size = 12 }
create table "sysinfo".tetb00006
(
cheque_no integer,
banco char(8),
codigo integer,
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00006 from "public";
create index "sysinfo".ix495_1 on "sysinfo".tetb00006 (cheque_no);
{ TABLE "sysinfo".tetb00007 row size = 51 number of columns = 8 index size = 0 }
create table "sysinfo".tetb00007
(
ano integer,
valor decimal(12,2),
valor1 decimal(12,2),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
revoke all on "sysinfo".tetb00007 from "public";
{ TABLE "sysinfo".tetb00008 row size = 50 number of columns = 9 index size = 0 }
create table "sysinfo".tetb00008
(
sec_vend smallint,
fecha date,
cod_n smallint,
porc_cobros1 decimal(8,2),
porc_cobros2 decimal(8,2),
us_crea char(9),
fecha_crea datetime year to minute,
us_mod char(9),
fecha_mod datetime year to minute
);
revoke all on "sysinfo".tetb00008 from "public";
+5
View File
@@ -0,0 +1,5 @@
fgl2p temncs000.4gl
fgl2p teprcs001.4gl
fgl2p teprcs002.4gl
fgl2p -o temncs000.42r temncs000.42m teprcs001.42m teprcs002.42m seg000.42m msg.42m msgrp000.42m
+28
View File
@@ -0,0 +1,28 @@
fglform tefmcs001.per
fglform tefmcs002.per
fglform tefmmt001.per
fglform tefmmt002.per
fglform tefmmt003.per
fglform tefmmt004.per
fglform tefmmt005.per
fglform tefmmt006.per
fglform tefmmt007.per
fglform tefmmt008.per
fglform tefmmt010.per
fglform tefmmt011.per
fglform tefmmt022.per
fglform tefmrp001.per
fglform tefmrp002.per
fglform tefmrp003.per
fglform tefmrp004.per
fglform tefmrp005.per
fglform tefmrp006.per
fglform tefmrp007.per
fglform tefmrp008.per
fglform tefmrp009.per
fglform tefmrp010.per
fglform tefmrp011.per
fglform tefmrp013.per
fglform tefmrp014.per
fglform tefmwd001.per
fglform tefmwd002.per
+50
View File
@@ -0,0 +1,50 @@
database rayovac
screen size 24 by 80
{
Fecha Inicial [a ] Fecha Final [b ]
Cliente : [c1]-[c2 ] [n1 ]
[d1 ]
[d2 ]
Limite Credito [lc ] Prima [pr ] Balance Inicial [ba ]
\g------------------------------------------------------------------------------\g
D O C U M E N T O A F E C T A
Numero Tipo Fecha Numero Debito Credito Balance
\g------------------------------------------------------------------------------\g
[nm ][tp] [f1 ] [nm1 ] [db ][cr ][bf ]
[nm ][tp] [f1 ] [nm1 ] [db ][cr ][bf ]
[nm ][tp] [f1 ] [nm1 ] [db ][cr ][bf ]
[nm ][tp] [f1 ] [nm1 ] [db ][cr ][bf ]
[nm ][tp] [f1 ] [nm1 ] [db ][cr ][bf ]
}
end
tables
cctb00001
vetb00002
vetb00004
attributes
a = formonly.fecha_inicial type date,color=blue,format = "dd/mm/yyyy",autonext,
comments = "Fecha inicial del recibo de pago";
b = formonly.fecha_final type date,color=blue,format = "dd/mm/yyyy",autonext,
comments = "Fecha final del recibo de pago";
c1 = cctb00001.tipo_cliente,autonext,color=blue;
c2 = cctb00001.sec_cliente,color=blue;
n1 = vetb00004.nombre,noentry,color=blue;
d1 = formonly.direccion,noentry,color=blue;
d2 = formonly.ciudad,noentry,color=blue;
lc = formonly.limite,noentry,color=blue;
ba = formonly.balance type decimal(12,2),noentry,color=blue;
pr = formonly.prima,color=blue,
comments= "Introduzca Prima Para Valorizar Estados";
nm = cctb00001.num_doc,color=blue;
tp = cctb00001.tipo_doc,noentry,color=blue;
f1 = cctb00001.fecha_orig,noentry,format = "dd/mm/yyyy",color=blue;
nm1 = cctb00001.aplica_a,noentry,color=blue;
db = formonly.debito type decimal(12,2),noentry,color=blue;
cr = formonly.credito type decimal(12,2),noentry,color=blue;
bf = formonly.balance1 type decimal(12,2),noentry,color=blue;
INSTRUCTIONS DELIMITERS " "
screen record cuenta[5] (num_doc,tipo_doc,fecha_orig,aplica_a, debito,
credito,balance1)
end
+58
View File
@@ -0,0 +1,58 @@
{
==============================================================================
FORMULARIO : CPFMCS002
OBJETIVO : Desplegar el estado de cuenta de un suplidor en un
rango de fecha
PROGRAMA Q. LO USA: TEPRCS002
AUTOR : Tadeo A. Ferreras
FECHA : Septimebre 16, 1993
==============================================================================
}
database rayovac
screen size 24 by 80
{
Fecha Inicial [a ] Fecha Final [b ]
Suplidor :[c1]-[c2 ] [n1 ]
[d1 ]
[d2 ]
Prima [pr ] Balance Inicial [ba ]
\g------------------------------------------------------------------------------\g
D O C U M E N T O
Numero Tipo Fecha Aplicado A Debito Credito Balance
\g------------------------------------------------------------------------------\g
[nm ][tp][f1 ][nm1 ][db ][cr ][bf ]
[nm ][tp][f1 ][nm1 ][db ][cr ][bf ]
[nm ][tp][f1 ][nm1 ][db ][cr ][bf ]
[nm ][tp][f1 ][nm1 ][db ][cr ][bf ]
[nm ][tp][f1 ][nm1 ][db ][cr ][bf ]
}
end
tables
cptb00001
cotb00001
attributes
a = formonly.fecha_inicial type date,color=blue,format = "dd/mm/yyyy",autonext,
comments = "Fecha inicial del recibo de pago";
b = formonly.fecha_final type date,color=blue,format = "dd/mm/yyyy",autonext,
comments = "Fecha final del recibo de pago";
c1 = cptb00001.cod_sp,autonext,color=blue;
c2 = cptb00001.cod_sp_sec,color=blue;
n1 = cotb00001.nom_sp,noentry,color=blue;
d1 = formonly.direccion,noentry,color=blue;
d2 = formonly.ciu_sp,noentry,color=blue;
ba = formonly.balance type decimal(12,2),noentry,color=blue;
pr = formonly.prima,color=blue,
comments= "Introduzca Prima Para Valorizar Estados";
nm = cptb00001.num_doc,color=blue;
tp = cptb00001.tipo_doc,noentry,color=blue;
f1 = cptb00001.fecha_orig,noentry,format = "dd/mm/yyyy",color=blue;
nm1 = formonly.aplica_a type char,noentry,color=blue;
db = formonly.debito type decimal(12,2),noentry,color=blue;
cr = formonly.credito type decimal(12,2),noentry,color=blue;
bf = formonly.balance1 type decimal(12,2),noentry,color=blue;
INSTRUCTIONS DELIMITERS " "
screen record cuenta[5] (num_doc,tipo_doc,fecha_orig,aplica_a, debito,
credito,balance1)
end
+33
View File
@@ -0,0 +1,33 @@
database formonly
screen size 12 by 50
{
[bmp1 ]
[bmp2 ] [pic ]
[bmp3 ]
[bmp4 ]
[bmp5 ]
[bmp12 ]
[d1 ][d2 ]
}
attributes
d1=formonly.f1, widget="LABEL",reverse,noentry;
bmp1=formonly.menu1, widget="BMP",config="catalogoc.gif F1";
bmp2=formonly.menu2, widget="BMP",config="entradasd.gif F2";
bmp3=formonly.menu3, widget="BMP",config="maestraentradas.gif F3";
bmp4=formonly.menu4, widget="BMP",config="cuentasBneto.gif F4";
bmp5=formonly.menu5, widget="BMP",config="relacionGD..gif F5";
bmp12=formonly.salir, widget="BMP",config="masalir.gif F12";
pic = formonly.fotos, widget="BMP";
d2 = formonly.f2, widget="label",reverse;
instructions
delimiters ""
+68
View File
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ManagedForm databaseName="smarmotech" fileVersion="31400" gstVersion="31408" name="ManagedForm" uid="{e1810ec5-612a-44cd-b613-6b9deb1f19c3}">
<AGSettings>
<DynamicProperties version="2"/>
</AGSettings>
<Record name="record1" uid="{f7d8a390-a540-4359-b66c-b9021f3b5f70}">
<RecordField colName="sucursal" fieldIdRef="0" name="sucursal" sqlTabName="formonly" uid="{ccd6b96a-d2b1-4fdd-8890-c0e2e407fe6f}"/>
<RecordField colName="descrip_s" fieldIdRef="1" name="descrip_s" sqlTabName="formonly" uid="{8f73edc0-3791-4691-abc3-cb2d79cf7230}"/>
<RecordField colName="num_doc" fieldIdRef="2" name="num_doc" sqlTabName="formonly" uid="{064f22c3-3696-4500-8616-562939586a7f}"/>
<RecordField colName="cuenta_no" fieldIdRef="3" name="cuenta_no" sqlTabName="formonly" uid="{31a4cb77-fc52-4c6e-b695-6f84a25cf1db}"/>
<RecordField colName="cta_banco" fieldIdRef="4" name="cta_banco" sqlTabName="formonly" uid="{cfc0de78-9383-40e5-9984-08aeb9d7d1d7}"/>
<RecordField colName="procedencia" fieldIdRef="5" name="procedencia" sqlTabName="formonly" uid="{a4c4f583-1ce1-4d20-8d34-311f6828139d}"/>
<RecordField colName="fecha" fieldIdRef="6" name="fecha" sqlTabName="formonly" uid="{e5a89a49-1944-4da4-8fb8-9914e448adbb}"/>
<RecordField colName="monto" fieldIdRef="7" name="monto" sqlTabName="formonly" uid="{0a00f0e6-95ac-48ef-9002-92467d7a950c}"/>
<RecordField colName="status_t" fieldIdRef="10" name="status_t" sqlTabName="formonly" uid="{894bba2e-8131-4eeb-a181-6f4900fb1885}"/>
<RecordField colName="us_crea" fieldIdRef="11" name="us_crea" sqlTabName="formonly" uid="{c04c6116-d1fe-43ee-861b-f80c883ac7c2}"/>
<RecordField colName="us_mod" fieldIdRef="13" name="us_mod" sqlTabName="formonly" uid="{bd0ad93c-47b1-4048-b89e-d2148680a695}"/>
<RecordField colName="fech_crea" fieldIdRef="12" name="fech_crea" sqlTabName="formonly" uid="{1ea32fe7-8be7-4e1d-b974-722a9e6f7058}"/>
<RecordField colName="fech_mod" fieldIdRef="14" name="fech_mod" sqlTabName="formonly" uid="{2de68835-872c-4c2d-b769-5de1767b47ec}"/>
</Record>
<Record name="record2" uid="{1a5787c2-d93c-4712-ad88-7bf80ef7c084}">
<RecordField fieldIdRef="8" name="fechaDoc" uid="{0c5055e7-ebf5-4482-a683-fc3394408bda}"/>
<RecordField fieldIdRef="9" name="documento" uid="{fb817bde-5596-469f-a6e6-c74861bc7794}"/>
<RecordField fieldIdRef="15" name="tipoDocumento" uid="{9e2c6644-6e39-4054-891f-29aeaa246bab}"/>
<RecordField fieldIdRef="16" name="cliente" uid="{233e1bbd-a705-4b5c-8a9c-86dc175e4f78}"/>
<RecordField fieldIdRef="17" name="valor" uid="{a8e35222-41b4-433e-bb94-c12d3a13d760}"/>
</Record>
<Form gridHeight="27" gridWidth="84" name="tefmmt001">
<Grid gridHeight="25" gridWidth="81" name="grid1" posX="2" posY="1">
<Label gridHeight="1" gridWidth="8" name="label1" posX="2" posY="1" text="Sucursal"/>
<Edit colName="sucursal" fieldId="0" gridHeight="1" gridWidth="4" name="sucursal" posX="19" posY="1" sqlTabName="formonly" tabIndex="1" widget="Edit"/>
<Edit colName="descrip_s" fieldId="1" gridHeight="1" gridWidth="36" name="descrip_s" noEntry="true" posX="25" posY="1" scroll="true" sqlTabName="formonly" style="encabezado name" tabIndex="2" widget="Edit"/>
<Label gridHeight="1" gridWidth="16" name="label2" posX="2" posY="5" text="Numero Deposito"/>
<Edit colName="num_doc" fieldId="2" gridHeight="1" gridWidth="9" name="num_doc" posX="19" posY="5" sqlTabName="formonly" tabIndex="3" widget="Edit"/>
<Label gridHeight="1" gridWidth="5" name="label3" posX="2" posY="6" text="Banco"/>
<ComboBox colName="cuenta_no" comment="Digite el Codigo O Cuenta del banco" fieldId="3" gridHeight="1" gridWidth="27" items="" name="cuenta_no" posX="19" posY="6" sqlTabName="formonly" tabIndex="4" widget="ComboBox"/>
<Label gridHeight="1" gridWidth="13" name="label4" posX="2" posY="7" text="Cta. Bancaria"/>
<Edit colName="cta_banco" comment="Digite la Cuenta del Banco" fieldId="4" gridHeight="1" gridWidth="13" name="cta_banco" posX="19" posY="7" sqlTabName="formonly" tabIndex="5" widget="Edit"/>
<Label gridHeight="1" gridWidth="12" name="label5" posX="2" posY="8" text="Procendencia"/>
<ComboBox colName="procedencia" comment="Presione CTRL-W Para Consultar Maestra de Procedencia de Depositos" fieldId="5" gridHeight="1" gridWidth="27" items="" name="procedencia" posX="19" posY="8" sqlTabName="formonly" tabIndex="6" widget="ComboBox"/>
<Label gridHeight="1" gridWidth="5" name="label6" posX="2" posY="9" text="Fecha"/>
<DateEdit colName="fecha" fieldId="6" format="dd/mm/yyyy" gridHeight="1" gridWidth="10" name="fecha" posX="19" posY="9" sqlTabName="formonly" tabIndex="7" widget="DateEdit"/>
<Label gridHeight="1" gridWidth="15" name="label7" posX="32" posY="9" text="Monto Deposito"/>
<Edit colName="monto" fieldId="7" gridHeight="1" gridWidth="13" name="monto" posX="48" posY="9" sqlTabName="formonly" tabIndex="8" widget="Edit"/>
<Group gridHeight="9" gridWidth="64" name="group1" posX="4" posY="11" text="Recibos Ingresos">
<Table gridHeight="6" gridWidth="54" name="table1" posX="5" posY="2" totalRows="5">
<Edit fieldId="8" gridHeight="1" gridWidth="8" name="fechaDoc" posX="0" posY="0" tabIndex="-1" title="Fecha" widget="Edit"/>
<Edit fieldId="9" gridHeight="1" gridWidth="8" name="documento" posX="8" posY="0" tabIndex="-1" title="Documento" widget="Edit"/>
<Edit fieldId="15" gridHeight="1" gridWidth="8" name="tipoDocumento" posX="16" posY="0" tabIndex="-1" title="Tipo Documento" widget="Edit"/>
<Edit fieldId="16" gridHeight="1" gridWidth="8" name="cliente" posX="24" posY="0" tabIndex="-1" title="Cliente" widget="Edit"/>
<Edit fieldId="17" gridHeight="1" gridWidth="8" name="valor" posX="32" posY="0" tabIndex="-1" title="Valor" widget="Edit"/>
</Table>
</Group>
<Edit colName="status_t" fieldId="10" gridHeight="1" gridWidth="1" name="status_t" noEntry="true" posX="2" posY="20" sqlTabName="formonly" tabIndex="9" widget="Edit"/>
<Label gridHeight="1" gridWidth="16" name="label8" posX="2" posY="21" text="Usuario Creador"/>
<Edit colName="us_crea" fieldId="11" gridHeight="1" gridWidth="9" name="us_crea" noEntry="true" posX="19" posY="21" sqlTabName="formonly" tabIndex="10" widget="Edit"/>
<Label gridHeight="1" gridWidth="20" name="label9" posX="37" posY="21" text="Usuario Modificador"/>
<Edit colName="us_mod" fieldId="13" gridHeight="1" gridWidth="9" name="us_mod" noEntry="true" posX="58" posY="21" sqlTabName="formonly" tabIndex="11" widget="Edit"/>
<Label gridHeight="1" gridWidth="14" name="label10" posX="2" posY="22" text="Fecha Creacion"/>
<Edit colName="fech_crea" fieldId="12" gridHeight="1" gridWidth="16" name="fech_crea" noEntry="true" posX="19" posY="22" sqlTabName="formonly" tabIndex="12" widget="Edit"/>
<Label gridHeight="1" gridWidth="18" name="label11" posX="37" posY="22" text="Fecha Modificacion"/>
<Edit colName="fech_mod" fieldId="14" gridHeight="1" gridWidth="16" name="fech_mod" noEntry="true" posX="58" posY="22" sqlTabName="formonly" tabIndex="13" widget="Edit"/>
</Grid>
</Form>
<DiagramLayout>
<![CDATA[AAAAAgAAAEwAewBmADcAZAA4AGEAMwA5ADAALQBhADUANAAwAC0ANAAzADUAOQAtAGIANgA2AGMALQBiADkAMAAyADEAZgAzAGIANQBmADcAMAB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEwAewAxAGEANQA3ADgANwBjADIALQBkADkAMwBjAC0ANAA3ADEAMgAtAGEAZAA4ADgALQA3AGIAZgA4ADAAZQBmADcAYwAwADgANAB9QCAAAAQAAABAIAAABAAAAAAAAAAAAAAAAQ==]]>
</DiagramLayout>
</ManagedForm>
+37
View File
@@ -0,0 +1,37 @@
database smarmotech
screen size 24 by 80
{
Sucursal [s1 ][des1 ]
Numero Deposito [a ]
Banco [c ] [f1 ]
Cta. Bancaria [cb ]
Procendencia [p] [f2 ]
Fecha [g ] Monto Deposito [md ]
[i]
Usuario Creador [j ] Usuario Modificador [l ]
Fecha Creacion [k ] Fecha Modificacion [m ]
}
end
attributes
s1 = formonly.sucursal;
des1 = formonly.descrip_s;
a = formonly.num_doc;
c = formonly.cuenta_no,
comments="Digite el Codigo O Cuenta del banco";
cb = formonly.cta_banco,comments = "Digite la Cuenta del Banco";
p = formonly.procedencia,comments =
"Presione CTRL-W Para Consultar Maestra de Procedencia de Depositos";
g = formonly.fecha,format = "dd/mm/yyyy";
md = formonly.monto;
f1 = formonly.descrip1,noentry;
f2 = formonly.descrip2,noentry;
i = formonly.status_t,noentry;
j = formonly.us_crea,noentry;
k = formonly.fech_crea,noentry;
l = formonly.us_mod,noentry;
m = formonly.fech_mod,noentry;
end
instructions
delimiters " "
+27
View File
@@ -0,0 +1,27 @@
database rayovac
screen size 24 by 80
{
Procedencia [p ]
Descripcion [f2 ]
[i]
Usuario Creador [j ] Usuario Modificador [l ]
Fecha Creacion [k ] Fecha Modificacion [m ]
}
end
tables
tetb00002
attributes
p = tetb00002.procedencia,comments =
"Digite la Codigo de Procedencia";
f2 = tetb00002.descripcion,upshift,comments =
"Digite descripcion de Procedencia";
i = tetb00002.status_t,noentry;
j = tetb00002.us_crea,noentry;
k = tetb00002.fech_crea,noentry;
l = tetb00002.us_mod,noentry;
m = tetb00002.fech_mod,noentry;
end
instructions
delimiters " "
+43
View File
@@ -0,0 +1,43 @@
database rayovac
screen size 24 by 80
{
Codigo del Vendedor [a ]-[b ] [b1 ]
Producto Terminado [c]-[d]-[e ]-[f ] [f1 ]
Porcentaje x Ventas [g ]%
Porcentaje x Cobros [h ]%
[i]
Usuario Creador [j ] Usuario Modificador [l ]
Fecha Creacion [k ] Fecha Modificacion [m ]
}
end
tables
vetb00011,
intb00001
attributes
a = vetb00011.cod_vend,autonext,
comments="Digite el Codigo de Vendedor o Ctrl-W para busqueda";
b = vetb00011.sec_vend,autonext,
comments="Digite el Codigo de Vendedor o Ctrl-W para busqueda";
b1 = formonly.descrip6,noentry;
c = vetb00011.cod_n,autonext,include = (3,6,9),
comments="Digite el Codigo del Producto Terminado o Ctrl-W para busqueda";
d = vetb00011.cod_grupo,autonext,
comments="Digite el Codigo del Producto Terminado o Ctrl-W para busqueda";
e = vetb00011.cod_tipo,autonext,
comments="Digite el Codigo del Producto Terminado o Ctrl-W para busqueda";
f = vetb00011.cod_sec,autonext,
comments="Digite el Codigo del Producto Terminado o Ctrl-W para busqueda";
f1 = intb00001.descrip_esp,noentry;
g = vetb00011.porc_ventas,autonext,
comments="Digite el porcentaje a pagar sobre las ventas";
h = vetb00011.porc_cobros,autonext,
comments="Digite el porcentaje a pagar sobre los cobros";
i = vetb00011.status_t,noentry;
j = vetb00011.us_crea,noentry;
k = vetb00011.fech_crea,noentry;
l = vetb00011.us_mod,noentry;
m = vetb00011.fech_mod,noentry;
end
instructions
delimiters " "
+28
View File
@@ -0,0 +1,28 @@
database rayovac
screen size 24 by 80
{
Codigo [p ]
Descripcion [f2 ]
Tipo [f3]
[i]
Usuario Creador [j ] Usuario Modificador [l ]
Fecha Creacion [k ] Fecha Modificacion [m ]
}
end
tables
tetb00003
attributes
p = tetb00003.codigo,comments = "Digite la Codigo de Partida";
f2 = tetb00003.descripcion,upshift,comments = "Digite descripcion de Partida";
f3 = tetb00003.tipo,include = ("IG","DI","DL"),upshift,comments =
"Tipo: IG = Ingresos, DL = Desembolso Local, DI = Desembolso Internacional";
i = tetb00003.status_t,noentry;
j = tetb00003.us_crea,noentry;
k = tetb00003.fech_crea,noentry;
l = tetb00003.us_mod,noentry;
m = tetb00003.fech_mod,noentry;
end
instructions
delimiters " "
+31
View File
@@ -0,0 +1,31 @@
database rayovac
screen size 24 by 80
{
Codigo [p ] Descripcion [f2 ]
Ano [f3 ]
----------------------------------------------------------
Mes Valor
----------------------------------------------------------
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
}
end
tables
tetb00004
attributes
p = tetb00004.codigo,comments = "Digite la Codigo de Partida";
f2 = formonly.descripcion,noentry;
f3 = tetb00004.ano,comments = "Digite Ano del Presupuesto";
m = tetb00004.mes,comments="Digite Mes del Presupuesto";
dm = formonly.descrip,noentry;
va = tetb00004.valor,comments="Digite Valor del Presupuesto";
instructions delimiters " "
SCREEN RECORD scr_tetb04[8] (mes,descrip,valor)
end
+31
View File
@@ -0,0 +1,31 @@
database rayovac
screen size 24 by 80
{
Codigo [p ] Descripcion [f2 ]
Ano [f3 ]
----------------------------------------------------------
Mes Valor
----------------------------------------------------------
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
[m ] [dm ] [va ]
}
end
tables
tetb00005
attributes
p = tetb00005.codigo,comments = "Digite la Codigo de Partida";
f2 = formonly.descripcion,noentry;
f3 = tetb00005.ano,comments = "Digite Ano del Presupuesto";
m = tetb00005.mes,comments="Digite Mes del Presupuesto";
dm = formonly.descrip,noentry;
va = formonly.valor,comments="Digite Valor Real de la Partida";
instructions delimiters " "
SCREEN RECORD scr_tetb05[8] (mes,descrip,valor)
end
+29
View File
@@ -0,0 +1,29 @@
database rayovac
screen size 24 by 80
{
Ano Balance Final de Cash-Flow [p ]
Balances Finales Cash-Flow: Real [f2 ]
Presupuesto[f3 ]
[i]
Usuario Creador [j ] Usuario Modificador [l ]
Fecha Creacion [k ] Fecha Modificacion [m ]
}
end
tables
tetb00007
attributes
p = tetb00007.ano,comments = "Digite El Ano Del Valance Final";
f2 = tetb00007.valor,upshift,comments =
"Digite Balance Final Real de Movimientos del Cash-Flow";
f3 = tetb00007.valor1,upshift,comments =
"Digite Balance Final Presupuesto de Movimientos del Cash-Flow";
i = tetb00007.status_t,noentry;
j = tetb00007.us_crea,noentry;
k = tetb00007.fech_crea,noentry;
l = tetb00007.us_mod,noentry;
m = tetb00007.fech_mod,noentry;
end
instructions
delimiters " "
+26
View File
@@ -0,0 +1,26 @@
database rayovac
screen size 24 by 80
{
Numero de Cheque [f000 ]
Codigo de Banco [f001]
Codigo Partida C.F.[f2] [dp ]
[a]
Usuario Creador [f003 ] Usuario Modificador[f005 ]
Fecha Creacion [f004 ] Fecha Modificacion [f006 ]
}
end
tables
tetb00006
attributes
f000 = tetb00006.cheque_no,comments = "Digite el Numero de Cheque";
f001 = tetb00006.banco,comments = "Digite Codigo de Banco";
f2 = tetb00006.codigo,comments = "Digite Codigo de Partida";
dp = formonly.descripcion type char,noentry;
a = tetb00006.status_t,noentry;
f003 = tetb00006.us_crea,noentry;
f004 = tetb00006.fech_crea,noentry;
f005 = tetb00006.us_mod,noentry;
f006 = tetb00006.fech_mod,noentry;
instructions delimiters " "
end
+41
View File
@@ -0,0 +1,41 @@
database rayovac
screen size 24 by 80
{
Codigo del Vendedor [b ] [b1 ]
Producto Terminado [c]-[d]-[e ]-[f ] [f1 ]
Porciento Ventas [g ]%
Porcentaje x Cobros [h ]%
[i]
Usuario Creador [j ] Usuario Modificador [l ]
Fecha Creacion [k ] Fecha Modificacion [m ]
}
end
tables
cctb00008,
intb00001
attributes
b = cctb00008.sec_vend,autonext,
comments="Digite el Codigo de Vendedor o Ctrl-W para busqueda";
b1 = formonly.descrip6,noentry;
c = cctb00008.cod_n,autonext,include = (3,6,9),
comments="Digite el Codigo del Producto Terminado o Ctrl-W para busqueda";
d = cctb00008.cod_grupo,autonext,
comments="Digite el Codigo del Producto Terminado o Ctrl-W para busqueda";
e = cctb00008.cod_tipo,autonext,
comments="Digite el Codigo del Producto Terminado o Ctrl-W para busqueda";
f = cctb00008.cod_sec,autonext,
comments="Digite el Codigo del Producto Terminado o Ctrl-W para busqueda";
f1 = intb00001.descrip_esp,noentry;
h = cctb00008.porc_cobros,required,
comments = "Porcente Cobros A Pagar";
g = cctb00008.porc_ventas,required,
comments = "Porcentaje Sobre Ventas A Pagar";
i = cctb00008.status_t,noentry;
j = cctb00008.us_crea,noentry;
k = cctb00008.fech_crea,noentry;
l = cctb00008.us_mod,noentry;
m = cctb00008.fech_mod,noentry;
end
instructions
delimiters " "
+26
View File
@@ -0,0 +1,26 @@
database rayovac@demo_se
screen size 24 by 80
{
Codigo Vendedor [f00][a ]
Asignado A [f01][c ]
status_t [k]
Usuario Creador [f002 ] Usuario Modificador[f004 ]
fecha Creacion [f003 ] Fecha Modificacion [f005 ]
}
end
tables
tetb00009
attributes
f00 = tetb00009.sec_vend,comments="Introduzca la ficha del vendedor";
f01 = tetb00009.sec_vend_a, comments= "Digite el vendedor asignado";
a = formonly.nombre_v;
c = formonly.nombre_a;
k = tetb00009.status_t,noentry;
f002 = tetb00009.us_crea,noentry;
f003 = tetb00009.fech_crea,noentry;
f004 = tetb00009.us_mod,noentry;
f005 = tetb00009.fech_mod,noentry;
end
+24
View File
@@ -0,0 +1,24 @@
{
---------------------------------------------------------------------------
FORMULARIO : TEFMMT022
DISENO : JUAN F. SOTO
FECHA : JUNIO 6, 1997.
---------------------------------------------------------------------------
}
DATABASE rayovac
screen size 24 by 80
{
Vendedor Anterior : [v1 ] [a ]
Vendedor Actual : [v2 ] [b ]
}
tables
vetb00028
attributes
v1 = formonly.vende_de,comments =
"Digite El Vendedor a quien pertenece el o los clientes";
v2 = formonly.vende_a,comments =
"Digite el vendedor a quien pertenece el o los clientes";
a = formonly.nombre1;
b = formonly.nombre2;
+31
View File
@@ -0,0 +1,31 @@
{
-------------------------------------------------------------------------------
FORMULARIO : TEFMRP001
OBJETIVO : Pantalla para listar la Validacion de los Depositos.
Es usada por (TEPRRP001)
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Sept. 28, 1993
-------------------------------------------------------------------------------
}
database rayovac
screen size 24 by 80
{
Fecha Inicial [fi ]
Fecha Final [ff ]
Banco [ct ]
Numero Deposito [nd ]
Procedencia [p]
}
end
tables
tetb00001
attributes
fi = formonly.fecha1 type date,format = "dd/mm/yyyy";
ff = formonly.fecha2 type date,format = "dd/mm/yyyy";
ct = tetb00001.cuenta_no;
nd = tetb00001.num_doc;
p = tetb00001.procedencia,include=(1 to 5),comments =
"1= Cobro Cliente 2=Exportacion 3=Prest. Banco 4=Otros Igresos 5=Transferencia";
instructions delimiters " "
end
+21
View File
@@ -0,0 +1,21 @@
database rayovac
screen size 24 by 80
{
Cliente [c1]-[c2 ]
Prima [pr ]
Fecha Inicial [a ]
Fecha Final [b ]
}
end
tables
cctb00001
attributes
c1 = cctb00001.tipo_cliente,autonext;
c2 = cctb00001.sec_cliente;
a = formonly.fecha_inicial type date, format = "dd/mm/yyyy",autonext,
comments = "Fecha inicial del recibo de pago";
b = formonly.fecha_final type date, format = "dd/mm/yyyy",autonext,
comments = "Fecha final del recibo de pago";
pr = formonly.prima,comments= "Introduzca Prima Para Valorizar Estados";
end
+32
View File
@@ -0,0 +1,32 @@
database rayovac
screen size 24 by 80
{
Compania [c]
Mes Comision [m1]
Ano Comision [a2 ]
Codigo Vendedor [b1]-[c1 ]
Ventas [v]
Codigo Producto [a][b][d1][a1 ]
}
end
tables
vetb00028,
vetb00003
attributes
c = vetb00003.cod_cia,include = (1,2),comments =
"1- Rayovac 2- Distribuidora";
m1 = formonly.mes type smallint,include = (1 to 12),comments =
"Digite en formato MM eje. 01 (Enero)";
a2 = formonly.ano;
v = formonly.ventas;
b1 = vetb00028.cod_vend,autonext,
comments = "Digite el codigo del vendedor o el criterio de seleccion";
c1 = vetb00028.sec_vend,
comments = "Digite el codigo del vendedor o el criterio de seleccion";
a = formonly.cod_n;
b = formonly.cod_grupo;
d1 = formonly.cod_tipo;
a1 = formonly.cod_sec;
instructions
delimiters " "
end
+26
View File
@@ -0,0 +1,26 @@
database rayovac
screen size 24 by 80
{
Compania [c]
Mes Comision [m1]
Ano Comision [a ]
Codigo Vendedor [b1]-[c1 ]
}
end
tables
vetb00028,
vetb00003
attributes
c = vetb00003.cod_cia,include = (1,2),comments =
"1- Rayovac 2- Distribuidora";
m1 = formonly.mes type smallint,include = (1 to 12),comments =
"Digite en formato MM eje. 01 (Enero)";
a = formonly.ano;
b1 = vetb00028.cod_vend,autonext,
comments = "Digite el codigo del vendedor o el criterio de seleccion";
c1 = vetb00028.sec_vend,
comments = "Digite el codigo del vendedor o el criterio de seleccion";
instructions
delimiters " "
end
+27
View File
@@ -0,0 +1,27 @@
{
-------------------------------------------------------------------------------
FORMULARIO : VEFMRP032
OBJETIVO : Relacion de Ventas Por Vendedor y Cobros de Facturas
PROGRAMADOR : Juan Fco. Soto
FECHA REALIZACION : Abril 6, 1995
-------------------------------------------------------------------------------
}
database rayovac
screen size 24 by 80
{
Compania [c]
Fecha Inicial [fn ]
Fecha Final [fi ]
}
end
tables
vetb00028,
vetb00003
attributes
c = vetb00003.cod_cia,include = (1,2),comments =
"1- Rayovac 2- Distribuidora";
fn = formonly.fecha_in type date,format = "dd/mm/yyyy";
fi = formonly.fecha_fin type date,format = "dd/mm/yyyy";
instructions
delimiters " "
end
+24
View File
@@ -0,0 +1,24 @@
{
-------------------------------------------------------------------------------
FORMULARIO : TEFMRP006
OBJETIVO : Comision Cheques Devueltos
PROGRAMADOR : Juan Fco. Soto
FECHA REALIZACION : Junio 8, 1995
-------------------------------------------------------------------------------
}
database rayovac
screen size 24 by 80
{
Fecha Inicial [fn ]
Fecha Final [fi ]
}
end
tables
vetb00028,
vetb00003
attributes
fn = formonly.fech_in type date,format = "dd/mm/yyyy";
fi = formonly.fech_fi type date,format = "dd/mm/yyyy";
instructions
delimiters " "
end
+32
View File
@@ -0,0 +1,32 @@
{
==========================================================================
FORMULARIO : TEFMRP007
OBJETIVO : Relacion de cheques emitidos
Es usado TEPRRP007
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 06, 1995
==========================================================================
}
database rayovac
screen
{
Fecha Inicial [f001 ]
Fecha Final [f002 ]
Tasa US$ [f005 ]
Cuenta No. [f003 ]
Cheque No. [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.fecha_inicial type date,format = "dd/mm/yyyy",comments =
"Digite la fecha inicial para general el reporte";
f002 = formonly.fecha_final type date,format = "dd/mm/yyyy",comments =
"Digite la fecha final para general el reporte";
f003 = cgtb00005.cuenta_no,comments = "Digite el numero de cuenta";
f004 = cgtb00005.cheque_no,comments = "Digite el numero de cheque";
f005 = formonly.tasa,comments = "Digite Tasa de Cambio US$";
instructions delimiters " "
end
+29
View File
@@ -0,0 +1,29 @@
{
==========================================================================
FORMULARIO : TEFMRP008
OBJETIVO : Analisis de CXash Flow
Es usado TEPRRP008
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 08, 1995
==========================================================================
}
database rayovac
screen
{
Ano Reporte [f001]
Mes Inicial [f002]
Mes Final [f003]
Tasa Actual [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.ano, comments = "Digite el Ano Para Busqueda de Informacion";
f002 = formonly.mes_1,comments = "Digite el Mes Incial del Rango";
f003 = formonly.mes_2,comments =
"Digite el Mes Final del Rango (Rango de Meses No Exceda a Los 9 Meses)";
f004 = formonly.tasa,comments = "Digite la Tasa A Utilizar";
instructions delimiters " "
end
+25
View File
@@ -0,0 +1,25 @@
{
==========================================================================
FORMULARIO : TEFMRP009
OBJETIVO : Analisis de Cash Flow Real Diario
Es usado TEPRRP009
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 12, 1995
==========================================================================
}
database rayovac
screen
{
Fecha Corte [f001 ]
Tasa Actual [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.fecha_corte type date,format = "dd/mm/yyyy", comments =
"Digite la Fecha de Corte ";
f004 = formonly.tasa,comments = "Digite la Tasa A Utilizar";
instructions delimiters " "
end
+26
View File
@@ -0,0 +1,26 @@
{
==========================================================================
FORMULARIO : TEFMRP009
OBJETIVO : Analisis de Cash Flow Real Diario
Es usado TEPRRP009
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 12, 1995
==========================================================================
}
database rayovac
screen
{
Ano [f001]
Mes [a ]
Tasa Actual [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.ano;
a = formonly.mes_1;
f004 = formonly.tasa,comments = "Digite la Tasa A Utilizar";
instructions delimiters " "
end
+26
View File
@@ -0,0 +1,26 @@
{
==========================================================================
FORMULARIO : TEFMRP008
OBJETIVO : Analisis de Cash Flow Comparativo
Es usado TEPRRP010
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 14, 1995
==========================================================================
}
database rayovac
screen
{
Ano Reporte [f001]
Mes Reporte [f2]
Tasa Actual [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.ano, comments = "Digite el Ano Para Busqueda de Informacion";
f2 = formonly.mes,comments = "Digite el Mes Para Reporte";
f004 = formonly.tasa,comments = "Digite la Tasa A Utilizar";
instructions delimiters " "
end
+25
View File
@@ -0,0 +1,25 @@
{
==========================================================================
FORMULARIO : TEFMRP008
OBJETIVO : Analisis de CXash Flow
Es usado TEPRRP008
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 08, 1995
==========================================================================
}
database rayovac
screen
{
Ano Reporte [f001]
Tasa Actual [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.ano, comments = "Digite el Ano Para Busqueda de Informacion";
f004 = formonly.tasa,comments = "Digite la Tasa A Utilizar";
instructions delimiters " "
end
+27
View File
@@ -0,0 +1,27 @@
{
==========================================================================
FORMULARIO : TEFMRP008
OBJETIVO : Analisis de CXash Flow
Es usado TEPRRP008
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 08, 1995
==========================================================================
}
database rayovac
screen
{
Ano Reporte [f001]
Mes Reporte [f2]
Tasa Actual [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.ano, comments = "Digite el Ano Para Busqueda de Informacion";
f2 = formonly.mes_2;
f004 = formonly.tasa,comments = "Digite la Tasa A Utilizar";
instructions delimiters " "
end
+27
View File
@@ -0,0 +1,27 @@
{
==========================================================================
FORMULARIO : TEFMRP008
OBJETIVO : Analisis de CXash Flow
Es usado TEPRRP008
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 08, 1995
==========================================================================
}
database rayovac
screen
{
Ano Reporte [f001]
Mes Reporte [f2]
Tasa Actual [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.ano, comments = "Digite el Ano Para Busqueda de Informacion";
f2 = formonly.mes_2;
f004 = formonly.tasa,comments = "Digite la Tasa A Utilizar";
instructions delimiters " "
end
+13
View File
@@ -0,0 +1,13 @@
database rayovac
screen size 24 by 80
{
Codigo Partida [f ]
}
end
tables
tetb00003
attributes
f = tetb00003.codigo,comments = "Digite Codigo de Partida o Nulo Para Todos";
instructions delimiters " "
end
+30
View File
@@ -0,0 +1,30 @@
{
==========================================================================
FORMULARIO : TEFMRP007
OBJETIVO : Relacion de cheques emitidos
Es usado TEPRRP007
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 06, 1995
==========================================================================
}
database rayovac
screen
{
Fecha Inicial [f001 ]
Fecha Final [f002 ]
Cuenta No. [f003 ]
Cheque No. [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.fecha_inicial type date,format = "dd/mm/yyyy",comments =
"Digite la fecha inicial para general el reporte";
f002 = formonly.fecha_final type date,format = "dd/mm/yyyy",comments =
"Digite la fecha final para general el reporte";
f003 = cgtb00005.cuenta_no,comments = "Digite el numero de cuenta";
f004 = cgtb00005.cheque_no,comments = "Digite el numero de cheque";
instructions delimiters " "
end
+32
View File
@@ -0,0 +1,32 @@
{
==========================================================================
FORMULARIO : TEFMRP007
OBJETIVO : Relacion de cheques emitidos
Es usado TEPRRP007
AUTOR : Tadeo A. Ferreras
FECHA : Diciembre 06, 1995
==========================================================================
}
database rayovac
screen
| A grammatical error has been found at 'screen' expecting: $ error DATABASE DEFINE DESCRIBE FUNCTION ...
| See error number -6609.
{
Fecha Inicial [f001 ]
Fecha Final [f002 ]
Cuenta No. [f003 ]
Cheque No. [f004 ]
}
end
tables
cgtb00005
attributes
f001 = formonly.fecha_inicial type date,format = "dd/mm/yyyy",comments =
"Digite la fecha inicial para general el reporte";
f002 = formonly.fecha_final type date,format = "dd/mm/yyyy",comments =
"Digite la fecha final para general el reporte";
f003 = cgtb00005.cuenta_no,comments = "Digite el numero de cuenta";
f004 = cgtb00005.cheque_no,comments = "Digite el numero de cheque";
instructions delimiters " "
end
+30
View File
@@ -0,0 +1,30 @@
{
==========================================================================
FORMULARIO : TEFMRP014
OBJETIVO : Relacion de cheques emitidos x partidas
AUTOR : Abner Montalvo
FECHA : Agosto 26, 1997
==========================================================================
}
database rayovac
screen
{
Fecha Inicial [f001 ]
Fecha Final [f002 ]
Codigo Partida [f003 ]
Cuenta No. [f004 ]
}
end
tables
cgtb00005
tetb00003
attributes
f001 = formonly.fecha_inicial type date,format = "dd/mm/yyyy",comments =
"Digite la fecha inicial para general el reporte";
f002 = formonly.fecha_final type date,format = "dd/mm/yyyy",comments =
"Digite la fecha final para general el reporte";
f003 = tetb00003.codigo,comments = "Digite el Codigo de Partida";
f004 = cgtb00005.cuenta_no,comments = "Digite el numero de cuenta";
instructions delimiters " "
end
+29
View File
@@ -0,0 +1,29 @@
DATABASE rayovac
SCREEN SIZE 24 by 80
{
Busqueda de Empleados
\g-----------------------------------------------------------\g
Codigo Nombre
\g-----------------------------------------------------------\g
[i ][j ] [f2 ]
[i ][j ] [f2 ]
[i ][j ] [f2 ]
[i ][j ] [f2 ]
[i ][j ] [f2 ]
[i ][j ] [f2 ]
}
end
tables
adtb00003
attributes
i = formonly.cod_emp,noentry;
j = formonly.cod_emp_sec,noentry;
f2 = formonly.descrip6, upshift,
comments = " <Esc> Busca todos los Empleados";
instructions
screen record s_empleados[6] (cod_emp, cod_emp_sec, descrip6)
delimiters " "
end
+24
View File
@@ -0,0 +1,24 @@
database rayovac
screen size 24 by 80
{
Maestra de Procedencia de Depositos
\g----------------------------------------------
Procedencia Descripcion
\g----------------------------------------------
[f0 ] [f002 ]
[f0 ] [f002 ]
[f0 ] [f002 ]
[f0 ] [f002 ]
}
end
tables
tetb00002
attributes
f0 = tetb00002.procedencia,
comments = "<Esc> Asigna el valor encontrado al valor deseado";
f002 = tetb00002.descripcion,noentry;
instructions
screen record s_procedencia[4] (procedencia,descripcion)
delimiters " "
end
+148
View File
@@ -0,0 +1,148 @@
{
-----------------------------------------------------------------------
PROGRAMA : TEMN00000
OBJETIVO : Menu Principal del Sistema de tesoreria
PROGRAMADOR : Ing. Juan F. Soto.
FECHA REALIZACION : Junio 15, 1993.
-----------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
MAIN
# WHENEVER ERROR CONTINUE
DEFER INTERRUPT
CALL opciones_temn00000()
END MAIN
FUNCTION opciones_temn00000()
DEFINE p_user CHAR(9)
CALL opcion_pantalla()
MENU "Principal: "
COMMAND "1"
CALL seg000(1,"temn00000") RETURNING luz
IF luz = "azul" THEN
RUN "fglsql %FGLPROG%\\temnmt000"
CALL opcion_pantalla()
END IF
COMMAND "2"
CALL seg000(2,"temn00000") RETURNING luz
IF luz = "azul" THEN
RUN "fglsql %FGLPROG%\\temncs000"
CALL opcion_pantalla()
END IF
COMMAND "3"
CALL seg000(3,"temn00000") RETURNING luz
IF luz = "azul" THEN
RUN "fglsql %FGLPROG%\\temnrp000"
CALL opcion_pantalla()
END IF
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(10),
hora char(5)
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 4,19
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,68 ATTRIBUTE (RED)
DISPLAY " Sistema de Tesoreria " AT 5,25 ATTRIBUTE(BLACK)
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
LET a_ano = year(p_fechas)
LET mes_control = MONTH(today)
LET mes_calc = mes_control
IF mes_calc = 01 THEN
LET mes_calc = 13
LET a_ano = year(today - 32)
END IF
#Aqui la funcion se posicionaba en dos meses para el control del documento
#LET mes_calc = mes_calc - 2
IF mes_calc <= 0 THEN
LET mes_calc = 12
LET a_ano = year(today) - 1
END IF
LET c_ano = year(today)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT a.usuario FROM seg0003
WHERE a.usuario = USER
IF status != notfound THEN
LET fecha_c = fecha_c + dia
END IF
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
LET comp_fech = fecha_c
LET comp_fech1 = TODAY
IF comp_fech < comp_fech1 THEN
LET numero_msg = 57
CALL msg(numero_msg)
LET bandera = 1
END IF
END FUNCTION
FUNCTION opcion_pantalla()
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
CLEAR SCREEN
CALL pantalla()
DISPLAY " Menu Principal " AT 6,22 ATTRIBUTE(BLACK)
DISPLAY "temn00000" AT 4,3 ATTRIBUTE(RED)
DISPLAY "1- Mantenimientos temnmt000" AT 10,6
DISPLAY "2- Consultas temncs000" AT 11,6
DISPLAY "3- Reportes temnrp000" AT 12,6
#DISPLAY "S- Retorna Menu Anterior " AT 14,6
# ATTRIBUTE (BLACK)
END FUNCTION
+158
View File
@@ -0,0 +1,158 @@
{
-----------------------------------------------------------------------
PROGRAMA : TEMN00000
OBJETIVO : Menu Principal del Sistema de tesoreria
PROGRAMADOR : Ing. Juan F. Soto.
FECHA REALIZACION : Junio 15, 1993.
-----------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
MAIN
WHENEVER ERROR CONTINUE
DEFER INTERRUPT
CALL pantalla()
CALL opciones_temn00000()
END MAIN
FUNCTION opciones_temn00000()
DEFINE p_user CHAR(9)
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
DISPLAY " Menu Principal " AT 6,22 ATTRIBUTE(BLACK)
DISPLAY "temn00000" AT 4,3 ATTRIBUTE(RED)
DISPLAY "1- Mantenimientos temnmt000" AT 10,6
DISPLAY "2- Consultas temncs000" AT 11,6
DISPLAY "3- Reportes temnrp000" AT 12,6
DISPLAY "S- Retorna Menu Anterior " AT 14,6
ATTRIBUTE (BLACK)
LABEL vuelve:
LET opcion = " "
PROMPT " OPCION: " FOR opcion HELP 1
IF opcion != "S" THEN
SELECT unique usuario INTO p_user FROM seg0001
WHERE usuario = user
CALL seg000(opcion,"temn00000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
#RUN "fglrun %FGLPROG%\\temnmt000"
CALL temnmt000()
CLEAR SCREEN
CALL pantalla()
CALL opciones_temn00000()
WHEN opcion = "2"
#RUN "fglrun %FGLPROG%\\temncs000"
CALL temncs000()
CLEAR SCREEN
CALL pantalla()
CALL opciones_temn00000()
WHEN opcion = "3"
#RUN "fglrun %FGLPROG%\\temnrp000"
CALL temnrp000()
CLEAR SCREEN
CALL pantalla()
CALL opciones_temn00000()
WHEN opcion = "S" or opcion = "s"
RETURN
OTHERWISE
CALL opciones_temn00000()
END CASE
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 4,19
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,70 ATTRIBUTE (RED)
DISPLAY " Sistema de Tesoreria " AT 5,25 ATTRIBUTE(BLACK)
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
LET a_ano = year(p_fechas)
LET mes_control = MONTH(today)
LET mes_calc = mes_control
IF mes_calc = 01 THEN
LET mes_calc = 13
LET a_ano = year(today - 32)
END IF
#Aqui la funcion se posicionaba en dos meses para el control del documento
#LET mes_calc = mes_calc - 2
IF mes_calc <= 0 THEN
LET mes_calc = 12
LET a_ano = year(today) - 1
END IF
LET c_ano = year(today)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT a.usuario FROM seg0003
WHERE a.usuario = USER
IF status != notfound THEN
LET fecha_c = fecha_c + dia
END IF
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
LET comp_fech = fecha_c
LET comp_fech1 = TODAY
IF comp_fech < comp_fech1 THEN
LET numero_msg = 57
CALL msg(numero_msg)
LET bandera = 1
END IF
END FUNCTION
+139
View File
@@ -0,0 +1,139 @@
{
----------------------------------------------------------------
PROGRAMA : TEMNCS000
OBJETIVO : Menu de Consulta del Sistema de tesoreria
PROGRAMADOR : Ing. Juan F. Soto.
FECHA REALIZACION : Junio 15, 1993.
----------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL temncs000()
END MAIN
FUNCTION temncs000()
CALL opcion_pantalla()
MENU "Consultas: "
COMMAND "1"
CALL seg000(1,"temncs000") RETURNING luz
IF luz = "azul" THEN
CALL teprcs001()
CALL opcion_pantalla()
END IF
COMMAND "2"
CALL seg000(2,"temncs000") RETURNING luz
IF luz = "azul" THEN
CALL teprcs002()
CALL opcion_pantalla()
END IF
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(10),
hora char(5)
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 4,19
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,68 ATTRIBUTE (RED)
DISPLAY " Sistema de Tesoreria " AT 5,25 ATTRIBUTE(BLACK)
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
LET a_ano = year(p_fechas)
LET mes_control = MONTH(today)
LET mes_calc = mes_control
IF mes_calc = 01 THEN
LET mes_calc = 13
LET a_ano = year(today - 32)
END IF
#Aqui la funcion se posicionaba en dos meses para el control del documento
#LET mes_calc = mes_calc - 2
IF mes_calc <= 0 THEN
LET mes_calc = 12
LET a_ano = year(today) - 1
END IF
LET c_ano = year(today)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT a.usuario FROM seg0003
WHERE a.usuario = USER
IF status != notfound THEN
LET fecha_c = fecha_c + dia
END IF
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
LET comp_fech = fecha_c
LET comp_fech1 = TODAY
IF comp_fech < comp_fech1 THEN
LET numero_msg = 57
CALL msg(numero_msg)
LET bandera = 1
END IF
END FUNCTION
FUNCTION opcion_pantalla()
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
CLEAR SCREEN
CALL pantalla()
DISPLAY " Consultas " AT 6,24 ATTRIBUTE(BLACK)
DISPLAY "temncs000" AT 4,3 ATTRIBUTE(RED)
DISPLAY "1- Estado de Cuenta del Cliente teprcs001" AT 10,2
DISPLAY "2- Estado de Cuenta del Suplidor teprcs002" AT 11,2
#DISPLAY "S- Retorna Menu Anterior " AT 18,28
# ATTRIBUTE (BLACK)
END FUNCTION
+146
View File
@@ -0,0 +1,146 @@
{
----------------------------------------------------------------
PROGRAMA : TEMNCS000
OBJETIVO : Menu de Consulta del Sistema de tesoreria
PROGRAMADOR : Ing. Juan F. Soto.
FECHA REALIZACION : Junio 15, 1993.
----------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL pantalla()
CALL temncs000()
END MAIN
FUNCTION temncs000()
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
CLEAR SCREEN
CALL pantalla()
DISPLAY " Consultas " AT 6,24 ATTRIBUTE(BLACK)
DISPLAY "temncs000" AT 4,3 ATTRIBUTE(RED)
DISPLAY "1- Estado de Cuenta del Cliente teprcs001" AT 10,2
DISPLAY "2- Estado de Cuenta del Suplidor teprcs002" AT 11,2
DISPLAY "S- Retorna Menu Anterior " AT 18,28
ATTRIBUTE (BLACK)
LABEL vuelve:
LET opcion = NULL
PROMPT " OPCION: " FOR opcion
LET opcion = opcion clipped
LET opcion = UPSHIFT(opcion)
IF opcion != "S" THEN
SELECT unique usuario INTO p_user FROM seg0001
WHERE usuario = user
CALL seg000(opcion,"temncs000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
CALL teprcs001()
CALL temncs000()
WHEN opcion = "2"
CALL teprcs002()
CALL temncs000()
WHEN opcion = "S" or opcion = "s"
RETURN
OTHERWISE
CALL temncs000()
END CASE
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 4,19
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,70 ATTRIBUTE (RED)
DISPLAY " Sistema de Tesoreria " AT 5,25 ATTRIBUTE(BLACK)
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
LET a_ano = year(p_fechas)
LET mes_control = MONTH(today)
LET mes_calc = mes_control
IF mes_calc = 01 THEN
LET mes_calc = 13
LET a_ano = year(today - 32)
END IF
#Aqui la funcion se posicionaba en dos meses para el control del documento
#LET mes_calc = mes_calc - 2
IF mes_calc <= 0 THEN
LET mes_calc = 12
LET a_ano = year(today) - 1
END IF
LET c_ano = year(today)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT a.usuario FROM seg0003
WHERE a.usuario = USER
IF status != notfound THEN
LET fecha_c = fecha_c + dia
END IF
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
LET comp_fech = fecha_c
LET comp_fech1 = TODAY
IF comp_fech < comp_fech1 THEN
LET numero_msg = 57
CALL msg(numero_msg)
LET bandera = 1
END IF
END FUNCTION
+203
View File
@@ -0,0 +1,203 @@
{
----------------------------------------------------------------
PROGRAMA : TEMNMT000
OBJETIVO : Menu de Mantenimiento del Sistema de tesoreria
PROGRAMADOR : Ing. Juan F. Soto.
FECHA REALIZACION : Junio 15, 1993.
----------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL pantalla()
CALL temnmt000()
END MAIN
FUNCTION temnmt000()
CALL opcion_pantalla()
MENU "Mantenimientos: "
COMMAND "1"
CALL seg000(1,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt001()
CALL opcion_pantalla()
END IF
COMMAND "2"
CALL seg000(2,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt002()
CALL opcion_pantalla()
END IF
COMMAND "3"
CALL seg000(1,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt003()
CALL opcion_pantalla()
END IF
COMMAND "4"
CALL seg000(4,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt004()
CALL opcion_pantalla()
END IF
COMMAND "5"
CALL seg000(5,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt005()
CALL opcion_pantalla()
END IF
COMMAND "6"
CALL seg000(6,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt006()
CALL opcion_pantalla()
END IF
COMMAND "7"
CALL seg000(7,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt007()
CALL opcion_pantalla()
END IF
COMMAND "8"
CALL seg000(8,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt008()
CALL opcion_pantalla()
END IF
COMMAND "9"
CALL seg000(9,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt022()
CALL opcion_pantalla()
END IF
COMMAND "10"
CALL seg000(10,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt010()
CALL opcion_pantalla()
END IF
COMMAND "11"
CALL seg000(11,"temnmt000") RETURNING luz
IF luz = "azul" THEN
CALL teprmt011()
CALL opcion_pantalla()
END IF
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(10),
hora char(5)
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 4,19
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,68 ATTRIBUTE (RED)
DISPLAY " Sistema de Tesoreria " AT 5,25 ATTRIBUTE(RED)
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
LET a_ano = year(p_fechas)
LET mes_control = MONTH(today)
LET mes_calc = mes_control
IF mes_calc = 01 THEN
LET mes_calc = 13
LET a_ano = year(today - 32)
END IF
#Aqui la funcion se posicionaba en dos meses para el control del documento
#LET mes_calc = mes_calc - 2
IF mes_calc <= 0 THEN
LET mes_calc = 12
LET a_ano = year(today) - 1
END IF
LET c_ano = year(today)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT a.usuario FROM seg0003 a
WHERE a.usuario = USER
IF status != notfound THEN
LET fecha_c = fecha_c + dia
END IF
LET comp_fech = fecha_c
LET comp_fech1 = TODAY
IF comp_fech < comp_fech1 THEN
LET numero_msg = 57
CALL msg(numero_msg)
LET bandera = 1
END IF
END FUNCTION
FUNCTION opcion_pantalla()
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
CLEAR SCREEN
CALL pantalla()
DISPLAY " Mantenimientos " AT 6,24 ATTRIBUTE(BLACK)
DISPLAY "temnmt000" AT 4,3 ATTRIBUTE(RED)
DISPLAY "1-Registro de Depositos teprmt001" AT 10,2
DISPLAY "2-Maestra de Procedencias teprmt002" AT 11,2
DISPLAY "3-Comisiones Vendedores Anterior teprmt003" AT 12,2
DISPLAY "4-Maestra Partidas Cash-Flow teprmt004" AT 13,2
DISPLAY "5-Estimado de Partidas Cash-Flow teprmt005" AT 14,2
DISPLAY "6-Histor. Real Partidas Cash-Flow teprmt006" AT 15,2
DISPLAY "7-Bace. Final Partidas Cash Flow teprmt007" AT 16,2
DISPLAY "8-Actual. Relacion Cash Flow/CK. teprmt008" AT 17,2
DISPLAY "9-Asigna Comisiones A Vededores teprmt022" AT 18,2
DISPLAY "10-Comisiones Vigentes teprmt010" AT 19,2
DISPLAY "11-Asignacion Vend. teprmt011" AT 10,46
#DISPLAY "S- Retorna Menu Anterior " AT 20,28
# ATTRIBUTE (BLACK)
END FUNCTION
+180
View File
@@ -0,0 +1,180 @@
{
----------------------------------------------------------------
PROGRAMA : TEMNMT000
OBJETIVO : Menu de Mantenimiento del Sistema de tesoreria
PROGRAMADOR : Ing. Juan F. Soto.
FECHA REALIZACION : Junio 15, 1993.
----------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL pantalla()
CALL temnmt000()
END MAIN
FUNCTION temnmt000()
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
CLEAR SCREEN
CALL pantalla()
DISPLAY " Mantenimientos " AT 6,24 ATTRIBUTE(BLACK)
DISPLAY "temnmt000" AT 4,3 ATTRIBUTE(RED)
DISPLAY "1-Registro de Depositos teprmt001" AT 10,2
DISPLAY "2-Maestra de Procedencias teprmt002" AT 11,2
DISPLAY "3-Comisiones Vendedores Anterior teprmt003" AT 12,2
DISPLAY "4-Maestra Partidas Cash-Flow teprmt004" AT 13,2
DISPLAY "5-Estimado de Partidas Cash-Flow teprmt005" AT 14,2
DISPLAY "6-Histor. Real Partidas Cash-Flow teprmt006" AT 15,2
DISPLAY "7-Bace. Final Partidas Cash Flow teprmt007" AT 16,2
DISPLAY "8-Actual. Relacion Cash Flow/CK. teprmt008" AT 17,2
DISPLAY "9-Asigna Comisiones A Vededores teprmt022" AT 18,2
DISPLAY "10-Comisiones Vigentes teprmt010" AT 19,2
DISPLAY "11-Asignacion Vend. teprmt011" AT 10,46
DISPLAY "S- Retorna Menu Anterior " AT 20,28
ATTRIBUTE (BLACK)
LABEL vuelve:
LET opcion = NULL
PROMPT " OPCION: " FOR opcion
LET opcion = opcion clipped
LET opcion = UPSHIFT(opcion)
IF opcion != "S" THEN
CALL seg000(opcion,"temnmt000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
CALL teprmt001()
CALL temnmt000()
WHEN opcion = "2"
CALL teprmt002()
CALL temnmt000()
WHEN opcion = "3"
CALL teprmt003()
CALL temnmt000()
WHEN opcion = "4"
CALL teprmt004()
CALL temnmt000()
WHEN opcion = "5"
CALL teprmt005()
CALL temnmt000()
WHEN opcion = "6"
CALL teprmt006()
CALL temnmt000()
WHEN opcion = "7"
CALL teprmt007()
CALL temnmt000()
WHEN opcion = "8"
CALL teprmt008()
CALL temnmt000()
WHEN opcion = "9"
CALL teprmt022()
CALL temnmt000()
WHEN opcion = "10"
CALL teprmt010()
CALL temnmt000()
WHEN opcion = "11"
CALL teprmt011()
CALL temnmt000()
WHEN opcion = "S" or opcion = "s"
RETURN
OTHERWISE
CALL temnmt000()
END CASE
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 4,19
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,70 ATTRIBUTE (RED)
DISPLAY " Sistema de Tesoreria " AT 5,25 ATTRIBUTE(RED)
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
LET a_ano = year(p_fechas)
LET mes_control = MONTH(today)
LET mes_calc = mes_control
IF mes_calc = 01 THEN
LET mes_calc = 13
LET a_ano = year(today - 32)
END IF
#Aqui la funcion se posicionaba en dos meses para el control del documento
#LET mes_calc = mes_calc - 2
IF mes_calc <= 0 THEN
LET mes_calc = 12
LET a_ano = year(today) - 1
END IF
LET c_ano = year(today)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT a.usuario FROM seg0003 a
WHERE a.usuario = USER
IF status != notfound THEN
LET fecha_c = fecha_c + dia
END IF
LET comp_fech = fecha_c
LET comp_fech1 = TODAY
IF comp_fech < comp_fech1 THEN
LET numero_msg = 57
CALL msg(numero_msg)
LET bandera = 1
END IF
END FUNCTION
+204
View File
@@ -0,0 +1,204 @@
{
----------------------------------------------------------------
PROGRAMA : TEMNRP000
OBJETIVO : Menu de Reporte del Sistema de tesoreria
PROGRAMADOR : Ing. Juan F. Soto.
FECHA REALIZACION : Junio 15, 1993.
----------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL pantalla()
CALL temnrp000()
END MAIN
FUNCTION temnrp000()
CALL opcion_pantalla()
MENU "Reportes: "
COMMAND "1"
CALL seg000(1,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp001()
CALL opcion_pantalla()
END IF
COMMAND "2"
CALL seg000(5,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp005()
CALL opcion_pantalla()
END IF
COMMAND "3"
CALL seg000(6,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp006()
CALL opcion_pantalla()
END IF
COMMAND "4"
CALL seg000(7,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp007()
CALL opcion_pantalla()
END IF
COMMAND "5"
CALL seg000(8,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp008()
CALL opcion_pantalla()
END IF
COMMAND "6"
CALL seg000(9,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp009()
CALL opcion_pantalla()
END IF
COMMAND "7"
CALL seg000(10,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp010()
CALL opcion_pantalla()
END IF
COMMAND "8"
CALL seg000(11,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp011()
CALL opcion_pantalla()
END IF
COMMAND "9"
CALL seg000(12,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp012()
CALL opcion_pantalla()
END IF
COMMAND "10"
CALL seg000(13,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp013()
CALL opcion_pantalla()
END IF
COMMAND "11"
CALL seg000(14,"temnrp000") RETURNING luz
IF luz = "azul" THEN
CALL teprrp014()
CALL opcion_pantalla()
END IF
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(10),
hora char(5)
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 4,19
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,68 ATTRIBUTE (RED)
DISPLAY " Sistema de Tesoreria " AT 5,25 ATTRIBUTE(BLACK)
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
LET a_ano = year(p_fechas)
LET mes_control = MONTH(today)
LET mes_calc = mes_control
IF mes_calc = 01 THEN
LET mes_calc = 13
LET a_ano = year(today - 32)
END IF
#Aqui la funcion se posicionaba en dos meses para el control del documento
#LET mes_calc = mes_calc - 2
IF mes_calc <= 0 THEN
LET mes_calc = 12
LET a_ano = year(today) - 1
END IF
LET c_ano = year(today)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT a.usuario FROM seg0003
WHERE a.usuario = USER
IF status != notfound THEN
LET fecha_c = fecha_c + dia
END IF
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
LET comp_fech = fecha_c
LET comp_fech1 = TODAY
IF comp_fech < comp_fech1 THEN
LET numero_msg = 57
CALL msg(numero_msg)
LET bandera = 1
END IF
END FUNCTION
FUNCTION opcion_pantalla()
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
CLEAR SCREEN
CALL pantalla()
LET impresor = FGL_GETENV("IMP")
DISPLAY " Reportes " AT 6,24 ATTRIBUTE(BLACK)
DISPLAY "temnrp000" AT 4,3 ATTRIBUTE(RED)
DISPLAY " 1-Validacion de Depositos teprrp001" AT 10,1
DISPLAY " 2-Comision/Cobro Plan Ranch teprrp005" AT 11,1
DISPLAY " 3-Valid. Cheques Devueltos teprrp006" AT 12,1
DISPLAY " 4-Relacion Cheques Emitidos teprrp007" AT 13,1
DISPLAY " 5-C-F Compar. Real/Estimado teprrp008" AT 14,1
DISPLAY " 6-C-F Real Diario/Acumulado teprrp009" AT 15,1
DISPLAY " 7-C-F Real Comp. Tres Anos teprrp010" AT 16,1
DISPLAY " 8-Panoramico Cash Flow Real teprrp011" AT 17,1
DISPLAY " 9-Panoram. Cash Flow Estim. teprrp012" AT 10,40
DISPLAY "10-Maestra de Partidas C. F. teprrp013" AT 11,40
DISPLAY "11-Cheques Emitido x Partida teprrp014" AT 12,40
#DISPLAY "S- Retorna Menu Anterior " AT 21,28
# ATTRIBUTE (BLACK)
END FUNCTION
+196
View File
@@ -0,0 +1,196 @@
{
----------------------------------------------------------------
PROGRAMA : TEMNRP000
OBJETIVO : Menu de Reporte del Sistema de tesoreria
PROGRAMADOR : Ing. Juan F. Soto.
FECHA REALIZACION : Junio 15, 1993.
----------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL pantalla()
CALL temnrp000()
END MAIN
FUNCTION temnrp000()
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
CLEAR SCREEN
CALL pantalla()
LET impresor = FGL_GETENV("IMP")
DISPLAY " Reportes " AT 6,24 ATTRIBUTE(BLACK)
DISPLAY "temnrp000" AT 4,3 ATTRIBUTE(RED)
DISPLAY " 1-Validacion de Depositos teprrp001" AT 10,1
DISPLAY " 2-Comision Por Ventas teprrp002" AT 11,1
DISPLAY " 3-Comision Por Cobros teprrp003" AT 12,1
DISPLAY " 4-Estados de Cuentas teprrp004" AT 13,1
DISPLAY " 5-Comision/Cobro Plan Ranch teprrp005" AT 14,1
DISPLAY " 6-Valid. Cheques Devueltos teprrp006" AT 15,1
DISPLAY " 7-Relacion Cheques Emitidos teprrp007" AT 16,1
DISPLAY " 8-C-F Compar. Real/Estimado teprrp008" AT 17,1
DISPLAY " 9-C-F Real Diario/Acumulado teprrp009" AT 18,1
DISPLAY "10-C-F Real Comp. Tres Anos teprrp010" AT 19,1
DISPLAY "11-Panoramico Cash Flow Real teprrp011" AT 20,1
DISPLAY "12-Panoram. Cash Flow Estim. teprrp012" AT 10,40
DISPLAY "13-Maestra de Partidas C. F. teprrp013" AT 11,40
DISPLAY "14-Cheques Emitido x Partida teprrp014" AT 12,40
DISPLAY "S- Retorna Menu Anterior " AT 21,28
ATTRIBUTE (BLACK)
LABEL vuelve:
LET opcion = NULL
PROMPT " OPCION: " FOR opcion
LET opcion = opcion CLIPPED
LET opcion = UPSHIFT(opcion)
IF opcion != "S" THEN
SELECT unique usuario INTO p_user FROM seg0001
WHERE usuario = user
CALL seg000(opcion,"temnrp000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
CALL teprrp001()
CALL temnrp000()
WHEN opcion = "2"
CALL teprrp002()
CALL temnrp000()
WHEN opcion = "3"
CALL teprrp003()
CALL temnrp000()
WHEN opcion = "4"
CALL teprrp004()
CALL temnrp000()
WHEN opcion = "5"
CALL teprrp005()
CALL temnrp000()
WHEN opcion = "6"
CALL teprrp006()
CALL temnrp000()
WHEN opcion = "7"
CALL teprrp007()
CALL temnrp000()
WHEN opcion = "8"
CALL teprrp008()
CALL temnrp000()
WHEN opcion = "9"
CALL teprrp009()
CALL temnrp000()
WHEN opcion = "10"
CALL teprrp010()
CALL temnrp000()
WHEN opcion = "11"
CALL teprrp011()
CALL temnrp000()
WHEN opcion = "12"
CALL teprrp012()
CALL temnrp000()
WHEN opcion = "13"
CALL teprrp013()
CALL temnrp000()
WHEN opcion = "14"
CALL teprrp014()
CALL temnrp000()
WHEN opcion = "S"
RETURN
OTHERWISE
CALL temnrp000()
END CASE
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY " R A Y . O . V A C D O M I N I C A N A " AT 4,19
ATTRIBUTE (REVERSE,BLUE)
DISPLAY fecha AT 4,70 ATTRIBUTE (RED)
DISPLAY " Sistema de Tesoreria " AT 5,25 ATTRIBUTE(BLACK)
DISPLAY hora AT 6,73 ATTRIBUTE(RED)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
FUNCTION prd()
LET a_ano = year(p_fechas)
LET mes_control = MONTH(today)
LET mes_calc = mes_control
IF mes_calc = 01 THEN
LET mes_calc = 13
LET a_ano = year(today - 32)
END IF
#Aqui la funcion se posicionaba en dos meses para el control del documento
#LET mes_calc = mes_calc - 2
IF mes_calc <= 0 THEN
LET mes_calc = 12
LET a_ano = year(today) - 1
END IF
LET c_ano = year(today)
{IF a_ano != c_ano THEN
LET numero_msg = 59
CALL msg(numero_msg)
LET bandera = 1
RETURN
END IF}
SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable
WHERE fecha_corte >= p_fechas
SELECT MIN(dias_gracia) INTO dia FROM prdtable
WHERE fecha_corte = fecha_c
IF dia IS NULL THEN
LET dia = 0
END IF
SELECT a.usuario FROM seg0003
WHERE a.usuario = USER
IF status != notfound THEN
LET fecha_c = fecha_c + dia
END IF
IF status = notfound THEN
LET numero_msg = 58
CALL msg(numero_msg)
LET bandera = 1
END IF
LET comp_fech = fecha_c
LET comp_fech1 = TODAY
IF comp_fech < comp_fech1 THEN
LET numero_msg = 57
CALL msg(numero_msg)
LET bandera = 1
END IF
END FUNCTION
+17
View File
@@ -0,0 +1,17 @@
fgl2p temn00000.4gl
fgl2p temnmt000.4gl
fgl2p teprmt001.4gl
fgl2p teprmt002.4gl
fgl2p teprmt003.4gl
fgl2p teprmt004.4gl
fgl2p teprmt005.4gl
fgl2p teprmt006.4gl
fgl2p teprmt007.4gl
fgl2p teprmt008.4gl
fgl2p teprmt010.4gl
fgl2p teprmt011.4gl
fgl2p teprmt021.4gl
fgl2p teprmt022.4gl
fgl2p -o temn00000.42r temn00000.42m msg.42m seg000.42m
fgl2p -o temnmt000.42r temnmt000.42m termo.42m teprmt001.42m teprmt002.42m teprmt003.42m teprmt004.42m teprmt005.42m teprmt006.42m teprmt007.42m teprmt008.42m teprmt010.42m teprmt011.42m teprmt022.42m seg000.42m msg.42m
+230
View File
@@ -0,0 +1,230 @@
{
-------------------------------------------------------------------------------
PROGRAMA : TEPRCS001
OBJETIVO : Estado De Cuentas
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Junio 8, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE fecha DATE
DEFINE balance4,balance3,p_valor,p_monto DECIMAL(12,2)
DEFINE mov CHAR(1)
DEFINE pcasa,pcalle,pbarrio CHAR(20)
DEFINE provincia CHAR(3)
DEFINE tipo CHAR(1)
DEFINE idx_1, idx_2, idx_3 SMALLINT
DEFINE salir, salir1, salir3, tipo_venta CHAR(1)
DEFINE selec5, selec6 CHAR(1500)
DEFINE cuenta1 RECORD
fecha_inicial DATE,
fecha_final DATE,
tipo_cliente LIKE cctb00001.tipo_cliente,
sec_cliente LIKE cctb00001.sec_cliente,
nombre LIKE vetb00004.nombre,
direccion CHAR(60),
ciudad CHAR(60),
limite DECIMAL(12,2),
prima DECIMAL(5,2),
balance DECIMAL(12,2)
END RECORD
DEFINE cuenta2 ARRAY[500] OF RECORD
num_doc LIKE cctb00001.num_doc,
tipo_doc LIKE cctb00001.tipo_doc,
fecha_orig LIKE cctb00001.fecha_orig,
aplica_a LIKE cctb00001.aplica_a,
debito DECIMAL(12,2),
credito DECIMAL(12,2),
balance1 DECIMAL(12,2)
END RECORD
DEFINE apartado CHAR(30)
DEFINE busca_d RECORD
num_doc LIKE cctb00001.num_doc,
tipo_doc LIKE cctb00001.tipo_doc,
fecha_orig LIKE cctb00001.fecha_orig,
aplica_a LIKE cctb00001.aplica_a,
valor DECIMAL(12,2)
END RECORD
FUNCTION teprcs001()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM tefmcs001 FROM "tefmcs001"
DISPLAY FORM tefmcs001
CALL pantalla()
DISPLAY "teprcs001" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Estado Cuentas " AT 6,32ATTRIBUTE(BLACK)
LABEL volvera:
INPUT BY NAME cuenta1.*
AFTER FIELD fecha_inicial
IF cuenta1.fecha_inicial is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
BEFORE FIELD fecha_final
LET cuenta1.fecha_final = today
AFTER FIELD fecha_final
IF cuenta1.fecha_final is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF cuenta1.fecha_final < cuenta1.fecha_inicial THEN
LET numero_msg = 86
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
AFTER FIELD tipo_cliente
IF cuenta1.tipo_cliente IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tipo_cliente
END IF
AFTER FIELD sec_cliente
IF cuenta1.sec_cliente IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_cliente
END IF
SELECT UNIQUE ventas INTO tipo FROM vetb00002 WHERE
tipo_cliente = cuenta1.tipo_cliente AND
sec_cliente = cuenta1.sec_cliente
SELECT nombre,cod_provincia,zona_postal,limite_credito
INTO cuenta1.nombre,provincia,apartado,cuenta1.limite
FROM vetb00004
WHERE tipo_cliente = cuenta1.tipo_cliente AND
sec_cliente = cuenta1.sec_cliente AND
status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD tipo_cliente
END IF
DISPLAY BY NAME cuenta1.nombre,cuenta1.limite
SELECT calle,casa_num,barrio INTO pcalle,pcasa,pbarrio
FROM vetb00005 WHERE tipo_cliente = cuenta1.tipo_cliente AND
sec_cliente = cuenta1.sec_cliente
LET cuenta1.direccion = pcalle clipped," ",pcasa clipped,", ",pbarrio clipped
DISPLAY BY NAME cuenta1.direccion
IF tipo = 1 THEN
SELECT nombre_provincia INTO cuenta1.ciudad FROM vetb00020
WHERE cod_provincia = provincia
ELSE
SELECT nom_pais INTO cuenta1.ciudad FROM cotb00018
WHERE cod_pais = provincia
END IF
LET cuenta1.ciudad = cuenta1.ciudad clipped," ",apartado clipped
DISPLAY BY NAME cuenta1.ciudad
DISPLAY BY NAME cuenta1.limite
AFTER FIELD prima
DISPLAY "Buscando Balance Inicial... Espere" AT 23,1 ATTRIBUTE (BOLD)
SELECT sum(a.valor+a.monto_desc)
INTO cuenta1.balance
FROM cctb00001 a
WHERE
a.status_t is null
and a.fecha_orig < cuenta1.fecha_inicial
and a.tipo_cliente = cuenta1.tipo_cliente
and a.sec_cliente = cuenta1.sec_cliente
IF cuenta1.balance IS NULL THEN
LET cuenta1.balance = 0
END IF
IF STATUS = NOTFOUND THEN
LET cuenta1.balance = 0
END IF
IF cuenta1.prima is not null THEN
LET cuenta1.balance = cuenta1.balance * cuenta1.prima
END IF
DISPLAY " " AT 23,1 ATTRIBUTE (BOLD)
LET fecha = cuenta1.fecha_inicial
DISPLAY BY NAME cuenta1.balance
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DECLARE buscar CURSOR FOR
SELECT a.num_doc,a.tipo_doc,a.fecha_orig,a.aplica_a,a.valor+a.monto_desc
FROM cctb00001 a WHERE a.status_t IS NULL AND
a.tipo_cliente = cuenta1.tipo_cliente AND
a.sec_cliente = cuenta1.sec_cliente AND
a.fecha_orig BETWEEN cuenta1.fecha_inicial AND cuenta1.fecha_final
ORDER BY 4,3
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 24,14
ATTRIBUTE (REVERSE,BOLD)
LET idx_1 = 1
DISPLAY " " AT 24,14
FOREACH buscar INTO busca_d.*
LET cuenta2[idx_1].num_doc = busca_d.num_doc
LET cuenta2[idx_1].tipo_doc = busca_d.tipo_doc
LET cuenta2[idx_1].aplica_a = busca_d.aplica_a
LET cuenta2[idx_1].fecha_orig = busca_d.fecha_orig using "dd/mm/yyyy"
IF cuenta1.prima is not null THEN
LET busca_d.valor = busca_d.valor * cuenta1.prima
END IF
IF busca_d.valor < 0 THEN
LET cuenta1.balance = cuenta1.balance + busca_d.valor
LET cuenta2[idx_1].balance1 = cuenta1.balance
LET cuenta2[idx_1].credito = busca_d.valor
LET cuenta2[idx_1].debito = 0
ELSE
LET cuenta2[idx_1].debito = busca_d.valor
LET cuenta1.balance = cuenta1.balance + busca_d.valor
LET cuenta2[idx_1].balance1 = cuenta1.balance
LET cuenta2[idx_1].credito = 0
END IF
LET idx_1 = idx_1 + 1
END FOREACH
CALL SET_COUNT(idx_1 - 1)
DISPLAY ARRAY cuenta2 TO cuenta.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
CLEAR FORM
GOTO volvera
END FUNCTION
+257
View File
@@ -0,0 +1,257 @@
{
-------------------------------------------------------------------------------
PROGRAMA : TEPRCS002
OBJETIVO : Estado De Cuentas del Suplidor
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Junio 16, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE fecha DATE
DEFINE balance4,balance3,p_valor,p_monto DECIMAL(12,2)
DEFINE mov CHAR(1)
DEFINE direccion CHAR(30)
DEFINE provincia CHAR(3)
DEFINE tipo CHAR(1)
DEFINE idx_1, idx_2, idx_3 SMALLINT
DEFINE salir, salir1, salir3, tipo_venta CHAR(1)
DEFINE selec5, selec6 CHAR(1500)
DEFINE cuenta1 RECORD
fecha_inicial DATE,
fecha_final DATE,
cod_sp LIKE cptb00001.cod_sp,
cod_sp_sec LIKE cptb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
direccion CHAR(30),
ciu_sp CHAR(30),
prima DECIMAL(5,2),
balance DECIMAL(12,2)
END RECORD
DEFINE cuenta11 RECORD
fecha_inicial DATE,
fecha_final DATE,
cod_sp LIKE cptb00001.cod_sp,
cod_sp_sec LIKE cptb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
direccion CHAR(30),
ciu_sp CHAR(30),
prima DECIMAL(5,2),
balance DECIMAL(12,2)
END RECORD
DEFINE cuenta2 ARRAY[500] OF RECORD
num_doc LIKE cptb00001.num_doc,
tipo_doc LIKE cptb00001.tipo_doc,
fecha_orig LIKE cptb00001.fecha_orig,
aplica_a CHAR(13),
debito DECIMAL(12,2),
credito DECIMAL(12,2),
balance1 DECIMAL(12,2)
END RECORD
DEFINE cuenta3 ARRAY[500] OF RECORD
num_doc LIKE cptb00001.num_doc,
tipo_doc LIKE cptb00001.tipo_doc,
fecha_orig LIKE cptb00001.fecha_orig,
aplica_a CHAR(13),
debito DECIMAL(12,2),
credito DECIMAL(12,2),
balance1 DECIMAL(12,2)
END RECORD
DEFINE busca_d RECORD
num_doc LIKE cptb00001.num_doc,
tipo_doc LIKE cptb00001.tipo_doc,
fecha_orig LIKE cptb00001.fecha_orig,
aplica_a LIKE cptb00001.aplica_a,
valor DECIMAL(12,2)
END RECORD
FUNCTION teprcs002()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM tefmcs002 FROM "tefmcs002"
DISPLAY FORM tefmcs002
CALL pantalla()
DISPLAY "teprcs002" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Estado de Cuenta del Suplidor" AT 6,25 ATTRIBUTE(BLACK)
LABEL volvera:
INPUT BY NAME cuenta1.* WITHOUT DEFAULTS
AFTER FIELD fecha_inicial
IF cuenta1.fecha_inicial is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
BEFORE FIELD fecha_final
LET cuenta1.fecha_final = today
AFTER FIELD fecha_final
IF cuenta1.fecha_final is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF cuenta1.fecha_final < cuenta1.fecha_inicial THEN
LET numero_msg = 86
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
AFTER FIELD cod_sp
IF cuenta1.cod_sp IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_sp
END IF
AFTER FIELD cod_sp_sec
IF cuenta1.cod_sp_sec IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_sp_sec
END IF
SELECT a.nom_sp,a.dir_sp,a.ciu_sp
INTO cuenta1.nom_sp,cuenta1.direccion,cuenta1.ciu_sp
FROM cotb00001 a
WHERE a.cod_sp = cuenta1.cod_sp AND
a.cod_sp_sec = cuenta1.cod_sp_sec AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_sp
END IF
DISPLAY BY NAME cuenta1.nom_sp,cuenta1.direccion,cuenta1.ciu_sp
BEFORE FIELD prima
DISPLAY "Buscando Balance Inicial... Espere" AT 23,1 ATTRIBUTE (BOLD)
SELECT sum(a.valor)
INTO cuenta1.balance
FROM cptb00001 a
WHERE
a.status_t is null
and a.fecha_orig < cuenta1.fecha_inicial
and a.cod_sp = cuenta1.cod_sp
and a.cod_sp_sec = cuenta1.cod_sp_sec
IF cuenta1.balance IS NULL THEN
LET cuenta1.balance = 0
END IF
IF STATUS = NOTFOUND THEN
LET cuenta1.balance = 0
END IF
AFTER FIELD prima
IF cuenta1.prima is not null THEN
LET cuenta1.balance = cuenta1.balance * cuenta1.prima
END IF
DISPLAY " " AT 23,1 ATTRIBUTE (BOLD)
LET fecha = cuenta1.fecha_inicial
DISPLAY BY NAME cuenta1.balance
AFTER INPUT
IF cuenta1.cod_sp = 23 THEN
LET cuenta1.prima = null
EXIT INPUT
DISPLAY BY NAME cuenta1.prima
END IF
LET cuenta11.* = cuenta1.*
EXIT INPUT
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DECLARE buscar CURSOR FOR
SELECT a.num_doc,a.tipo_doc,a.fecha_orig,a.aplica_a,a.valor
FROM cptb00001 a WHERE a.status_t IS NULL AND
a.cod_sp = cuenta1.cod_sp AND
a.cod_sp_sec = cuenta1.cod_sp_sec AND
a.fecha_orig BETWEEN cuenta1.fecha_inicial AND cuenta1.fecha_final
ORDER BY 4,3
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 24,14
ATTRIBUTE (REVERSE,BOLD)
LET idx_1 = 1
DISPLAY " " AT 24,14
FOREACH buscar INTO busca_d.*
LET cuenta2[idx_1].num_doc = busca_d.num_doc
LET cuenta2[idx_1].tipo_doc = busca_d.tipo_doc
LET cuenta2[idx_1].fecha_orig = busca_d.fecha_orig using "dd/mm/yyyy"
IF cuenta1.prima is not null THEN
LET busca_d.valor = busca_d.valor * cuenta1.prima
END IF
IF busca_d.tipo_doc = "CP" AND busca_d.aplica_a IS NOT NULL THEN
LET busca_d.valor = 0
END IF
IF busca_d.valor <> 0 THEN
IF busca_d.valor > 0 THEN
LET cuenta2[idx_1].credito = busca_d.valor * -1 USING "###,###,###.##"
LET cuenta2[idx_1].debito = 0
END IF
IF busca_d.valor < 0 THEN
LET cuenta2[idx_1].debito = busca_d.valor * -1 USING "###,###,###.##"
LET cuenta2[idx_1].credito = 0
END IF
IF cuenta1.balance IS NULL THEN
LET cuenta1.balance = 0
END IF
LET cuenta1.balance = cuenta1.balance + busca_d.valor
LET cuenta2[idx_1].balance1 = cuenta1.balance USING "###,###,###.##"
IF busca_d.aplica_a IS NULL THEN
SELECT UNIQUE orden_no INTO busca_d.aplica_a FROM cptb00001
WHERE tipo_doc = cuenta2[idx_1].tipo_doc AND
num_doc = cuenta2[idx_1].num_doc AND
valor = busca_d.valor
LET cuenta2[idx_1].aplica_a = "OC-",busca_d.aplica_a clipped
ELSE
LET cuenta2[idx_1].aplica_a = "FT-",busca_d.aplica_a clipped
END IF
LET idx_1 = idx_1 + 1
END IF
END FOREACH
CALL SET_COUNT(idx_1 - 1)
DISPLAY ARRAY cuenta2 TO cuenta.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
CLEAR FORM
GOTO volvera
END FUNCTION
+309
View File
@@ -0,0 +1,309 @@
DATABASE smarmotech
GLOBALS
DEFINE vendedorzp RECORD LIKE vetb00010.*
DEFINE deposito RECORD LIKE tetb00001.*
DEFINE procedencias RECORD LIKE tetb00002.*
DEFINE p_tetb03 RECORD LIKE tetb00003.*
DEFINE p_tetb04 RECORD LIKE tetb00004.*
DEFINE p_tetb05 RECORD LIKE tetb00005.*
DEFINE p_tetb06 RECORD LIKE tetb00006.*
DEFINE p_tetb07 RECORD LIKE tetb00007.*
DEFINE unidades1 ARRAY[19] OF CHAR(10)
DEFINE decenas ARRAY[81] OF CHAR(20)
DEFINE centenas ARRAY[10] OF CHAR(20)
DEFINE miles ARRAY[9] OF CHAR(2)
DEFINE excede ARRAY[200] OF CHAR(1)
DEFINE p_bonifica,cant_pend ARRAY[20] OF INTEGER,
regi INTEGER,
p_param CHAR(1),
usuarios,clave CHAR(80)
DEFINE p_fechas DATE
DEFINE opt4,opt3,impresion,verdad,identifica,existe,tiene_facturas,
detalle,status_reg CHAR(1),
criterio CHAR(1000),
selec CHAR(1000),
selec2 CHAR(500),
selec3 CHAR(1000),
tipo2,opcion CHAR(2),
valor_letras CHAR(90),
luz CHAR(5),
p_act,p_cantidad_1,tipo1,longitud,p_fact_no,bandera,p_existencia
INTEGER,
p_cantidad_2,p_cedula,p_serie INTEGER,
compania CHAR(50),
parametro1 CHAR(10),
medida CHAR(3),
descventa CHAR(11),
nombre_desc,descrip2,nombre_pt,nom_cliente CHAR(30),
descrip1 CHAR(46),
descrip3 CHAR(30),
descrip4 CHAR(30),
descrip5 CHAR(65),
descrip6 CHAR(45),
zona_p CHAR(30),
provincia_p CHAR(30),
tipo_papel,idx, curr2,curr, curr1, fila, scr_l SMALLINT,
ano1,ano_c CHAR(4),
desc_valor CHAR(10),
sub_total CHAR(14),
itbi CHAR(14),
total_fact CHAR(14),
p_fecha_ven DATE,
p_costos,p_precio DECIMAL (12,2),
p_costos1 DECIMAL (8,3),
p_costos2 DECIMAL (12,2),
p_costos3 DECIMAL (12,2),
valor_orig DECIMAL (12,2),
t_costos DECIMAL (12,2),
p_cantidad INTEGER,
unidades INTEGER,
dias_v ,h SMALLINT,
p_desc DECIMAL(10,3),
p_user CHAR(9)
DEFINE numero_msg LIKE msgtable.cod_msg
DEFINE zona RECORD LIKE vetb00008.*
DEFINE datos RECORD LIKE vetb00019.*
DEFINE zonap RECORD LIKE vetb00009.*
DEFINE pago RECORD LIKE vetb00012.*
DEFINE medidas RECORD LIKE vetb00014.*
DEFINE pterminado RECORD LIKE iptb00002.*
DEFINE descuento RECORD LIKE vetb00013.*
DEFINE descuentoh RECORD LIKE vetb00027.*
DEFINE transportista RECORD LIKE vetb00015.*
DEFINE comisiones RECORD LIKE cctb00008.*
DEFINE cliente_bas RECORD LIKE vetb00004.*
DEFINE cliente_dir RECORD LIKE vetb00005.*
DEFINE cliente_eco RECORD LIKE vetb00006.*
DEFINE cliente_des RECORD LIKE vetb00007.*
DEFINE presupuesto RECORD LIKE vetb00017.*
DEFINE controles RECORD LIKE vetb00018.*
DEFINE paises RECORD LIKE cotb00018.*
DEFINE tarifa RECORD LIKE vetb00023.*
DEFINE visitas RECORD LIKE vetb00024.*
DEFINE pre_pila RECORD LIKE vetb00025.*,
archivo CHAR(20),
imprime CHAR(80),
imprime1 CHAR(80),
impresor SMALLINT,
parametro CHAR(2),
orden CHAR(1),
destino CHAR(1)
DEFINE letras RECORD
negrillas_on CHAR(6),
negrillas_off CHAR(6),
doble_on CHAR(6),
doble_off CHAR(6),
comp_on CHAR(6),
comp_off CHAR(6),
doce CHAR(6),
normal CHAR(6)
END RECORD
DEFINE rango RECORD
fech_in DATE,
fech_fi DATE
END RECORD
DEFINE datos_empleados RECORD
cod_emp LIKE adtb00003.num_emp,
nom_emp LIKE adtb00003.nom1_emp,
apell_emp LIKE adtb00003.apell1_emp
END RECORD
DEFINE descuenta DYNAMIC ARRAY OF RECORD
codigo INTEGER,
porc DECIMAL(10,2),
valor DECIMAL(10,2)
END RECORD
DEFINE arr_tetb04 DYNAMIC ARRAY OF RECORD
mes INTEGER,
descrip CHAR(30),
valor DECIMAL(10,2)
END RECORD
DEFINE arr_tetb05 DYNAMIC ARRAY OF RECORD
mes INTEGER,
descrip CHAR(30),
valor DECIMAL(10,2)
END RECORD
DEFINE mes1 DYNAMIC ARRAY OF CHAR (11)
DEFINE dias DYNAMIC ARRAY OF CHAR(11)
DEFINE cli_vend DYNAMIC ARRAY OF RECORD
cod_vend LIKE adtb00003.num_emp,
nombre_v CHAR(60)
END RECORD
DEFINE arr_empleados DYNAMIC ARRAY OF RECORD
cod_emp LIKE adtb00003.num_emp,
nom_emp LIKE adtb00003.nom1_emp,
apell_emp LIKE adtb00003.apell1_emp
END RECORD
DEFINE empleados DYNAMIC ARRAY OF RECORD
cod_emp LIKE adtb00003.num_emp,
descrip6 CHAR(65)
END RECORD
DEFINE arr_procedencia DYNAMIC ARRAY OF RECORD
procedencia LIKE tetb00002.procedencia,
descripcion LIKE tetb00002.descripcion
END RECORD
DEFINE zonas DYNAMIC ARRAY OF RECORD
cod_zona LIKE vetb00008.cod_zona,
descrip LIKE vetb00008.descrip
END RECORD
DEFINE provincias DYNAMIC ARRAY OF RECORD
cod_provincia LIKE vetb00020.cod_provincia,
nombre_provincia LIKE vetb00020.nombre_provincia
END RECORD
DEFINE porc_zona DYNAMIC ARRAY OF RECORD
ventas CHAR(1),
zona CHAR(3),
descrip CHAR(30),
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
mes CHAR(4),
desc_mes CHAR(30),
porciento DECIMAL(7,3)
END RECORD
DEFINE porc_prov DYNAMIC ARRAY OF RECORD
ventas CHAR(1),
zona CHAR(3),
provincia SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descrip CHAR(30),
mes CHAR(4),
desc_mes CHAR(30),
porciento DECIMAL(7,3)
END RECORD
DEFINE porc_clie DYNAMIC ARRAY OF RECORD
ventas CHAR(1),
zona CHAR(3),
provincia SMALLINT,
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
mes CHAR(4),
desc_mes CHAR(30),
porciento DECIMAL(7,3)
END RECORD
DEFINE pres_venta DYNAMIC ARRAY OF RECORD
ventas CHAR(1),
descrip1 CHAR(15),
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
mes SMALLINT,
descrip_mes CHAR(11),
cantidad INTEGER,
valor DECIMAL(12,2)
END RECORD
DEFINE reg_ventas RECORD
cod_n1 SMALLINT,
cod_grupo1 SMALLINT,
cod_tipo1 SMALLINT,
cod_sec1 SMALLINT,
descrip1 CHAR(30),
unidades1 INTEGER,
valor1 DECIMAL(14,2)
END RECORD
DEFINE reg_ventas2 RECORD
zona2 CHAR(3),
cod_n2 SMALLINT,
cod_grupo2 SMALLINT,
cod_tipo2 SMALLINT,
cod_sec2 SMALLINT,
descrip2 CHAR(30),
unidades2 INTEGER,
valor2 DECIMAL(14,2)
END RECORD
DEFINE arr_ventas DYNAMIC ARRAY OF RECORD
codigo1 CHAR(10),
descrip1 CHAR(30),
unidades1 CHAR(14),
valor1 CHAR(17)
END RECORD
DEFINE reg_clientes RECORD
tipo1 SMALLINT,
sec1 SMALLINT,
descrip1 CHAR(30),
unidades1 INTEGER
END RECORD
DEFINE arr_cajas DYNAMIC ARRAY OF RECORD
cod_n1 SMALLINT,
cod_grupo1 SMALLINT,
cod_tipo1 SMALLINT,
cod_sec1 SMALLINT,
descrip1 CHAR(30),
cajas1 INTEGER
END RECORD
DEFINE arr_ventas3 DYNAMIC ARRAY OF RECORD
codigo1 CHAR(7),
descrip1 CHAR(30),
unidades1 CHAR(14)
END RECORD
DEFINE arr_clientes DYNAMIC ARRAY OF RECORD
tipo_cliente LIKE vetb00004.tipo_cliente,
sec_cliente LIKE vetb00004.sec_cliente,
nombre LIKE vetb00004.nombre
END RECORD
DEFINE pais_wd DYNAMIC ARRAY OF RECORD
cod_pais LIKE cotb00018.cod_pais,
nom_pais LIKE cotb00018.nom_pais
END RECORD
DEFINE arr_transp DYNAMIC ARRAY OF RECORD
cod_transp SMALLINT,
sec_transp SMALLINT,
nombre CHAR(30)
END RECORD
DEFINE arr_tarifa DYNAMIC ARRAY OF RECORD
cod_tarifa SMALLINT,
descrip CHAR(30)
END RECORD
DEFINE arr_condicion DYNAMIC ARRAY OF RECORD
cond_pago SMALLINT,
descrip CHAR(30)
END RECORD
DEFINE comp_fech,comp_fech1 DATE
DEFINE mes_control CHAR(2)
DEFINE mes_calc,dia SMALLINT
DEFINE fecha_c DATE
DEFINE c_ano,a_ano CHAR(4)
END GLOBALS
+483
View File
@@ -0,0 +1,483 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT001
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Depositos.
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Diciembre 2, 1992.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE proced INTEGER,
descrip_s CHAR(30)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" USER usuarios USING clave
CALL teprmt001()
END MAIN
FUNCTION teprmt001()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt001 FROM "tefmmt001"
DISPLAY FORM tefmmt001
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt001" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Depositos" at 6,27 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad001()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
LET int_flag = FALSE
CALL tepcmf001()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad001()
# WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
INITIALIZE deposito.* TO NULL
LET descrip1 = NULL
LET descrip2 = NULL
INPUT BY NAME deposito.*
ON KEY (CONTROL-W)
CASE
WHEN INFIELD(procedencia)
CALL busca_procedencia()
LET deposito.procedencia = proced
DISPLAY BY NAME deposito.procedencia,descrip2
NEXT FIELD fecha
END CASE
SELECT MAX(num_doc) INTO deposito.num_doc
FROM tetb00001
IF deposito.num_doc IS NULL THEN
LET deposito.num_doc = 0
END IF
LET deposito.num_doc = deposito.num_doc + 1
DISPLAY BY NAME deposito.num_doc
AFTER FIELD sucursal
SELECT a.nombre INTO descrip_s from companias a
WHERE a.cod_comp = deposito.sucursal
IF STATUS = NOTFOUND THEN
LET numero_msg= 3
CALL msg(numero_msg)
NEXT FIELD sucursal
END IF
DISPLAY BY NAME descrip_s
BEFORE FIELD num_doc
AFTER FIELD cuenta_no
IF deposito.cuenta_no = " " OR
deposito.cuenta_no is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
LET descrip1 = NULL
SELECT i.descripcion INTO descrip1
FROM cgtb00001 i,cgtb00012 b
WHERE i.cuenta_no = b.cuenta_no AND
i.cuenta_no= deposito.cuenta_no AND
i.status_t is null
IF descrip1 IS NULL THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
DISPLAY BY NAME descrip1
AFTER FIELD procedencia
IF deposito.cta_banco IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cta_banco
END IF
LET descrip2 = NULL
IF deposito.procedencia IS NOT NULL THEN
SELECT unique a.descripcion INTO descrip2 FROM tetb00002 a
WHERE a.status_t IS NULL AND a.procedencia=deposito.procedencia
IF descrip2 IS NULL THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
DISPLAY BY NAME descrip2
END IF
AFTER FIELD fecha
IF deposito.procedencia IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
IF deposito.fecha IS NOT NULL THEN
IF deposito.fecha > today THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
LET p_fechas = deposito.fecha
CALL prd()
IF bandera = 1 THEN
LET bandera = 0
NEXT FIELD fecha
END IF
END IF
AFTER FIELD monto
IF deposito.fecha IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
IF deposito.monto IS NULL OR
deposito.monto = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD monto
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
INSERT INTO tetb00001 VALUES (deposito.*)
UPDATE tetb00001 SET (us_crea,fech_crea) = (USER,CURRENT)
WHERE @num_doc = deposito.num_doc
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf001()
LET int_flag = FALSE
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON a.num_doc,a.cuenta_no FROM num_doc,cuenta_no
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.*,b.descripcion,c.descripcion ",
" FROM tetb00001 a,cgtb00001 b,tetb00002 c ",
" WHERE a.cuenta_no = b.cuenta_no AND a.status_t is null AND ",
" a.procedencia = c.procedencia AND ",
criterio clipped," ORDER BY a.num_doc "
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO deposito.*,descrip1,descrip2
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME deposito.*,descrip1,descrip2
#CALL busca_cuenta()
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO deposito.*,descrip1,descrip2
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
#CALL busca_cuenta()
DISPLAY BY NAME deposito.*,descrip1,descrip2
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO deposito.*,descrip1,descrip2
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
#CALL busca_cuenta()
DISPLAY BY NAME deposito.*,descrip1,descrip2
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO deposito.*,descrip1,descrip2
#CALL busca_cuenta()
DISPLAY BY NAME deposito.*,descrip1,descrip2
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO deposito.*,descrip1,descrip2
# CALL busca_cuenta()
DISPLAY BY NAME deposito.*,descrip1
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
LET p_fechas = deposito.fecha
CALL prd()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
INPUT BY NAME deposito.cuenta_no THRU deposito.fech_mod WITHOUT DEFAULTS
ON KEY (CONTROL-W)
CASE
WHEN INFIELD(procedencia)
CALL busca_procedencia()
LET deposito.procedencia = proced
DISPLAY BY NAME deposito.procedencia,descrip2
NEXT FIELD fecha
END CASE
AFTER FIELD sucursal
SELECT a.nombre INTO descrip_s from companias a WHERE a.cod_comp = deposito.sucursal
IF STATUS = NOTFOUND THEN
LET numero_msg= 3
CALL msg(numero_msg)
NEXT FIELD sucursal
END IF
DISPLAY BY NAME descrip_s
BEFORE FIELD num_doc
AFTER FIELD cuenta_no
IF deposito.cuenta_no = " " OR
deposito.cuenta_no is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
LET descrip1 = NULL
SELECT i.descripcion INTO descrip1
FROM cgtb00001 i,cgtb00012 b
WHERE i.cuenta_no = b.cuenta_no AND
i.cuenta_no= deposito.cuenta_no AND
i.status_t is null
IF descrip1 IS NULL THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
DISPLAY BY NAME descrip1
AFTER FIELD procedencia
IF deposito.cta_banco IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cta_banco
END IF
LET descrip2 = NULL
IF deposito.procedencia IS NOT NULL THEN
SELECT unique a.descripcion INTO descrip2 FROM tetb00002 a
WHERE a.status_t IS NULL AND a.procedencia=deposito.procedencia
IF descrip2 IS NULL THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
DISPLAY BY NAME descrip2
END IF
AFTER FIELD fecha
IF deposito.procedencia IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
IF deposito.fecha IS NOT NULL THEN
IF deposito.fecha > today THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
LET p_fechas = deposito.fecha
CALL prd()
IF bandera = 1 THEN
LET bandera = 0
NEXT FIELD fecha
END IF
END IF
AFTER FIELD monto
IF deposito.monto IS NULL OR
deposito.monto = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD monto
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE tetb00001 SET (cuenta_no,cta_banco,procedencia,
fecha,monto,us_mod,fech_mod)
= (deposito.cuenta_no,deposito.cta_banco,
deposito.procedencia,deposito.fecha,
deposito.monto,USER,CURRENT)
WHERE @num_doc = deposito.num_doc
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
DELETE FROM tetb00001
WHERE @num_doc = deposito.num_doc
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
# CALL ayuda()
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_cuenta()
# Esta funcion busca el nombre del cuenta y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
SELECT i.descripcion INTO descrip1 FROM cgtb00001 i
WHERE i.cuenta_no = deposito.cuenta_no and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET numero_msg = 67
CALL msg(numero_msg)
END IF
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
FUNCTION busca_procedencia()
# Esta funcion busca el nombre de la Procedencia
OPEN WINDOW busqueda1 AT 10,10 WITH FORM "tefmwd002"
ATTRIBUTE (BORDER,FORM LINE FIRST + 1, comment line last)
DECLARE buscador CURSOR FOR
SELECT i.procedencia,i.descripcion FROM tetb00002 i
WHERE i.status_t IS NULL ORDER BY 1
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
CLOSE WINDOW busqueda1
RETURN
END IF
END IF
LET idx = 1
FOREACH buscador INTO arr_procedencia[idx].*
LET idx = idx + 1
END FOREACH
CALL SET_COUNT(idx - 1)
DISPLAY ARRAY arr_procedencia TO s_procedencia.*
LET curr = ARR_CURR()
LET proced = arr_procedencia[curr].procedencia
LET descrip2 = arr_procedencia[curr].descripcion
CLOSE WINDOW busqueda1
END FUNCTION
+219
View File
@@ -0,0 +1,219 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT002
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Procedencias.
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Diciembre 2, 1992.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt002()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt002 FROM "tefmmt002"
DISPLAY FORM tefmmt002
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt002" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Procedencia" at 6,26 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad002()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
LET int_flag = FALSE
CALL tepcmf002()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad002()
# WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
INITIALIZE procedencias.* TO NULL
LET descrip1 = NULL
LET descrip2 = NULL
INPUT BY NAME procedencias.*
AFTER FIELD procedencia
IF procedencias.procedencia is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
SELECT UNIQUE descripcion INTO procedencias.descripcion
FROM tetb00002 WHERE @procedencia = procedencias.procedencia
IF STATUS != NOTFOUND THEN
DISPLAY BY NAME procedencias.descripcion
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
AFTER FIELD descripcion
IF procedencias.descripcion[1] = " " OR
procedencias.descripcion is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descripcion
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
INSERT INTO tetb00002 VALUES (procedencias.*)
UPDATE tetb00002 SET (us_crea,fech_crea) = (USER,CURRENT)
WHERE @procedencia = procedencias.procedencia
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf002()
LET int_flag = FALSE
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON a.procedencia,a.descripcion
FROM procedencia,descripcion
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.* FROM tetb00002 a ",
" WHERE a.status_t IS NULL AND ",
criterio clipped," ORDER BY a.procedencia "
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO procedencias.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME procedencias.*
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO procedencias.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME procedencias.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO procedencias.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME procedencias.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO procedencias.*
DISPLAY BY NAME procedencias.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO procedencias.*
DISPLAY BY NAME procedencias.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME procedencias.descripcion THRU
procedencias.fech_mod WITHOUT DEFAULTS
AFTER FIELD descripcion
IF procedencias.descripcion[1] = " " OR
procedencias.descripcion is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descripcion
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE tetb00002 SET (descripcion,us_mod,fech_mod)
= (procedencias.descripcion,USER,CURRENT)
WHERE @procedencia = procedencias.procedencia
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
DELETE FROM tetb00002
WHERE @procedencia = procedencias.procedencia
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
+656
View File
@@ -0,0 +1,656 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT003
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Comisiones.
PROGRAMADOR : Lic. Abner Montalvo Zapata
FECHA REALIZACION : Diciembre 2, 1992.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt003()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt003 FROM "tefmmt003"
DISPLAY FORM tefmmt003
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt003" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Comisiones por Vendedor" at 6,20 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad003()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
CALL tepcmf003()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad003()
DEFINE fech_ant CHAR(8)
# WHENEVER ERROR CONTINUE
MESSAGE ""
## Captura los datos que va a contener el registro
INPUT BY NAME comisiones.*
AFTER FIELD sec_vend
IF comisiones.sec_vend = 0 or
comisiones.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = comisiones.sec_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
## Verifica que el codigo no exista en el catalogo de comisiones. Si existe,
## entonces despliega los datos del registro existente.
AFTER FIELD cod_sec
SELECT i.descrip_esp INTO descrip1
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
SELECT * INTO comisiones.* FROM vetb00011
WHERE
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF comisiones.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
INITIALIZE comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod TO NULL
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
AFTER FIELD porc_ventas
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER FIELD porc_cobros
IF comisiones.porc_cobros IS NULL THEN
LET comisiones.porc_cobros = 0
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF comisiones.sec_vend = 0 or
comisiones.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
IF comisiones.sec_vend = 0 or
comisiones.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = comisiones.sec_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
IF comisiones.cod_n IS NULL OR
comisiones.cod_n = 0 THEN
LET numero_msg = 60
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
## Verifica que el codigo no exista en el catalogo de comisiones. Si existe,
## entonces despliega los datos del registro existente.
IF ( comisiones.cod_n = 0 AND comisiones.cod_grupo = 0 AND
comisiones.cod_tipo = 0 AND comisiones.cod_sec = 0 ) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
ELSE
SELECT i.descrip_esp INTO descrip1
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
SELECT * INTO comisiones.* FROM vetb00011
WHERE
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF comisiones.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
IF comisiones.porc_cobros IS NULL THEN
LET comisiones.porc_cobros = 0
END IF
# Valida que el codigo del articulo no sea cero. Si no es cero, adiciona el
# registro en la tabla, de lo contrario, presenta mensaje de error y acepta
# el codigo de nuevo.
{ IF (comisiones.cod_n = 0 AND
comisiones.cod_grupo = 0 AND
comisiones.cod_tipo = 0 AND
comisiones.cod_sec = 0 ) OR
(comisiones.sec_vend = 0 AND
comisiones.sec_vend = 0 ) OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_vend
ELSE
} INSERT INTO vetb00011 VALUES (comisiones.cod_vend,
comisiones.sec_vend,
comisiones.cod_n,
comisiones.cod_grupo,
comisiones.cod_tipo,
comisiones.cod_sec,
comisiones.porc_ventas,
comisiones.porc_cobros,
null, USER, CURRENT, null, null)
# Verifica el Status que retorna luego de insertar el registro en la tabla.
# Si el Status es diferente de cero quiere decir que hubo problemas durante
# la creacion del registro, entonces despliega un mensaje de alerta para que
# el usuario sepa que hubo problemas en la creacion del registro.
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 1
CALL msg(numero_msg)
NEXT FIELD cod_vend
{ END IF
}
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION tepcmf003()
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON vetb00011.* FROM vetb00011.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM vetb00011 ",
" WHERE status_t is null AND ",criterio clipped,
" ORDER BY 1,2,3,4,5,6"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
OPEN datos
FETCH FIRST datos INTO comisiones.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor()
CALL busca_nombre_articulo1()
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO comisiones.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor()
CALL busca_nombre_articulo1()
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO comisiones.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor()
CALL busca_nombre_articulo1()
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO comisiones.*
DISPLAY BY NAME comisiones.*
CALL busca_vendedor()
CALL busca_nombre_articulo1()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO comisiones.*
DISPLAY BY NAME comisiones.*
CALL busca_vendedor()
CALL busca_nombre_articulo1()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME comisiones.porc_ventas,
comisiones.porc_cobros WITHOUT DEFAULTS
AFTER FIELD porc_ventas
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER FIELD porc_cobros
IF (comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0) AND
(comisiones.porc_cobros IS NULL OR
comisiones.porc_cobros = 0) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
IF (comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0) AND
(comisiones.porc_cobros IS NULL OR
comisiones.porc_cobros = 0) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
UPDATE vetb00011 SET porc_ventas = comisiones.porc_ventas,
porc_cobros = comisiones.porc_cobros,
us_mod = USER,
fech_mod = CURRENT
WHERE
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
UPDATE vetb00011 SET status_t = "E"
WHERE
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
# CALL ayuda()
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_vendedor()
# Esta funcion busca el nombre del vendedor y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
LET descrip6 = NULL
LET descrip2 = NULL
SELECT i.nom1_emp, i.apell1_emp, i.status_t
INTO descrip1, descrip2, status_reg
FROM adtb00003 i
WHERE i.num_emp = comisiones.sec_vend and i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET descrip6 = NULL
LET descrip2 = NULL
LET numero_msg = 68
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET descrip6 = NULL
LET descrip2 = NULL
LET numero_msg = 67
CALL msg(numero_msg)
END IF
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
FUNCTION busca_nombre_articulo1()
# Esta funcion busca el nombre del articulo y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
SELECT i.descrip_esp, i.status_t INTO descrip1, status_reg
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET numero_msg = 44
CALL msg(numero_msg)
END IF
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
FUNCTION consulta_empleados1()
OPEN WINDOW busqueda AT 7,12 WITH FORM "tefmwd001"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET int_flag = false
CONSTRUCT criterio ON a.nom1_emp FROM descrip6
LET selec2 = " SELECT a.num_emp, a.nom1_emp, a.apell1_emp ",
" FROM adtb00003 a ",
" WHERE a.status_t is null AND ",criterio clipped,
" ORDER BY 1,2 "
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO salir_consulta_e
END IF
PREPARE busca_empleados FROM selec2
IF status >= 0 THEN
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
END IF
END IF
DECLARE buscar_empleados CURSOR FOR busca_empleados
LET idx = 1
FOREACH buscar_empleados INTO arr_empleados[idx].*
IF status = NOTFOUND THEN
EXIT FOREACH
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET empleados[idx].cod_emp = arr_empleados[idx].cod_emp
LET empleados[idx].descrip6 =
arr_empleados[idx].nom_emp clipped," ",arr_empleados[idx].apell_emp clipped
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
MESSAGE " <Esc> Selecciona Empleado donde esta el cursor"
DISPLAY ARRAY empleados TO s_empleados.*
LET curr1 = arr_curr()
LET transportista.cod_transp = empleados[curr1].cod_emp
LET descrip6 = empleados[curr1].descrip6
LABEL salir_consulta_e:
CLOSE WINDOW busqueda
END FUNCTION
+219
View File
@@ -0,0 +1,219 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT004
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Partidas del Cash Flow
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Diciembre 06, 1995.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt004()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt004 FROM "tefmmt004"
DISPLAY FORM tefmmt004
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt004" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Maestra de Partidas Del Cash-Flow" at 6,24 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
CLEAR FORM
CALL tepcad004()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
LET int_flag = FALSE
CALL tepcmf004()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad004()
# WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
INPUT BY NAME p_tetb03.*
AFTER FIELD codigo
IF p_tetb03.codigo is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
SELECT UNIQUE descripcion INTO p_tetb03.descripcion
FROM tetb00003 WHERE @codigo = p_tetb03.codigo
IF STATUS != NOTFOUND THEN
DISPLAY BY NAME p_tetb03.descripcion
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
AFTER FIELD descripcion
IF p_tetb03.descripcion[1] =" " OR p_tetb03.descripcion is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descripcion
END IF
AFTER FIELD tipo
IF p_tetb03.tipo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tipo
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
INSERT INTO tetb00003 VALUES (p_tetb03.*)
UPDATE tetb00003 SET (us_crea,fech_crea) = (USER,CURRENT)
WHERE @codigo = p_tetb03.codigo
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf004()
LET int_flag = FALSE
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON a.codigo,a.descripcion FROM codigo,descripcion
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC =
" SELECT UNIQUE a.* FROM tetb00003 a ",
" WHERE a.status_t IS NULL AND ",criterio clipped," ORDER BY a.codigo "
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO p_tetb03.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME p_tetb03.*
MENU "OPCIONES "
COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO p_tetb03.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb03.*
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO p_tetb03.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb03.*
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO p_tetb03.*
DISPLAY BY NAME p_tetb03.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO p_tetb03.*
DISPLAY BY NAME p_tetb03.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger" "<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME p_tetb03.descripcion THRU p_tetb03.fech_mod
WITHOUT DEFAULTS
AFTER FIELD descripcion
IF p_tetb03.descripcion[1] = " " OR
p_tetb03.descripcion is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descripcion
END IF
AFTER FIELD tipo
IF p_tetb03.tipo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tipo
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE tetb00003 SET (descripcion,tipo,us_mod,fech_mod)
= (p_tetb03.descripcion,p_tetb03.tipo,
USER,CURRENT)
WHERE @codigo = p_tetb03.codigo
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla"
UPDATE tetb00003 SET (status_t,us_mod,fech_mod)
= ("E",USER,CURRENT)
WHERE @codigo = p_tetb03.codigo
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
+308
View File
@@ -0,0 +1,308 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT005
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Presupuestos de Partidas del Cash Flow
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Diciembre 06, 1995.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt005()
CLEAR SCREEN
OPTIONS
FORM LINE 8,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt005 FROM "tefmmt005"
DISPLAY FORM tefmmt005
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt005" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Estimados de Partidas Del Cash-Flow" at 6,23 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
CLEAR FORM
CALL tepcad005()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
LET int_flag = FALSE
CALL tepcmf005()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad005()
# WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
INPUT BY NAME p_tetb04.codigo,p_tetb04.ano
AFTER FIELD codigo
IF p_tetb04.codigo is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
SELECT UNIQUE descripcion INTO p_tetb03.descripcion
FROM tetb00003 WHERE @codigo = p_tetb04.codigo
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
DISPLAY BY NAME p_tetb03.descripcion
AFTER FIELD ano
IF p_tetb04.ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ano
END IF
SELECT UNIQUE a.ano FROM tetb00004 a
WHERE a.codigo = p_tetb04.codigo AND a.ano = p_tetb04.ano
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
FOR idx = 1 TO 12
LET arr_tetb04[idx].mes = idx
SELECT UNIQUE a.descrip INTO arr_tetb04[idx].descrip FROM mestable a
WHERE a.mes = arr_tetb04[idx].mes
LET arr_tetb04[idx].valor = 0
END FOR
CALL SET_COUNT(idx)
INPUT ARRAY arr_tetb04 WITHOUT DEFAULTS FROM scr_tetb04.*
BEFORE ROW
LET curr = ARR_CURR()
LET fila = SCR_LINE()
AFTER FIELD mes
IF arr_tetb04[curr].mes IS NOT NULL THEN
SELECT UNIQUE a.descrip INTO arr_tetb04[curr].descrip FROM mestable a
WHERE a.mes = arr_tetb04[curr].mes
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
DISPLAY arr_tetb04[curr].descrip TO scr_tetb04[fila].descrip
END IF
AFTER FIELD valor
IF arr_tetb04[curr].valor IS NOT NULL THEN
IF arr_tetb04[curr].valor IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD valor
END IF
END IF
END INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
FOR idx = 1 TO 12
IF arr_tetb04[idx].valor IS NULL THEN
LET arr_tetb04[idx].valor = 0
END IF
INSERT INTO tetb00004 VALUES (p_tetb04.codigo,p_tetb04.ano,
idx,arr_tetb04[idx].valor,
NULL,USER,CURRENT,NULL,NULL)
END FOR
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf005()
LET int_flag = FALSE
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON a.codigo,a.ano FROM codigo,ano
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC =
"SELECT UNIQUE a.codigo,a.ano,b.descripcion ",
"FROM tetb00004 a,tetb00003 b ",
"WHERE (a.codigo = b.codigo) AND a.status_t IS NULL AND ",
criterio clipped," ORDER BY a.codigo,a.ano "
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
MENU "OPCIONES "
COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO p_tetb04.codigo,p_tetb04.ano,
p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
DISPLAY BY NAME p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
DISPLAY BY NAME p_tetb04.codigo,p_tetb04.ano,p_tetb03.descripcion
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger" "<Esc> Actualiza Registro <Supr> Cancela Operacion"
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
DECLARE buscar CURSOR FOR
SELECT a.mes,b.descrip,a.valor FROM tetb00004 a, mestable b
WHERE (a.mes = b.mes) AND (a.codigo = p_tetb04.codigo) AND
(a.ano = p_tetb04.ano) AND (a.status_t IS NULL) ORDER BY 1
LET idx = 1
FOREACH buscar INTO arr_tetb04[idx].*
LET idx = idx + 1
END FOREACH
CALL SET_COUNT(idx-1)
INPUT ARRAY arr_tetb04 WITHOUT DEFAULTS FROM scr_tetb04.*
BEFORE ROW
LET curr = ARR_CURR()
LET fila = SCR_LINE()
AFTER FIELD mes
IF arr_tetb04[curr].mes IS NOT NULL THEN
SELECT UNIQUE a.descrip INTO arr_tetb04[curr].descrip FROM mestable a
WHERE a.mes = arr_tetb04[curr].mes
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
DISPLAY arr_tetb04[curr].descrip TO scr_tetb04[fila].descrip
END IF
AFTER FIELD valor
IF arr_tetb04[curr].valor IS NOT NULL THEN
IF arr_tetb04[curr].valor IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD valor
END IF
END IF
END INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
DELETE FROM tetb00004 WHERE @codigo = p_tetb04.codigo AND
@ano = p_tetb04.ano
FOR idx = 1 TO 12
IF arr_tetb04[idx].valor IS NULL THEN
LET arr_tetb04[idx].valor = 0
END IF
INSERT INTO tetb00004 VALUES (p_tetb04.codigo,p_tetb04.ano,
idx,arr_tetb04[idx].valor,
NULL,USER,CURRENT,NULL,NULL)
END FOR
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla"
UPDATE tetb00004 SET (status_t,us_mod,fech_mod)
= ("E",USER,CURRENT)
WHERE @codigo = p_tetb04.codigo AND @ano=p_tetb04.ano
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
+308
View File
@@ -0,0 +1,308 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT006
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Historico Real Partidas del Cash Flow
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Diciembre 07, 1995.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt006()
CLEAR SCREEN
OPTIONS
FORM LINE 8,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt006 FROM "tefmmt006"
DISPLAY FORM tefmmt006
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt006" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Historico Real de Partidas Del Cash-Flow" at 6,20 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
CLEAR FORM
CALL tepcad006()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
LET int_flag = FALSE
CALL tepcmf006()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad006()
# WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
INPUT BY NAME p_tetb05.codigo,p_tetb05.ano
AFTER FIELD codigo
IF p_tetb05.codigo is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
SELECT UNIQUE descripcion INTO p_tetb03.descripcion
FROM tetb00003 WHERE @codigo = p_tetb05.codigo
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
DISPLAY BY NAME p_tetb03.descripcion
AFTER FIELD ano
IF p_tetb05.ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ano
END IF
SELECT UNIQUE a.ano FROM tetb00005 a
WHERE a.codigo = p_tetb05.codigo AND a.ano = p_tetb05.ano
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
FOR idx = 1 TO 12
LET arr_tetb05[idx].mes = idx
SELECT UNIQUE a.descrip INTO arr_tetb05[idx].descrip FROM mestable a
WHERE a.mes = arr_tetb05[idx].mes
LET arr_tetb05[idx].valor = 0
END FOR
CALL SET_COUNT(idx)
INPUT ARRAY arr_tetb05 WITHOUT DEFAULTS FROM scr_tetb05.*
BEFORE ROW
LET curr = ARR_CURR()
LET fila = SCR_LINE()
AFTER FIELD mes
IF arr_tetb05[curr].mes IS NOT NULL THEN
SELECT UNIQUE a.descrip INTO arr_tetb05[curr].descrip FROM mestable a
WHERE a.mes = arr_tetb05[curr].mes
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
DISPLAY arr_tetb05[curr].descrip TO scr_tetb05[fila].descrip
END IF
AFTER FIELD valor
IF arr_tetb05[curr].valor IS NOT NULL THEN
IF arr_tetb05[curr].valor IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD valor
END IF
END IF
END INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
FOR idx = 1 TO ARR_COUNT()
IF arr_tetb05[idx].valor IS NULL THEN
LET arr_tetb05[idx].valor = 0
END IF
INSERT INTO tetb00005 VALUES (p_tetb05.codigo,p_tetb05.ano,
idx,arr_tetb05[idx].valor,
NULL,USER,CURRENT,NULL,NULL)
END FOR
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf006()
LET int_flag = FALSE
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON a.codigo,a.ano FROM codigo,ano
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC =
"SELECT UNIQUE a.codigo,a.ano,b.descripcion ",
"FROM tetb00005 a,tetb00003 b ",
"WHERE (a.codigo = b.codigo) AND a.status_t IS NULL AND ",
criterio clipped," ORDER BY a.codigo,a.ano "
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
MENU "OPCIONES "
COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO p_tetb05.codigo,p_tetb05.ano,
p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
DISPLAY BY NAME p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
DISPLAY BY NAME p_tetb05.codigo,p_tetb05.ano,p_tetb03.descripcion
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger" "<Esc> Actualiza Registro <Supr> Cancela Operacion"
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
DECLARE buscar CURSOR FOR
SELECT UNIQUE a.mes,b.descrip,a.valor_real FROM tetb00005 a, mestable b
WHERE (a.mes = b.mes) AND (a.codigo = p_tetb05.codigo) AND
(a.ano = p_tetb05.ano) AND (a.status_t IS NULL) ORDER BY 1
LET idx = 1
FOREACH buscar INTO arr_tetb05[idx].*
LET idx = idx + 1
END FOREACH
CALL SET_COUNT(idx-1)
INPUT ARRAY arr_tetb05 WITHOUT DEFAULTS FROM scr_tetb05.*
BEFORE ROW
LET curr = ARR_CURR()
LET fila = SCR_LINE()
AFTER FIELD mes
IF arr_tetb05[curr].mes IS NOT NULL THEN
SELECT UNIQUE a.descrip INTO arr_tetb05[curr].descrip FROM mestable a
WHERE a.mes = arr_tetb05[curr].mes
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
DISPLAY arr_tetb05[curr].descrip TO scr_tetb05[fila].descrip
END IF
AFTER FIELD valor
IF arr_tetb05[curr].valor IS NOT NULL THEN
IF arr_tetb05[curr].valor IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD valor
END IF
END IF
END INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
DELETE FROM tetb00005 WHERE @codigo = p_tetb05.codigo AND
@ano = p_tetb05.ano
FOR idx = 1 TO 12
IF arr_tetb05[idx].valor IS NULL THEN
LET arr_tetb05[idx].valor = 0
END IF
INSERT INTO tetb00005 VALUES (p_tetb05.codigo,p_tetb05.ano,
idx,arr_tetb05[idx].valor,
NULL,USER,CURRENT,NULL,NULL)
END FOR
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla"
UPDATE tetb00005 SET (status_t,us_mod,fech_mod)
= ("E",USER,CURRENT)
WHERE @codigo = p_tetb05.codigo AND @ano=p_tetb05.ano
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
+216
View File
@@ -0,0 +1,216 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT007
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Balance Final Partidas del Cash Flow
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Diciembre 06, 1995.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt007()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt007 FROM "tefmmt007"
DISPLAY FORM tefmmt007
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt007" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Balance Final Del Real y Estimado de Cash-Flow" at 6,17 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar" "<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
CLEAR FORM
CALL tepcad007()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
LET int_flag = FALSE
CALL tepcmf007()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad007()
# WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
INPUT BY NAME p_tetb07.*
AFTER FIELD ano
IF p_tetb07.ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ano
END IF
SELECT UNIQUE valor,valor1 INTO p_tetb07.valor,p_tetb07.valor1
FROM tetb00007 WHERE @ano = p_tetb07.ano
IF STATUS != NOTFOUND THEN
DISPLAY BY NAME p_tetb07.valor,p_tetb07.valor1
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD ano
END IF
AFTER FIELD valor
IF p_tetb07.valor IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD valor
END IF
AFTER FIELD valor1
IF p_tetb07.valor1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD valor
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
INSERT INTO tetb00007 VALUES (p_tetb07.*)
UPDATE tetb00007 SET (us_crea,fech_crea) = (USER,CURRENT)
WHERE @ano = p_tetb07.ano
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf007()
LET int_flag = FALSE
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON a.ano,a.valor,a.valor1 FROM ano,valor,valor1
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC =
" SELECT UNIQUE a.* FROM tetb00007 a ",
" WHERE a.status_t IS NULL AND ",criterio clipped," ORDER BY a.ano "
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO p_tetb07.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME p_tetb07.*
MENU "OPCIONES "
COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO p_tetb07.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb07.*
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO p_tetb07.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb07.*
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO p_tetb07.*
DISPLAY BY NAME p_tetb07.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO p_tetb07.*
DISPLAY BY NAME p_tetb07.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger" "<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME p_tetb07.valor THRU p_tetb07.fech_mod
WITHOUT DEFAULTS
AFTER FIELD valor
IF p_tetb07.valor IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD valor
END IF
AFTER FIELD valor1
IF p_tetb07.valor1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD valor1
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE tetb00007 SET (valor,valor1,us_mod,fech_mod)
= (p_tetb07.valor,p_tetb07.valor1,USER,CURRENT)
WHERE @ano = p_tetb07.ano
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla"
UPDATE tetb00007 SET (status_t,us_mod,fech_mod)
= ("E",USER,CURRENT)
WHERE @ano = p_tetb07.ano
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
+165
View File
@@ -0,0 +1,165 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT008
OBJETIVO : Modificar registros de la Tabla de Relacion de
Cheques y Partidas del Cash Flow
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Enero 15, 1996
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt008()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt008 FROM "tefmmt008"
DISPLAY FORM tefmmt008
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt008" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Maestra de Partidas Del Cash-Flow" at 6,24 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
LET int_flag = FALSE
CALL tepcmf008()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcmf008()
LET int_flag = FALSE
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON a.cheque_no,a.banco,a.codigo
FROM cheque_no,banco,codigo
## Facilidad para cancelar la operacion
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
### Seleccion de los datos
LET SELEC =
"SELECT UNIQUE a.*,b.descripcion FROM tetb00006 a,tetb00003 b ",
"WHERE a.status_t IS NULL AND a.codigo = b.codigo AND ",criterio clipped,
" ORDER BY 1,2,3"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
#### Busca el primer registro con los parametros requeridos para verifica que
#### existe
FETCH FIRST datos INTO p_tetb06.*,p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME p_tetb06.*,p_tetb03.descripcion
### Menu para manejar las informacion requeridas
MENU "OPCIONES "
COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO p_tetb06.*,p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb06.*,p_tetb03.descripcion
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO p_tetb06.*,p_tetb03.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tetb06.*,p_tetb03.descripcion
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO p_tetb06.*,p_tetb03.descripcion
DISPLAY BY NAME p_tetb06.*,p_tetb03.descripcion
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO p_tetb06.*,p_tetb03.descripcion
DISPLAY BY NAME p_tetb06.*,p_tetb03.descripcion
LET numero_msg = 4
CALL msg(numero_msg)
### Proceso para digitar la informacion a modificar
COMMAND "Escoger" "<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME p_tetb06.codigo THRU p_tetb06.fech_mod
WITHOUT DEFAULTS
AFTER FIELD codigo
IF p_tetb06.codigo is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
#### Verifica que el codigo de partida exista en la maestra y sea desembolso
SELECT a.descripcion INTO p_tetb03.descripcion FROM tetb00003 a
WHERE a.status_t IS NULL AND a.codigo = p_tetb06.codigo AND
a.tipo[1] = "D"
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
DISPLAY BY NAME p_tetb03.descripcion
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
## actualiza la tabla con la informacion digitada
UPDATE tetb00006 SET (codigo,us_mod,fech_mod)
= (p_tetb06.codigo,USER,CURRENT)
WHERE @cheque_no = p_tetb06.cheque_no AND @banco = p_tetb06.banco
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
+448
View File
@@ -0,0 +1,448 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT001
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Depositos.
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Diciembre 2, 1992.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE proced INTEGER
FUNCTION teprmt001()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt001 FROM "tefmmt001"
DISPLAY FORM tefmmt001
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt001" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Depositos" at 6,27 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad001()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
LET int_flag = FALSE
CALL tepcmf001()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad001()
# WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
INITIALIZE deposito.* TO NULL
LET descrip1 = NULL
LET descrip2 = NULL
INPUT BY NAME deposito.*
ON KEY (CONTROL-W)
CASE
WHEN INFIELD(procedencia)
CALL busca_procedencia()
LET deposito.procedencia = proced
DISPLAY BY NAME deposito.procedencia,descrip2
NEXT FIELD fecha
END CASE
BEFORE FIELD num_doc
SELECT MAX(num_doc) INTO deposito.num_doc
FROM tetb00001
IF deposito.num_doc IS NULL THEN
LET deposito.num_doc = 0
END IF
LET deposito.num_doc = deposito.num_doc + 1
DISPLAY BY NAME deposito.num_doc
AFTER FIELD cuenta_no
IF deposito.cuenta_no = " " OR
deposito.cuenta_no is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
LET descrip1 = NULL
SELECT i.descripcion INTO descrip1
FROM cgtb00001 i,cgtb00012 b
WHERE i.cuenta_no = b.cuenta_no AND
i.cuenta_no= deposito.cuenta_no AND
i.status_t is null
IF descrip1 IS NULL THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
DISPLAY BY NAME descrip1
AFTER FIELD procedencia
IF deposito.cta_banco IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cta_banco
END IF
LET descrip2 = NULL
IF deposito.procedencia IS NOT NULL THEN
SELECT unique a.descripcion INTO descrip2 FROM tetb00002 a
WHERE a.status_t IS NULL AND a.procedencia=deposito.procedencia
IF descrip2 IS NULL THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
DISPLAY BY NAME descrip2
END IF
AFTER FIELD fecha
IF deposito.procedencia IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
IF deposito.fecha IS NOT NULL THEN
IF deposito.fecha > today THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
LET p_fechas = deposito.fecha
CALL prd()
IF bandera = 1 THEN
LET bandera = 0
NEXT FIELD fecha
END IF
END IF
AFTER FIELD monto
IF deposito.fecha IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
IF deposito.monto IS NULL OR
deposito.monto = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD monto
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
INSERT INTO tetb00001 VALUES (deposito.*)
UPDATE tetb00001 SET (us_crea,fech_crea) = (USER,CURRENT)
WHERE @num_doc = deposito.num_doc
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf001()
LET int_flag = FALSE
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON a.num_doc,a.cuenta_no FROM num_doc,cuenta_no
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.*,b.descripcion,c.descripcion ",
" FROM tetb00001 a,cgtb00001 b,tetb00002 c ",
" WHERE a.cuenta_no = b.cuenta_no AND a.status_t is null AND ",
" a.procedencia = c.procedencia AND ",
criterio clipped," ORDER BY a.num_doc "
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO deposito.*,descrip1,descrip2
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME deposito.*,descrip1,descrip2
#CALL busca_cuenta()
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO deposito.*,descrip1,descrip2
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
#CALL busca_cuenta()
DISPLAY BY NAME deposito.*,descrip1,descrip2
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO deposito.*,descrip1,descrip2
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
#CALL busca_cuenta()
DISPLAY BY NAME deposito.*,descrip1,descrip2
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO deposito.*,descrip1,descrip2
#CALL busca_cuenta()
DISPLAY BY NAME deposito.*,descrip1,descrip2
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO deposito.*,descrip1,descrip2
# CALL busca_cuenta()
DISPLAY BY NAME deposito.*,descrip1
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
LET p_fechas = deposito.fecha
CALL prd()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
INPUT BY NAME deposito.cuenta_no THRU deposito.fech_mod WITHOUT DEFAULTS
ON KEY (CONTROL-W)
CASE
WHEN INFIELD(procedencia)
CALL busca_procedencia()
LET deposito.procedencia = proced
DISPLAY BY NAME deposito.procedencia,descrip2
NEXT FIELD fecha
END CASE
AFTER FIELD cuenta_no
IF deposito.cuenta_no = " " OR
deposito.cuenta_no is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
LET descrip1 = NULL
SELECT i.descripcion INTO descrip1
FROM cgtb00001 i,cgtb00012 b
WHERE i.cuenta_no = b.cuenta_no AND
i.cuenta_no= deposito.cuenta_no AND
i.status_t is null
IF descrip1 IS NULL THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cuenta_no
END IF
DISPLAY BY NAME descrip1
AFTER FIELD procedencia
IF deposito.cta_banco IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cta_banco
END IF
LET descrip2 = NULL
IF deposito.procedencia IS NOT NULL THEN
SELECT unique a.descripcion INTO descrip2 FROM tetb00002 a
WHERE a.status_t IS NULL AND a.procedencia=deposito.procedencia
IF descrip2 IS NULL THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
DISPLAY BY NAME descrip2
END IF
AFTER FIELD fecha
IF deposito.procedencia IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD procedencia
END IF
IF deposito.fecha IS NOT NULL THEN
IF deposito.fecha > today THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
LET p_fechas = deposito.fecha
CALL prd()
IF bandera = 1 THEN
LET bandera = 0
NEXT FIELD fecha
END IF
END IF
AFTER FIELD monto
IF deposito.monto IS NULL OR
deposito.monto = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD monto
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE tetb00001 SET (cuenta_no,cta_banco,procedencia,
fecha,monto,us_mod,fech_mod)
= (deposito.cuenta_no,deposito.cta_banco,
deposito.procedencia,deposito.fecha,
deposito.monto,USER,CURRENT)
WHERE @num_doc = deposito.num_doc
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
DELETE FROM tetb00001
WHERE @num_doc = deposito.num_doc
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
# CALL ayuda()
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_cuenta()
# Esta funcion busca el nombre del cuenta y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
SELECT i.descripcion INTO descrip1 FROM cgtb00001 i
WHERE i.cuenta_no = deposito.cuenta_no and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET numero_msg = 67
CALL msg(numero_msg)
END IF
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
FUNCTION busca_procedencia()
# Esta funcion busca el nombre de la Procedencia
OPEN WINDOW busqueda1 AT 10,10 WITH FORM "tefmwd002"
ATTRIBUTE (BORDER,FORM LINE FIRST + 1, comment line last)
DECLARE buscador CURSOR FOR
SELECT i.procedencia,i.descripcion FROM tetb00002 i
WHERE i.status_t IS NULL ORDER BY 1
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
CLOSE WINDOW busqueda1
RETURN
END IF
END IF
LET idx = 1
FOREACH buscador INTO arr_procedencia[idx].*
LET idx = idx + 1
END FOREACH
CALL SET_COUNT(idx - 1)
DISPLAY ARRAY arr_procedencia TO s_procedencia.*
LET curr = ARR_CURR()
LET proced = arr_procedencia[curr].procedencia
LET descrip2 = arr_procedencia[curr].descripcion
CLOSE WINDOW busqueda1
END FUNCTION
+348
View File
@@ -0,0 +1,348 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT010
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Comisiones Por Cobros
PROGRAMADOR : JUAN F. SOTO
FECHA REALIZACION : AGOSTO 6, 1998.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE comisiones10 RECORD LIKE cctb00008.*
FUNCTION teprmt010()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt010 FROM "tefmmt010"
DISPLAY FORM tefmmt010
CALL pantalla()
DISPLAY "teprmt010" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Comisiones por Vendedor" at 6,20 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad010()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
CALL tepcmf010()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad010()
DEFINE fech_ant CHAR(8)
MESSAGE ""
## Captura los datos que va a contener el registro
INPUT BY NAME comisiones10.*
AFTER FIELD sec_vend
IF comisiones10.sec_vend = 0 or
comisiones10.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = comisiones10.sec_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
## Verifica que el codigo no exista en el catalogo de comisiones. Si existe,
## entonces despliega los datos del registro existente.
AFTER FIELD cod_sec
SELECT i.descrip_esp INTO descrip1
FROM intb00001 i
WHERE i.cod_n = comisiones10.cod_n AND
i.cod_grupo = comisiones10.cod_grupo AND
i.cod_tipo = comisiones10.cod_tipo AND
i.cod_sec = comisiones10.cod_sec and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
SELECT UNIQUE * INTO comisiones10.* FROM cctb00008
WHERE
sec_vend = comisiones10.sec_vend AND
cod_n = comisiones10.cod_n AND
cod_grupo = comisiones10.cod_grupo AND
cod_tipo = comisiones10.cod_tipo AND
cod_sec = comisiones10.cod_sec
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF comisiones10.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
DISPLAY BY NAME
comisiones10.us_crea,
comisiones10.fech_crea,
comisiones10.us_mod,
comisiones10.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
INITIALIZE
comisiones10.us_crea,
comisiones10.fech_crea,
comisiones10.us_mod,
comisiones10.fech_mod TO NULL
DISPLAY BY NAME
comisiones10.us_crea,
comisiones10.fech_crea,
comisiones10.us_mod,
comisiones10.fech_mod
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
EXIT INPUT
END INPUT
INSERT INTO cctb00008 VALUES (comisiones10.*)
UPDATE cctb00008 set us_crea = user,
fech_crea = current
WHERE sec_vend = comisiones10.sec_vend AND
cod_n = comisiones10.cod_n AND
cod_grupo = comisiones10.cod_grupo AND
cod_tipo = comisiones10.cod_tipo AND
cod_sec = comisiones10.cod_sec
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf010()
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT BY NAME criterio ON cctb00008.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM cctb00008 ",
" WHERE status_t is null AND ",criterio clipped,
" ORDER BY 1,2,3,4,5,6"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO comisiones10.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO comisiones10.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO comisiones10.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO comisiones10.*
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO comisiones10.*
DISPLAY BY NAME comisiones10.*
LET comisiones.sec_vend = comisiones10.sec_vend
CALL busca_vendedor()
LET comisiones.cod_n = comisiones10.cod_n
LET comisiones.cod_grupo = comisiones10.cod_grupo
LET comisiones.cod_tipo = comisiones10.cod_tipo
LET comisiones.cod_sec = comisiones10.cod_sec
CALL busca_nombre_articulo1()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME comisiones10.porc_ventas,comisiones10.porc_cobros
WITHOUT DEFAULTS
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE cctb00008 SET porc_ventas = comisiones10.porc_ventas,
porc_cobros = comisiones10.porc_cobros,
us_mod = USER,
fech_mod = CURRENT
WHERE
sec_vend = comisiones10.sec_vend AND
cod_n = comisiones10.cod_n AND
cod_grupo = comisiones10.cod_grupo AND
cod_tipo = comisiones10.cod_tipo AND
cod_sec = comisiones10.cod_sec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
UPDATE cctb00008 SET status_t = "E",
us_mod = user,
fech_mod = current
WHERE
sec_vend = comisiones10.sec_vend AND
cod_n = comisiones10.cod_n AND
cod_grupo = comisiones10.cod_grupo AND
cod_tipo = comisiones10.cod_tipo AND
cod_sec = comisiones10.cod_sec
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
+385
View File
@@ -0,0 +1,385 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT011
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla Asignacion Vendedores
PROGRAMADOR : JUAN F. SOTO
FECHA REALIZACION : OCTUBRE 6, 1998.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE asigna9 RECORD LIKE tetb00009.*,
nombre_v,nombre_a CHAR(40)
FUNCTION teprmt011()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt011 FROM "tefmmt011"
DISPLAY FORM tefmmt011
CALL pantalla()
DISPLAY "teprmt011" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Asignacion Vendedores" at 6,20 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad011()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
CALL tepcmf011()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad011()
DEFINE fech_ant CHAR(8)
MESSAGE ""
## Captura los datos que va a contener el registro
INPUT BY NAME asigna9.*
AFTER FIELD sec_vend
IF asigna9.sec_vend = 0 or
asigna9.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = asigna9.sec_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
LET nombre_v = descrip1 clipped," ",descrip2 clipped
DISPLAY BY NAME nombre_v
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
AFTER FIELD sec_vend_a
IF asigna9.sec_vend_a = 0 or
asigna9.sec_vend_a is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend_a
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = asigna9.sec_vend_a AND
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD sec_vend_a
END IF
LET nombre_a = descrip1 clipped," ",descrip2 clipped
DISPLAY BY NAME nombre_a
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
# Verifica que el vendedor no este asignado
SELECT *FROM tetb00009 a
WHERE a.sec_vend = asigna9.sec_vend AND
a.sec_vend_a = asigna9.sec_vend_a
IF STATUS != NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD sec_vend_a
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
EXIT INPUT
END INPUT
INSERT INTO tetb00009 VALUES (asigna9.*)
UPDATE tetb00009 set us_crea = user,
fech_crea = current
WHERE sec_vend = asigna9.sec_vend AND
sec_vend_a = asigna9.sec_vend_a
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION tepcmf011()
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT BY NAME criterio ON tetb00009.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM tetb00009 ",
" WHERE ",criterio clipped,
" ORDER BY sec_vend,sec_vend_a"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO asigna9.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME asigna9.*
LET comisiones.sec_vend = asigna9.sec_vend
CALL busca_vendedor3()
LET nombre_v = descrip6
LET comisiones.sec_vend = asigna9.sec_vend_a
CALL busca_vendedor3()
LET nombre_a = descrip6
DISPLAY BY NAME nombre_v,nombre_a ATTRIBUTE(YELLOW)
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO asigna9.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME asigna9.*
LET comisiones.sec_vend = asigna9.sec_vend
CALL busca_vendedor3()
LET nombre_v = descrip6
LET comisiones.sec_vend = asigna9.sec_vend_a
CALL busca_vendedor3()
LET nombre_a = descrip6
DISPLAY BY NAME nombre_v ,nombre_a ATTRIBUTE(YELLOW)
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO asigna9.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME asigna9.*
LET comisiones.sec_vend = asigna9.sec_vend
CALL busca_vendedor3()
LET nombre_v = descrip6
LET comisiones.sec_vend = asigna9.sec_vend_a
CALL busca_vendedor3()
LET nombre_a = descrip6
DISPLAY BY NAME nombre_v,nombre_a ATTRIBUTE(YELLOW)
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO asigna9.*
DISPLAY BY NAME asigna9.*
LET comisiones.sec_vend = asigna9.sec_vend
CALL busca_vendedor3()
LET nombre_v = descrip6
LET comisiones.sec_vend = asigna9.sec_vend_a
CALL busca_vendedor3()
LET nombre_a = descrip6
LET numero_msg = 5
CALL msg(numero_msg)
DISPLAY BY NAME nombre_v,nombre_a ATTRIBUTE(YELLOW)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO asigna9.*
DISPLAY BY NAME asigna9.*
LET comisiones.sec_vend = asigna9.sec_vend
CALL busca_vendedor3()
LET nombre_v = descrip6
LET comisiones.sec_vend = asigna9.sec_vend_a
CALL busca_vendedor3()
LET nombre_a = descrip6
LET numero_msg = 4
CALL msg(numero_msg)
DISPLAY BY NAME nombre_v,nombre_a ATTRIBUTE(YELLOW)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
IF asigna9.status_t = "E" THEN
LET numero_msg =36
CALL msg(numero_msg)
RETURN
END IF
INPUT BY NAME asigna9.sec_vend_a
WITHOUT DEFAULTS
AFTER FIELD sec_vend_a
IF asigna9.sec_vend_a = 0 or
asigna9.sec_vend_a is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend_a
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = asigna9.sec_vend_a AND
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD sec_vend_a
END IF
LET nombre_a = descrip1 clipped," ",descrip2 clipped
DISPLAY BY NAME nombre_a
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
# Verifica que el vendedor no este asignado
SELECT *FROM tetb00009 a
WHERE a.sec_vend = asigna9.sec_vend AND
a.sec_vend_a = asigna9.sec_vend_a
IF STATUS != NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD sec_vend_a
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE tetb00009 SET sec_vend_a = asigna9.sec_vend_a,
us_mod = USER,
fech_mod = CURRENT
WHERE
sec_vend = asigna9.sec_vend AND
sec_vend_a = asigna9.sec_vend_a
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
UPDATE tetb00009 SET status_t = "E",
us_mod = user,
fech_mod = current
WHERE
sec_vend = asigna9.sec_vend AND
sec_vend_a = asigna9.sec_vend_a
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_vendedor3()
# Esta funcion busca el nombre del vendedor y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
LET descrip6 = NULL
LET descrip2 = NULL
SELECT i.nom1_emp, i.apell1_emp, i.status_t
INTO descrip1, descrip2, status_reg
FROM adtb00003 i
WHERE i.num_emp = comisiones.sec_vend and i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET descrip6 = NULL
LET descrip2 = NULL
LET numero_msg = 68
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET descrip6 = NULL
LET descrip2 = NULL
LET numero_msg = 67
CALL msg(numero_msg)
END IF
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
+784
View File
@@ -0,0 +1,784 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT021
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Comisiones.
PROGRAMADOR : Lic. Abner Montalvo Zapata
FECHA REALIZACION : Diciembre 2, 1992.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt021()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt021 FROM "tefmmt003"
DISPLAY FORM tefmmt021
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt021" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Comisiones por Vendedor" at 6,20 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad021()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
CALL tepcmf021()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad021()
DEFINE fech_ant CHAR(8)
# WHENEVER ERROR CONTINUE
MESSAGE ""
## Captura los datos que va a contener el registro
INPUT BY NAME comisiones.*
{ON KEY (CONTROL-W)
CASE
WHEN INFIELD (cod_vend)
CALL consulta_empleados2()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
IF NOT int_flag THEN
LET comisiones.cod_vend = transportista.cod_transp
LET comisiones.sec_vend = transportista.sec_transp
DISPLAY transportista.cod_transp TO cod_vend
DISPLAY transportista.sec_transp TO sec_vend
DISPLAY descrip6 TO descrip6
NEXT FIELD cod_n
END IF
LET int_flag = FALSE
WHEN INFIELD (sec_vend)
CALL consulta_empleados2()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
IF NOT int_flag THEN
LET comisiones.cod_vend = transportista.cod_transp
LET comisiones.sec_vend = transportista.sec_transp
DISPLAY transportista.cod_transp TO cod_vend
DISPLAY transportista.sec_transp TO sec_vend
DISPLAY descrip6 TO descrip6
NEXT FIELD cod_n
END IF
LET int_flag = FALSE
WHEN INFIELD (cod_n)
CALL busca_pt()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
IF NOT int_flag THEN
LET comisiones.cod_n = pterminado.cod_n
LET comisiones.cod_grupo = pterminado.cod_grupo
LET comisiones.cod_tipo = pterminado.cod_tipo
LET comisiones.cod_sec = pterminado.cod_sec
DISPLAY pterminado.cod_n TO cod_n
DISPLAY pterminado.cod_grupo TO cod_grupo
DISPLAY pterminado.cod_tipo TO cod_tipo
DISPLAY pterminado.cod_sec TO cod_sec
DISPLAY descrip1 TO descrip_esp
NEXT FIELD porc_ventas
END IF
LET int_flag = FALSE
WHEN INFIELD (cod_grupo)
CALL busca_pt()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_grupo
END IF
IF NOT int_flag THEN
LET comisiones.cod_n = pterminado.cod_n
LET comisiones.cod_grupo = pterminado.cod_grupo
LET comisiones.cod_tipo = pterminado.cod_tipo
LET comisiones.cod_sec = pterminado.cod_sec
DISPLAY pterminado.cod_n TO cod_n
DISPLAY pterminado.cod_grupo TO cod_grupo
DISPLAY pterminado.cod_tipo TO cod_tipo
DISPLAY pterminado.cod_sec TO cod_sec
DISPLAY descrip1 TO descrip_esp
NEXT FIELD porc_ventas
END IF
LET int_flag = FALSE
WHEN INFIELD (cod_tipo)
CALL busca_pt()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_tipo
END IF
IF NOT int_flag THEN
LET comisiones.cod_n = pterminado.cod_n
LET comisiones.cod_grupo = pterminado.cod_grupo
LET comisiones.cod_tipo = pterminado.cod_tipo
LET comisiones.cod_sec = pterminado.cod_sec
DISPLAY pterminado.cod_n TO cod_n
DISPLAY pterminado.cod_grupo TO cod_grupo
DISPLAY pterminado.cod_tipo TO cod_tipo
DISPLAY pterminado.cod_sec TO cod_sec
DISPLAY descrip1 TO descrip_esp
NEXT FIELD porc_ventas
END IF
LET int_flag = FALSE
WHEN INFIELD (cod_sec)
CALL busca_pt()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_sec
END IF
IF NOT int_flag THEN
LET comisiones.cod_n = pterminado.cod_n
LET comisiones.cod_grupo = pterminado.cod_grupo
LET comisiones.cod_tipo = pterminado.cod_tipo
LET comisiones.cod_sec = pterminado.cod_sec
DISPLAY pterminado.cod_n TO cod_n
DISPLAY pterminado.cod_grupo TO cod_grupo
DISPLAY pterminado.cod_tipo TO cod_tipo
DISPLAY pterminado.cod_sec TO cod_sec
DISPLAY descrip1 TO descrip_esp
NEXT FIELD porc_ventas
END IF
LET int_flag = FALSE
END CASE
}
AFTER FIELD cod_vend
IF comisiones.cod_vend = 0 or
comisiones.cod_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
AFTER FIELD sec_vend
IF comisiones.sec_vend = 0 or
comisiones.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = comisiones.cod_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
## Verifica que el codigo no exista en el catalogo de comisiones. Si existe,
## entonces despliega los datos del registro existente.
AFTER FIELD cod_sec
SELECT i.descrip_esp INTO descrip1
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
SELECT * INTO comisiones.* FROM vetb00011 WHERE
cod_vend = comisiones.cod_vend AND
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF comisiones.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cod_vend
ELSE
INITIALIZE comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod TO NULL
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
AFTER FIELD porc_ventas
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER FIELD porc_cobros
IF comisiones.porc_cobros IS NULL THEN
LET comisiones.porc_cobros = 0
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF comisiones.cod_vend = 0 or
comisiones.cod_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
IF comisiones.sec_vend = 0 or
comisiones.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = comisiones.cod_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
IF comisiones.cod_n IS NULL OR
comisiones.cod_n = 0 THEN
LET numero_msg = 60
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
## Verifica que el codigo no exista en el catalogo de comisiones. Si existe,
## entonces despliega los datos del registro existente.
IF ( comisiones.cod_n = 0 AND comisiones.cod_grupo = 0 AND
comisiones.cod_tipo = 0 AND comisiones.cod_sec = 0 ) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
ELSE
SELECT i.descrip_esp INTO descrip1
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
SELECT * INTO comisiones.* FROM vetb00011 WHERE
cod_vend = comisiones.cod_vend AND
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF comisiones.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
IF comisiones.porc_cobros IS NULL THEN
LET comisiones.porc_cobros = 0
END IF
# Valida que el codigo del articulo no sea cero. Si no es cero, adiciona el
# registro en la tabla, de lo contrario, presenta mensaje de error y acepta
# el codigo de nuevo.
{ IF (comisiones.cod_n = 0 AND
comisiones.cod_grupo = 0 AND
comisiones.cod_tipo = 0 AND
comisiones.cod_sec = 0 ) OR
(comisiones.cod_vend = 0 AND
comisiones.sec_vend = 0 ) OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_vend
ELSE
} INSERT INTO vetb00011 VALUES (comisiones.cod_vend,
comisiones.sec_vend,
comisiones.cod_n,
comisiones.cod_grupo,
comisiones.cod_tipo,
comisiones.cod_sec,
comisiones.porc_ventas,
comisiones.porc_cobros,
null, USER, CURRENT, null, null)
# Verifica el Status que retorna luego de insertar el registro en la tabla.
# Si el Status es diferente de cero quiere decir que hubo problemas durante
# la creacion del registro, entonces despliega un mensaje de alerta para que
# el usuario sepa que hubo problemas en la creacion del registro.
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 1
CALL msg(numero_msg)
NEXT FIELD cod_vend
{ END IF
}
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION tepcmf021()
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON vetb00011.* FROM vetb00011.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM vetb00011 WHERE ",
" status_t is null AND ",
criterio clipped,
" ORDER BY 1,2,3,4,5,6"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
OPEN datos
FETCH FIRST datos INTO comisiones.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO comisiones.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO comisiones.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO comisiones.*
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO comisiones.*
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME comisiones.porc_ventas,
comisiones.porc_cobros WITHOUT DEFAULTS
AFTER FIELD porc_ventas
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER FIELD porc_cobros
IF (comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0) AND
(comisiones.porc_cobros IS NULL OR
comisiones.porc_cobros = 0) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
IF (comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0) AND
(comisiones.porc_cobros IS NULL OR
comisiones.porc_cobros = 0) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
UPDATE vetb00011 SET porc_ventas = comisiones.porc_ventas,
porc_cobros = comisiones.porc_cobros,
us_mod = USER,
fech_mod = CURRENT
WHERE
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
UPDATE vetb00011 SET status_t = "E"
WHERE cod_vend = comisiones.cod_vend AND
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
# CALL ayuda()
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_vendedor2()
# Esta funcion busca el nombre del vendedor y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
SELECT i.nom1_emp, i.apell1_emp, i.status_t
INTO descrip1, descrip2, status_reg
FROM adtb00003 i
WHERE i.num_emp = comisiones.sec_vend and i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET numero_msg = 67
CALL msg(numero_msg)
END IF
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
FUNCTION busca_nombre_articulo2()
# Esta funcion busca el nombre del articulo y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
SELECT i.descrip_esp, i.status_t INTO descrip1, status_reg
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET numero_msg = 44
CALL msg(numero_msg)
END IF
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
FUNCTION consulta_empleados2()
OPEN WINDOW busqueda AT 7,12 WITH FORM "tefmwd001"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET int_flag = false
CONSTRUCT criterio ON a.nom1_emp FROM descrip6
LET selec2 = "SELECT a.num_emp, a.nom1_emp, a.apell1_emp ",
"FROM adtb00003 a ",
"WHERE a.status_t is null AND ",criterio clipped," ORDER BY 1,2 "
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO salir_consulta_e
END IF
PREPARE busca_empleados FROM selec2
IF status >= 0 THEN
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
END IF
END IF
DECLARE buscar_empleados CURSOR FOR busca_empleados
LET idx = 1
FOREACH buscar_empleados INTO arr_empleados[idx].*
IF status = NOTFOUND THEN
EXIT FOREACH
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET empleados[idx].cod_emp = arr_empleados[idx].cod_emp
LET empleados[idx].descrip6 =
arr_empleados[idx].nom_emp clipped," ",arr_empleados[idx].apell_emp clipped
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
MESSAGE " <Esc> Selecciona Empleado donde esta el cursor"
DISPLAY ARRAY empleados TO s_empleados.*
LET curr1 = arr_curr()
LET transportista.cod_transp = empleados[curr1].cod_emp
LET descrip6 = empleados[curr1].descrip6
LABEL salir_consulta_e:
CLOSE WINDOW busqueda
END FUNCTION
+792
View File
@@ -0,0 +1,792 @@
{
------------------------------------------------------------------
PROGRAMA : TEPRMT021
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Comisiones.
PROGRAMADOR : Lic. Abner Montalvo Zapata
FECHA REALIZACION : Diciembre 2, 1992.
------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
FUNCTION teprmt021()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
MESSAGE LINE 24,
COMMENT LINE 21
OPEN FORM tefmmt021 FROM "tefmmt003"
DISPLAY FORM tefmmt021
CALL pantalla()
# CALL ayuda()
DISPLAY "teprmt021" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Mantenimiento de Comisiones por Vendedor" at 6,20 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
HELP 5
LET INT_FLAG = FALSE
CLEAR FORM
LET INT_FLAG = FALSE
CALL tepcad021()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
HELP 6
CALL tepcmf021()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION tepcad021()
DEFINE fech_ant CHAR(8)
# WHENEVER ERROR CONTINUE
MESSAGE ""
## Captura los datos que va a contener el registro
INPUT BY NAME comisiones.*
{ON KEY (CONTROL-W)
CASE
WHEN INFIELD (cod_vend)
CALL consulta_empleados2()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
IF NOT int_flag THEN
LET comisiones.cod_vend = transportista.cod_transp
LET comisiones.sec_vend = transportista.sec_transp
DISPLAY transportista.cod_transp TO cod_vend
DISPLAY transportista.sec_transp TO sec_vend
DISPLAY descrip6 TO descrip6
NEXT FIELD cod_n
END IF
LET int_flag = FALSE
WHEN INFIELD (sec_vend)
CALL consulta_empleados2()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
IF NOT int_flag THEN
LET comisiones.cod_vend = transportista.cod_transp
LET comisiones.sec_vend = transportista.sec_transp
DISPLAY transportista.cod_transp TO cod_vend
DISPLAY transportista.sec_transp TO sec_vend
DISPLAY descrip6 TO descrip6
NEXT FIELD cod_n
END IF
LET int_flag = FALSE
WHEN INFIELD (cod_n)
CALL busca_pt()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
IF NOT int_flag THEN
LET comisiones.cod_n = pterminado.cod_n
LET comisiones.cod_grupo = pterminado.cod_grupo
LET comisiones.cod_tipo = pterminado.cod_tipo
LET comisiones.cod_sec = pterminado.cod_sec
DISPLAY pterminado.cod_n TO cod_n
DISPLAY pterminado.cod_grupo TO cod_grupo
DISPLAY pterminado.cod_tipo TO cod_tipo
DISPLAY pterminado.cod_sec TO cod_sec
DISPLAY descrip1 TO descrip_esp
NEXT FIELD porc_ventas
END IF
LET int_flag = FALSE
WHEN INFIELD (cod_grupo)
CALL busca_pt()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_grupo
END IF
IF NOT int_flag THEN
LET comisiones.cod_n = pterminado.cod_n
LET comisiones.cod_grupo = pterminado.cod_grupo
LET comisiones.cod_tipo = pterminado.cod_tipo
LET comisiones.cod_sec = pterminado.cod_sec
DISPLAY pterminado.cod_n TO cod_n
DISPLAY pterminado.cod_grupo TO cod_grupo
DISPLAY pterminado.cod_tipo TO cod_tipo
DISPLAY pterminado.cod_sec TO cod_sec
DISPLAY descrip1 TO descrip_esp
NEXT FIELD porc_ventas
END IF
LET int_flag = FALSE
WHEN INFIELD (cod_tipo)
CALL busca_pt()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_tipo
END IF
IF NOT int_flag THEN
LET comisiones.cod_n = pterminado.cod_n
LET comisiones.cod_grupo = pterminado.cod_grupo
LET comisiones.cod_tipo = pterminado.cod_tipo
LET comisiones.cod_sec = pterminado.cod_sec
DISPLAY pterminado.cod_n TO cod_n
DISPLAY pterminado.cod_grupo TO cod_grupo
DISPLAY pterminado.cod_tipo TO cod_tipo
DISPLAY pterminado.cod_sec TO cod_sec
DISPLAY descrip1 TO descrip_esp
NEXT FIELD porc_ventas
END IF
LET int_flag = FALSE
WHEN INFIELD (cod_sec)
CALL busca_pt()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD cod_sec
END IF
IF NOT int_flag THEN
LET comisiones.cod_n = pterminado.cod_n
LET comisiones.cod_grupo = pterminado.cod_grupo
LET comisiones.cod_tipo = pterminado.cod_tipo
LET comisiones.cod_sec = pterminado.cod_sec
DISPLAY pterminado.cod_n TO cod_n
DISPLAY pterminado.cod_grupo TO cod_grupo
DISPLAY pterminado.cod_tipo TO cod_tipo
DISPLAY pterminado.cod_sec TO cod_sec
DISPLAY descrip1 TO descrip_esp
NEXT FIELD porc_ventas
END IF
LET int_flag = FALSE
END CASE
}
AFTER FIELD cod_vend
IF comisiones.cod_vend = 0 or
| The symbol 'comisiones.cod_vend' does not represent a defined variable.
| See error number -4369.
comisiones.cod_vend is null THEN
| The symbol 'comisiones.cod_vend' does not represent a defined variable.
| See error number -4369.
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
AFTER FIELD sec_vend
IF comisiones.sec_vend = 0 or
comisiones.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = comisiones.cod_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
## Verifica que el codigo no exista en el catalogo de comisiones. Si existe,
## entonces despliega los datos del registro existente.
AFTER FIELD cod_sec
SELECT i.descrip_esp INTO descrip1
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
SELECT * INTO comisiones.* FROM vetb00011 WHERE
cod_vend = comisiones.cod_vend AND
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF comisiones.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cod_vend
ELSE
INITIALIZE comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod TO NULL
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
AFTER FIELD porc_ventas
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER FIELD porc_cobros
IF comisiones.porc_cobros IS NULL THEN
LET comisiones.porc_cobros = 0
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF comisiones.cod_vend = 0 or
| The symbol 'comisiones.cod_vend' does not represent a defined variable.
| See error number -4369.
comisiones.cod_vend is null THEN
| The symbol 'comisiones.cod_vend' does not represent a defined variable.
| See error number -4369.
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
IF comisiones.sec_vend = 0 or
comisiones.sec_vend is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD sec_vend
ELSE
SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2
FROM adtb00003 i
WHERE i.num_emp = comisiones.cod_vend AND i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
IF comisiones.cod_n IS NULL OR
comisiones.cod_n = 0 THEN
LET numero_msg = 60
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
## Verifica que el codigo no exista en el catalogo de comisiones. Si existe,
## entonces despliega los datos del registro existente.
IF ( comisiones.cod_n = 0 AND comisiones.cod_grupo = 0 AND
comisiones.cod_tipo = 0 AND comisiones.cod_sec = 0 ) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_n
ELSE
SELECT i.descrip_esp INTO descrip1
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec and
i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END IF
SELECT * INTO comisiones.* FROM vetb00011 WHERE
cod_vend = comisiones.cod_vend AND
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF comisiones.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
DISPLAY BY NAME comisiones.porc_ventas,
comisiones.porc_cobros,
comisiones.us_crea,
comisiones.fech_crea,
comisiones.us_mod,
comisiones.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cod_vend
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
IF comisiones.porc_cobros IS NULL THEN
LET comisiones.porc_cobros = 0
END IF
# Valida que el codigo del articulo no sea cero. Si no es cero, adiciona el
# registro en la tabla, de lo contrario, presenta mensaje de error y acepta
# el codigo de nuevo.
{ IF (comisiones.cod_n = 0 AND
comisiones.cod_grupo = 0 AND
comisiones.cod_tipo = 0 AND
comisiones.cod_sec = 0 ) OR
(comisiones.cod_vend = 0 AND
comisiones.sec_vend = 0 ) OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_vend
ELSE
} INSERT INTO vetb00011 VALUES (comisiones.cod_vend,
comisiones.sec_vend,
comisiones.cod_n,
comisiones.cod_grupo,
comisiones.cod_tipo,
comisiones.cod_sec,
comisiones.porc_ventas,
comisiones.porc_cobros,
null, USER, CURRENT, null, null)
# Verifica el Status que retorna luego de insertar el registro en la tabla.
# Si el Status es diferente de cero quiere decir que hubo problemas durante
# la creacion del registro, entonces despliega un mensaje de alerta para que
# el usuario sepa que hubo problemas en la creacion del registro.
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 1
CALL msg(numero_msg)
NEXT FIELD cod_vend
{ END IF
}
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION tepcmf021()
## Aqui se prepara para la captura del criterio de seleccion
MESSAGE ""
CLEAR FORM
CONSTRUCT criterio ON vetb00011.* FROM vetb00011.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM vetb00011 WHERE ",
" status_t is null AND ",
criterio clipped,
" ORDER BY 1,2,3,4,5,6"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
OPEN datos
FETCH FIRST datos INTO comisiones.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO comisiones.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO comisiones.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO comisiones.*
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO comisiones.*
DISPLAY BY NAME comisiones.*
CALL busca_vendedor2()
CALL busca_nombre_articulo2()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
INPUT BY NAME comisiones.porc_ventas,
comisiones.porc_cobros WITHOUT DEFAULTS
AFTER FIELD porc_ventas
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER FIELD porc_cobros
IF (comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0) AND
(comisiones.porc_cobros IS NULL OR
comisiones.porc_cobros = 0) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0 THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
IF (comisiones.porc_ventas IS NULL OR
comisiones.porc_ventas = 0) AND
(comisiones.porc_cobros IS NULL OR
comisiones.porc_cobros = 0) THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD porc_ventas
END IF
UPDATE vetb00011 SET porc_ventas = comisiones.porc_ventas,
porc_cobros = comisiones.porc_cobros,
us_mod = USER,
fech_mod = CURRENT
WHERE
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
COMMAND KEY ("L") "eLiminar"
"Elimina registro que esta en la pantalla"
UPDATE vetb00011 SET status_t = "E"
WHERE cod_vend = comisiones.cod_vend AND
sec_vend = comisiones.sec_vend AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
# CALL ayuda()
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_vendedor2()
# Esta funcion busca el nombre del vendedor y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
SELECT i.nom1_emp, i.apell1_emp, i.status_t
INTO descrip1, descrip2, status_reg
FROM adtb00003 i
WHERE i.num_emp = comisiones.sec_vend and i.status_t is null
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 68
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET numero_msg = 67
CALL msg(numero_msg)
END IF
END IF
LET descrip6 = descrip1 clipped," ",descrip2 clipped
DISPLAY descrip6 TO descrip6
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
FUNCTION busca_nombre_articulo2()
# Esta funcion busca el nombre del articulo y lo despliega en pantalla
# Esta funcion es valida solamente para la consulta-modificacion.
SELECT i.descrip_esp, i.status_t INTO descrip1, status_reg
FROM intb00001 i
WHERE i.cod_n = comisiones.cod_n AND
i.cod_grupo = comisiones.cod_grupo AND
i.cod_tipo = comisiones.cod_tipo AND
i.cod_sec = comisiones.cod_sec
IF status >= 0 THEN
IF status = NOTFOUND THEN
LET numero_msg = 26
CALL msg(numero_msg)
ELSE
IF status_reg = "E" THEN
LET numero_msg = 44
CALL msg(numero_msg)
END IF
END IF
DISPLAY descrip1 TO descrip_esp
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
END IF
END FUNCTION
FUNCTION consulta_empleados2()
OPEN WINDOW busqueda AT 7,12 WITH FORM "tefmwd001"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET int_flag = false
CONSTRUCT criterio ON a.nom1_emp FROM descrip6
LET selec2 = "SELECT a.num_emp, a.nom1_emp, a.apell1_emp ",
"FROM adtb00003 a ",
"WHERE a.status_t is null AND ",criterio clipped," ORDER BY 1,2 "
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO salir_consulta_e
END IF
PREPARE busca_empleados FROM selec2
IF status >= 0 THEN
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
END IF
END IF
DECLARE buscar_empleados CURSOR FOR busca_empleados
LET idx = 1
FOREACH buscar_empleados INTO arr_empleados[idx].*
IF status = NOTFOUND THEN
EXIT FOREACH
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET empleados[idx].cod_emp = arr_empleados[idx].cod_emp
LET empleados[idx].descrip6 =
arr_empleados[idx].nom_emp clipped," ",arr_empleados[idx].apell_emp clipped
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
MESSAGE " <Esc> Selecciona Empleado donde esta el cursor"
DISPLAY ARRAY empleados TO s_empleados.*
LET curr1 = arr_curr()
LET transportista.cod_transp = empleados[curr1].cod_emp
LET descrip6 = empleados[curr1].descrip6
LABEL salir_consulta_e:
CLOSE WINDOW busqueda
END FUNCTION
+138
View File
@@ -0,0 +1,138 @@
{
------------------------------------------------------------------------
PROGRAMA : TEPRMT022
OBJETIVO : ASIGNAR COMISION DE UN VENDEDOR A OTRO
PROGRAMADOR : JUAN F. SOTO
FECHA : JUNIO 6, 1997.
------------------------------------------------------------------------
}
GLOBALS
"teprgb000.4gl"
FUNCTION teprmt022()
DEFINE vende_de,vende_a SMALLINT,
nombre,apellido CHAR(20),
nombre1,nombre2 CHAR(40)
OPTIONS
ERROR LINE 24,
FORM LINE 8
CALL pantalla()
DISPLAY "Asignar Comision De Un Vendedor A Otro" AT 6,20 ATTRIBUTE(BLACK)
OPEN FORM tefmmt022 FROM "tefmmt022"
DISPLAY FORM tefmmt022
INPUT BY NAME vende_de,vende_a
AFTER FIELD vende_de
IF vende_de IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD vende_de
END IF
SELECT nom1_emp,apell1_emp INTO nombre,apellido
FROM adtb00003
WHERE num_emp = vende_de
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD vende_de
END IF
LET nombre1 = nombre CLIPPED," ",apellido
DISPLAY BY NAME nombre1
AFTER FIELD vende_a
IF vende_a IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD vende_a
END IF
LET nombre = NULL
LET apellido = NULL
SELECT nom1_emp,apell1_emp INTO nombre,apellido
FROM adtb00003
WHERE num_emp = vende_a
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD vende_a
END IF
LET nombre2 = nombre CLIPPED," ",apellido
DISPLAY BY NAME nombre2
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
DISPLAY "En Proceso... Por Favor Espere" AT 16,10
CREATE TEMP TABLE tetmp1
(
sec_vend smallint,
cod_n smallint,
cod_grupo smallint,
cod_tipo smallint,
cod_sec smallint,
porc_ventas decimal(8,4),
porc_cobros decimal(8,4),
status_t char(1),
us_crea char(9),
fech_crea datetime year to minute,
us_mod char(9),
fech_mod datetime year to minute
);
SELECT COUNT(*) INTO regi FROM cctb00008
WHERE sec_vend = vende_de
DECLARE busca CURSOR FOR
SELECT a.* FROM cctb00008 a
WHERE
a.sec_vend = vende_de
LET p_param = "S"
FOREACH busca INTO comisiones.*
CALL termometro(regi,p_param)
LET p_param = "N"
SELECT UNIQUE sec_vend FROM cctb00008
WHERE sec_vend = vende_a AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
IF STATUS = NOTFOUND THEN
INSERT INTO tetmp1 SELECT *FROM cctb00008
WHERE sec_vend = vende_de AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
UPDATE tetmp1 SET sec_vend = vende_a
INSERT INTO cctb00008 SELECT *FROM tetmp1
WHERE sec_vend = vende_a AND
cod_n = comisiones.cod_n AND
cod_grupo = comisiones.cod_grupo AND
cod_tipo = comisiones.cod_tipo AND
cod_sec = comisiones.cod_sec
END IF
END FOREACH
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
+264
View File
@@ -0,0 +1,264 @@
{
-------------------------------------------------------------------------------
PROGRAMA : TEPRRP001
OBJETIVO : Validacion de Depositos Por Banco
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Sept. 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE fecha1,fecha2,fecha_corte DATE ,
opt5 CHAR(1)
##### Definicion de las variables del reporte
DEFINE deposito1 RECORD
num_doc SMALLINT,
cuenta_no CHAR(8),
descripcion CHAR(46),
cta_banco CHAR(13),
procedencia SMALLINT,
descrip2 CHAR(30),
fecha DATE,
monto DECIMAL(12,2)
END RECORD
###### Funcion de busqueda de informteion
FUNCTION teprrp001()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21,
PROMPT LINE 14
OPEN FORM tefmrp001 FROM "tefmrp001"
DISPLAY FORM tefmrp001
CALL pantalla()
DISPLAY "teprrp001" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Validacion de Depositos Por Banco" AT 6,24 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
# Creando el criterio de busqueda de informteion
INPUT BY NAME fecha1,fecha2
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER FIELD fecha1
IF fecha1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha2
END IF
IF fecha1 > fecha2 THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON c.cuenta_no,c.num_doc,c.procedencia
FROM cuenta_no,num_doc,procedencia
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
##### Selecionando la prima del dolar actual
LET selec =
"SELECT c.num_doc,c.cuenta_no,a.descripcion,c.cta_banco,c.procedencia, ",
" b.descripcion,c.fecha,c.monto ",
"FROM tetb00001 c,cgtb00001 a,tetb00002 b ",
"WHERE a.cuenta_no = c.cuenta_no AND c.status_t IS NULL AND ",
" c.procedencia = b.procedencia AND b.status_t IS NULL AND ",
" c.fecha BETWEEN ? AND ? AND ",criterio CLIPPED
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE comando FROM selec
DECLARE busca1 CURSOR FOR comando
OPEN busca1 USING fecha1,fecha2
START REPORT deposito1s TO archivo
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH busca1 INTO deposito1.*
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
DISPLAY deposito1.num_doc AT 21,20
DISPLAY deposito1.cuenta_no AT 21,35
OUTPUT TO REPORT deposito1s(deposito1.*)
END WHILE
FINISH REPORT deposito1s
#RUN imprime
CALL fdestino(destino,archivo,imprime)
CLEAR SCREEN
END FUNCTION
#### Funcion que genera el reporte
REPORT deposito1s(x)
DEFINE x RECORD
num_doc INTEGER,
cuenta_no CHAR(8),
descripcion CHAR(46),
cta_banco CHAR(13),
procedencia SMALLINT,
descrip2 CHAR(30),
fecha DATE,
monto DECIMAL(12,2)
END RECORD
DEFINE descr CHAR(30)
DEFINE hora CHAR(5)
DEFINE fecha5 DATE
DEFINE dias INTEGER
DEFINE tasa,deprec DECIMAL(8,2)
DEFINE valor_libro,depr_teum,total1 DECIMAL(12,2)
DEFINE total2,total3,total4,total5 DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
##### Sorteando la salida de la informteion
ORDER BY x.cuenta_no,x.procedencia,x.num_doc
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, letras.comp_on,letras.negrillas_on
PRINT COLUMN 1, "teprrp001",
COLUMN 20, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 78, "Pag. ",pageno USING "###"
PRINT COLUMN 20, " Sistema de Tesoreria ",
COLUMN 78, today using "dd/mm/yyyy"
PRINT COLUMN 20, " Validacion de Depositos Por Bancos ",
COLUMN 81, hora
PRINT COLUMN 31, "Del ",fecha1 USING "dd/mm/yyyy"," Al ",
fecha2 USING "dd/mm/yyyy" #,letras.normal,
#letras.comp_on
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------"
PRINT COLUMN 1, "Banco",
COLUMN 60, "Procedencia",
COLUMN 91, "Cta. Banco",
COLUMN 107, "Num. Dcto.",
COLUMN 122, "Fecha",
COLUMN 136, "Monto"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------"
, letras.negrillas_off
BEFORE GROUP OF x.cuenta_no
LET total1 = 0
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 1,x.cuenta_no," ",x.descripcion;
BEFORE GROUP OF x.procedencia
LET total2 = 0
PRINT COLUMN 60,letras.negrillas_off,x.procedencia USING "&",
" ",x.descrip2;
ON EVERY ROW
IF x.monto IS NULL THEN
LET x.monto = 0
END IF
IF total3 IS NULL THEN
LET total3 = 0
END IF
LET total1 = total1 + x.monto
LET total2 = total2 + x.monto
LET total3 = total3 + x.monto
PRINT COLUMN 91,x.cta_banco,
COLUMN 109,x.num_doc USING "&&&&&&",
COLUMN 121,x.fecha USING "dd/mm/yyyy",
COLUMN 130,x.monto USING "###,###,###.##"
#### Acumulando los totales de las columnas por cuenta
AFTER GROUP OF x.procedencia
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total Por Procedencia :",
COLUMN 130,total2 USING "###,###,###.##"
PRINT COLUMN 1,letras.negrillas_off
LET Total2 = 0
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total Por Cuenta :",
COLUMN 130,total1 USING "###,###,###.##"
PRINT COLUMN 1,letras.negrillas_off
LET Total1 = 0
ON LAST ROW
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total General :",
COLUMN 132,total3 USING "###,###,###.##"
PRINT COLUMN 1,letras.normal,letras.negrillas_off
LET total1 = 0
LET total2 = 0
LET total3 = 0
END REPORT
+264
View File
@@ -0,0 +1,264 @@
{
-------------------------------------------------------------------------------
PROGRAMA : TEPRRP001
OBJETIVO : Validacion de Depositos Por Banco
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Sept. 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE fecha1,fecha2,fecha_corte DATE ,
opt5 CHAR(1)
##### Definicion de las variables del reporte
DEFINE deposito1 RECORD
num_doc SMALLINT,
cuenta_no CHAR(8),
descripcion CHAR(46),
cta_banco CHAR(13),
procedencia SMALLINT,
descrip2 CHAR(30),
fecha DATE,
monto DECIMAL(12,2)
END RECORD
###### Funcion de busqueda de informteion
FUNCTION teprrp001()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21,
PROMPT LINE 14
OPEN FORM tefmrp001 FROM "tefmrp001"
DISPLAY FORM tefmrp001
CALL pantalla()
DISPLAY "teprrp001" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Validacion de Depositos Por Banco" AT 6,24 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
# Creando el criterio de busqueda de informteion
INPUT BY NAME fecha1,fecha2
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER FIELD fecha1
IF fecha1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha2
END IF
IF fecha1 > fecha2 THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON c.cuenta_no,c.num_doc,c.procedencia
FROM cuenta_no,num_doc,procedencia
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
##### Selecionando la prima del dolar actual
LET selec =
"SELECT c.num_doc,c.cuenta_no,a.descripcion,c.cta_banco,c.procedencia, ",
" b.descripcion,c.fecha,c.monto ",
"FROM tetb00001 c,cgtb00001 a,tetb00002 b ",
"WHERE a.cuenta_no = c.cuenta_no AND c.status_t IS NULL AND ",
" c.procedencia = b.procedencia AND b.status_t IS NULL AND ",
" c.fecha BETWEEN ? AND ? AND ",criterio CLIPPED
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE comando FROM selec
DECLARE busca1 CURSOR FOR comando
OPEN busca1 USING fecha1,fecha2
START REPORT deposito1s TO archivo
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
WHILE STATUS != NOTFOUND
FETCH busca1 INTO deposito1.*
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
DISPLAY deposito1.num_doc AT 21,20
DISPLAY deposito1.cuenta_no AT 21,35
OUTPUT TO REPORT deposito1s(deposito1.*)
END WHILE
FINISH REPORT deposito1s
#RUN imprime
CALL fdestino(destino,archivo,imprime)
CLEAR SCREEN
END FUNCTION
#### Funcion que genera el reporte
REPORT deposito1s(x)
DEFINE x RECORD
num_doc INTEGER,
cuenta_no CHAR(8),
descripcion CHAR(46),
cta_banco CHAR(13),
procedencia SMALLINT,
descrip2 CHAR(30),
fecha DATE,
monto DECIMAL(12,2)
END RECORD
DEFINE descr CHAR(30)
DEFINE hora CHAR(5)
DEFINE fecha5 DATE
DEFINE dias INTEGER
DEFINE tasa,deprec DECIMAL(8,2)
DEFINE valor_libro,depr_teum,total1 DECIMAL(12,2)
DEFINE total2,total3,total4,total5 DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
##### Sorteando la salida de la informteion
ORDER BY x.cuenta_no,x.procedencia,x.num_doc
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, letras.comp_on,letras.negrillas_on
PRINT COLUMN 1, "teprrp001",
COLUMN 20, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 78, "Pag. ",pageno USING "###"
PRINT COLUMN 20, " Sistema de Tesoreria ",
COLUMN 78, today using "dd/mm/yy"
PRINT COLUMN 20, " Validacion de Depositos Por Bancos ",
COLUMN 81, hora
PRINT COLUMN 31, "Del ",fecha1 USING "dd/mm/yy"," Al ",
fecha2 USING "dd/mm/yy" #,letras.normal,
#letras.comp_on
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------"
PRINT COLUMN 1, "Banco",
COLUMN 60, "Procedencia",
COLUMN 91, "Cta. Banco",
COLUMN 107, "Num. Dcto.",
COLUMN 122, "Fecha",
COLUMN 136, "Monto"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------"
, letras.negrillas_off
BEFORE GROUP OF x.cuenta_no
LET total1 = 0
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 1,x.cuenta_no," ",x.descripcion;
BEFORE GROUP OF x.procedencia
LET total2 = 0
PRINT COLUMN 60,letras.negrillas_off,x.procedencia USING "&",
" ",x.descrip2;
ON EVERY ROW
IF x.monto IS NULL THEN
LET x.monto = 0
END IF
IF total3 IS NULL THEN
LET total3 = 0
END IF
LET total1 = total1 + x.monto
LET total2 = total2 + x.monto
LET total3 = total3 + x.monto
PRINT COLUMN 91,x.cta_banco,
COLUMN 109,x.num_doc USING "&&&&&&",
COLUMN 121,x.fecha USING "dd/mm/yy",
COLUMN 130,x.monto USING "###,###,###.##"
#### Acumulando los totales de las columnas por cuenta
AFTER GROUP OF x.procedencia
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total Por Procedencia :",
COLUMN 130,total2 USING "###,###,###.##"
PRINT COLUMN 1,letras.negrillas_off
LET Total2 = 0
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total Por Cuenta :",
COLUMN 130,total1 USING "###,###,###.##"
PRINT COLUMN 1,letras.negrillas_off
LET Total1 = 0
ON LAST ROW
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total General :",
COLUMN 132,total3 USING "###,###,###.##"
PRINT COLUMN 1,letras.normal,letras.negrillas_off
LET total1 = 0
LET total2 = 0
LET total3 = 0
END REPORT
+520
View File
@@ -0,0 +1,520 @@
{
-------------------------------------------------------------------------------
PROGRAMA : TEPRRP002
OBJETIVO : Estado De Cuentas
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Junio 1, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE opt CHAR(1)
DEFINE prima DECIMAL(10,2)
DEFINE mov CHAR(1)
DEFINE idx_1, idx_2, idx_3 SMALLINT
DEFINE fecha_inicial, fecha_final DATE
DEFINE salir, salir1, salir3, tipo_venta CHAR(1)
DEFINE selec4,selec5, selec6 CHAR(1500)
DEFINE tot_gen1 RECORD
totald DECIMAL(10,2),
totalc DECIMAL(10,2),
totalg DECIMAL(10,2)
END RECORD
DEFINE clientes RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
valor DECIMAL(12,2)
END RECORD
DEFINE mvtos RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
tipo_doc CHAR(2),
num_doc INTEGER,
fecha_doc DATE,
aplica_a INTEGER,
valor DECIMAL(10,2),
monto_desc LIKE cctb00001.monto_desc,
cliente CHAR(6) ,
balance DECIMAL(12,2)
END RECORD
FUNCTION teprrp002()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM tefmrp002 FROM "tefmrp002"
DISPLAY FORM tefmrp002
CALL pantalla()
DISPLAY "teprrp002" AT 4,3 ATTRIBUTE(RED)
DISPLAY " Estado Cuentas " AT 6,32 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
CONSTRUCT criterio ON a.tipo_cliente,a.sec_cliente FROM
tipo_cliente, sec_cliente
INPUT BY NAME prima,fecha_inicial,fecha_final
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER FIELD fecha_inicial
IF fecha_inicial is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
BEFORE FIELD fecha_final
LET fecha_final = today
AFTER FIELD fecha_final
IF fecha_final is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_final < fecha_inicial THEN
LET numero_msg = 86
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
IF fecha_inicial is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
IF fecha_final is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_final < fecha_inicial THEN
LET numero_msg = 86
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
EXIT INPUT
END INPUT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
# Busca Balances de los clientes
LET selec5 =
"SELECT a.tipo_cliente,a.sec_cliente,sum(a.valor+a.monto_desc) ",
"FROM cctb00001 a ",
"WHERE ",criterio clipped," AND a.status_t is null AND a.fecha_orig < ? ",
"GROUP BY 1,2 ORDER BY 1,2 "
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE b_balance FROM selec5
DECLARE c_balance SCROLL CURSOR FOR b_balance
OPEN c_balance USING fecha_inicial
# Busca los documentos que esten en el rango de fechas especificado
LET selec4 =
"SELECT a.tipo_cliente, a.sec_cliente, a.tipo_doc, a.num_doc, ",
" a.fecha_orig, a.aplica_a, a.valor, a.monto_desc ",
"FROM cctb00001 a ",
"WHERE ",criterio clipped," AND a.status_t IS NULL AND ",
" a.fecha_orig between ? AND ? ",
"ORDER BY 1,2,6,5 "
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
DISPLAY "<< Buscando los Movimientos del Rango >>" AT 20,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE movi FROM selec4
DECLARE mvtos_cli SCROLL CURSOR FOR movi
OPEN mvtos_cli USING fecha_inicial,fecha_final
DISPLAY " " AT 20,14
START REPORT report14 TO archivo
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
LET idx_1 = 1
LET salir = "N"
WHILE salir != "S"
FETCH ABSOLUTE idx_1 mvtos_cli INTO mvtos.*
IF status = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET salir = "S"
LET numero_msg = 2
CALL msg(numero_msg)
FINISH REPORT report14
EXIT WHILE
END IF
LET idx_1 = idx_1 + 1
LET mvtos.cliente = mvtos.tipo_cliente using "&&",
mvtos.sec_cliente using "&&&&"
LET mvtos.balance = 0
LET idx_2 = 1
LET salir1 = "N"
WHILE salir1 != "S"
FETCH ABSOLUTE idx_2 c_balance INTO clientes.*
IF status = notfound THEN
LET idx_2 = 1
LET salir1 = "S"
EXIT WHILE
END IF
LET idx_2 = idx_2 + 1
IF mvtos.tipo_cliente = clientes.tipo_cliente AND
mvtos.sec_cliente = clientes.sec_cliente THEN
LET idx_2 = 1
LET mvtos.balance = clientes.valor
EXIT WHILE
END IF
END WHILE
# DISPLAY mvtos.cliente AT 13,1
IF prima is not null THEN
LET mvtos.valor = mvtos.valor * prima
LET mvtos.monto_desc = mvtos.monto_desc * prima
LET mvtos.balance = mvtos.balance * prima
END IF
DISPLAY mvtos.cliente AT 21,20
DISPLAY mvtos.tipo_doc AT 21,35
DISPLAY mvtos.num_doc AT 21,38
OUTPUT TO REPORT report14(mvtos.*)
END WHILE
FINISH REPORT report14
#IF not int_flag THEN
# LET int_flag = false
# FINISH REPORT report14
PROMPT "Desea Imprimir Reporte [S/N].....?" FOR CHAR opt
LET opt = UPSHIFT(opt)
IF opt = "S" THEN
#RUN imprime
CALL fdestino(destino,archivo,imprime)
END IF
#END IF
CLEAR SCREEN
END FUNCTION
REPORT report14(x)
DEFINE x RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
tipo_doc CHAR(2),
num_doc INTEGER,
fecha_doc DATE,
aplica_a INTEGER,
valor DECIMAL(10,2),
monto_desc LIKE cctb00001.monto_desc,
cliente CHAR(6) ,
balance DECIMAL(12,2)
END RECORD
DEFINE dias SMALLINT
DEFINE p_calle,p_descrip CHAR(30)
DEFINE p_casa,p_zona,p_numero CHAR(10)
DEFINE hora CHAR(5)
DEFINE tipo CHAR(2)
DEFINE imp_cli CHAR(1)
DEFINE credito, debito, tcredito, tdebito, tbalance,
limite, b_balance, v1_30, v31_45, v46_60, vm_60,p_valor DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
PAGE LENGTH 33
ORDER BY x.cliente,x.aplica_a,x.fecha_doc
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, letras.comp_on
# PRINT COLUMN 1, letras.doce, letras.negrillas_on
PRINT COLUMN 1, "teprrp002",
COLUMN 31, "R A Y - O - V A C D O M I N I C A N A, S. A.",
COLUMN 103, "Pag.",
COLUMN 108, pageno using "###"
PRINT COLUMN 43, "Sistema de Tesoreria",
COLUMN 101, today using "dd/mm/yyyy"
PRINT COLUMN 44, " Estado de Cuenta ",
COLUMN 106, hora
PRINT COLUMN 47, " Al ", fecha_final using "dd/mm/yyyy"
# , letras.negrillas_off
IF prima is null THEN
PRINT COLUMN 53, "RD$"
ELSE
PRINT COLUMN 53, "US$"
END IF
SKIP 1 LINES
BEFORE GROUP OF x.cliente
LET v1_30 = 0
LET v31_45 = 0
LET v46_60 = 0
LET vm_60 = 0
IF tdebito IS NULL THEN
LET tdebito = 0
END IF
IF tcredito IS NULL THEN
LET tcredito = 0
END IF
IF tbalance IS NULL THEN
LET tbalance = 0
END IF
SELECT b.nombre,b.limite_credito,b.zona_postal,b.num_rnc,
c.calle,c.casa_num,d.descrip
INTO descrip1,limite,p_zona,p_numero,p_calle,p_casa,
p_descrip
FROM vetb00004 b ,vetb00005 c,vetb00008 d
WHERE x.tipo_cliente = b.tipo_cliente and
x.sec_cliente = b.sec_cliente and
b.tipo_cliente = c.tipo_cliente and
b.sec_cliente = c.sec_cliente and
b.cod_zona = d.cod_zona and
b.status_t is null
IF x.balance IS NULL THEN
LET x.balance = 0
END IF
IF limite IS NULL THEN
LET limite = 0
END IF
IF prima is not null THEN
PRINT COLUMN 1,"Prima: ", prima using "###.##"
END IF
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"-----------"
,letras.negrillas_on
PRINT COLUMN 1, "Cliente:",
COLUMN 10, x.tipo_cliente using "&&","-",
x.sec_cliente using "&&&&",
COLUMN 18, descrip1 clipped,
COLUMN 49, "Limite Credito",
COLUMN 64, limite using "####,###,###.##",
COLUMN 81, "Balance Al: ", fecha_inicial using "dd/mm/yyyy"
PRINT COLUMN 10, p_calle clipped," ",p_casa,
COLUMN 24, "RNC: ", p_numero,
COLUMN 91, x.balance using "####,###,###.##"
PRINT COLUMN 10, p_descrip,
COLUMN 22, "ZONA POSTAL: ",p_zona,letras.negrillas_off
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"-----------"
LET b_balance = x.balance
# SKIP 1 LINE
PRINT COLUMN 4, "D O C U M E N T O",
COLUMN 29, "A F E C T A"
PRINT COLUMN 1, "|----------------------|",
COLUMN 27, "|---------------|"
PRINT COLUMN 3, "Numero",
COLUMN 11, "Tipo",
COLUMN 17, "Fecha",
COLUMN 29, "Numero",
COLUMN 38, "Tipo",
COLUMN 63, "D E B I T O",
COLUMN 80, "C R E D I T O",
COLUMN 99, "B A L A N C E"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------" ,
"-----------"
LET debito = 0
LET credito = 0
ON EVERY ROW
# IF x.fecha_doc >= fecha_inicial AND
# x.fecha_doc <= fecha_final THEN
{
SELECT UNIQUE tipo_doc
INTO tipo
FROM cctb00001
WHERE num_doc = x.num_doc #aplica_a
}
PRINT COLUMN 3, x.num_doc using "######",
COLUMN 12, x.tipo_doc,
COLUMN 16, x.fecha_doc using "dd/mm/yyyy",
COLUMN 28, x.aplica_a using "######",
COLUMN 39, tipo;
LET b_balance = b_balance + (x.valor + x.monto_desc)
IF x.valor >= 0 THEN
PRINT COLUMN 59, x.valor using "####,###,###.##",
COLUMN 97, b_balance using "####,###,###.##"
LET debito = debito + x.valor
ELSE
PRINT COLUMN 78, x.valor + x.monto_desc using "####,###,###.##",
COLUMN 97, b_balance using "####,###,###.##"
LET credito = credito + (x.valor + x.monto_desc)
END IF
# END IF
AFTER GROUP OF x.aplica_a
LET p_valor = GROUP SUM(x.valor+x.monto_desc)
IF p_valor > 0 THEN
LET dias = fecha_inicial - x.fecha_doc
IF dias < 31 THEN
LET v1_30 = p_valor + v1_30
END IF
IF dias > 30 and dias < 46 THEN
LET v31_45 = p_valor + v31_45
END IF
IF dias > 45 and dias < 61 THEN
LET v46_60 = p_valor + v46_60
END IF
IF dias > 60 THEN
LET vm_60 = vm_60 + p_valor
END IF
END IF
PAGE TRAILER
PRINT COLUMN 1, "ANALISIS POR ANTIGUEDAD",letras.negrillas_on,
COLUMN 33, "1 a 30",
COLUMN 47, "31 a 45",
COLUMN 59, "46 a 60",
COLUMN 70, "Mas de 60",letras.negrillas_off
PRINT COLUMN 1, "DE SU APRECIADA CUENTA: ",
COLUMN 26, v1_30 using "##,###,###.##",
COLUMN 41, v31_45 using "##,###,###.##",
COLUMN 51, v46_60 using "##,###,###.##",
COLUMN 61, vm_60 using "##,###,###.##"
PRINT COLUMN 1, "NOTA: LE ROGAMOS REVISAR ESTE ESTADO Y NOTIFICAR A NUESTRO ",
"DEPARTAMENTO DE CONTABILIDAD SOBRE CUALQUIER "
PRINT COLUMN 1, "DISCREPANCIA O REPARO, A LA MAYOR BREVEDAD POSIBLE."
PRINT COLUMN 1, "APRECIAMOS SU RESPUESTA, POR TANTO, QUEDAREMOS AGRADECIDOS"
," POR SU ATENCION, SERVANSE USAR LA COPIA DE ESTE ESTADO"
PRINT COLUMN 1, "PARA SU CONFIRMACION."
SKIP 1 LINE
PRINT COLUMN 10, letras.negrillas_on,
"NOMENCLATURA: PG- PAGOS FT- FACTURAS ND- NOTA DE DEBITO NC- NOTA CREDITO",
" DE- DEVOLUCIONES",
letras.negrillas_off
{ AFTER GROUP OF x.cliente
IF imp_cli = "S" THEN
SKIP 1 LINE
PRINT
COLUMN 1, letras.negrillas_on,
COLUMN 27, "Total Cliente",
COLUMN 59, debito using "####,###,###.##",
COLUMN 78, credito using "####,###,###.##",
COLUMN 97, b_balance using "####,###,###.##"
PRINT COLUMN 59, "===============",
COLUMN 78, "===============",
COLUMN 97, "==============="
, letras.negrillas_off
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------" ,
"-----------"
LET tcredito = tcredito + credito
LET tdebito = tdebito + debito
LET tbalance = tbalance + b_balance
LET credito = 0
LET debito = 0
LET x.balance = 0
END IF}
{ ON LAST ROW
SKIP 1 LINE
PRINT
COLUMN 1, letras.negrillas_on,
COLUMN 27, "Total General",
COLUMN 59, tdebito using "####,###,###.##",
COLUMN 78, tcredito using "####,###,###.##",
COLUMN 97, tbalance using "####,###,###.##"
# , letras.negrillas_off
LET tot_gen1.totald = tdebito
LET tot_gen1.totalc = tcredito
LET tot_gen1.totalg = tbalance
PRINT normall
# PRINT normal }
END REPORT
+260
View File
@@ -0,0 +1,260 @@
{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP003
OBJETIVO : Comisiones por Ventas
PROGRAMADOR : Juan Fco. Soto
FECHA REALIZACION : Mayo 27, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE mes SMALLINT
DEFINE cod_cia SMALLINT
FUNCTION teprrp003()
DEFINE vendedor RECORD
cod_vend SMALLINT,
sec_vend SMALLINT,
fecha_factura DATE,
factura INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER ,
porc_venta DECIMAL(10,4),
precio DECIMAL(10,2),
descrip_esp CHAR(30),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vende CHAR(6)
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM tefmrp003 FROM "tefmrp003"
DISPLAY FORM tefmrp003
CALL pantalla()
DISPLAY "teprrp003" AT 4,3 ATTRIBUTE(RED)
DISPLAY " Comision por Ventas " AT 6,29 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME cod_cia,mes
ON KEY(CONTROL-P)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
AFTER INPUT
EXIT INPUT
END INPUT
CONSTRUCT criterio ON a.cod_vend, a.sec_vend,a.ventas,b.cod_n,b.cod_grupo,
b.cod_tipo,b.cod_sec
FROM cod_vend,sec_vend,ventas,cod_n,cod_grupo,cod_tipo,
cod_sec
ON KEY(CONTROL-P)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
START REPORT comision TO "oscar" #archivo
DISPLAY " " AT 19,14
DISPLAY "<< Buscando Las Informaciones... Espere Por Favor >>" AT 19,14
LET selec =
"SELECT a.cod_vend,a.sec_vend,a.fecha_factura,a.factura,b.cod_n, ",
" b.cod_grupo,b.cod_tipo,b.cod_sec,b.cantidad,d.porc_ventas, ",
" b.precio ",
"FROM vetb00002 a,vetb00003 b,vetb00011 d, prdtable c ",
"WHERE a.fecha_factura between c.fecha_inicio AND c.fecha_corte AND ",
" a.factura=b.factura AND c.mes=? AND a.cod_vend=d.cod_vend AND ",
" a.sec_vend = d.sec_vend AND b.cod_n = d.cod_n AND ",
" b.cod_grupo = d.cod_grupo AND b.cod_tipo = d.cod_tipo AND ",
" b.cod_sec = d.cod_sec AND a.cod_cia = ? AND ",criterio clipped,
" AND a.status_t is null ORDER BY 1,2,4"
PREPARE b_vende FROM selec
DECLARE c_vende CURSOR FOR b_vende
OPEN c_vende USING mes,cod_cia
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose... Espere Por Favor >>" AT 19,14
WHILE STATUS != NOTFOUND
FETCH c_vende INTO vendedor.*
IF status = notfound THEN
EXIT WHILE
END IF
SELECT a.descrip_esp INTO vendedor.descrip_esp FROM intb00001 a
WHERE a.cod_n = vendedor.cod_n and a.cod_grupo = vendedor.cod_grupo and
a.cod_tipo = vendedor.cod_tipo and a.cod_sec = vendedor.cod_sec
SELECT a.nom_emp,a.apell_emp
INTO vendedor.nombre_vend,vendedor.apellido_vend
FROM adtb00003 a
WHERE a.cod_emp = vendedor.cod_vend and a.cod_emp_sec = vendedor.sec_vend
LET vendedor.vende = vendedor.cod_vend using "&&",
vendedor.sec_vend using "&&&&"
OUTPUT TO REPORT comision (vendedor.*)
END WHILE
FINISH REPORT comision
#RUN imprime
#CALL fdestino(destino,archivo,imprime)
CLEAR SCREEN
END FUNCTION
REPORT comision(x)
DEFINE x RECORD
cod_vend SMALLINT,
sec_vend SMALLINT,
fecha_factura DATE,
factura INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER ,
porc_venta DECIMAL(10,4),
precio DECIMAL(10,2),
descrip_esp CHAR(30),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vendedor CHAR(6)
END RECORD
DEFINE nombre_mes CHAR(10)
DEFINE total_clientes INTEGER
DEFINE hora CHAR(5)
DEFINE i SMALLINT
DEFINE porc DECIMAL(10,4)
DEFINE total_gen,total_vend,valor_pagar DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 4
ORDER BY x.vendedor,x.factura
FORMAT
PAGE HEADER
LET hora = time
CALL meses()
LET nombre_mes = mes1[mes]
PRINT COLUMN 1, letras.doce, letras.negrillas_on
PRINT COLUMN 1, "teprrp003",
COLUMN 27, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 92, "Pag. ",pageno using "###"
PRINT COLUMN 41, "Sistema de Ventas ",
COLUMN 90, today using "dd/mm/yyyy"
PRINT COLUMN 34, "Relacion comision por Vendedor",
COLUMN 95, hora, letras.negrillas_off
PRINT COLUMN 40, letras.doble_on,nombre_mes,letras.doble_off
IF cod_cia = 1 THEN
PRINT COLUMN 1, "Rayovac Dominicana"
ELSE
PRINT COLUMN 1, "Distribuidora Dominicana de Pilas"
END IF
SKIP 1 LINES
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------"
PRINT COLUMN 93, "COMISION"
PRINT COLUMN 2, "FACTURA",
COLUMN 10, "FECHA",
COLUMN 20, "PRODUCTO",
COLUMN 66, "PRECIO",
COLUMN 75, "UNIDADES",
COLUMN 84, "COMISION",
COLUMN 93, "A PAGAR"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"--------------------"
IF total_gen is null THEN
LET total_gen = 0
END IF
SKIP 1 LINE
BEFORE GROUP OF x.vendedor
LET total_vend = 0
PRINT COLUMN 1,letras.doble_on,"VENDEDOR : ",
x.nombre_vend clipped," ",
x.apellido_vend clipped, letras.doble_off
SKIP 1 LINE
ON EVERY ROW
IF cod_cia = 1 THEN
LET valor_pagar = x.cantidad * x.porc_venta
LET porc = x.porc_venta
ELSE
LET valor_pagar = (x.cantidad * x.precio) * (x.porc_venta / 100)
LET porc = x.porc_venta / 100
END IF
PRINT COLUMN 1, x.factura using "&&&&&&",
COLUMN 9, x.fecha_factura using "dd/mm/yyyy",
COLUMN 20, x.cod_n using "&","-",x.cod_grupo using "&","-",
x.cod_tipo using "&&","-",x.cod_sec using "&&&",
" ",x.descrip_esp," ";
IF cod_cia = 2 THEN
PRINT COLUMN 63, x.cantidad * x.precio using "##,###,###";
END IF
PRINT COLUMN 74, x.cantidad using "###,###",
COLUMN 84, porc using "###.####",
COLUMN 91, valor_pagar using "###,###.##"
LET total_vend = valor_pagar + total_vend
AFTER GROUP OF x.vendedor
PRINT COLUMN 91, "----------"
PRINT COLUMN 50, "Total A Pagar: ",
COLUMN 91, total_vend using "###,###.##"
SKIP 1 LINE
LET total_gen = total_gen + total_vend
LET total_vend = 0
AFTER GROUP OF x.factura
SKIP 1 LINE
END REPORT
FUNCTION meses()
LET mes1[1] = "Enero"
LET mes1[2] = "Febrero"
LET mes1[3] = "Marzo"
LET mes1[4] = "Abril"
LET mes1[5] = "Mayo"
LET mes1[6] = "Junio"
LET mes1[7] = "Julio"
LET mes1[8] = "Agosto"
LET mes1[9] = "Septiembre"
LET mes1[10] = "Octubre"
LET mes1[11] = "Noviembre"
LET mes1[12] = "Diciembre"
END FUNCTION
+273
View File
@@ -0,0 +1,273 @@
{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP003
OBJETIVO : Comisiones por Ventas
PROGRAMADOR : Juan Fco. Soto
FECHA REALIZACION : Mayo 27, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE mes SMALLINT,
ano CHAR(4)
DEFINE cod_cia SMALLINT
FUNCTION teprrp003()
DEFINE vendedor RECORD
cod_vend SMALLINT,
sec_vend SMALLINT,
fecha_factura DATE,
factura INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER ,
precio DECIMAL(10,2),
porc_venta DECIMAL(10,4),
descrip_esp CHAR(30),
nombre_vend CHAR(30),
apellido_vend CHAR(30),
vende CHAR(6)
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM tefmrp003 FROM "tefmrp003"
DISPLAY FORM tefmrp003
CALL pantalla()
DISPLAY "teprrp003" AT 4,3 ATTRIBUTE(RED)
DISPLAY " Comision por Ventas " AT 6,29 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME cod_cia,mes,ano
ON KEY(CONTROL-P)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
AFTER INPUT
EXIT INPUT
END INPUT
CONSTRUCT criterio ON a.cod_vend, a.sec_vend,a.ventas,b.cod_n,b.cod_grupo,
b.cod_tipo,b.cod_sec
FROM cod_vend,sec_vend,ventas,cod_n,cod_grupo,cod_tipo,
cod_sec
ON KEY(CONTROL-P)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
START REPORT comision TO archivo
DISPLAY " " AT 19,14
DISPLAY "<< Buscando Las Informaciones... Espere Por Favor >>" AT 19,14
LET selec =
"SELECT a.cod_vend,a.sec_vend,a.fecha_factura,a.factura,b.cod_n, ",
" b.cod_grupo,b.cod_tipo,b.cod_sec,b.cantidad,",
" b.precio ",
"FROM vetb00002 a,vetb00003 b,prdtable c ",
"WHERE a.fecha_factura between c.fecha_inicio AND c.fecha_corte AND ",
" a.factura=b.factura AND c.mes=? AND a.cod_cia = ? AND ",criterio clipped,
" AND a.status_t is null AND c.ano = ? ORDER BY 1,2,4"
PREPARE b_vende FROM selec
DECLARE c_vende CURSOR FOR b_vende
OPEN c_vende USING mes,cod_cia,ano
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose... Espere Por Favor >>" AT 19,14
WHILE STATUS != NOTFOUND
FETCH c_vende INTO vendedor.*
IF status = notfound THEN
EXIT WHILE
END IF
SELECT a.porc_ventas
INTO vendedor.porc_venta
FROM vetb00011 a
WHERE a.sec_vend = vendedor.sec_vend
AND a.cod_n = vendedor.cod_n
AND a.cod_grupo = vendedor.cod_grupo
AND a.cod_sec = vendedor.cod_sec
AND a.status_t IS NULL
SELECT a.descrip_esp INTO vendedor.descrip_esp FROM intb00001 a
WHERE a.cod_n = vendedor.cod_n and a.cod_grupo = vendedor.cod_grupo and
a.cod_tipo = vendedor.cod_tipo and a.cod_sec = vendedor.cod_sec
SELECT a.nom1_emp,a.apell1_emp
INTO vendedor.nombre_vend,vendedor.apellido_vend
FROM adtb00003 a
WHERE a.num_emp = vendedor.sec_vend
LET vendedor.vende = vendedor.cod_vend using "&&",
vendedor.sec_vend using "&&&&"
OUTPUT TO REPORT comision (vendedor.*)
END WHILE
FINISH REPORT comision
#RUN imprime
CALL fdestino(destino,archivo,imprime)
CLEAR SCREEN
END FUNCTION
REPORT comision(x)
DEFINE x RECORD
cod_vend SMALLINT,
sec_vend SMALLINT,
fecha_factura DATE,
factura INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER ,
precio DECIMAL(10,2),
porc_venta DECIMAL(10,4),
descrip_esp CHAR(30),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vendedor CHAR(6)
END RECORD
DEFINE nombre_mes CHAR(10)
DEFINE total_clientes INTEGER
DEFINE hora CHAR(5)
DEFINE i SMALLINT
DEFINE porc DECIMAL(10,4)
DEFINE total_gen,total_vend,valor_pagar DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 4
ORDER BY x.vendedor,x.factura
FORMAT
PAGE HEADER
LET hora = time
CALL meses()
LET nombre_mes = mes1[mes]
PRINT COLUMN 1, letras.doce, letras.negrillas_on
PRINT COLUMN 1, "teprrp003",
COLUMN 27, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 92, "Pag. ",pageno using "###"
PRINT COLUMN 41, "Sistema de Ventas ",
COLUMN 90, today using "dd/mm/yyyy"
PRINT COLUMN 34, "Relacion comision por Vendedor",
COLUMN 95, hora, letras.negrillas_off
PRINT COLUMN 40, letras.doble_on,nombre_mes,letras.doble_off
IF cod_cia = 1 THEN
PRINT COLUMN 1, "Rayovac Dominicana"
ELSE
PRINT COLUMN 1, "Productos Importados" #"Distribuidora Dominicana de Pilas"
END IF
SKIP 1 LINES
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------"
PRINT COLUMN 93, "COMISION"
PRINT COLUMN 2, "FACTURA",
COLUMN 10, "FECHA",
COLUMN 20, "PRODUCTO",
COLUMN 66, "PRECIO",
COLUMN 75, "UNIDADES",
COLUMN 84, "COMISION",
COLUMN 93, "A PAGAR"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"--------------------"
IF total_gen is null THEN
LET total_gen = 0
END IF
SKIP 1 LINE
BEFORE GROUP OF x.vendedor
LET total_vend = 0
PRINT COLUMN 1,letras.doble_on,"VENDEDOR : ",
x.nombre_vend clipped," ",
x.apellido_vend clipped, letras.doble_off
SKIP 1 LINE
ON EVERY ROW
# display "porciento ",x.porc_venta
IF cod_cia = 1 THEN
LET valor_pagar = x.cantidad * x.porc_venta
LET porc = x.porc_venta
ELSE
LET valor_pagar = (x.cantidad * x.precio) * (x.porc_venta / 100)
LET porc = x.porc_venta / 100
END IF
{
display "valor_pagar ",valor_pagar
display "porc ",porc
}
PRINT COLUMN 1, x.factura using "&&&&&&",
COLUMN 9, x.fecha_factura using "dd/mm/yyyy",
COLUMN 20, x.cod_n using "&","-",x.cod_grupo using "&","-",
x.cod_tipo using "&&","-",x.cod_sec using "&&&",
" ",x.descrip_esp," ";
IF cod_cia = 2 THEN
PRINT COLUMN 63, x.cantidad * x.precio using "##,###,###";
END IF
PRINT COLUMN 74, x.cantidad using "###,###",
COLUMN 84, porc using "###.####",
COLUMN 91, valor_pagar using "###,###.##"
LET total_vend = valor_pagar + total_vend
AFTER GROUP OF x.vendedor
PRINT COLUMN 91, "----------"
PRINT COLUMN 50, "Total A Pagar: ",
COLUMN 91, total_vend using "###,###.##"
SKIP 1 LINE
LET total_gen = total_gen + total_vend
LET total_vend = 0
AFTER GROUP OF x.factura
SKIP 1 LINE
END REPORT
FUNCTION meses()
LET mes1[1] = "Enero"
LET mes1[2] = "Febrero"
LET mes1[3] = "Marzo"
LET mes1[4] = "Abril"
LET mes1[5] = "Mayo"
LET mes1[6] = "Junio"
LET mes1[7] = "Julio"
LET mes1[8] = "Agosto"
LET mes1[9] = "Septiembre"
LET mes1[10] = "Octubre"
LET mes1[11] = "Noviembre"
LET mes1[12] = "Diciembre"
END FUNCTION
+235
View File
@@ -0,0 +1,235 @@
{
-------------------------------------------------------------------------------
PROGRAMA : TEPRRP004
OBJETIVO : Comisiones por Cobro
PROGRAMADOR : Juan Fco. Sotot
FECHA REALIZACION : Mayo 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE mes SMALLINT,
ano CHAR(4)
DEFINE cod_cia SMALLINT
FUNCTION teprrp004()
DEFINE vendedor RECORD
recibo INTEGER,
cod_vend SMALLINT,
sec_vend SMALLINT,
fecha_recibo DATE,
fecha_factura DATE,
factura INTEGER,
monto DECIMAL(12,2),
porc_venta DECIMAL(10,4),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vende CHAR(6)
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM tefmrp004 FROM "tefmrp004"
DISPLAY FORM tefmrp004
CALL pantalla()
DISPLAY "teprrp004" AT 4,3 ATTRIBUTE(RED)
DISPLAY " Comision por Cobros " AT 6,29 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME cod_cia,mes,ano
CONSTRUCT criterio ON e.cod_emp , e.cod_emp_sec
FROM cod_vend, sec_vend
ON KEY(CONTROL-P)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
START REPORT cobros TO archivo
DISPLAY " " AT 19,14
DISPLAY "<< Buscando Las Informaciones... Espere Por Favor >>" AT 19,14
LET selec =
"SELECT e.num_doc,e.cod_emp,e.cod_emp_sec,e.fecha_orig,a.fecha_factura, ",
" a.factura,e.valor ",
"FROM vetb00002 a, prdtable c,cctb00001 e ",
"WHERE e.fecha_orig between c.fecha_inicio and c.fecha_corte and ",
" a.factura = e.aplica_a and e.tipo_doc = 'PG' and ",
" c.mes = ? and a.cod_cia = ? and ",criterio clipped,
" and a.ventas = '1' and a.status_t is null and c.ano = ? "
PREPARE b_vende FROM selec
DECLARE c_vende CURSOR FOR b_vende
OPEN c_vende USING mes,cod_cia,ano
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose... Espere Por Favor >>" AT 19,14
WHILE STATUS != NOTFOUND
FETCH c_vende INTO vendedor.*
IF status = notfound THEN
EXIT WHILE
END IF
IF cod_cia = 1 THEN
SELECT max(a.porc_cobros) INTO vendedor.porc_venta FROM vetb00011 a
WHERE a.cod_n = 3 and a.sec_vend = vendedor.sec_vend and a.status_t is null
ELSE
SELECT unique max(a.porc_cobros) INTO vendedor.porc_venta FROM vetb00011 a
WHERE a.cod_n = 6 and a.sec_vend = vendedor.sec_vend and a.status_t is null
LET vendedor.porc_venta = vendedor.porc_venta / 100
END IF
SELECT nom1_emp,apell1_emp INTO vendedor.nombre_vend,vendedor.apellido_vend
FROM adtb00003
WHERE num_emp = vendedor.sec_vend
IF vendedor.porc_venta IS NULL THEN
LET vendedor.porc_venta = 0
END IF
LET vendedor.vende = vendedor.cod_vend using "&&",
vendedor.sec_vend using "&&&&"
OUTPUT TO REPORT cobros (vendedor.*)
END WHILE
FINISH REPORT cobros
#RUN imprime
CALL fdestino(destino,archivo,imprime)
CLEAR SCREEN
END FUNCTION
REPORT cobros(x)
DEFINE x RECORD
recibo INTEGER,
cod_vend SMALLINT,
sec_vend SMALLINT,
fecha_recibo DATE,
fecha_factura DATE,
factura INTEGER,
monto DECIMAL(12,2),
porc_venta DECIMAL(10,4),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vende CHAR(6)
END RECORD
DEFINE primera CHAR(1)
DEFINE nombre_mes CHAR(10)
DEFINE total_clientes INTEGER
DEFINE hora CHAR(5)
DEFINE i SMALLINT
DEFINE porc,total_gen,total_vend,valor_pagar DECIMAL(12,2),
fecha1,fecha2 DATE
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 4
ORDER BY x.vende,x.recibo
FORMAT
PAGE HEADER
LET hora = time
CALL meses()
LET nombre_mes = mes1[mes]
PRINT COLUMN 1, letras.doce, letras.negrillas_on
PRINT COLUMN 1, "teprrp004",
COLUMN 27, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 92, "Pag. ",pageno using "###"
PRINT COLUMN 40, "Sistema de Tesoreria ",
COLUMN 92, today using "dd/mm/yyyy"
PRINT COLUMN 34, " Relacion comision por Cobros ",
COLUMN 95, hora, letras.negrillas_off
PRINT COLUMN 40, letras.doble_on,nombre_mes,letras.doble_off
SELECT a.fecha_inicio,a.fecha_corte
INTO fecha1,fecha2
FROM prdtable a
WHERE a.ano = ano
AND a.mes = mes
SKIP 1 LINES
IF cod_cia = 1 THEN
PRINT COLUMN 1, "Rayovac Domincana",
" Desde : ",fecha1 USING "dd/mm/yyyy",
" Hasta : ",fecha2 USING "dd/mm/yyyy"
ELSE
PRINT COLUMN 1, "Distribuidora Dominicana de Pilas",
" Desde : ",fecha1 USING "dd/mm/yyyy",
" Hasta : ",fecha2 USING "dd/mm/yyyy"
END IF
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------"
PRINT COLUMN 87, "COMISION"
PRINT COLUMN 2, "RECIBO",
COLUMN 10, "FECHA",
COLUMN 20, "APLICACION",
COLUMN 66, "MONTO",
COLUMN 75, "COMISION",
COLUMN 87, "A PAGAR"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"--------------------"
IF total_gen is null THEN
LET total_gen = 0
END IF
SKIP 1 LINE
BEFORE GROUP OF x.vende
LET total_vend = 0
PRINT COLUMN 1,letras.doble_on,"VENDEDOR : ",
x.nombre_vend clipped," ",
x.apellido_vend clipped, letras.doble_off
SKIP 1 LINE
ON EVERY ROW
LET valor_pagar = x.monto * x.porc_venta
LET porc = x.porc_venta
PRINT COLUMN 1, x.recibo using "&&&&&&",
COLUMN 9, x.fecha_factura using "dd/mm/yyyy",
COLUMN 20, x.factura using "&&&&&&",
COLUMN 62, x.monto using "##,###,###.##",
COLUMN 75, x.porc_venta using "###.####",
COLUMN 85, valor_pagar using "###,###.##"
LET total_vend = valor_pagar + total_vend
AFTER GROUP OF x.vende
PRINT COLUMN 87, "----------"
PRINT COLUMN 50, "Total A Pagar: ",
COLUMN 87, total_vend using "###,###.##"
LET total_gen = total_gen + total_vend
LET total_vend = 0
SKIP TO TOP OF PAGE
END REPORT
+292
View File
@@ -0,0 +1,292 @@
{
-------------------------------------------------------------------------------
PROGRAMA : CCPRRP005
OBJETIVO : Liquidacion Comision Por Cobros Plan Ranchero
PROGRAMADOR : Juan Fco. Soto
FECHA REALIZACION : Abril 06, 1995
-------------------------------------------------------------------------------
}
GLOBALS
"teprgb000.4gl"
DEFINE fact_ant INTEGER
DEFINE cod_cia SMALLINT
DEFINE p_datos RECORD
fecha_in DATE,
fecha_fin DATE
END RECORD
DEFINE porc_rep,porciento,p_itbi DECIMAL(8,2)
DEFINE p_neto,valor_desc DECIMAL(12,2)
FUNCTION teprrp005()
#DEFINE imprime CHAR(1)
DEFINE vendedor RECORD
cod_vend SMALLINT,
sec_vend SMALLINT,
fecha_factura DATE,
factura INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER ,
precio DECIMAL(10,2),
recibo INTEGER,
fecha DATE,
valor_c DECIMAL(12,2),
porc_venta DECIMAL(10,4),
descrip_esp CHAR(30),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vende CHAR(6),
codigo CHAR(7)
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM tefmrp005 FROM "tefmrp005"
DISPLAY FORM tefmrp005
#CALL pantalla()
DISPLAY "teprrp005" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Liquidacion Comision Por Cobro Plan Ranchero" AT 6,17 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME cod_cia,p_datos.*
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER INPUT
EXIT INPUT
END INPUT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
START REPORT reporte_5 TO archivo
DISPLAY " "
AT 19,14
DISPLAY "<< Buscando Las Informaciones... Espere Por Favor >>"
AT 19,14
DECLARE c_vende CURSOR FOR
SELECT UNIQUE d.cod_emp,d.cod_emp_sec,a.fecha_factura,a.factura,
b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,b.cantidad,
b.cantidad * b.precio ,d.num_doc,d.fecha_orig,d.valor,
a.porc_desc,' ',' ',' ',' ',' ',
a.porc_desc,a.porc_itbi,a.neto
FROM vetb00002 a,vetb00003 b ,cctb00005 c,cctb00001 d
WHERE d.fecha_orig between p_datos.fecha_in and p_datos.fecha_fin
and (a.fecha_factura > "01011994")
and (a.factura = b.factura) and
(a.cod_cia = cod_cia) and a.status_t is null 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
d.cod_emp_sec in (367,338) and
d.tipo_doc = "PG" and d.aplica_a = a.factura and
d.status_t is null
DISPLAY " "
AT 19,14
DISPLAY "<< Reporte Generandose... Espere Por Favor >>"
AT 19,14
FOREACH c_vende INTO vendedor.*,porciento,p_itbi,p_neto
SELECT descrip_esp INTO vendedor.descrip_esp FROM intb00001
WHERE cod_n = vendedor.cod_n and
cod_grupo = vendedor.cod_grupo and
cod_tipo = vendedor.cod_tipo and
cod_sec = vendedor.cod_sec
SELECT nom1_emp,apell1_emp
INTO vendedor.nombre_vend,vendedor.apellido_vend
FROM adtb00003 WHERE
num_emp = vendedor.sec_vend
LET vendedor.vende =
vendedor.sec_vend using "&&&&"
LET vendedor.codigo = vendedor.cod_n using "&",
vendedor.cod_grupo using "&",
vendedor.cod_tipo using "&&",
vendedor.cod_sec using "&&&"
LET valor_desc = vendedor.precio * (porciento/100)
LET vendedor.precio = vendedor.precio - valor_desc
LET vendedor.precio =
vendedor.precio + vendedor.precio * (p_itbi / 100)
LET porc_rep = (vendedor.precio / p_neto) * 100
OUTPUT TO REPORT reporte_5 (vendedor.*,porc_rep,p_neto)
END FOREACH
FINISH REPORT reporte_5
#RUN imprime
CALL fdestino(destino,archivo,imprime)
CLEAR SCREEN
END FUNCTION
REPORT reporte_5(x,porc,p_neto1)
DEFINE x RECORD
cod_vend SMALLINT,
sec_vend SMALLINT,
fecha_factura DATE,
factura INTEGER,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER ,
precio DECIMAL(10,2),
recibo INTEGER,
fecha DATE,
valor_c DECIMAL(12,2),
porc_venta DECIMAL(10,4),
descrip_esp CHAR(30),
nombre_vend CHAR(30),
apellido_vend CHAR(30) ,
vendedor CHAR(6) ,
codigo CHAR(7)
END RECORD
DEFINE nombre_mes CHAR(10)
DEFINE ii,total_clientes INTEGER
DEFINE doce CHAR(6)
DEFINE hora CHAR(5)
DEFINE i SMALLINT
DEFINE porc DECIMAL(10,4)
DEFINE t_valor1,p_neto1,t_valor,valor DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 4
ORDER BY x.vendedor,x.factura,x.codigo,x.recibo
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, letras.doce, letras.negrillas_on
PRINT COLUMN 1, "teprrp005",
COLUMN 55, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 148, "Pag. ",pageno using "###"
PRINT COLUMN 55, " Sistema de Tesoreria",
COLUMN 148, today using "dd/mm/yyyy"
PRINT COLUMN 55, " Liquidacion Comision Por Cobro Plan Ranchero",
COLUMN 151, hora
PRINT COLUMN 1, letras.negrillas_off
IF cod_cia = 1 THEN
PRINT COLUMN 1, "Rayovac Dominicana"
ELSE
PRINT COLUMN 1, "Distribuidora Dominicana de Pilas"
END IF
PRINT COLUMN 1, "Del ",p_datos.fecha_in using "dd/mm/yyyy"," Al ",
p_datos.fecha_fin using "dd/mm/yyyy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------" ,
"------------------------------------------------------"
PRINT COLUMN 20, "VALOR",
COLUMN 80, "PORC.",
COLUMN 92, "VALOR",
COLUMN 101, "NUMERO",
COLUMN 126, "VALOR",
COLUMN 135, " VALOR"
PRINT COLUMN 1, "FECHA",
COLUMN 10, "FACTURA",
COLUMN 20, "FACTURA",
COLUMN 38, "PRODUCTO",
COLUMN 80, "REPRES",
COLUMN 92, "REPRES",
COLUMN 101, "RECIBO",
COLUMN 110, "FECHA",
COLUMN 126, "COBRADO" ,
COLUMN 135, "REPRESENTA",
COLUMN 148, "COMISION"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------" ,
"------------------------------------------------------"
SKIP 1 LINE
BEFORE GROUP OF x.vendedor
LET t_valor = 0
LET t_valor1 = 0
PRINT COLUMN 1,letras.doble_on,"VENDEDOR : ",
x.nombre_vend clipped," ",
x.apellido_vend clipped, letras.doble_off
SKIP 1 LINE
BEFORE GROUP OF x.factura
PRINT COLUMN 1, x.fecha_factura using "dd/mm/yyyy",
COLUMN 12, x.factura using "&&&&&&",
COLUMN 20, p_neto1 using "###,###.##";
ON EVERY ROW
PRINT COLUMN 38, x.cod_n using "&","-",x.cod_grupo using "&","-",
x.cod_tipo using "&&","-",x.cod_sec using "&&&",
" ", x.descrip_esp CLIPPED,
COLUMN 80, porc USING "###.##",
COLUMN 91, x.precio USING "###,###.##";
IF x.recibo is not null THEN
IF x.valor_c < 0 THEN
LET x.valor_c = x.valor_c * -1
END IF
IF x.precio < x.valor_c THEN
LET valor = x.valor_c * (porc / 100)
ELSE
LET valor = x.valor_c
END IF
PRINT COLUMN 102, x.recibo using "&&&&&&",
COLUMN 110, x.fecha using "dd/mm/yyyy",
COLUMN 120, x.valor_c using "##,###,###.##",
COLUMN 134, valor USING "##,###.##",
COLUMN 146, valor * .01275 USING "##,###.##"
LET t_valor = (valor * .01275) + t_valor
LET t_valor1 = valor + t_valor1
ELSE
PRINT " "
END IF
AFTER GROUP OF x.vendedor
SKIP 1 LINE
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 10, "TOTAL VENDEDOR --> ",
COLUMN 87, GROUP SUM(x.precio) USING "###,###,###.##",
COLUMN 130, t_valor1 USING "##,###,###.##",
COLUMN 146, t_valor USING "##,###,###.##"
PRINT COLUMN 1,letras.negrillas_off
END REPORT
+180
View File
@@ -0,0 +1,180 @@
{
-------------------------------------------------------------------------------
PROGRAMA : TEPRRP006
OBJETIVO : COMISION CKS. DEVUELTOS
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Junio 7, 1995
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE datos_k RECORD
cod_cia LIKE vetb00002.cod_cia,
factura LIKE vetb00002.factura,
monto LIKE vetb00002.neto,
numero LIKE cctb00001.num_doc,
sec_vend LIKE cctb00001.cod_emp_sec,
tipo_cliente LIKE cctb00001.tipo_cliente,
sec_cliente LIKE cctb00001.sec_cliente,
valor LIKE cctb00001.valor
END RECORD
FUNCTION teprrp006()
DEFINE p_cia,p_vende SMALLINT
OPTIONS
FORM LINE 8,
ERROR LINE 24
OPEN FORM tefmrp006 FROM "tefmrp006"
DISPLAY FORM tefmrp006
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME rango.*
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER FIELD fech_fi
IF rango.fech_fi <= rango.fech_in THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fech_in
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
DISPLAY "<<< Buscando Informacion... Espere Por Favor" AT 19,14
START REPORT ckdevuelve TO archivo
# Busca los cheques devueltos de cuentas por cobrar
DECLARE busca CURSOR FOR
SELECT UNIQUE b.cod_cia,b.factura,b.neto,a.num_doc,a.cod_emp_sec,
a.tipo_cliente,a.sec_cliente,a.valor
FROM cctb00001 a,vetb00002 b
WHERE (a.cod_emp_sec = a.cod_emp_sec and
a.fecha_orig between rango.fech_in and rango.fech_fi and
a.tipo_doc = "ND" and a.valor_cheque is not null) and
(a.aplica_a = b.factura) and a.status_t is null
ORDER BY 5,4,2
FOREACH busca INTO datos_k.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
FINISH REPORT ckdevuelve
END IF
LET p_cia = datos_k.cod_cia
LET p_vende = datos_k.sec_vend
OUTPUT TO REPORT ckdevuelve(p_cia,p_vende)
END FOREACH
FINISH REPORT ckdevuelve
#RUN imprime
CALL fdestino(destino,archivo,imprime)
END FUNCTION
REPORT ckdevuelve(cia,vende)
DEFINE cia,vende SMALLINT,
porc_dev DECIMAL(10,4),
nomb1,nomb2 CHAR(20),
nombre_cliente CHAR(30),
t_porc DECIMAL(10,2),
doce CHAR(3)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
FORMAT
PAGE HEADER
LET doce = ASCII 30
PRINT COLUMN 1, letras.doce
PRINT COLUMN 1, "teprrp006",
COLUMN 27, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 94, "Pag. ",pageno using "###"
PRINT COLUMN 27, " Sistema de Tesoreria ",
COLUMN 94, today using "dd/mm/yyyy"
PRINT COLUMN 27, " Comision Cheques Devueltos",
COLUMN 94, time
SKIP 1 LINES
PRINT "Rango: Del ",rango.fech_in USING "dd/mm/yyyy",
" Al ",rango.fech_fi USING "dd/mm/yyyy"
PRINT "--------------------------------------------------------",
"---------------------------------------------"
SKIP 1 LINES
BEFORE GROUP OF vende
SELECT nom1_emp,apell1_emp INTO nomb1,nomb2 FROM adtb00003
WHERE num_emp = vende
PRINT COLUMN 1, "VENDEDOR: ",vende using "&&&"," ",
nomb1 clipped," ",nomb2
SKIP 1 LINE
PRINT COLUMN 80, "VALOR"
PRINT COLUMN 1, "DOCUMENTO",
COLUMN 15,"CLIENTE",
COLUMN 54, "FACTURA",
COLUMN 68, "MONTO",
COLUMN 80,"S/ITBI",
COLUMN 92, "%",
COLUMN 94,"COMISION"
SKIP 1 LINE
ON EVERY ROW
IF cia = 1 THEN
SELECT unique a.porc_cobros INTO porc_dev FROM vetb00011 a
WHERE a.sec_vend = datos_k.sec_vend and a.cod_n = 3 and
a.status_t is null
ELSE
SELECT unique a.porc_cobros INTO porc_dev FROM vetb00011 a
WHERE a.sec_vend = datos_k.sec_vend and a.cod_n in (6,9) and
a.status_t is null
END IF
SELECT nombre INTO nombre_cliente FROM vetb00004
WHERE tipo_cliente = datos_k.tipo_cliente and
sec_cliente = datos_k.sec_cliente
PRINT COLUMN 1, datos_k.numero using "&&&&&&",
COLUMN 15, datos_k.tipo_cliente using "&&","-",
datos_k.sec_cliente using "&&&&"," ",
nombre_cliente,
COLUMN 54, datos_k.factura using "&&&&&&",
COLUMN 63, datos_k.valor using "###,###.##",
COLUMN 73, datos_k.valor/1.08 using "##,###,###.##",
COLUMN 88, porc_dev using "##.####",
COLUMN 96, (datos_k.valor/1.08) * porc_dev using "###.##"
IF t_porc is null THEN
LET t_porc = 0
END IF
LET t_porc = t_porc + ((datos_k.valor/1.08) * porc_dev)
AFTER GROUP OF vende
PRINT COLUMN 73, "-------------",
COLUMN 94, "--------"
PRINT COLUMN 15, "TOTAL VENDEDOR: ",
COLUMN 73, GROUP SUM(datos_k.valor/1.08) using "##,###,###.##",
COLUMN 93, t_porc using "##,###.##"
LET t_porc = 0
PRINT "--------------------------------------------------------",
"---------------------------------------------"
END REPORT
+357
View File
@@ -0,0 +1,357 @@
{
==============================================================================
PROGRAMA : TEPRRP007
SISTEMA : Sistema de Tesoreria
Objetivo : Relacion de Cheque Emitidos
PROGRAMADOR : Tadeo A. Ferreras
FECHA : Diciembre 05, 1995
==============================================================================
}
GLOBALS
"teprgb000.4gl"
DEFINE datos_7 RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
DEFINE fecha_inicial,fecha_final DATE
DEFINE tasa DECIMAL(7,3)
DEFINE salir CHAR(1)
FUNCTION teprrp007()
LET int_flag = FALSE
OPTIONS
FORM LINE 8
OPEN FORM tefmrp007 FROM "tefmrp007"
DISPLAY FORM tefmrp007
DISPLAY "teprrp007" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Relacion de Cheques Emitidos" AT 6,26 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME fecha_inicial,fecha_final,tasa
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_inicial > fecha_final THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON a.cuenta_no,a.cheque_no FROM cuenta_no,cheque_no
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
{
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
}
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET selec =
"SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ",
" a.status_t ",
# " a.status_t,b.codigo,c.descripcion ",
# "FROM cgtb00005 a, tetb00006 b, tetb00003 c ",
"FROM cgtb00005 a, tetb00006 b ",
"WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ",
" a.cuenta_no = b.banco AND ",
" a.cheque_no = b.cheque_no ",
# " a.cheque_no = b.cheque_no AND ",
# " b.codigo = c.codigo ",
"ORDER BY 1,2"
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
PREPARE comando FROM selec
DECLARE busco CURSOR FOR comando
OPEN busco USING fecha_inicial,fecha_final
START REPORT cheque_e TO archivo
CALL defecto(impresor) RETURNING imprime1,letras.*,archivo
START REPORT cheque_e2 TO archivo #"lptmp"
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
LET salir = "N"
WHILE salir != "S"
FETCH busco INTO datos_7.*
IF STATUS = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET datos_7.codigo = 0
LET datos_7.descripcion = " "
SELECT c.codigo, c.descripcion INTO
datos_7.codigo, datos_7.descripcion
FROM tetb00003 c, tetb00006 d
WHERE c.codigo = d.codigo AND
d.banco = datos_7.cuenta_no AND
d.cheque_no = datos_7.cheque_no AND
c.status_t IS NULL AND
d.status_t IS NULL
DISPLAY datos_7.cuenta_no AT 21,30
DISPLAY datos_7.cheque_no AT 21,40
IF datos_7.status_t = "N" THEN
LET datos_7.monto = 0
LET datos_7.portador = "NULO"
END IF
IF datos_7.cuenta_no = 1113 THEN
LET datos_7.monto = datos_7.monto * tasa
END IF
OUTPUT TO REPORT cheque_e(datos_7.*)
OUTPUT TO REPORT cheque_e2(datos_7.*)
END WHILE
FINISH REPORT cheque_e
RUN imprime
FINISH REPORT cheque_e2
RUN imprime1
#CALL fdestino(destino,archivo,imprime)
#RUN "type lptmp > \\ROVDOM2\contabi"
#RUN "copy lptmp > \\ROVDOM2\contabi"
CLEAR SCREEN
END FUNCTION
REPORT cheque_e(x)
DEFINE x RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.negrillas_on,letras.doce,letras.comp_on
PRINT COLUMN 1, "teprrp007",
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 135, "Pag. ",pageno using "###"
PRINT COLUMN 48, " Sistema de Tesoreria",
COLUMN 135, today using "dd/mm/yyyy"
PRINT COLUMN 48, " Relacion Cheques Emitidos",
COLUMN 138, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: Del ",fecha_inicial USING "dd/mm/yyyy",
" Al ",fecha_final USING "dd/mm/yyyy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT COLUMN 1, "Cheque",
COLUMN 8, "Fecha",
COLUMN 17, "Beneficiario",
COLUMN 48, "Concepto",
COLUMN 125, "Part",
COLUMN 138, "Valor"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT letras.negrillas_off
## AQUI SE INDICA LA IMPRESION DEL DETALLE
BEFORE GROUP OF x.cuenta_no
SELECT a.descripcion INTO descripcion FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_no
PRINT COLUMN 1, letras.negrillas_on
PRINT COLUMN 1, "Banco: ", x.cuenta_no CLIPPED," ",
descripcion CLIPPED," ",letras.negrillas_off;
IF x.cuenta_no = 1103 THEN
PRINT " ( Tasa US$ : ",tasa USING "##.####"," )"
ELSE
PRINT " "
END IF
BEFORE GROUP OF x.cheque_no
LET numero_ch = NULL
LET detalle1 = NULL
LET detalle2 = NULL
IF x.status_t = "N" THEN
LET detalle1 = "CHEQUE ANULADO"
LET detalle2 = " "
ELSE
LET numero_ch = NULL
LET numero_ch = "CK.",x.cheque_no USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2[1,37]
INTO detalle1,detalle2
FROM cgtb00004 a
WHERE a.tipo=2 AND a.cuenta_no=x.cuenta_no AND a.ref = numero_ch
AND a.detalles matches x.cuenta_no AND a.status_t IS NULL
END IF
ON EVERY ROW
PRINT COLUMN 1, x.cheque_no USING "#####","|",
x.fecha USING "dd/mm/yyyy","|",
COLUMN 17, x.portador,"|",
COLUMN 48, detalle1,detalle2,"|",
COLUMN 126, x.codigo USING "&&", "|",
COLUMN 129, x.monto USING "###,###,###.##"
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 129, "--------------"
PRINT COLUMN 1, "Total Cheque(s) --> ", GROUP COUNT(*)
USING "<<<,<<<",
COLUMN 129, GROUP SUM(x.monto) USING "###,###,###.##"
ON LAST ROW
PRINT COLUMN 129, "--------------"
PRINT COLUMN 1, "Total Cheque(s) --> ", COUNT (*) USING "<<<,<<<",
COLUMN 129, SUM(x.monto) USING "###,###,###.##"
PRINT COLUMN 129, "=============="
PRINT letras.normal #comp_off
END REPORT
REPORT cheque_e2(x)
DEFINE x RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
ORDER BY x.codigo
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.negrillas_on,letras.doce,letras.comp_on
PRINT COLUMN 1, "teprrp007",
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 135, "Pag. ",pageno using "###"
PRINT COLUMN 48, " Sistema de Tesoreria",
COLUMN 135, today using "dd/mm/yyyy"
PRINT COLUMN 50, "Resumen por Partidas de Cheques Emitidos",
COLUMN 138, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: Del ",fecha_inicial USING "dd/mm/yyyy",
" Al ",fecha_final USING "dd/mm/yyyy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT COLUMN 1, "Partida",
COLUMN 40, "Valor"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT letras.negrillas_off
AFTER GROUP OF x.codigo
PRINT COLUMN 1, x.codigo USING "&&"," ",
x.descripcion,
COLUMN 40, GROUP SUM(x.monto) USING "###,###,###.##"
ON LAST ROW
PRINT COLUMN 39, "----------------"
PRINT COLUMN 1, " Total General ",
COLUMN 40, SUM(x.monto) USING "###,###,###.##"
PRINT COLUMN 39, "================"
PRINT letras.normal #comp_off
END REPORT
+342
View File
@@ -0,0 +1,342 @@
{
==============================================================================
PROGRAMA : TEPRRP007
SISTEMA : Sistema de Tesoreria
Objetivo : Relacion de Cheque Emitidos
PROGRAMADOR : Tadeo A. Ferreras
FECHA : Diciembre 05, 1995
==============================================================================
}
GLOBALS
"teprgb000.4gl"
DEFINE datos_7 RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
DEFINE fecha_inicial,fecha_final DATE
DEFINE tasa DECIMAL(7,3)
DEFINE salir CHAR(1)
FUNCTION teprrp007()
LET int_flag = FALSE
OPTIONS
FORM LINE 8
OPEN FORM tefmrp007 FROM "tefmrp007"
DISPLAY FORM tefmrp007
DISPLAY "teprrp007" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Relacion de Cheques Emitidos" AT 6,26 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME fecha_inicial,fecha_final,tasa
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_inicial > fecha_final THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON a.cuenta_no,a.cheque_no FROM cuenta_no,cheque_no
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
{
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
}
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET selec =
"SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ",
" a.status_t,b.codigo,c.descripcion ",
"FROM cgtb00005 a, tetb00006 b, outer tetb00003 c ",
"WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ",
" a.cuenta_no = b.banco AND ",
" a.cheque_no = b.cheque_no AND ",
" b.codigo = c.codigo ",
"ORDER BY 1,2"
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
ATTRIBUTE(BLUE)
PREPARE comando FROM selec
DECLARE busco CURSOR FOR comando
OPEN busco USING fecha_inicial,fecha_final
START REPORT cheque_e TO archivo
CALL defecto(impresor) RETURNING imprime1,letras.*,archivo
START REPORT cheque_e2 TO archivo
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
LET salir = "N"
WHILE salir != "S"
FETCH busco INTO datos_7.*
IF STATUS = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY datos_7.cuenta_no AT 21,30
DISPLAY datos_7.cheque_no AT 21,40
IF datos_7.status_t = "N" THEN
LET datos_7.monto = 0
LET datos_7.portador = "NULO"
END IF
IF datos_7.cuenta_no = 1113 THEN
LET datos_7.monto = datos_7.monto * tasa
END IF
OUTPUT TO REPORT cheque_e(datos_7.*)
OUTPUT TO REPORT cheque_e2(datos_7.*)
END WHILE
FINISH REPORT cheque_e
RUN imprime
FINISH REPORT cheque_e2
RUN imprime1
#CALL fdestino(destino,archivo,imprime)
#RUN "type lptmp > \\ROVDOM2\contabi"
#RUN "copy lptmp > \\ROVDOM2\contabi"
CLEAR SCREEN
END FUNCTION
REPORT cheque_e(x)
DEFINE x RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.negrillas_on,letras.doce,letras.comp_on
PRINT COLUMN 1, "teprrp007",
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 135, "Pag. ",pageno using "###"
PRINT COLUMN 48, " Sistema de Tesoreria",
COLUMN 135, today using "dd/mm/yyyy"
PRINT COLUMN 48, " Relacion Cheques Emitidos",
COLUMN 138, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: Del ",fecha_inicial USING "dd/mm/yyyy",
" Al ",fecha_final USING "dd/mm/yyyy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT COLUMN 1, "Cheque",
COLUMN 8, "Fecha",
COLUMN 17, "Beneficiario",
COLUMN 48, "Concepto",
COLUMN 125, "Part",
COLUMN 138, "Valor"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT letras.negrillas_off
## AQUI SE INDICA LA IMPRESION DEL DETALLE
BEFORE GROUP OF x.cuenta_no
SELECT a.descripcion INTO descripcion FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_no
PRINT COLUMN 1, letras.negrillas_on
PRINT COLUMN 1, "Banco: ", x.cuenta_no CLIPPED," ",
descripcion CLIPPED," ",letras.negrillas_off;
IF x.cuenta_no = 1103 THEN
PRINT " ( Tasa US$ : ",tasa USING "##.####"," )"
ELSE
PRINT " "
END IF
BEFORE GROUP OF x.cheque_no
LET numero_ch = NULL
LET detalle1 = NULL
LET detalle2 = NULL
IF x.status_t = "N" THEN
LET detalle1 = "CHEQUE ANULADO"
LET detalle2 = " "
ELSE
LET numero_ch = NULL
LET numero_ch = "CK.",x.cheque_no USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2[1,37]
INTO detalle1,detalle2
FROM cgtb00004 a
WHERE a.tipo=2 AND a.cuenta_no=x.cuenta_no AND a.ref = numero_ch
AND a.detalles matches x.cuenta_no AND a.status_t IS NULL
END IF
ON EVERY ROW
PRINT COLUMN 1, x.cheque_no USING "#####","|",
x.fecha USING "dd/mm/yyyy","|",
COLUMN 17, x.portador,"|",
COLUMN 48, detalle1,detalle2,"|",
COLUMN 126, x.codigo USING "&&", "|",
COLUMN 129, x.monto USING "###,###,###.##"
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 129, "--------------"
PRINT COLUMN 1, "Total Cheque(s) --> ", GROUP COUNT(*)
USING "<<<,<<<",
COLUMN 129, GROUP SUM(x.monto) USING "###,###,###.##"
ON LAST ROW
PRINT COLUMN 129, "--------------"
PRINT COLUMN 1, "Total Cheque(s) --> ", COUNT (*) USING "<<<,<<<",
COLUMN 129, SUM(x.monto) USING "###,###,###.##"
PRINT COLUMN 129, "=============="
PRINT letras.normal #comp_off
END REPORT
REPORT cheque_e2(x)
DEFINE x RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
ORDER BY x.codigo
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.negrillas_on,letras.doce,letras.comp_on
PRINT COLUMN 1, "teprrp007",
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 135, "Pag. ",pageno using "###"
PRINT COLUMN 48, " Sistema de Tesoreria",
COLUMN 135, today using "dd/mm/yyyy"
PRINT COLUMN 50, "Resumen por Partidas de Cheques Emitidos",
COLUMN 138, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: Del ",fecha_inicial USING "dd/mm/yyyy",
" Al ",fecha_final USING "dd/mm/yyyy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT COLUMN 1, "Partida",
COLUMN 40, "Valor"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT letras.negrillas_off
AFTER GROUP OF x.codigo
PRINT COLUMN 1, x.codigo USING "&&"," ",
x.descripcion,
COLUMN 40, GROUP SUM(x.monto) USING "###,###,###.##"
ON LAST ROW
PRINT COLUMN 39, "----------------"
PRINT COLUMN 1, " Total General ",
COLUMN 40, SUM(x.monto) USING "###,###,###.##"
PRINT COLUMN 39, "================"
PRINT letras.normal #comp_off
END REPORT
+356
View File
@@ -0,0 +1,356 @@
{
==============================================================================
PROGRAMA : TEPRRP007
SISTEMA : Sistema de Tesoreria
Objetivo : Relacion de Cheque Emitidos
PROGRAMADOR : Tadeo A. Ferreras
FECHA : Diciembre 05, 1995
==============================================================================
}
GLOBALS
"teprgb000.4gl"
DEFINE datos_7 RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
DEFINE fecha_inicial,fecha_final DATE
DEFINE tasa DECIMAL(7,3)
DEFINE salir CHAR(1)
FUNCTION teprrp007()
LET int_flag = FALSE
OPTIONS
FORM LINE 8
OPEN FORM tefmrp007 FROM "tefmrp007"
DISPLAY FORM tefmrp007
DISPLAY "teprrp007" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Relacion de Cheques Emitidos" AT 6,26 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME fecha_inicial,fecha_final,tasa
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_inicial > fecha_final THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON a.cuenta_no,a.cheque_no FROM cuenta_no,cheque_no
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET selec =
"SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ",
" a.status_t ",
# " a.status_t,b.codigo,c.descripcion ",
# "FROM cgtb00005 a, tetb00006 b, tetb00003 c ",
"FROM cgtb00005 a, tetb00006 b ",
"WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ",
" a.cuenta_no = b.banco AND ",
" a.cheque_no = b.cheque_no ",
# " a.cheque_no = b.cheque_no AND ",
# " b.codigo = c.codigo ",
"ORDER BY 1,2"
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
PREPARE comando FROM selec
DECLARE busco CURSOR FOR comando
OPEN busco USING fecha_inicial,fecha_final
START REPORT cheque_e TO archivo
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
START REPORT cheque_e2 TO archivo #"lptmp"
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
LET salir = "N"
WHILE salir != "S"
FETCH busco INTO datos_7.*
IF STATUS = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET datos_7.codigo = 0
LET datos_7.descripcion = " "
SELECT c.codigo, c.descripcion INTO
datos_7.codigo, datos_7.descripcion
FROM tetb00003 c, tetb00006 d
WHERE c.codigo = d.codigo AND
d.banco = datos_7.cuenta_no AND
d.cheque_no = datos_7.cheque_no AND
c.status_t IS NULL AND
d.status_t IS NULL
DISPLAY datos_7.cuenta_no AT 21,30
DISPLAY datos_7.cheque_no AT 21,40
IF datos_7.status_t = "N" THEN
LET datos_7.monto = 0
LET datos_7.portador = "NULO"
END IF
IF datos_7.cuenta_no = 1113 THEN
LET datos_7.monto = datos_7.monto * tasa
END IF
OUTPUT TO REPORT cheque_e(datos_7.*)
OUTPUT TO REPORT cheque_e2(datos_7.*)
END WHILE
FINISH REPORT cheque_e
RUN imprime
FINISH REPORT cheque_e2
RUN imprime
#CALL fdestino(destino,archivo,imprime)
#RUN "type lptmp > \\ROVDOM2\contabi"
#RUN "copy lptmp > \\ROVDOM2\contabi"
CLEAR SCREEN
END FUNCTION
REPORT cheque_e(x)
DEFINE x RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.negrillas_on,letras.doce,letras.comp_on
PRINT COLUMN 1, "teprrp007",
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 135, "Pag. ",pageno using "###"
PRINT COLUMN 48, " Sistema de Tesoreria",
COLUMN 135, today using "dd/mm/yy"
PRINT COLUMN 48, " Relacion Cheques Emitidos",
COLUMN 138, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: Del ",fecha_inicial USING "dd/mm/yy",
" Al ",fecha_final USING "dd/mm/yy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT COLUMN 1, "Cheque",
COLUMN 8, "Fecha",
COLUMN 17, "Beneficiario",
COLUMN 48, "Concepto",
COLUMN 125, "Part",
COLUMN 138, "Valor"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT letras.negrillas_off
## AQUI SE INDICA LA IMPRESION DEL DETALLE
BEFORE GROUP OF x.cuenta_no
SELECT a.descripcion INTO descripcion FROM cgtb00001 a
WHERE a.cuenta_no = x.cuenta_no
PRINT COLUMN 1, letras.negrillas_on
PRINT COLUMN 1, "Banco: ", x.cuenta_no CLIPPED," ",
descripcion CLIPPED," ",letras.negrillas_off;
IF x.cuenta_no = 1103 THEN
PRINT " ( Tasa US$ : ",tasa USING "##.####"," )"
ELSE
PRINT " "
END IF
BEFORE GROUP OF x.cheque_no
LET numero_ch = NULL
LET detalle1 = NULL
LET detalle2 = NULL
IF x.status_t = "N" THEN
LET detalle1 = "CHEQUE ANULADO"
LET detalle2 = " "
ELSE
LET numero_ch = NULL
LET numero_ch = "CK.",x.cheque_no USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2[1,37]
INTO detalle1,detalle2
FROM cgtb00004 a
WHERE a.tipo=2 AND a.cuenta_no=x.cuenta_no AND a.ref = numero_ch
AND a.detalles matches x.cuenta_no AND a.status_t IS NULL
END IF
ON EVERY ROW
PRINT COLUMN 1, x.cheque_no USING "#####","|",
x.fecha USING "dd/mm/yy","|",
COLUMN 17, x.portador,"|",
COLUMN 48, detalle1,detalle2,"|",
COLUMN 126, x.codigo USING "&&", "|",
COLUMN 129, x.monto USING "###,###,###.##"
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 129, "--------------"
PRINT COLUMN 1, "Total Cheque(s) --> ", GROUP COUNT(*)
USING "<<<,<<<",
COLUMN 129, GROUP SUM(x.monto) USING "###,###,###.##"
ON LAST ROW
PRINT COLUMN 129, "--------------"
PRINT COLUMN 1, "Total Cheque(s) --> ", COUNT (*) USING "<<<,<<<",
COLUMN 129, SUM(x.monto) USING "###,###,###.##"
PRINT COLUMN 129, "=============="
PRINT letras.normal #comp_off
END REPORT
REPORT cheque_e2(x)
DEFINE x RECORD
cuenta_no CHAR(8),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
ORDER BY x.codigo
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.negrillas_on,letras.doce,letras.comp_on
PRINT COLUMN 1, "teprrp007",
COLUMN 48, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 135, "Pag. ",pageno using "###"
PRINT COLUMN 48, " Sistema de Tesoreria",
COLUMN 135, today using "dd/mm/yy"
PRINT COLUMN 50, "Resumen por Partidas de Cheques Emitidos",
COLUMN 138, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: Del ",fecha_inicial USING "dd/mm/yy",
" Al ",fecha_final USING "dd/mm/yy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT COLUMN 1, "Partida",
COLUMN 40, "Valor"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"------------------------------------------"
PRINT letras.negrillas_off
AFTER GROUP OF x.codigo
PRINT COLUMN 1, x.codigo USING "&&"," ",
x.descripcion,
COLUMN 40, GROUP SUM(x.monto) USING "###,###,###.##"
ON LAST ROW
PRINT COLUMN 39, "----------------"
PRINT COLUMN 1, " Total General ",
COLUMN 40, SUM(x.monto) USING "###,###,###.##"
PRINT COLUMN 39, "================"
PRINT letras.normal #comp_off
END REPORT

Some files were not shown because too many files have changed in this diff Show More